From cdbe2264dc76d161171db66d27e9927f2fdd7afd Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Thu, 10 Jul 2025 08:11:48 +0200 Subject: [PATCH 01/37] WIP --- docs/src/components/typography/dhjwg.d.ts | 4 ++ docs/src/components/typography/foo.ts | 0 packages/mui-utils/package.json | 2 +- scripts/build.mjs | 14 ++++- scripts/buildTypes.mts | 27 ++++---- scripts/copyFilesUtils.mjs | 77 +++-------------------- 6 files changed, 37 insertions(+), 87 deletions(-) create mode 100644 docs/src/components/typography/dhjwg.d.ts create mode 100644 docs/src/components/typography/foo.ts diff --git a/docs/src/components/typography/dhjwg.d.ts b/docs/src/components/typography/dhjwg.d.ts new file mode 100644 index 00000000000000..61843467aa12af --- /dev/null +++ b/docs/src/components/typography/dhjwg.d.ts @@ -0,0 +1,4 @@ +declare module '*?hello' { + const x: string; + export default x; +} diff --git a/docs/src/components/typography/foo.ts b/docs/src/components/typography/foo.ts new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/packages/mui-utils/package.json b/packages/mui-utils/package.json index e0e44fc2b153a6..79332b2ef926bd 100644 --- a/packages/mui-utils/package.json +++ b/packages/mui-utils/package.json @@ -27,7 +27,7 @@ "scripts": { "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files", "build:node": "node ../../scripts/build.mjs node", - "build:stable": "node ../../scripts/build.mjs stable", + "build:stable": "node ../../scripts/build.mjs stable --verbose", "build:copy-files": "node ../../scripts/copyFiles.mjs", "build:types": "tsx ../../scripts/buildTypes.mts", "prebuild": "rimraf build tsconfig.build.tsbuildinfo", diff --git a/scripts/build.mjs b/scripts/build.mjs index c5c5a08872fbdf..175ff8255645cf 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -6,6 +6,9 @@ import * as fs from 'fs/promises'; import { cjsCopy } from './copyFilesUtils.mjs'; import { getVersionEnvVariables, getWorkspaceRoot } from './utils.mjs'; +// Use .mjs extension for ESM output files if the MUI_EXPERIMENTAL_MJS environment variable is set. +const EXPERIMENTAL_MJS = !!process.env.MUI_EXPERIMENTAL_MJS; + const exec = promisify(childProcess.exec); const validBundles = [ @@ -53,7 +56,14 @@ async function run(argv) { '**/test-cases/*.*', ]; - const outFileExtension = '.js'; + let outFileExtension = '.js'; + + if (EXPERIMENTAL_MJS && (bundle === 'stable')) { + outFileExtension = '.mjs'; + } + + console.log(EXPERIMENTAL_MJS) + console.log(`Building ${bundle} bundle with outFileExtension: ${outFileExtension}`); const relativeOutDir = { node: cjsDir, @@ -112,7 +122,7 @@ async function run(argv) { // Write a package.json file in the output directory if we are building the stable bundle // or if the output directory is not the root of the package. const shouldWriteBundlePackageJson = bundle === 'stable' || relativeOutDir !== './'; - if (shouldWriteBundlePackageJson && !argv.skipEsmPkg) { + if (!EXPERIMENTAL_MJS && shouldWriteBundlePackageJson && !argv.skipEsmPkg) { const rootBundlePackageJson = path.join(outDir, 'package.json'); await fs.writeFile( rootBundlePackageJson, diff --git a/scripts/buildTypes.mts b/scripts/buildTypes.mts index 78ab604506f735..32117bd657f3b0 100644 --- a/scripts/buildTypes.mts +++ b/scripts/buildTypes.mts @@ -72,7 +72,7 @@ async function copyDeclarations(sourceDirectory: string, destinationDirectory: s interface HandlerArgv { skipTsc: boolean; - copy: string[]; + cjsDir: string; removeCss: boolean; } @@ -90,11 +90,10 @@ async function main(argv: HandlerArgv) { const srcPath = path.join(packageRoot, 'src'); const buildFolder = path.join(packageRoot, 'build'); - const esmOrOutDir = tsConfig?.compilerOptions.outDir - ? path.join(packageRoot, tsConfig.compilerOptions.outDir) - : path.join(buildFolder, 'esm'); + const esmDir = path.join(buildFolder, 'esm'); + const cjsDir = path.join(buildFolder, argv.cjsDir); - await copyDeclarations(srcPath, esmOrOutDir); + await copyDeclarations(srcPath, esmDir); if (!argv.skipTsc) { if (!tsconfigExists) { @@ -105,14 +104,13 @@ async function main(argv: HandlerArgv) { ); } - await emitDeclarations(tsconfigPath, esmOrOutDir); + await emitDeclarations(tsconfigPath, esmDir); } - await postProcessImports(esmOrOutDir, argv.removeCss); + await copyDeclarations(esmDir, cjsDir) - await Promise.all( - argv.copy.map((copy) => copyDeclarations(esmOrOutDir, path.join(packageRoot, copy))), - ); + await postProcessImports(esmDir, argv.removeCss); + await postProcessImports(cjsDir, argv.removeCss); const tsbuildinfo = await glob('**/*.tsbuildinfo', { absolute: true, cwd: buildFolder }); await Promise.all(tsbuildinfo.map(async (file) => fs.rm(file))); @@ -129,11 +127,10 @@ yargs(process.argv.slice(2)) default: false, describe: 'Set to `true` if you want the legacy behavior of just copying .d.ts files.', }) - .option('copy', { - alias: 'c', - type: 'array', - description: 'Directories where the type definition files should be copied', - default: ['build'], + .option('cjsDir', { + type: 'string', + description: 'Directory under the build folder where the cjs build lives', + default: '.', }) .option('removeCss', { type: 'boolean', diff --git a/scripts/copyFilesUtils.mjs b/scripts/copyFilesUtils.mjs index baeb693b2c8f74..4d700c86941274 100644 --- a/scripts/copyFilesUtils.mjs +++ b/scripts/copyFilesUtils.mjs @@ -3,6 +3,9 @@ import path from 'path'; import fse from 'fs-extra'; import glob from 'fast-glob'; +// Use .mjs extension for ESM output files if the MUI_EXPERIMENTAL_MJS environment variable is set. +const EXPERIMENTAL_MJS = !!process.env.MUI_EXPERIMENTAL_MJS; + const packagePath = process.cwd(); const buildPath = path.join(packagePath, './build'); @@ -21,66 +24,6 @@ export async function includeFileInBuild(file, target = path.basename(file)) { console.log(`Copied ${sourcePath} to ${targetPath}`); } -/** - * Puts a package.json into every immediate child directory of rootDir. - * That package.json contains information about esm for bundlers so that imports - * like import Typography from '@mui/material/Typography' are tree-shakeable. - * - * It also tests that an this import can be used in TypeScript by checking - * if an index.d.ts is present at that path. - * TODO: kept around for backwards compatibility, remove once X is on ESM-exports package layout - * @param {object} param0 - * @param {string} param0.from - * @param {string} param0.to - */ -export async function createModulePackages({ from, to }) { - const directoryPackages = glob.sync('*/index.{js,ts,tsx}', { cwd: from }).map(path.dirname); - - await Promise.all( - directoryPackages.map(async (directoryPackage) => { - const packageJsonPath = path.join(to, directoryPackage, 'package.json'); - const topLevelPathImportsAreCommonJSModules = await fse.pathExists( - path.resolve(path.dirname(packageJsonPath), '../esm'), - ); - - const packageJson = { - sideEffects: false, - module: topLevelPathImportsAreCommonJSModules - ? path.posix.join('../esm', directoryPackage, 'index.js') - : './index.js', - main: topLevelPathImportsAreCommonJSModules - ? './index.js' - : path.posix.join('../node', directoryPackage, 'index.js'), - types: './index.d.ts', - }; - - const [typingsEntryExist, moduleEntryExists, mainEntryExists] = await Promise.all([ - fse.pathExists(path.resolve(path.dirname(packageJsonPath), packageJson.types)), - fse.pathExists(path.resolve(path.dirname(packageJsonPath), packageJson.module)), - fse.pathExists(path.resolve(path.dirname(packageJsonPath), packageJson.main)), - fse.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2)), - ]); - - const manifestErrorMessages = []; - if (!typingsEntryExist) { - manifestErrorMessages.push(`'types' entry '${packageJson.types}' does not exist`); - } - if (!moduleEntryExists) { - manifestErrorMessages.push(`'module' entry '${packageJson.module}' does not exist`); - } - if (!mainEntryExists) { - manifestErrorMessages.push(`'main' entry '${packageJson.main}' does not exist`); - } - if (manifestErrorMessages.length > 0) { - // TODO: AggregateError - throw new Error(`${packageJsonPath}:\n${manifestErrorMessages.join('\n')}`); - } - - return packageJsonPath; - }), - ); -} - export async function typescriptCopy({ from, to }) { if (!(await fse.pathExists(to))) { console.warn(`path ${to} does not exists`); @@ -120,8 +63,8 @@ function createExportFor(exportName, conditions) { default: `./${baseName}.js`, }, import: { - types: `./esm/${baseName}.d.ts`, - default: `./esm/${baseName}.js`, + types: `./esm/${baseName}.d.${EXPERIMENTAL_MJS ? 'mts' : 'ts'}`, + default: `./esm/${baseName}.${EXPERIMENTAL_MJS ? 'mjs' : 'js'}`, }, ...rest, }, @@ -177,7 +120,7 @@ export async function createPackageFile(useEsmExports = false) { ...(packageDataOther.main ? { main: './index.js', - module: './esm/index.js', + module: `./esm/index.${EXPERIMENTAL_MJS ? 'mjs' : 'js'}`, } : {}), exports: packageExports, @@ -187,12 +130,8 @@ export async function createPackageFile(useEsmExports = false) { private: false, ...(packageDataOther.main ? { - main: fse.existsSync(path.resolve(buildPath, './node/index.js')) - ? './node/index.js' - : './index.js', - module: fse.existsSync(path.resolve(buildPath, './esm/index.js')) - ? './esm/index.js' - : './index.js', + main: './index.js', + module: `./esm/index.${EXPERIMENTAL_MJS ? 'mjs' : 'js'}`, } : {}), }; From 04009be2e7fc92a1b398075b13fa42068de96e3d Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Thu, 10 Jul 2025 08:16:05 +0200 Subject: [PATCH 02/37] Delete dhjwg.d.ts --- docs/src/components/typography/dhjwg.d.ts | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/src/components/typography/dhjwg.d.ts diff --git a/docs/src/components/typography/dhjwg.d.ts b/docs/src/components/typography/dhjwg.d.ts deleted file mode 100644 index 61843467aa12af..00000000000000 --- a/docs/src/components/typography/dhjwg.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*?hello' { - const x: string; - export default x; -} From 9eeb7cfe371b4f8ed3f1ec17d3fb754de5ed5745 Mon Sep 17 00:00:00 2001 From: Brijesh Bittu Date: Fri, 11 Jul 2025 11:21:30 +0530 Subject: [PATCH 03/37] Rename all d.ts files to d.mts in esm output dir --- packages/mui-utils/package.json | 6 +++--- scripts/build.mjs | 4 ++-- scripts/buildTypes.mts | 29 ++++++++++++++++++++++++----- scripts/copyFiles.mjs | 22 ++++++++++++---------- 4 files changed, 41 insertions(+), 20 deletions(-) diff --git a/packages/mui-utils/package.json b/packages/mui-utils/package.json index 79332b2ef926bd..8f21cac0651efb 100644 --- a/packages/mui-utils/package.json +++ b/packages/mui-utils/package.json @@ -27,9 +27,9 @@ "scripts": { "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files", "build:node": "node ../../scripts/build.mjs node", - "build:stable": "node ../../scripts/build.mjs stable --verbose", - "build:copy-files": "node ../../scripts/copyFiles.mjs", - "build:types": "tsx ../../scripts/buildTypes.mts", + "build:stable": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/build.mjs stable --verbose", + "build:copy-files": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/copyFiles.mjs", + "build:types": "MUI_EXPERIMENTAL_MJS=true tsx ../../scripts/buildTypes.mts", "prebuild": "rimraf build tsconfig.build.tsbuildinfo", "release": "pnpm build && pnpm publish", "test": "cd ../../ && cross-env NODE_ENV=test mocha 'packages/mui-utils/**/*.test.?(c|m)[jt]s?(x)'", diff --git a/scripts/build.mjs b/scripts/build.mjs index 175ff8255645cf..3990f776532867 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import childProcess from 'child_process'; import path from 'path'; import { promisify } from 'util'; @@ -58,11 +59,10 @@ async function run(argv) { let outFileExtension = '.js'; - if (EXPERIMENTAL_MJS && (bundle === 'stable')) { + if (EXPERIMENTAL_MJS && bundle === 'stable') { outFileExtension = '.mjs'; } - console.log(EXPERIMENTAL_MJS) console.log(`Building ${bundle} bundle with outFileExtension: ${outFileExtension}`); const relativeOutDir = { diff --git a/scripts/buildTypes.mts b/scripts/buildTypes.mts index 32117bd657f3b0..89cf1d11211f50 100644 --- a/scripts/buildTypes.mts +++ b/scripts/buildTypes.mts @@ -8,6 +8,9 @@ import { parse } from 'jsonc-parser'; const $$ = $({ stdio: 'inherit' }); +// Use .mjs extension for ESM output files if the MUI_EXPERIMENTAL_MJS environment variable is set. +const EXPERIMENTAL_MJS = !!process.env.MUI_EXPERIMENTAL_MJS; + async function emitDeclarations(tsconfig: string, outDir: string) { // eslint-disable-next-line no-console console.log(`Building types for ${path.resolve(tsconfig)}`); @@ -70,6 +73,22 @@ async function copyDeclarations(sourceDirectory: string, destinationDirectory: s }); } +async function renameDtsFilesToDmts(sourceDirectory: string) { + const dtsFiles = await glob('**/*.d.ts', { absolute: true, cwd: sourceDirectory }); + if (dtsFiles.length === 0) { + console.warn('No .d.ts files found in the directory. Skipping renaming to .d.mts'); + return; + } + + console.log('Renaming .d.ts files to .d.mts files in', sourceDirectory); + await Promise.all( + dtsFiles.map(async (dtsFile) => { + const mtsFile = dtsFile.replace(/\.d\.ts$/, '.d.mts'); + await fs.rename(dtsFile, mtsFile); + }), + ); +} + interface HandlerArgv { skipTsc: boolean; cjsDir: string; @@ -84,10 +103,6 @@ async function main(argv: HandlerArgv) { () => false, ); - const tsConfig = tsconfigExists - ? (parse(await fs.readFile(tsconfigPath, 'utf-8')) as { compilerOptions: { outDir: string } }) - : null; - const srcPath = path.join(packageRoot, 'src'); const buildFolder = path.join(packageRoot, 'build'); const esmDir = path.join(buildFolder, 'esm'); @@ -107,11 +122,15 @@ async function main(argv: HandlerArgv) { await emitDeclarations(tsconfigPath, esmDir); } - await copyDeclarations(esmDir, cjsDir) + await copyDeclarations(esmDir, cjsDir); await postProcessImports(esmDir, argv.removeCss); await postProcessImports(cjsDir, argv.removeCss); + if (EXPERIMENTAL_MJS) { + await renameDtsFilesToDmts(esmDir); + } + const tsbuildinfo = await glob('**/*.tsbuildinfo', { absolute: true, cwd: buildFolder }); await Promise.all(tsbuildinfo.map(async (file) => fs.rm(file))); } diff --git a/scripts/copyFiles.mjs b/scripts/copyFiles.mjs index eb827d54b02a8a..702603aee551e7 100644 --- a/scripts/copyFiles.mjs +++ b/scripts/copyFiles.mjs @@ -16,17 +16,19 @@ async function addLicense(packageData) { */ `; await Promise.all( - ['./index.js', './esm/index.js', './modern/index.js', './node/index.js'].map(async (file) => { - try { - await prepend(path.resolve(buildPath, file), license); - } catch (err) { - if (err.code === 'ENOENT') { - console.log(`Skipped license for ${file}`); - } else { - throw err; + ['./index.js', './esm/index.js', './esm/index.mjs', './modern/index.js', './node/index.js'].map( + async (file) => { + try { + await prepend(path.resolve(buildPath, file), license); + } catch (err) { + if (err.code === 'ENOENT') { + console.log(`Skipped license for ${file}`); + } else { + throw err; + } } - } - }), + }, + ), ); } From 903e9c2eb2f4337a83f6d21cc7fec8dd5c1c3f47 Mon Sep 17 00:00:00 2001 From: Brijesh Bittu Date: Fri, 11 Jul 2025 16:23:38 +0530 Subject: [PATCH 04/37] Keep both d.ts and d.mts files in esm directory --- packages/mui-types/package.json | 6 +++--- scripts/build.mjs | 2 -- scripts/buildTypes.mts | 5 +++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/mui-types/package.json b/packages/mui-types/package.json index 163cc52a23be4a..9b9e6c78938fc3 100644 --- a/packages/mui-types/package.json +++ b/packages/mui-types/package.json @@ -23,9 +23,9 @@ "scripts": { "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files", "build:node": "node ../../scripts/build.mjs node", - "build:stable": "node ../../scripts/build.mjs stable", - "build:types": "tsx ../../scripts/buildTypes.mts", - "build:copy-files": "node ../../scripts/copyFiles.mjs", + "build:stable": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/build.mjs stable", + "build:types": "MUI_EXPERIMENTAL_MJS=true tsx ../../scripts/buildTypes.mts", + "build:copy-files": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/copyFiles.mjs", "prebuild": "rimraf build", "release": "pnpm build && pnpm publish", "test": "echo 'No runtime test. Type tests are run with the `typescript` script.'", diff --git a/scripts/build.mjs b/scripts/build.mjs index 3990f776532867..9a209bd843c8a6 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -105,7 +105,6 @@ async function run(argv) { const command = ['pnpm babel', ...babelArgs].join(' '); if (verbose) { - // eslint-disable-next-line no-console console.log(`running '${command}' with ${JSON.stringify(env)}`); } @@ -131,7 +130,6 @@ async function run(argv) { } if (verbose) { - // eslint-disable-next-line no-console console.log(stdout); } } diff --git a/scripts/buildTypes.mts b/scripts/buildTypes.mts index 89cf1d11211f50..0997af747ebae1 100644 --- a/scripts/buildTypes.mts +++ b/scripts/buildTypes.mts @@ -4,7 +4,6 @@ import path from 'path'; import yargs from 'yargs'; import { $ } from 'execa'; import * as babel from '@babel/core'; -import { parse } from 'jsonc-parser'; const $$ = $({ stdio: 'inherit' }); @@ -84,7 +83,9 @@ async function renameDtsFilesToDmts(sourceDirectory: string) { await Promise.all( dtsFiles.map(async (dtsFile) => { const mtsFile = dtsFile.replace(/\.d\.ts$/, '.d.mts'); - await fs.rename(dtsFile, mtsFile); + // @TODO - Fix this. Temporarily maintaining both .d.ts and .d.mts files to avoid issues with parent packages that + // expect .d.ts files to be present. + await fs.copyFile(dtsFile, mtsFile); }), ); } From 05b389640c78d641c3ea891aca3c2fa1208d5bfb Mon Sep 17 00:00:00 2001 From: Brijesh Bittu Date: Mon, 14 Jul 2025 13:36:36 +0530 Subject: [PATCH 05/37] Reorder babel plugin to work with packages with css imports --- scripts/buildTypes.mts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/scripts/buildTypes.mts b/scripts/buildTypes.mts index 0997af747ebae1..99182208022caf 100644 --- a/scripts/buildTypes.mts +++ b/scripts/buildTypes.mts @@ -16,23 +16,23 @@ async function emitDeclarations(tsconfig: string, outDir: string) { await $$`tsc -p ${tsconfig} --outDir ${outDir} --declaration --emitDeclarationOnly`; } -async function postProcessImports(folder: string, removeCss: boolean) { +async function postProcessImports(folder: string, removeCss: boolean, filter = '.d.ts') { // eslint-disable-next-line no-console console.log(`Adding import extensions`); - const dtsFiles = await glob('**/*.d.ts', { absolute: true, cwd: folder }); + const dtsFiles = await glob(`**/*${filter}`, { absolute: true, cwd: folder }); if (dtsFiles.length === 0) { - throw new Error(`Unable to find declaration files in '${folder}'`); + return; } - const babelPlugins: babel.PluginItem[] = [ - ['@babel/plugin-syntax-typescript', { dts: true }], - ['@mui/internal-babel-plugin-resolve-imports'], - ]; + const babelPlugins: babel.PluginItem[] = [['@babel/plugin-syntax-typescript', { dts: true }]]; if (removeCss) { babelPlugins.push(['babel-plugin-transform-remove-imports', { test: /\.css$/ }]); } + // this plugin needs to come after remove-imports so that css imports are already removed + babelPlugins.push(['@mui/internal-babel-plugin-resolve-imports']); + await Promise.all( dtsFiles.map(async (dtsFile) => { const result = await babel.transformFileAsync(dtsFile, { @@ -125,13 +125,13 @@ async function main(argv: HandlerArgv) { await copyDeclarations(esmDir, cjsDir); - await postProcessImports(esmDir, argv.removeCss); - await postProcessImports(cjsDir, argv.removeCss); - if (EXPERIMENTAL_MJS) { await renameDtsFilesToDmts(esmDir); } + await postProcessImports(esmDir, argv.removeCss, '.d.mts'); + await postProcessImports(cjsDir, argv.removeCss, '.d.ts'); + const tsbuildinfo = await glob('**/*.tsbuildinfo', { absolute: true, cwd: buildFolder }); await Promise.all(tsbuildinfo.map(async (file) => fs.rm(file))); } From bbb68db712bb17ce5676ce6317d1d557319d15ea Mon Sep 17 00:00:00 2001 From: Jan Potoms <2109932+Janpot@users.noreply.github.com> Date: Tue, 15 Jul 2025 19:41:34 +0200 Subject: [PATCH 06/37] Update scripts/copyFiles.mjs Signed-off-by: Jan Potoms <2109932+Janpot@users.noreply.github.com> --- scripts/copyFiles.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/copyFiles.mjs b/scripts/copyFiles.mjs index 702603aee551e7..65b32f0965f200 100644 --- a/scripts/copyFiles.mjs +++ b/scripts/copyFiles.mjs @@ -16,7 +16,7 @@ async function addLicense(packageData) { */ `; await Promise.all( - ['./index.js', './esm/index.js', './esm/index.mjs', './modern/index.js', './node/index.js'].map( + ['./index.js', './esm/index.js', './esm/index.mjs', './cjs/index.js'].map( async (file) => { try { await prepend(path.resolve(buildPath, file), license); From 6278f26e7a75097a0977c57a2c5a2f8d56957b2c Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 15 Jul 2025 19:44:11 +0200 Subject: [PATCH 07/37] Do it in CI only --- .github/workflows/ci.yml | 2 ++ packages/mui-types/package.json | 6 +++--- packages/mui-utils/package.json | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d3268d38b70091..38cdab6f924384 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,8 @@ jobs: cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies - run: pnpm install:codesandbox - run: pnpm build:codesandbox + env: + MUI_EXPERIMENTAL_MJS: 1 - run: pnpm pkg-pr-new-release # Tests dev-only scripts across all supported dev environments diff --git a/packages/mui-types/package.json b/packages/mui-types/package.json index 9b9e6c78938fc3..163cc52a23be4a 100644 --- a/packages/mui-types/package.json +++ b/packages/mui-types/package.json @@ -23,9 +23,9 @@ "scripts": { "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files", "build:node": "node ../../scripts/build.mjs node", - "build:stable": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/build.mjs stable", - "build:types": "MUI_EXPERIMENTAL_MJS=true tsx ../../scripts/buildTypes.mts", - "build:copy-files": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/copyFiles.mjs", + "build:stable": "node ../../scripts/build.mjs stable", + "build:types": "tsx ../../scripts/buildTypes.mts", + "build:copy-files": "node ../../scripts/copyFiles.mjs", "prebuild": "rimraf build", "release": "pnpm build && pnpm publish", "test": "echo 'No runtime test. Type tests are run with the `typescript` script.'", diff --git a/packages/mui-utils/package.json b/packages/mui-utils/package.json index 8f21cac0651efb..79332b2ef926bd 100644 --- a/packages/mui-utils/package.json +++ b/packages/mui-utils/package.json @@ -27,9 +27,9 @@ "scripts": { "build": "pnpm build:node && pnpm build:stable && pnpm build:types && pnpm build:copy-files", "build:node": "node ../../scripts/build.mjs node", - "build:stable": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/build.mjs stable --verbose", - "build:copy-files": "MUI_EXPERIMENTAL_MJS=true node ../../scripts/copyFiles.mjs", - "build:types": "MUI_EXPERIMENTAL_MJS=true tsx ../../scripts/buildTypes.mts", + "build:stable": "node ../../scripts/build.mjs stable --verbose", + "build:copy-files": "node ../../scripts/copyFiles.mjs", + "build:types": "tsx ../../scripts/buildTypes.mts", "prebuild": "rimraf build tsconfig.build.tsbuildinfo", "release": "pnpm build && pnpm publish", "test": "cd ../../ && cross-env NODE_ENV=test mocha 'packages/mui-utils/**/*.test.?(c|m)[jt]s?(x)'", From d3bf4745b7cd3b099287a936c3fe2fb6ec78dd1b Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 15 Jul 2025 19:45:05 +0200 Subject: [PATCH 08/37] Update config.yml --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index c94912b62ecd52..673eb0eabe21c7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -395,6 +395,8 @@ jobs: - run: name: Build packages for fixtures command: pnpm release:build + environment: + MUI_EXPERIMENTAL_MJS: 1 - run: name: Analyze exported typescript command: pnpm test:attw From b13db8dbfc2e47532851b1c65bca90e0c2059ef8 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 11:03:33 +0200 Subject: [PATCH 09/37] fix build --- package.json | 9 ++++++++ .../docs-utils/tsconfig.build.json | 1 + .../test-utils/tsconfig.build.json | 1 + packages/mui-docs/src/Ad/ad.styles.ts | 6 ++--- packages/mui-docs/tsconfig.build.json | 9 ++------ .../mui-icons-material/tsconfig.build.json | 2 +- packages/mui-joy/tsconfig.build.json | 5 ++--- packages/mui-lab/tsconfig.build.json | 7 ++---- .../mui-material-nextjs/tsconfig.build.json | 2 +- .../tsconfig.build.json | 2 +- .../src/themeCssVarsAugmentation/index.d.ts | 1 + ... => OverridableComponentAugmentation.d.ts} | 0 packages/mui-material/tsconfig.build.json | 5 ++--- packages/mui-material/tsconfig.json | 5 ++++- .../mui-stylis-plugin-rtl/tsconfig.build.json | 2 +- packages/mui-system/tsconfig.build.json | 5 ++--- packages/mui-types/tsconfig.build.json | 1 - packages/mui-utils/tsconfig.build.json | 5 ++--- pnpm-lock.yaml | 3 +++ scripts/buildTypes.mts | 9 ++++---- scripts/copyFiles.mjs | 22 +++++++++---------- 21 files changed, 53 insertions(+), 49 deletions(-) rename packages/mui-material/src/types/{OverridableComponentAugmentation.ts => OverridableComponentAugmentation.d.ts} (100%) diff --git a/package.json b/package.json index 708473d97c1bc0..d75a4c85beeacf 100644 --- a/package.json +++ b/package.json @@ -210,6 +210,15 @@ "engines": { "pnpm": "10.13.1" }, + "pnpm": { + "packageExtensions": { + "@pigment-css/react": { + "dependencies": { + "@mui/types": "workspace:^" + } + } + } + }, "resolutions": { "@babel/core": "^7.28.0", "@babel/plugin-transform-runtime": "^7.28.0", diff --git a/packages-internal/docs-utils/tsconfig.build.json b/packages-internal/docs-utils/tsconfig.build.json index 8992c3d55a7be0..8b4a1cfa3e8c77 100644 --- a/packages-internal/docs-utils/tsconfig.build.json +++ b/packages-internal/docs-utils/tsconfig.build.json @@ -1,6 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "paths": {}, "rootDir": "./src", "outDir": "./build", "declaration": true, diff --git a/packages-internal/test-utils/tsconfig.build.json b/packages-internal/test-utils/tsconfig.build.json index 62bf0d03440fe5..2b531ff5aa6a63 100644 --- a/packages-internal/test-utils/tsconfig.build.json +++ b/packages-internal/test-utils/tsconfig.build.json @@ -1,6 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "paths": {}, "rootDir": "./src", "outDir": "./build", "declaration": true, diff --git a/packages/mui-docs/src/Ad/ad.styles.ts b/packages/mui-docs/src/Ad/ad.styles.ts index 822fc29b18885b..8f5c7ae2b50204 100644 --- a/packages/mui-docs/src/Ad/ad.styles.ts +++ b/packages/mui-docs/src/Ad/ad.styles.ts @@ -1,6 +1,6 @@ -import { alpha, Theme } from '@mui/material/styles'; +import { alpha, CSSProperties, Theme } from '@mui/material/styles'; -export const adBodyImageStyles = (theme: Theme) => ({ +export const adBodyImageStyles = (theme: Theme): Record => ({ root: { display: 'block', overflow: 'hidden', @@ -45,7 +45,7 @@ export const adBodyImageStyles = (theme: Theme) => ({ }, }); -export const adBodyInlineStyles = (theme: Theme) => { +export const adBodyInlineStyles = (theme: Theme): Record => { const baseline = adBodyImageStyles(theme); return { diff --git a/packages/mui-docs/tsconfig.build.json b/packages/mui-docs/tsconfig.build.json index 8141d5e5a49e9f..d4a8f67bd78a91 100644 --- a/packages/mui-docs/tsconfig.build.json +++ b/packages/mui-docs/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -12,10 +12,5 @@ "tsBuildInfoFile": "build/tsconfig.build.tsbuildinfo" }, "include": ["./types.d.ts", "src/**/*.ts*", "src/**/*.json"], - "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"], - "references": [ - { "path": "../mui-material/tsconfig.build.json" }, - { "path": "../mui-system/tsconfig.build.json" }, - { "path": "../mui-icons-material/tsconfig.build.json" } - ] + "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"] } diff --git a/packages/mui-icons-material/tsconfig.build.json b/packages/mui-icons-material/tsconfig.build.json index ccc01046d18965..916ea70606566c 100644 --- a/packages/mui-icons-material/tsconfig.build.json +++ b/packages/mui-icons-material/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": false, "noEmit": false, "emitDeclarationOnly": false, diff --git a/packages/mui-joy/tsconfig.build.json b/packages/mui-joy/tsconfig.build.json index 3da937fe8e1890..81f8518e0be753 100644 --- a/packages/mui-joy/tsconfig.build.json +++ b/packages/mui-joy/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -11,6 +11,5 @@ "rootDir": "./src" }, "include": ["./src/**/*.ts*"], - "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"], - "references": [{ "path": "../mui-system/tsconfig.build.json" }] + "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"] } diff --git a/packages/mui-lab/tsconfig.build.json b/packages/mui-lab/tsconfig.build.json index d4a77daf9abbab..dcc908471b8fde 100644 --- a/packages/mui-lab/tsconfig.build.json +++ b/packages/mui-lab/tsconfig.build.json @@ -3,6 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { + "paths": {}, "noEmit": false, "declaration": true, "rootDir": "./src", @@ -10,9 +11,5 @@ "emitDeclarationOnly": true }, "include": ["src/**/*.ts*"], - "exclude": ["src/**/*.d.ts", "src/**/*.test.*", "./**/*.spec.*"], - "references": [ - { "path": "../mui-material/tsconfig.build.json" }, - { "path": "../mui-system/tsconfig.build.json" } - ] + "exclude": ["src/**/*.d.ts", "src/**/*.test.*", "./**/*.spec.*"] } diff --git a/packages/mui-material-nextjs/tsconfig.build.json b/packages/mui-material-nextjs/tsconfig.build.json index 26c0289c7f7928..9bfd7261aed2a3 100644 --- a/packages/mui-material-nextjs/tsconfig.build.json +++ b/packages/mui-material-nextjs/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, diff --git a/packages/mui-material-pigment-css/tsconfig.build.json b/packages/mui-material-pigment-css/tsconfig.build.json index e0c0a5a8aa68af..1b866619436535 100644 --- a/packages/mui-material-pigment-css/tsconfig.build.json +++ b/packages/mui-material-pigment-css/tsconfig.build.json @@ -1,7 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, diff --git a/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts b/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts index 5db7c7a9419006..b033fe7a331851 100644 --- a/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts +++ b/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts @@ -3,6 +3,7 @@ export {}; * Enhance the theme types to include new properties from the CssVarsProvider. * The theme is typed with CSS variables in `styled`, `sx`, `useTheme`, etc. */ +// @ts-ignore declare module '@mui/material/styles' { interface CssThemeVariables { enabled: true; diff --git a/packages/mui-material/src/types/OverridableComponentAugmentation.ts b/packages/mui-material/src/types/OverridableComponentAugmentation.d.ts similarity index 100% rename from packages/mui-material/src/types/OverridableComponentAugmentation.ts rename to packages/mui-material/src/types/OverridableComponentAugmentation.d.ts diff --git a/packages/mui-material/tsconfig.build.json b/packages/mui-material/tsconfig.build.json index 3da937fe8e1890..28da4b352b447f 100644 --- a/packages/mui-material/tsconfig.build.json +++ b/packages/mui-material/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -11,6 +11,5 @@ "rootDir": "./src" }, "include": ["./src/**/*.ts*"], - "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"], - "references": [{ "path": "../mui-system/tsconfig.build.json" }] + "exclude": ["src/**/*.d.ts", "src/**/*.spec.ts*", "src/**/*.test.ts*"] } diff --git a/packages/mui-material/tsconfig.json b/packages/mui-material/tsconfig.json index 2ff522dab0f21f..1d3f58a14ff685 100644 --- a/packages/mui-material/tsconfig.json +++ b/packages/mui-material/tsconfig.json @@ -4,5 +4,8 @@ "compilerOptions": { "moduleResolution": "Bundler" }, - "exclude": ["test/typescript/moduleAugmentation", "src/types/OverridableComponentAugmentation.ts"] + "exclude": [ + "test/typescript/moduleAugmentation", + "src/types/OverridableComponentAugmentation.d.ts" + ] } diff --git a/packages/mui-stylis-plugin-rtl/tsconfig.build.json b/packages/mui-stylis-plugin-rtl/tsconfig.build.json index 26edb3c2b1ea91..cd9a7f5a02a452 100644 --- a/packages/mui-stylis-plugin-rtl/tsconfig.build.json +++ b/packages/mui-stylis-plugin-rtl/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, diff --git a/packages/mui-system/tsconfig.build.json b/packages/mui-system/tsconfig.build.json index 3ffd11e1d6ac57..95e1058b14bb09 100644 --- a/packages/mui-system/tsconfig.build.json +++ b/packages/mui-system/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -11,6 +11,5 @@ "rootDir": "./src" }, "include": ["src/**/*.ts*"], - "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"], - "references": [{ "path": "../mui-utils/tsconfig.build.json" }] + "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"] } diff --git a/packages/mui-types/tsconfig.build.json b/packages/mui-types/tsconfig.build.json index 53b2bcb1e5a7b6..68cb6cbe889255 100644 --- a/packages/mui-types/tsconfig.build.json +++ b/packages/mui-types/tsconfig.build.json @@ -3,7 +3,6 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, diff --git a/packages/mui-utils/tsconfig.build.json b/packages/mui-utils/tsconfig.build.json index 915404fe310d87..cd9a7f5a02a452 100644 --- a/packages/mui-utils/tsconfig.build.json +++ b/packages/mui-utils/tsconfig.build.json @@ -3,7 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "composite": true, + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -12,6 +12,5 @@ "types": ["react", "node"] }, "include": ["src/**/*.ts"], - "exclude": ["src/**/*.test.ts*", "src/**/*.spec.ts*"], - "references": [{ "path": "../mui-types/tsconfig.build.json" }] + "exclude": ["src/**/*.test.ts*", "src/**/*.spec.ts*"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8c91de7dd12a6..f695e7ec1ed330 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,8 @@ overrides: '@pigment-css/nextjs-plugin': 0.0.30 '@pigment-css/vite-plugin': 0.0.30 +packageExtensionsChecksum: sha256-CsjQdOHLIxEVb2BzL7tdDHAPrQUBuqB2SurhhtMu4L0= + patchedDependencies: styled-components: hash: 383c648dfdb5dfc82fbe414d54027d8c982a01c6320370f0ecfdb387e753c09f @@ -18255,6 +18257,7 @@ snapshots: '@emotion/serialize': 1.3.3 '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) '@mui/system': 6.4.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) + '@mui/types': link:packages/mui-types/build '@mui/utils': 6.4.8(@types/react@19.1.8)(react@19.1.0) '@wyw-in-js/processor-utils': 0.5.5 '@wyw-in-js/shared': 0.5.5 diff --git a/scripts/buildTypes.mts b/scripts/buildTypes.mts index 99182208022caf..fee5ede419ce1c 100644 --- a/scripts/buildTypes.mts +++ b/scripts/buildTypes.mts @@ -82,10 +82,11 @@ async function renameDtsFilesToDmts(sourceDirectory: string) { console.log('Renaming .d.ts files to .d.mts files in', sourceDirectory); await Promise.all( dtsFiles.map(async (dtsFile) => { - const mtsFile = dtsFile.replace(/\.d\.ts$/, '.d.mts'); - // @TODO - Fix this. Temporarily maintaining both .d.ts and .d.mts files to avoid issues with parent packages that - // expect .d.ts files to be present. - await fs.copyFile(dtsFile, mtsFile); + // Rename the file from .d.ts to .d.mts + const basename = path.basename(dtsFile, '.d.ts'); + const dirname = path.dirname(dtsFile); + const newFilePath = path.join(dirname, `${basename}.d.mts`); + await fs.rename(dtsFile, newFilePath); }), ); } diff --git a/scripts/copyFiles.mjs b/scripts/copyFiles.mjs index 65b32f0965f200..263befc3950cae 100644 --- a/scripts/copyFiles.mjs +++ b/scripts/copyFiles.mjs @@ -16,19 +16,17 @@ async function addLicense(packageData) { */ `; await Promise.all( - ['./index.js', './esm/index.js', './esm/index.mjs', './cjs/index.js'].map( - async (file) => { - try { - await prepend(path.resolve(buildPath, file), license); - } catch (err) { - if (err.code === 'ENOENT') { - console.log(`Skipped license for ${file}`); - } else { - throw err; - } + ['./index.js', './esm/index.js', './esm/index.mjs', './cjs/index.js'].map(async (file) => { + try { + await prepend(path.resolve(buildPath, file), license); + } catch (err) { + if (err.code === 'ENOENT') { + console.log(`Skipped license for ${file}`); + } else { + throw err; } - }, - ), + } + }), ); } From a1eaa8ff0ac5cb507082a14c52ff8a1b05724343 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 11:34:22 +0200 Subject: [PATCH 10/37] fixes --- packages/mui-material/tsconfig.build.json | 6 +++++- packages/mui-material/tsconfig.json | 5 +---- tsconfig.json | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mui-material/tsconfig.build.json b/packages/mui-material/tsconfig.build.json index 28da4b352b447f..53796ed715a6b5 100644 --- a/packages/mui-material/tsconfig.build.json +++ b/packages/mui-material/tsconfig.build.json @@ -11,5 +11,9 @@ "rootDir": "./src" }, "include": ["./src/**/*.ts*"], - "exclude": ["src/**/*.d.ts", "src/**/*.spec.ts*", "src/**/*.test.ts*"] + "exclude": [ + "src/types/OverridableComponentAugmentation.*", + "src/**/*.spec.ts*", + "src/**/*.test.ts*" + ] } diff --git a/packages/mui-material/tsconfig.json b/packages/mui-material/tsconfig.json index 1d3f58a14ff685..ce475b718bd04a 100644 --- a/packages/mui-material/tsconfig.json +++ b/packages/mui-material/tsconfig.json @@ -4,8 +4,5 @@ "compilerOptions": { "moduleResolution": "Bundler" }, - "exclude": [ - "test/typescript/moduleAugmentation", - "src/types/OverridableComponentAugmentation.d.ts" - ] + "exclude": ["test/typescript/moduleAugmentation", "src/types/OverridableComponentAugmentation.*"] } diff --git a/tsconfig.json b/tsconfig.json index 7552e3d446288f..393ab0975933f2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -29,6 +29,7 @@ "@mui/system/package.json": ["./packages/mui-system/package.json"], "@mui/system/*": ["./packages/mui-system/src/*"], "@mui/types": ["./packages/mui-types/src"], + "@mui/types/*": ["./packages/mui-types/src/*"], "@mui/private-theming": ["./packages/mui-private-theming/src"], "@mui/private-theming/*": ["./packages/mui-private-theming/src/*"], "@mui/utils": ["./packages/mui-utils/src"], From 687b783e9a5ba5d86a3cbda9d0458983680e9735 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 11:42:46 +0200 Subject: [PATCH 11/37] Update config.yml --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 673eb0eabe21c7..4ff681644cc435 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -597,7 +597,7 @@ jobs: - run: name: build @mui packages - command: pnpm lerna run --ignore @mui/icons-material --concurrency 6 --scope "@mui/*" build + command: pnpm release:build --scope "@mui/*" --ignore @mui/icons-material - aws-cli/setup: aws_access_key_id: $AWS_ACCESS_KEY_ID_ARTIFACTS aws_secret_access_key: $AWS_SECRET_ACCESS_KEY_ARTIFACTS From 9833048c5cd60cc5f84d5723ed0ece40e20b5d1f Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 11:43:35 +0200 Subject: [PATCH 12/37] Update pnpm-lock.yaml --- pnpm-lock.yaml | 343 +++++++++++++++++++++++++------------------------ 1 file changed, 176 insertions(+), 167 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f695e7ec1ed330..9cbb6dfc4e142d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -368,7 +368,7 @@ importers: version: link:../../packages/mui-utils/build next: specifier: latest - version: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -378,7 +378,7 @@ importers: devDependencies: '@pigment-css/nextjs-plugin': specifier: 0.0.30 - version: 0.0.30(@types/react@19.1.8)(next@15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.2.3) + version: 0.0.30(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.2.3) '@types/node': specifier: ^20.19.7 version: 20.19.7 @@ -423,7 +423,7 @@ importers: version: link:../../packages/mui-utils/build next: specifier: latest - version: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -433,7 +433,7 @@ importers: devDependencies: '@pigment-css/nextjs-plugin': specifier: 0.0.30 - version: 0.0.30(@types/react@19.1.8)(next@15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.2.3) + version: 0.0.30(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.2.3) '@types/node': specifier: ^20.19.7 version: 20.19.7 @@ -647,7 +647,7 @@ importers: version: 4.1.11 '@toolpad/core': specifier: ^0.16.0 - version: 0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) + version: 0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -731,7 +731,7 @@ importers: version: 5.3.6(@mui/material@packages+mui-material+build)(@types/react@19.1.8)(react@19.1.0) next: specifier: ^15.3.5 - version: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) notistack: specifier: 3.0.2 version: 3.0.2(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -1330,7 +1330,7 @@ importers: version: 19.1.8 next: specifier: ^15.3.5 - version: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -1504,7 +1504,7 @@ importers: version: 4.17.21 next: specifier: ^15.3.5 - version: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -1702,7 +1702,7 @@ importers: version: 19.1.8 next: specifier: ^15.3.5 - version: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -3254,6 +3254,9 @@ packages: '@emnapi/runtime@1.4.3': resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.4.4': + resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} + '@emnapi/wasi-threads@1.0.2': resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} @@ -3780,8 +3783,8 @@ packages: cpu: [arm64] os: [darwin] - '@img/sharp-darwin-arm64@0.34.1': - resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + '@img/sharp-darwin-arm64@0.34.3': + resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] @@ -3792,8 +3795,8 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-darwin-x64@0.34.1': - resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + '@img/sharp-darwin-x64@0.34.3': + resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] @@ -3803,8 +3806,8 @@ packages: cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.1.0': - resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + '@img/sharp-libvips-darwin-arm64@1.2.0': + resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} cpu: [arm64] os: [darwin] @@ -3813,8 +3816,8 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.1.0': - resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + '@img/sharp-libvips-darwin-x64@1.2.0': + resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} cpu: [x64] os: [darwin] @@ -3823,8 +3826,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm64@1.1.0': - resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + '@img/sharp-libvips-linux-arm64@1.2.0': + resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} cpu: [arm64] os: [linux] @@ -3833,13 +3836,13 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-arm@1.1.0': - resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + '@img/sharp-libvips-linux-arm@1.2.0': + resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.1.0': - resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + '@img/sharp-libvips-linux-ppc64@1.2.0': + resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} cpu: [ppc64] os: [linux] @@ -3848,8 +3851,8 @@ packages: cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-s390x@1.1.0': - resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + '@img/sharp-libvips-linux-s390x@1.2.0': + resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} cpu: [s390x] os: [linux] @@ -3858,8 +3861,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-libvips-linux-x64@1.1.0': - resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + '@img/sharp-libvips-linux-x64@1.2.0': + resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} cpu: [x64] os: [linux] @@ -3868,8 +3871,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': - resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + '@img/sharp-libvips-linuxmusl-arm64@1.2.0': + resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} cpu: [arm64] os: [linux] @@ -3878,8 +3881,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.1.0': - resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + '@img/sharp-libvips-linuxmusl-x64@1.2.0': + resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} cpu: [x64] os: [linux] @@ -3889,8 +3892,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linux-arm64@0.34.1': - resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + '@img/sharp-linux-arm64@0.34.3': + resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] @@ -3901,20 +3904,26 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-linux-arm@0.34.1': - resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + '@img/sharp-linux-arm@0.34.3': + resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + '@img/sharp-linux-ppc64@0.34.3': + resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-s390x@0.34.1': - resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + '@img/sharp-linux-s390x@0.34.3': + resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] @@ -3925,8 +3934,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linux-x64@0.34.1': - resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + '@img/sharp-linux-x64@0.34.3': + resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] @@ -3937,8 +3946,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.1': - resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + '@img/sharp-linuxmusl-arm64@0.34.3': + resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] @@ -3949,8 +3958,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.1': - resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + '@img/sharp-linuxmusl-x64@0.34.3': + resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] @@ -3960,19 +3969,25 @@ packages: engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-wasm32@0.34.1': - resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + '@img/sharp-wasm32@0.34.3': + resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] + '@img/sharp-win32-arm64@0.34.3': + resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-ia32@0.34.1': - resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + '@img/sharp-win32-ia32@0.34.3': + resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] @@ -3983,8 +3998,8 @@ packages: cpu: [x64] os: [win32] - '@img/sharp-win32-x64@0.34.1': - resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + '@img/sharp-win32-x64@0.34.3': + resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -4671,56 +4686,56 @@ packages: engines: {node: '>=18.14.0'} hasBin: true - '@next/env@15.3.5': - resolution: {integrity: sha512-7g06v8BUVtN2njAX/r8gheoVffhiKFVt4nx74Tt6G4Hqw9HCLYQVx/GkH2qHvPtAHZaUNZ0VXAa0pQP6v1wk7g==} + '@next/env@15.4.1': + resolution: {integrity: sha512-DXQwFGAE2VH+f2TJsKepRXpODPU+scf5fDbKOME8MMyeyswe4XwgRdiiIYmBfkXU+2ssliLYznajTrOQdnLR5A==} '@next/eslint-plugin-next@15.3.5': resolution: {integrity: sha512-BZwWPGfp9po/rAnJcwUBaM+yT/+yTWIkWdyDwc74G9jcfTrNrmsHe+hXHljV066YNdVs8cxROxX5IgMQGX190w==} - '@next/swc-darwin-arm64@15.3.5': - resolution: {integrity: sha512-lM/8tilIsqBq+2nq9kbTW19vfwFve0NR7MxfkuSUbRSgXlMQoJYg+31+++XwKVSXk4uT23G2eF/7BRIKdn8t8w==} + '@next/swc-darwin-arm64@15.4.1': + resolution: {integrity: sha512-L+81yMsiHq82VRXS2RVq6OgDwjvA4kDksGU8hfiDHEXP+ncKIUhUsadAVB+MRIp2FErs/5hpXR0u2eluWPAhig==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.3.5': - resolution: {integrity: sha512-WhwegPQJ5IfoUNZUVsI9TRAlKpjGVK0tpJTL6KeiC4cux9774NYE9Wu/iCfIkL/5J8rPAkqZpG7n+EfiAfidXA==} + '@next/swc-darwin-x64@15.4.1': + resolution: {integrity: sha512-jfz1RXu6SzL14lFl05/MNkcN35lTLMJWPbqt7Xaj35+ZWAX342aePIJrN6xBdGeKl6jPXJm0Yqo3Xvh3Gpo3Uw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.3.5': - resolution: {integrity: sha512-LVD6uMOZ7XePg3KWYdGuzuvVboxujGjbcuP2jsPAN3MnLdLoZUXKRc6ixxfs03RH7qBdEHCZjyLP/jBdCJVRJQ==} + '@next/swc-linux-arm64-gnu@15.4.1': + resolution: {integrity: sha512-k0tOFn3dsnkaGfs6iQz8Ms6f1CyQe4GacXF979sL8PNQxjYS1swx9VsOyUQYaPoGV8nAZ7OX8cYaeiXGq9ahPQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.3.5': - resolution: {integrity: sha512-k8aVScYZ++BnS2P69ClK7v4nOu702jcF9AIHKu6llhHEtBSmM2zkPGl9yoqbSU/657IIIb0QHpdxEr0iW9z53A==} + '@next/swc-linux-arm64-musl@15.4.1': + resolution: {integrity: sha512-4ogGQ/3qDzbbK3IwV88ltihHFbQVq6Qr+uEapzXHXBH1KsVBZOB50sn6BWHPcFjwSoMX2Tj9eH/fZvQnSIgc3g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.3.5': - resolution: {integrity: sha512-2xYU0DI9DGN/bAHzVwADid22ba5d/xrbrQlr2U+/Q5WkFUzeL0TDR963BdrtLS/4bMmKZGptLeg6282H/S2i8A==} + '@next/swc-linux-x64-gnu@15.4.1': + resolution: {integrity: sha512-Jj0Rfw3wIgp+eahMz/tOGwlcYYEFjlBPKU7NqoOkTX0LY45i5W0WcDpgiDWSLrN8KFQq/LW7fZq46gxGCiOYlQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.3.5': - resolution: {integrity: sha512-TRYIqAGf1KCbuAB0gjhdn5Ytd8fV+wJSM2Nh2is/xEqR8PZHxfQuaiNhoF50XfY90sNpaRMaGhF6E+qjV1b9Tg==} + '@next/swc-linux-x64-musl@15.4.1': + resolution: {integrity: sha512-9WlEZfnw1vFqkWsTMzZDgNL7AUI1aiBHi0S2m8jvycPyCq/fbZjtE/nDkhJRYbSjXbtRHYLDBlmP95kpjEmJbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.3.5': - resolution: {integrity: sha512-h04/7iMEUSMY6fDGCvdanKqlO1qYvzNxntZlCzfE8i5P0uqzVQWQquU1TIhlz0VqGQGXLrFDuTJVONpqGqjGKQ==} + '@next/swc-win32-arm64-msvc@15.4.1': + resolution: {integrity: sha512-WodRbZ9g6CQLRZsG3gtrA9w7Qfa9BwDzhFVdlI6sV0OCPq9JrOrJSp9/ioLsezbV8w9RCJ8v55uzJuJ5RgWLZg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.3.5': - resolution: {integrity: sha512-5fhH6fccXxnX2KhllnGhkYMndhOiLOLEiVGYjP2nizqeGWkN10sA9taATlXwake2E2XMvYZjjz0Uj7T0y+z1yw==} + '@next/swc-win32-x64-msvc@15.4.1': + resolution: {integrity: sha512-y+wTBxelk2xiNofmDOVU7O5WxTHcvOoL3srOM0kxTzKDjQ57kPU0tpnPJ/BWrRnsOwXEv0+3QSbGR7hY4n9LkQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -5683,9 +5698,6 @@ packages: '@socket.io/component-emitter@3.1.0': resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -7120,10 +7132,6 @@ packages: builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} @@ -11232,13 +11240,13 @@ packages: resolution: {integrity: sha512-Nc3loyVASW59W+8fLDZT1lncpG7llffyZ2o0UQLx/Fr20i7P8oP+lE7+TEcFvXj9IUWU6LjB9P3BH+iFGyp+mg==} engines: {node: ^14.16.0 || >=16.0.0} - next@15.3.5: - resolution: {integrity: sha512-RkazLBMMDJSJ4XZQ81kolSpwiCt907l0xcgcpF4xC2Vml6QVcPNXW0NQRwQ80FFtSn7UM52XN0anaw8TEJXaiw==} + next@15.4.1: + resolution: {integrity: sha512-eNKB1q8C7o9zXF8+jgJs2CzSLIU3T6bQtX6DcTnCq1sIR1CJ0GlSyRs1BubQi3/JgCnr9Vr+rS5mOMI38FFyQw==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 + '@playwright/test': ^1.51.1 babel-plugin-react-compiler: '*' react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -12999,8 +13007,8 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.34.1: - resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + sharp@0.34.3: + resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@1.2.0: @@ -13245,10 +13253,6 @@ packages: resolution: {integrity: sha512-wZswqzbgGGsXYIrBYhOE0yP+nQ6XRk7xDcYwuQAGTYXdyAUmvgVFE0YU1g5pvQT0m7GBaQfYcSnlHbapuK0H0A==} engines: {node: '>=8.0'} - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - streamx@2.22.0: resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} @@ -16279,6 +16283,11 @@ snapshots: dependencies: tslib: 2.8.1 + '@emnapi/runtime@1.4.4': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.0.2': dependencies: tslib: 2.8.1 @@ -16723,9 +16732,9 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-arm64@0.34.1': + '@img/sharp-darwin-arm64@0.34.3': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-arm64': 1.2.0 optional: true '@img/sharp-darwin-x64@0.33.5': @@ -16733,60 +16742,60 @@ snapshots: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.34.1': + '@img/sharp-darwin-x64@0.34.3': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.2.0 optional: true '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-arm64@1.1.0': + '@img/sharp-libvips-darwin-arm64@1.2.0': optional: true '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.1.0': + '@img/sharp-libvips-darwin-x64@1.2.0': optional: true '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.1.0': + '@img/sharp-libvips-linux-arm64@1.2.0': optional: true '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-arm@1.1.0': + '@img/sharp-libvips-linux-arm@1.2.0': optional: true - '@img/sharp-libvips-linux-ppc64@1.1.0': + '@img/sharp-libvips-linux-ppc64@1.2.0': optional: true '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-s390x@1.1.0': + '@img/sharp-libvips-linux-s390x@1.2.0': optional: true '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.1.0': + '@img/sharp-libvips-linux-x64@1.2.0': optional: true '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + '@img/sharp-libvips-linuxmusl-arm64@1.2.0': optional: true '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.1.0': + '@img/sharp-libvips-linuxmusl-x64@1.2.0': optional: true '@img/sharp-linux-arm64@0.33.5': @@ -16794,9 +16803,9 @@ snapshots: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm64@0.34.1': + '@img/sharp-linux-arm64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.2.0 optional: true '@img/sharp-linux-arm@0.33.5': @@ -16804,9 +16813,14 @@ snapshots: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-arm@0.34.1': + '@img/sharp-linux-arm@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.2.0 + optional: true + + '@img/sharp-linux-ppc64@0.34.3': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.0 optional: true '@img/sharp-linux-s390x@0.33.5': @@ -16814,9 +16828,9 @@ snapshots: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-s390x@0.34.1': + '@img/sharp-linux-s390x@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.2.0 optional: true '@img/sharp-linux-x64@0.33.5': @@ -16824,9 +16838,9 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linux-x64@0.34.1': + '@img/sharp-linux-x64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.2.0 optional: true '@img/sharp-linuxmusl-arm64@0.33.5': @@ -16834,9 +16848,9 @@ snapshots: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.1': + '@img/sharp-linuxmusl-arm64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 optional: true '@img/sharp-linuxmusl-x64@0.33.5': @@ -16844,9 +16858,9 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.1': + '@img/sharp-linuxmusl-x64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 optional: true '@img/sharp-wasm32@0.33.5': @@ -16854,21 +16868,24 @@ snapshots: '@emnapi/runtime': 1.4.3 optional: true - '@img/sharp-wasm32@0.34.1': + '@img/sharp-wasm32@0.34.3': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.4 + optional: true + + '@img/sharp-win32-arm64@0.34.3': optional: true '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-ia32@0.34.1': + '@img/sharp-win32-ia32@0.34.3': optional: true '@img/sharp-win32-x64@0.33.5': optional: true - '@img/sharp-win32-x64@0.34.1': + '@img/sharp-win32-x64@0.34.3': optional: true '@inquirer/confirm@5.1.9(@types/node@20.19.7)': @@ -17811,34 +17828,34 @@ snapshots: - rollup - supports-color - '@next/env@15.3.5': {} + '@next/env@15.4.1': {} '@next/eslint-plugin-next@15.3.5': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@15.3.5': + '@next/swc-darwin-arm64@15.4.1': optional: true - '@next/swc-darwin-x64@15.3.5': + '@next/swc-darwin-x64@15.4.1': optional: true - '@next/swc-linux-arm64-gnu@15.3.5': + '@next/swc-linux-arm64-gnu@15.4.1': optional: true - '@next/swc-linux-arm64-musl@15.3.5': + '@next/swc-linux-arm64-musl@15.4.1': optional: true - '@next/swc-linux-x64-gnu@15.3.5': + '@next/swc-linux-x64-gnu@15.4.1': optional: true - '@next/swc-linux-x64-musl@15.3.5': + '@next/swc-linux-x64-musl@15.4.1': optional: true - '@next/swc-win32-arm64-msvc@15.3.5': + '@next/swc-win32-arm64-msvc@15.4.1': optional: true - '@next/swc-win32-x64-msvc@15.3.5': + '@next/swc-win32-x64-msvc@15.4.1': optional: true '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': @@ -18233,10 +18250,10 @@ snapshots: '@opentelemetry/api@1.8.0': optional: true - '@pigment-css/nextjs-plugin@0.0.30(@types/react@19.1.8)(next@15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.2.3)': + '@pigment-css/nextjs-plugin@0.0.30(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.2.3)': dependencies: '@pigment-css/unplugin': 0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.2.3) - next: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@types/react' - react @@ -19228,8 +19245,6 @@ snapshots: '@socket.io/component-emitter@3.1.0': {} - '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -19331,7 +19346,7 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 - '@toolpad/core@0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': + '@toolpad/core@0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.27.6 '@emotion/cache': 11.14.0 @@ -19350,7 +19365,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - next: 15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-router: 7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@emotion/styled' @@ -20940,10 +20955,6 @@ snapshots: builtin-status-codes@3.0.0: {} - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - byte-size@8.1.1: {} bytes@3.0.0: {} @@ -26019,29 +26030,27 @@ snapshots: p-wait-for: 5.0.2 qs: 6.13.0 - next@15.3.5(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@next/env': 15.3.5 - '@swc/counter': 0.1.3 + '@next/env': 15.4.1 '@swc/helpers': 0.5.15 - busboy: 1.6.0 caniuse-lite: 1.0.30001727 postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) styled-jsx: 5.1.6(@babel/core@7.28.0)(babel-plugin-macros@3.1.0)(react@19.1.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.3.5 - '@next/swc-darwin-x64': 15.3.5 - '@next/swc-linux-arm64-gnu': 15.3.5 - '@next/swc-linux-arm64-musl': 15.3.5 - '@next/swc-linux-x64-gnu': 15.3.5 - '@next/swc-linux-x64-musl': 15.3.5 - '@next/swc-win32-arm64-msvc': 15.3.5 - '@next/swc-win32-x64-msvc': 15.3.5 + '@next/swc-darwin-arm64': 15.4.1 + '@next/swc-darwin-x64': 15.4.1 + '@next/swc-linux-arm64-gnu': 15.4.1 + '@next/swc-linux-arm64-musl': 15.4.1 + '@next/swc-linux-x64-gnu': 15.4.1 + '@next/swc-linux-x64-musl': 15.4.1 + '@next/swc-win32-arm64-msvc': 15.4.1 + '@next/swc-win32-x64-msvc': 15.4.1 '@opentelemetry/api': 1.8.0 '@playwright/test': 1.53.1 - sharp: 0.34.1 + sharp: 0.34.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -28145,32 +28154,34 @@ snapshots: '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 - sharp@0.34.1: + sharp@0.34.3: dependencies: color: 4.2.3 detect-libc: 2.0.4 semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.1 - '@img/sharp-darwin-x64': 0.34.1 - '@img/sharp-libvips-darwin-arm64': 1.1.0 - '@img/sharp-libvips-darwin-x64': 1.1.0 - '@img/sharp-libvips-linux-arm': 1.1.0 - '@img/sharp-libvips-linux-arm64': 1.1.0 - '@img/sharp-libvips-linux-ppc64': 1.1.0 - '@img/sharp-libvips-linux-s390x': 1.1.0 - '@img/sharp-libvips-linux-x64': 1.1.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 - '@img/sharp-libvips-linuxmusl-x64': 1.1.0 - '@img/sharp-linux-arm': 0.34.1 - '@img/sharp-linux-arm64': 0.34.1 - '@img/sharp-linux-s390x': 0.34.1 - '@img/sharp-linux-x64': 0.34.1 - '@img/sharp-linuxmusl-arm64': 0.34.1 - '@img/sharp-linuxmusl-x64': 0.34.1 - '@img/sharp-wasm32': 0.34.1 - '@img/sharp-win32-ia32': 0.34.1 - '@img/sharp-win32-x64': 0.34.1 + '@img/sharp-darwin-arm64': 0.34.3 + '@img/sharp-darwin-x64': 0.34.3 + '@img/sharp-libvips-darwin-arm64': 1.2.0 + '@img/sharp-libvips-darwin-x64': 1.2.0 + '@img/sharp-libvips-linux-arm': 1.2.0 + '@img/sharp-libvips-linux-arm64': 1.2.0 + '@img/sharp-libvips-linux-ppc64': 1.2.0 + '@img/sharp-libvips-linux-s390x': 1.2.0 + '@img/sharp-libvips-linux-x64': 1.2.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 + '@img/sharp-linux-arm': 0.34.3 + '@img/sharp-linux-arm64': 0.34.3 + '@img/sharp-linux-ppc64': 0.34.3 + '@img/sharp-linux-s390x': 0.34.3 + '@img/sharp-linux-x64': 0.34.3 + '@img/sharp-linuxmusl-arm64': 0.34.3 + '@img/sharp-linuxmusl-x64': 0.34.3 + '@img/sharp-wasm32': 0.34.3 + '@img/sharp-win32-arm64': 0.34.3 + '@img/sharp-win32-ia32': 0.34.3 + '@img/sharp-win32-x64': 0.34.3 optional: true shebang-command@1.2.0: @@ -28455,8 +28466,6 @@ snapshots: transitivePeerDependencies: - supports-color - streamsearch@1.1.0: {} - streamx@2.22.0: dependencies: fast-fifo: 1.3.2 From dadb8798dd231872bc70e4ef2dec08e47e8dacd3 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 11:43:56 +0200 Subject: [PATCH 13/37] Update pnpm-lock.yaml --- pnpm-lock.yaml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9cbb6dfc4e142d..30f6495968b886 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3251,9 +3251,6 @@ packages: '@emnapi/core@1.4.3': resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@emnapi/runtime@1.4.4': resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} @@ -16279,14 +16276,9 @@ snapshots: '@emnapi/wasi-threads': 1.0.2 tslib: 2.8.1 - '@emnapi/runtime@1.4.3': - dependencies: - tslib: 2.8.1 - '@emnapi/runtime@1.4.4': dependencies: tslib: 2.8.1 - optional: true '@emnapi/wasi-threads@1.0.2': dependencies: @@ -16865,7 +16857,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.4 optional: true '@img/sharp-wasm32@0.34.3': @@ -17731,14 +17723,14 @@ snapshots: '@napi-rs/wasm-runtime@0.2.11': dependencies: '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.4 '@tybys/wasm-util': 0.9.0 optional: true '@napi-rs/wasm-runtime@0.2.4': dependencies: '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.4 '@tybys/wasm-util': 0.9.0 '@netlify/binary-info@1.0.0': {} From 81bcffd546101c5c9b1d28ec12cf4c953f9cb702 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 11:51:52 +0200 Subject: [PATCH 14/37] not needed --- package.json | 9 --------- pnpm-lock.yaml | 3 --- 2 files changed, 12 deletions(-) diff --git a/package.json b/package.json index 764796a81d9a9f..b56e0859f4a229 100644 --- a/package.json +++ b/package.json @@ -209,15 +209,6 @@ "engines": { "pnpm": "10.13.1" }, - "pnpm": { - "packageExtensions": { - "@pigment-css/react": { - "dependencies": { - "@mui/types": "workspace:^" - } - } - } - }, "resolutions": { "@babel/core": "^7.28.0", "@babel/plugin-transform-runtime": "^7.28.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c0ade261cfd5a..fd4c0149752c31 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,6 @@ overrides: '@pigment-css/nextjs-plugin': 0.0.30 '@pigment-css/vite-plugin': 0.0.30 -packageExtensionsChecksum: sha256-CsjQdOHLIxEVb2BzL7tdDHAPrQUBuqB2SurhhtMu4L0= - patchedDependencies: styled-components: hash: 383c648dfdb5dfc82fbe414d54027d8c982a01c6320370f0ecfdb387e753c09f @@ -18164,7 +18162,6 @@ snapshots: '@emotion/serialize': 1.3.3 '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) '@mui/system': 6.4.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) - '@mui/types': link:packages/mui-types/build '@mui/utils': 6.4.8(@types/react@19.1.8)(react@19.1.0) '@wyw-in-js/processor-utils': 0.5.5 '@wyw-in-js/shared': 0.5.5 From 6c9ef5cf25507da09afcae32a288a9ee263eab5d Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 11:58:19 +0200 Subject: [PATCH 15/37] Revert "not needed" This reverts commit 81bcffd546101c5c9b1d28ec12cf4c953f9cb702. --- package.json | 9 +++++++++ pnpm-lock.yaml | 3 +++ 2 files changed, 12 insertions(+) diff --git a/package.json b/package.json index b56e0859f4a229..764796a81d9a9f 100644 --- a/package.json +++ b/package.json @@ -209,6 +209,15 @@ "engines": { "pnpm": "10.13.1" }, + "pnpm": { + "packageExtensions": { + "@pigment-css/react": { + "dependencies": { + "@mui/types": "workspace:^" + } + } + } + }, "resolutions": { "@babel/core": "^7.28.0", "@babel/plugin-transform-runtime": "^7.28.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fd4c0149752c31..0c0ade261cfd5a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,8 @@ overrides: '@pigment-css/nextjs-plugin': 0.0.30 '@pigment-css/vite-plugin': 0.0.30 +packageExtensionsChecksum: sha256-CsjQdOHLIxEVb2BzL7tdDHAPrQUBuqB2SurhhtMu4L0= + patchedDependencies: styled-components: hash: 383c648dfdb5dfc82fbe414d54027d8c982a01c6320370f0ecfdb387e753c09f @@ -18162,6 +18164,7 @@ snapshots: '@emotion/serialize': 1.3.3 '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) '@mui/system': 6.4.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) + '@mui/types': link:packages/mui-types/build '@mui/utils': 6.4.8(@types/react@19.1.8)(react@19.1.0) '@wyw-in-js/processor-utils': 0.5.5 '@wyw-in-js/shared': 0.5.5 From bdd2339280f99ea156ebf97877ac4aa38f33509e Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 12:30:33 +0200 Subject: [PATCH 16/37] fixes --- package.json | 4 +-- .../src/styles/variantColorInheritance.tsx | 2 +- pnpm-lock.yaml | 32 +++++++++++-------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 764796a81d9a9f..1829ebceaf8dde 100644 --- a/package.json +++ b/package.json @@ -212,8 +212,8 @@ "pnpm": { "packageExtensions": { "@pigment-css/react": { - "dependencies": { - "@mui/types": "workspace:^" + "peerDependencies": { + "@mui/types": "7" } } } diff --git a/packages/mui-joy/src/styles/variantColorInheritance.tsx b/packages/mui-joy/src/styles/variantColorInheritance.tsx index f15ea4c85ec58c..2b80cf177d1e5c 100644 --- a/packages/mui-joy/src/styles/variantColorInheritance.tsx +++ b/packages/mui-joy/src/styles/variantColorInheritance.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { ColorPaletteProp, VariantProp } from '@mui/joy/styles/types'; +import { ColorPaletteProp, VariantProp } from './types'; const VariantColorContext = React.createContext(undefined); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c0ade261cfd5a..100a957dc433f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,7 +21,7 @@ overrides: '@pigment-css/nextjs-plugin': 0.0.30 '@pigment-css/vite-plugin': 0.0.30 -packageExtensionsChecksum: sha256-CsjQdOHLIxEVb2BzL7tdDHAPrQUBuqB2SurhhtMu4L0= +packageExtensionsChecksum: sha256-xTBNl6mGQcaqoVbDkrOKAeqxB9KeBPa4Z33lG3mhLOo= patchedDependencies: styled-components: @@ -125,7 +125,7 @@ importers: version: 22.0.0 '@pigment-css/react': specifier: 0.0.30 - version: 0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) + version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) '@playwright/test': specifier: 1.54.1 version: 1.54.1 @@ -375,7 +375,7 @@ importers: devDependencies: '@pigment-css/nextjs-plugin': specifier: 0.0.30 - version: 0.0.30(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) + version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) '@types/node': specifier: ^20.19.7 version: 20.19.7 @@ -430,7 +430,7 @@ importers: devDependencies: '@pigment-css/nextjs-plugin': specifier: 0.0.30 - version: 0.0.30(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) + version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) '@types/node': specifier: ^20.19.7 version: 20.19.7 @@ -500,7 +500,7 @@ importers: version: 7.27.1(@babel/core@7.28.0) '@pigment-css/vite-plugin': specifier: 0.0.30 - version: 0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(vite@5.4.19(@types/node@20.19.7)(lightningcss@1.30.1)(terser@5.39.0)) + version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(vite@5.4.19(@types/node@20.19.7)(lightningcss@1.30.1)(terser@5.39.0)) '@testing-library/react': specifier: ^16.3.0 version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -1715,7 +1715,7 @@ importers: version: link:../mui-system/build '@pigment-css/react': specifier: 0.0.30 - version: 0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) + version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) publishDirectory: build packages/mui-private-theming: @@ -5005,6 +5005,7 @@ packages: resolution: {integrity: sha512-aNvpOgbv+M9+YV2wKk3CIyiiiF+8S6KJJKDKGzhFWOVWeQFZBgTOjBHhL/0SyAnCOVjDg2sSXOEElIdEQywXKQ==} engines: {node: '>=14.0.0'} peerDependencies: + '@mui/types': '7' react: ^17.0.0 || ^18.0.0 || ^19.0.0 '@pigment-css/unplugin@0.0.30': @@ -18140,18 +18141,19 @@ snapshots: '@opentelemetry/api@1.8.0': optional: true - '@pigment-css/nextjs-plugin@0.0.30(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3)': + '@pigment-css/nextjs-plugin@0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3)': dependencies: - '@pigment-css/unplugin': 0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) + '@pigment-css/unplugin': 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) next: 15.4.1(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: + - '@mui/types' - '@types/react' - react - supports-color - typescript - webpack-sources - '@pigment-css/react@0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)': + '@pigment-css/react@0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)': dependencies: '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 @@ -18164,7 +18166,7 @@ snapshots: '@emotion/serialize': 1.3.3 '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) '@mui/system': 6.4.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0) - '@mui/types': link:packages/mui-types/build + '@mui/types': 7.4.4(@types/react@19.1.8) '@mui/utils': 6.4.8(@types/react@19.1.8)(react@19.1.0) '@wyw-in-js/processor-utils': 0.5.5 '@wyw-in-js/shared': 0.5.5 @@ -18182,31 +18184,33 @@ snapshots: - supports-color - typescript - '@pigment-css/unplugin@0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3)': + '@pigment-css/unplugin@0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3)': dependencies: '@babel/core': 7.28.0 - '@pigment-css/react': 0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) + '@pigment-css/react': 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) '@wyw-in-js/shared': 0.5.5 '@wyw-in-js/transform': 0.5.5(typescript@5.8.3) babel-plugin-define-var: 0.1.0 unplugin: 1.15.0(webpack-sources@3.3.3) transitivePeerDependencies: + - '@mui/types' - '@types/react' - react - supports-color - typescript - webpack-sources - '@pigment-css/vite-plugin@0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(vite@5.4.19(@types/node@20.19.7)(lightningcss@1.30.1)(terser@5.39.0))': + '@pigment-css/vite-plugin@0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(vite@5.4.19(@types/node@20.19.7)(lightningcss@1.30.1)(terser@5.39.0))': dependencies: '@babel/core': 7.28.0 '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) - '@pigment-css/react': 0.0.30(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) + '@pigment-css/react': 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3) '@wyw-in-js/shared': 0.5.5 '@wyw-in-js/transform': 0.5.5(typescript@5.8.3) babel-plugin-define-var: 0.1.0 vite: 5.4.19(@types/node@20.19.7)(lightningcss@1.30.1)(terser@5.39.0) transitivePeerDependencies: + - '@mui/types' - '@types/react' - react - supports-color From 6946662f8ef22253f25c135d804cc49f5b75ba61 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 13:10:02 +0200 Subject: [PATCH 17/37] tweak --- packages/mui-material/tsconfig.json | 2 +- tsconfig.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/mui-material/tsconfig.json b/packages/mui-material/tsconfig.json index ce475b718bd04a..2c5ab6946d6903 100644 --- a/packages/mui-material/tsconfig.json +++ b/packages/mui-material/tsconfig.json @@ -4,5 +4,5 @@ "compilerOptions": { "moduleResolution": "Bundler" }, - "exclude": ["test/typescript/moduleAugmentation", "src/types/OverridableComponentAugmentation.*"] + "exclude": ["test/typescript/moduleAugmentation"] } diff --git a/tsconfig.json b/tsconfig.json index 393ab0975933f2..7552e3d446288f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -29,7 +29,6 @@ "@mui/system/package.json": ["./packages/mui-system/package.json"], "@mui/system/*": ["./packages/mui-system/src/*"], "@mui/types": ["./packages/mui-types/src"], - "@mui/types/*": ["./packages/mui-types/src/*"], "@mui/private-theming": ["./packages/mui-private-theming/src"], "@mui/private-theming/*": ["./packages/mui-private-theming/src/*"], "@mui/utils": ["./packages/mui-utils/src"], From bd7da36031c15f99318e95a3bfb9f62c79140d6b Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:12:23 +0200 Subject: [PATCH 18/37] Update tsconfig.build.json --- packages/mui-types/tsconfig.build.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mui-types/tsconfig.build.json b/packages/mui-types/tsconfig.build.json index 68cb6cbe889255..4c994d90b5413b 100644 --- a/packages/mui-types/tsconfig.build.json +++ b/packages/mui-types/tsconfig.build.json @@ -3,6 +3,7 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { + "paths": {}, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -10,5 +11,5 @@ "rootDir": "./src" }, "include": ["./src/**/*.ts*"], - "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"] + "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*", "src/OverridableComponentAugmentation.ts"] } From bda8c154bad69b186d5f2dab7e1d0d55b8f56695 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:26:26 +0200 Subject: [PATCH 19/37] better handling of these augmentation files --- .../{index.d.ts => index.ts} | 0 ...on.d.ts => OverridableComponentAugmentation.ts} | 0 packages/mui-material/tsconfig.build.json | 14 ++++++++------ packages/mui-types/tsconfig.build.json | 9 +++++++-- packages/mui-types/tsconfig.json | 3 +-- 5 files changed, 16 insertions(+), 10 deletions(-) rename packages/mui-material/src/themeCssVarsAugmentation/{index.d.ts => index.ts} (100%) rename packages/mui-material/src/types/{OverridableComponentAugmentation.d.ts => OverridableComponentAugmentation.ts} (100%) diff --git a/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts b/packages/mui-material/src/themeCssVarsAugmentation/index.ts similarity index 100% rename from packages/mui-material/src/themeCssVarsAugmentation/index.d.ts rename to packages/mui-material/src/themeCssVarsAugmentation/index.ts diff --git a/packages/mui-material/src/types/OverridableComponentAugmentation.d.ts b/packages/mui-material/src/types/OverridableComponentAugmentation.ts similarity index 100% rename from packages/mui-material/src/types/OverridableComponentAugmentation.d.ts rename to packages/mui-material/src/types/OverridableComponentAugmentation.ts diff --git a/packages/mui-material/tsconfig.build.json b/packages/mui-material/tsconfig.build.json index 53796ed715a6b5..323e3ef6173f57 100644 --- a/packages/mui-material/tsconfig.build.json +++ b/packages/mui-material/tsconfig.build.json @@ -3,7 +3,13 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "paths": {}, + "paths": { + // reset paths, but keep the one for @mui/material. Necessary to be able to build + // packages/mui-material/src/types/OverridableComponentAugmentation.ts + // packages/mui-material/src/themeCssVarsAugmentation/index.ts + // as the types to be overriden are otherwise not found + "@mui/material/*": ["./src/*"] + }, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -11,9 +17,5 @@ "rootDir": "./src" }, "include": ["./src/**/*.ts*"], - "exclude": [ - "src/types/OverridableComponentAugmentation.*", - "src/**/*.spec.ts*", - "src/**/*.test.ts*" - ] + "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"] } diff --git a/packages/mui-types/tsconfig.build.json b/packages/mui-types/tsconfig.build.json index 4c994d90b5413b..c7a60e77923fbd 100644 --- a/packages/mui-types/tsconfig.build.json +++ b/packages/mui-types/tsconfig.build.json @@ -3,7 +3,12 @@ // Actual .ts source files are transpiled via babel "extends": "./tsconfig.json", "compilerOptions": { - "paths": {}, + "paths": { + // reset paths, but keep the one for @mui/types. Necessary to be able to build + // packages/mui-types/src/OverridableComponentAugmentation.ts + // as the types to be overriden are otherwise not found + "@mui/types": ["./src"] + }, "declaration": true, "noEmit": false, "emitDeclarationOnly": true, @@ -11,5 +16,5 @@ "rootDir": "./src" }, "include": ["./src/**/*.ts*"], - "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*", "src/OverridableComponentAugmentation.ts"] + "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"] } diff --git a/packages/mui-types/tsconfig.json b/packages/mui-types/tsconfig.json index 88bd1eed68395f..ee756997748e1c 100644 --- a/packages/mui-types/tsconfig.json +++ b/packages/mui-types/tsconfig.json @@ -1,5 +1,4 @@ { "extends": "../../tsconfig.json", - "include": ["src/**/*", "test/**/*"], - "exclude": ["src/OverridableComponentAugmentation.ts"] + "include": ["src/**/*", "test/**/*"] } From af234daa08153e9d41bb2a8a09923195480d3dd2 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:43:33 +0200 Subject: [PATCH 20/37] Update index.ts --- packages/mui-material/src/themeCssVarsAugmentation/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mui-material/src/themeCssVarsAugmentation/index.ts b/packages/mui-material/src/themeCssVarsAugmentation/index.ts index b033fe7a331851..f5f2f884649f3b 100644 --- a/packages/mui-material/src/themeCssVarsAugmentation/index.ts +++ b/packages/mui-material/src/themeCssVarsAugmentation/index.ts @@ -3,7 +3,7 @@ export {}; * Enhance the theme types to include new properties from the CssVarsProvider. * The theme is typed with CSS variables in `styled`, `sx`, `useTheme`, etc. */ -// @ts-ignore + declare module '@mui/material/styles' { interface CssThemeVariables { enabled: true; From a707491f4481fae20462db0f177ea8d1fffadc73 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:46:20 +0200 Subject: [PATCH 21/37] bring back exlude --- packages/mui-material/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mui-material/tsconfig.json b/packages/mui-material/tsconfig.json index 2c5ab6946d6903..2ff522dab0f21f 100644 --- a/packages/mui-material/tsconfig.json +++ b/packages/mui-material/tsconfig.json @@ -4,5 +4,5 @@ "compilerOptions": { "moduleResolution": "Bundler" }, - "exclude": ["test/typescript/moduleAugmentation"] + "exclude": ["test/typescript/moduleAugmentation", "src/types/OverridableComponentAugmentation.ts"] } From ff4703e004616167eb2768ed90d38f80b79666ee Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 15:15:49 +0200 Subject: [PATCH 22/37] Update tsconfig.json --- packages/mui-types/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mui-types/tsconfig.json b/packages/mui-types/tsconfig.json index ee756997748e1c..88bd1eed68395f 100644 --- a/packages/mui-types/tsconfig.json +++ b/packages/mui-types/tsconfig.json @@ -1,4 +1,5 @@ { "extends": "../../tsconfig.json", - "include": ["src/**/*", "test/**/*"] + "include": ["src/**/*", "test/**/*"], + "exclude": ["src/OverridableComponentAugmentation.ts"] } From 0a1306a87a0e73f3ca58a40c982450855e172199 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 15:41:33 +0200 Subject: [PATCH 23/37] Update coreTypeScriptProjects.js --- scripts/coreTypeScriptProjects.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/coreTypeScriptProjects.js b/scripts/coreTypeScriptProjects.js index 5b3d0cd3f3825e..53842650d56f77 100644 --- a/scripts/coreTypeScriptProjects.js +++ b/scripts/coreTypeScriptProjects.js @@ -3,18 +3,22 @@ import path from 'path'; export default { material: { rootPath: path.join(process.cwd(), 'packages/mui-material'), + tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.d.ts', }, lab: { rootPath: path.join(process.cwd(), 'packages/mui-lab'), + tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.d.ts', }, joy: { rootPath: path.join(process.cwd(), 'packages/mui-joy'), + tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.ts', }, system: { rootPath: path.join(process.cwd(), 'packages/mui-system'), + tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.d.ts', }, docs: { From 2687d5816d45e0455a809043e5558daa1931965f Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:01:49 +0200 Subject: [PATCH 24/37] fix tsconfigPath setting --- packages-internal/docs-utils/src/createTypeScriptProject.ts | 2 +- packages/api-docs-builder/utils/createTypeScriptProject.ts | 2 +- scripts/coreTypeScriptProjects.js | 5 ----- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/packages-internal/docs-utils/src/createTypeScriptProject.ts b/packages-internal/docs-utils/src/createTypeScriptProject.ts index ba3b64e54df3c2..ef0473c943e39f 100644 --- a/packages-internal/docs-utils/src/createTypeScriptProject.ts +++ b/packages-internal/docs-utils/src/createTypeScriptProject.ts @@ -38,7 +38,7 @@ export const createTypeScriptProject = ( const { name, rootPath, - tsConfigPath: inputTsConfigPath = 'tsconfig.build.json', + tsConfigPath: inputTsConfigPath = 'tsconfig.json', entryPointPath: inputEntryPointPath, files, } = options; diff --git a/packages/api-docs-builder/utils/createTypeScriptProject.ts b/packages/api-docs-builder/utils/createTypeScriptProject.ts index 2965e6a9b063aa..87046eff9cdc40 100644 --- a/packages/api-docs-builder/utils/createTypeScriptProject.ts +++ b/packages/api-docs-builder/utils/createTypeScriptProject.ts @@ -43,7 +43,7 @@ export const createTypeScriptProject = ( const { name, rootPath, - tsConfigPath: inputTsConfigPath = 'tsconfig.build.json', + tsConfigPath: inputTsConfigPath = 'tsconfig.json', entryPointPath: inputEntryPointPath, files, } = options; diff --git a/scripts/coreTypeScriptProjects.js b/scripts/coreTypeScriptProjects.js index 53842650d56f77..a4aaf02329466f 100644 --- a/scripts/coreTypeScriptProjects.js +++ b/scripts/coreTypeScriptProjects.js @@ -3,26 +3,21 @@ import path from 'path'; export default { material: { rootPath: path.join(process.cwd(), 'packages/mui-material'), - tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.d.ts', }, lab: { rootPath: path.join(process.cwd(), 'packages/mui-lab'), - tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.d.ts', }, joy: { rootPath: path.join(process.cwd(), 'packages/mui-joy'), - tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.ts', }, system: { rootPath: path.join(process.cwd(), 'packages/mui-system'), - tsConfigPath: 'tsconfig.json', entryPointPath: 'src/index.d.ts', }, docs: { rootPath: path.join(process.cwd(), 'docs'), - tsConfigPath: 'tsconfig.json', }, }; From b59579aa044cb9e0f6d1a09e0ea7c9b26bc4bbd6 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:27:27 +0200 Subject: [PATCH 25/37] Get rid of this, it does nothing --- .circleci/config.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 010399cae47d65..cd87fa39e8ad6e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -239,14 +239,6 @@ jobs: pnpm --filter @mui/material typescript:module-augmentation pnpm --filter @mui/joy typescript:module-augmentation pnpm --filter @mui/system typescript:module-augmentation - - run: - name: Diff declaration files - command: | - git add -f packages/mui-material/build || echo '/material declarations do not exist' - git add -f packages/mui-lab/build || echo '/lab declarations do not exist' - git add -f packages/mui-utils/build || echo '/utils declarations do not exist' - pnpm -r build:stable && pnpm -r build:types - git --no-pager diff - run: name: Any defect declaration files? command: node scripts/testBuiltTypes.mjs From 244cf97d3d18b210bb0be4035642b8a01c663cef Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Thu, 24 Jul 2025 13:40:57 +0200 Subject: [PATCH 26/37] Update config.yml --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cd87fa39e8ad6e..da73d5ec046da5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,6 +43,7 @@ default-job: &default-job AWS_REGION_ARTIFACTS: eu-central-1 COREPACK_ENABLE_DOWNLOAD_PROMPT: '0' DANGER_DISABLE_TRANSPILATION: 'true' + MUI_EXPERIMENTAL_MJS: 1 working_directory: /tmp/material-ui docker: - image: cimg/node:20.17 @@ -387,8 +388,6 @@ jobs: - run: name: Build packages for fixtures command: pnpm release:build - environment: - MUI_EXPERIMENTAL_MJS: 1 - run: name: Analyze exported typescript command: pnpm test:attw From 52f26d1251901bdffb5ade4565c8504541492630 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Mon, 28 Jul 2025 17:00:00 +0200 Subject: [PATCH 27/37] Create exports path discovery function --- scripts/exportsUtils.mjs | 224 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 scripts/exportsUtils.mjs diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs new file mode 100644 index 00000000000000..037135a259d75e --- /dev/null +++ b/scripts/exportsUtils.mjs @@ -0,0 +1,224 @@ +import { readFile } from 'fs/promises'; +import { resolve } from 'path'; +import fg from 'fast-glob'; + +const processedObjects = new WeakMap(); + +/** + * Finds all exported paths from a package.json exports field and resolves them to actual file paths. + * + * @param {Object} options - Configuration options + * @param {string} [options.cwd=process.cwd()] - Working directory containing package.json + * @param {Object} [options.exports] - Exports object to analyze (if not provided, reads from package.json) + * @returns {Promise>>} Map of export paths to resolved files + */ +// eslint-disable-next-line import/prefer-default-export +export async function findAllExportedPaths({ cwd = process.cwd(), exports } = {}) { + let exportsObj = exports; + + // Read package.json if exports not provided + if (!exportsObj) { + try { + const packageJsonPath = resolve(cwd, 'package.json'); + const packageJsonContent = await readFile(packageJsonPath, 'utf8'); + const packageJson = JSON.parse(packageJsonContent); + exportsObj = packageJson.exports; + } catch (error) { + throw new Error(`Failed to read package.json from ${cwd}: ${error.message}`); + } + } + + if (!exportsObj) { + return new Map(); + } + + // Phase 1: Collect all patterns + const patterns = []; + collectPatterns(exportsObj, [], patterns); + + // Phase 2: Resolve patterns + const resolvePromises = patterns.map((pattern) => resolvePattern(pattern, cwd)); + const resolvedResults = await Promise.all(resolvePromises); + + // Flatten and organize results with deduplication + const results = new Map(); + const seen = new Set(); + + for (const resultList of resolvedResults) { + for (const result of resultList) { + // Create unique key: path + conditions (preserve order) + const uniqueKey = `${result.filePath}|${result.conditions.join(',')}`; + + if (!seen.has(uniqueKey)) { + seen.add(uniqueKey); + + if (!results.has(result.exportPath)) { + results.set(result.exportPath, []); + } + + results.get(result.exportPath).push({ + conditions: result.conditions, + path: result.filePath, + }); + } + } + } + + return results; +} + +/** + * Phase 1: Recursively collect all export patterns + */ +function collectPatterns(exportsObj, conditions, patterns, exportPath = '') { + if (exportsObj == null) { + return; + } + + if (typeof exportsObj === 'string') { + if (exportsObj.trim() === '') { + throw new Error(`Empty export path found for ${exportPath}`); + } + + // Validate path doesn't go outside package + if (exportsObj.includes('..')) { + throw new Error( + `Export path ${exportsObj} attempts to access files outside package directory`, + ); + } + + patterns.push({ + exportPattern: exportPath, + filePattern: exportsObj, + conditions: [...conditions], + }); + return; + } + + if (typeof exportsObj === 'object' && !Array.isArray(exportsObj)) { + // Prevent circular references using WeakMap + if (processedObjects.has(exportsObj)) { + throw new Error(`Circular reference detected in exports at ${exportPath}`); + } + + processedObjects.set(exportsObj, true); + + try { + for (const [key, value] of Object.entries(exportsObj)) { + if (key.startsWith('./') || key === '.') { + // This is an export path + collectPatterns(value, conditions, patterns, key); + } else { + // This is a condition + const newConditions = [...conditions, key]; + collectPatterns(value, newConditions, patterns, exportPath); + } + } + } finally { + processedObjects.delete(exportsObj); + } + } else if (Array.isArray(exportsObj)) { + throw new Error(`Arrays are not supported in exports field at ${exportPath}`); + } else { + throw new Error(`Invalid export value type: ${typeof exportsObj} at ${exportPath}`); + } +} + +/** + * Phase 2: Resolve a single pattern to actual file paths + */ +async function resolvePattern(pattern, cwd) { + const { exportPattern, filePattern, conditions } = pattern; + + if (!filePattern.includes('*')) { + // Non-wildcard pattern - return immediately + const absolutePath = resolve(cwd, filePattern); + return [ + { + exportPath: exportPattern, + filePath: absolutePath, + conditions, + }, + ]; + } + + // Wildcard pattern - use glob and regex + const globPattern = convertToGlob(filePattern); + const regex = createCaptureRegex(filePattern); + + const matchedFiles = await fg(globPattern, { + cwd, + absolute: false, + onlyFiles: true, + ignore: ['node_modules/**', '.git/**', '**/.DS_Store'], + }); + + return matchedFiles.map((matchedFile) => { + const match = regex.exec(matchedFile); + if (!match || match[1] === undefined) { + throw new Error(`File ${matchedFile} does not match pattern ${filePattern}`); + } + + const capturedValue = match[1]; + const exportPath = exportPattern.replace('*', capturedValue); + const absolutePath = resolve(cwd, matchedFile); + + return { + exportPath, + filePath: absolutePath, + conditions, + }; + }); +} + +/** + * Convert file pattern with * to glob pattern + */ +function convertToGlob(filePattern) { + const pattern = filePattern.startsWith('./') ? filePattern.slice(2) : filePattern; + + if (!pattern.includes('*')) { + return pattern; // No wildcard + } + + // Check for exactly one wildcard + if (pattern.indexOf('*') !== pattern.lastIndexOf('*')) { + throw new Error(`Export pattern can only contain one wildcard: ${filePattern}`); + } + + // Rule 1: * between two / slashes → convert to ** + if (pattern.includes('/*/')) { + return pattern.replace('/*/', '/**/'); + } + + // Rule 2: * between / and file extension → convert to **/*. + if (pattern.includes('/*.')) { + return pattern.replace('/*.', '/**/*.'); + } + + // Rule 3: * as final segment → convert to **/* + if (pattern.endsWith('/*')) { + return pattern.replace(/\/\*$/, '/**/*'); + } + + // If we reach here, it's an invalid wildcard usage + throw new Error( + `Invalid wildcard pattern: ${filePattern}. Wildcard must be entire path segment.`, + ); +} + +/** + * Create regex with capturing group for the * in file pattern + */ +function createCaptureRegex(filePattern) { + // Remove leading ./ if present + const pattern = filePattern.startsWith('./') ? filePattern.slice(2) : filePattern; + + // Escape regex special characters except * + const escaped = pattern.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&'); + + // Replace * with capturing group (.+) + const regexPattern = `^${escaped.replace('\\\\*', '(.+)')}$`; + + return new RegExp(regexPattern); +} From 9b3eed2c4ba76a8aa0bd5d5b741b232344960f8f Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Mon, 28 Jul 2025 17:33:37 +0200 Subject: [PATCH 28/37] WIP --- package.json | 1 + pnpm-lock.yaml | 200 +++++++++++++++++++++++++++++++-------- scripts/exportsUtils.mjs | 81 ++++++++++++++-- 3 files changed, 238 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index e2b23f3afb63f0..bfd873baede1b6 100644 --- a/package.json +++ b/package.json @@ -189,6 +189,7 @@ "prettier": "^3.6.2", "pretty-quick": "^4.2.2", "process": "^0.11.10", + "resolve-pkg-maps": "^1.0.0", "rimraf": "^6.0.1", "serve": "^14.2.4", "stylelint": "^16.22.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9479854d7c5f92..a5069e872be9ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,7 +95,7 @@ importers: version: 2.0.7-canary.7(@babel/core@7.28.0) '@mui/internal-bundle-size-checker': specifier: ^1.0.9-canary.5 - version: 1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(yaml@2.8.0) + version: 1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1)(yaml@2.8.0) '@mui/internal-code-infra': specifier: 0.0.2-canary.17 version: 0.0.2-canary.17(@typescript-eslint/parser@8.35.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-webpack@0.13.10)(eslint@9.31.0(jiti@2.4.2))(prettier@3.6.2)(typescript@5.8.3) @@ -288,6 +288,9 @@ importers: process: specifier: ^0.11.10 version: 0.11.10 + resolve-pkg-maps: + specifier: ^1.0.0 + version: 1.0.0 rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -302,7 +305,7 @@ importers: version: 38.0.0(stylelint@16.22.0(typescript@5.8.3)) terser-webpack-plugin: specifier: ^5.3.14 - version: 5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) + version: 5.3.14(webpack@5.100.2) tsconfig-paths-webpack-plugin: specifier: ^4.2.0 version: 4.2.0 @@ -323,7 +326,7 @@ importers: version: 0.7.1(vite@6.3.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) webpack: specifier: ^5.100.2 - version: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + version: 5.100.2(webpack-cli@6.0.1) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -365,7 +368,7 @@ importers: version: link:../../packages/mui-utils/build next: specifier: latest - version: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -375,7 +378,7 @@ importers: devDependencies: '@pigment-css/nextjs-plugin': specifier: 0.0.30 - version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) + version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) '@types/node': specifier: ^20.19.9 version: 20.19.9 @@ -420,7 +423,7 @@ importers: version: link:../../packages/mui-utils/build next: specifier: latest - version: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -430,7 +433,7 @@ importers: devDependencies: '@pigment-css/nextjs-plugin': specifier: 0.0.30 - version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) + version: 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) '@types/node': specifier: ^20.19.9 version: 20.19.9 @@ -2100,7 +2103,7 @@ importers: version: 11.3.0 html-webpack-plugin: specifier: ^5.6.3 - version: 5.6.3(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) + version: 5.6.3(webpack@5.100.2(webpack-cli@6.0.1)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -2136,7 +2139,7 @@ importers: version: 1.6.28 webpack: specifier: ^5.100.2 - version: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + version: 5.100.2(webpack-cli@6.0.1) yargs: specifier: ^17.7.2 version: 17.7.2 @@ -4678,6 +4681,9 @@ packages: '@next/env@15.4.3': resolution: {integrity: sha512-lKJ9KJAvaWzqurIsz6NWdQOLj96mdhuDMusLSYHw9HBe2On7BjUwU1WeRvq19x7NrEK3iOgMeSBV5qEhVH1cMw==} + '@next/env@15.4.4': + resolution: {integrity: sha512-SJKOOkULKENyHSYXE5+KiFU6itcIb6wSBjgM92meK0HVKpo94dNOLZVdLLuS7/BxImROkGoPsjR4EnuDucqiiA==} + '@next/eslint-plugin-next@15.4.2': resolution: {integrity: sha512-k0rjdWjXBY6tAOty1ckrMETE6Mx66d85NsgcAIdDp7/cXOsTJ93ywmbg3uUcpxX5TUHFEcCWI5mb8nPhwCe9jg==} @@ -4687,48 +4693,96 @@ packages: cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@15.4.4': + resolution: {integrity: sha512-eVG55dnGwfUuG+TtnUCt+mEJ+8TGgul6nHEvdb8HEH7dmJIFYOCApAaFrIrxwtEq2Cdf+0m5sG1Np8cNpw9EAw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@15.4.3': resolution: {integrity: sha512-ZPHRdd51xaxCMpT4viQ6h8TgYM1zPW1JIeksPY9wKlyvBVUQqrWqw8kEh1sa7/x0Ied+U7pYHkAkutrUwxbMcg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@15.4.4': + resolution: {integrity: sha512-zqG+/8apsu49CltEj4NAmCGZvHcZbOOOsNoTVeIXphYWIbE4l6A/vuQHyqll0flU2o3dmYCXsBW5FmbrGDgljQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-linux-arm64-gnu@15.4.3': resolution: {integrity: sha512-QUdqftCXC5vw5cowucqi9FeOPQ0vdMxoOHLY0J5jPdercwSJFjdi9CkEO4Xkq1eG4t1TB/BG81n6rmTsWoILnw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@15.4.4': + resolution: {integrity: sha512-LRD4l2lq4R+2QCHBQVC0wjxxkLlALGJCwigaJ5FSRSqnje+MRKHljQNZgDCaKUZQzO/TXxlmUdkZP/X3KNGZaw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@15.4.3': resolution: {integrity: sha512-HTL31NsmoafX+r5g91Yj3+q34nrn1xKmCWVuNA+fUWO4X0pr+n83uGzLyEOn0kUqbMZ40KmWx+4wsbMoUChkiQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@15.4.4': + resolution: {integrity: sha512-LsGUCTvuZ0690fFWerA4lnQvjkYg9gHo12A3wiPUR4kCxbx/d+SlwmonuTH2SWZI+RVGA9VL3N0S03WTYv6bYg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-x64-gnu@15.4.3': resolution: {integrity: sha512-HRQLWoeFkKXd2YCEEy9GhfwOijRm37x4w5r0MMVHxBKSA6ms3JoPUXvGhfHT6srnGRcEUWNrQ2vzkHir5ZWTSw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@15.4.4': + resolution: {integrity: sha512-aOy5yNRpLL3wNiJVkFYl6w22hdREERNjvegE6vvtix8LHRdsTHhWTpgvcYdCK7AIDCQW5ATmzr9XkPHvSoAnvg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@15.4.3': resolution: {integrity: sha512-NyXUx6G7AayaRGUsVPenuwhyAoyxjQuQPaK50AXoaAHPwRuif4WmSrXUs8/Y0HJIZh8E/YXRm9H7uuGfiacpuQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@15.4.4': + resolution: {integrity: sha512-FL7OAn4UkR8hKQRGBmlHiHinzOb07tsfARdGh7v0Z0jEJ3sz8/7L5bR23ble9E6DZMabSStqlATHlSxv1fuzAg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-win32-arm64-msvc@15.4.3': resolution: {integrity: sha512-2CUTmpzN/7cL1a7GjdLkDFlfH3nwMwW8a6JiaAUsL9MtKmNNO3fnXqnY0Zk30fii3hVEl4dr7ztrpYt0t2CcGQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@15.4.4': + resolution: {integrity: sha512-eEdNW/TXwjYhOulQh0pffTMMItWVwKCQpbziSBmgBNFZIIRn2GTXrhrewevs8wP8KXWYMx8Z+mNU0X+AfvtrRg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-x64-msvc@15.4.3': resolution: {integrity: sha512-i54YgUhvrUQxQD84SjAbkfWhYkOdm/DNRAVekCHLWxVg3aUbyC6NFQn9TwgCkX5QAS2pXCJo3kFboSFvrsd7dA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@15.4.4': + resolution: {integrity: sha512-SE5pYNbn/xZKMy1RE3pAs+4xD32OI4rY6mzJa4XUkp/ItZY+OMjIgilskmErt8ls/fVJ+Ihopi2QIeW6O3TrMw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -11191,6 +11245,27 @@ packages: sass: optional: true + next@15.4.4: + resolution: {integrity: sha512-kNcubvJjOL9yUOfwtZF3HfDhuhp+kVD+FM2A6Tyua1eI/xfmY4r/8ZS913MMz+oWKDlbps/dQOWdDricuIkXLw==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} @@ -17117,7 +17192,7 @@ snapshots: '@babel/core': 7.28.0 resolve: 1.22.10 - '@mui/internal-bundle-size-checker@1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(yaml@2.8.0)': + '@mui/internal-bundle-size-checker@1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1)(yaml@2.8.0)': dependencies: '@aws-sdk/client-s3': 3.787.0 '@aws-sdk/credential-providers': 3.787.0 @@ -17137,9 +17212,9 @@ snapshots: micromatch: 4.0.8 piscina: 4.9.2 rollup-plugin-visualizer: 6.0.1(rollup@4.40.0) - terser-webpack-plugin: 5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) + terser-webpack-plugin: 5.3.14(webpack@5.100.2) vite: 6.3.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) webpack-bundle-analyzer: 4.10.2 yargs: 17.7.2 transitivePeerDependencies: @@ -17754,6 +17829,8 @@ snapshots: '@next/env@15.4.3': {} + '@next/env@15.4.4': {} + '@next/eslint-plugin-next@15.4.2': dependencies: fast-glob: 3.3.1 @@ -17761,27 +17838,51 @@ snapshots: '@next/swc-darwin-arm64@15.4.3': optional: true + '@next/swc-darwin-arm64@15.4.4': + optional: true + '@next/swc-darwin-x64@15.4.3': optional: true + '@next/swc-darwin-x64@15.4.4': + optional: true + '@next/swc-linux-arm64-gnu@15.4.3': optional: true + '@next/swc-linux-arm64-gnu@15.4.4': + optional: true + '@next/swc-linux-arm64-musl@15.4.3': optional: true + '@next/swc-linux-arm64-musl@15.4.4': + optional: true + '@next/swc-linux-x64-gnu@15.4.3': optional: true + '@next/swc-linux-x64-gnu@15.4.4': + optional: true + '@next/swc-linux-x64-musl@15.4.3': optional: true + '@next/swc-linux-x64-musl@15.4.4': + optional: true + '@next/swc-win32-arm64-msvc@15.4.3': optional: true + '@next/swc-win32-arm64-msvc@15.4.4': + optional: true + '@next/swc-win32-x64-msvc@15.4.3': optional: true + '@next/swc-win32-x64-msvc@15.4.4': + optional: true + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -18118,10 +18219,10 @@ snapshots: '@opentelemetry/api@1.8.0': optional: true - '@pigment-css/nextjs-plugin@0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3)': + '@pigment-css/nextjs-plugin@0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(next@15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3)': dependencies: '@pigment-css/unplugin': 0.0.30(@mui/types@7.4.4(@types/react@19.1.8))(@types/react@19.1.8)(react@19.1.0)(typescript@5.8.3)(webpack-sources@3.3.3) - next: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@mui/types' - '@types/react' @@ -19966,19 +20067,19 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2)': + '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.100.2)': dependencies: - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2) - '@webpack-cli/info@3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2)': + '@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.100.2)': dependencies: - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2) - '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2)': + '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack@5.100.2)': dependencies: - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2) '@whatwg-node/disposablestack@0.0.6': @@ -20507,7 +20608,7 @@ snapshots: dependencies: '@babel/core': 7.28.0 find-up: 5.0.0 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) babel-merge@3.0.0(@babel/core@7.28.0): dependencies: @@ -21277,13 +21378,13 @@ snapshots: dependencies: schema-utils: 4.3.2 serialize-javascript: 6.0.2 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) compression-webpack-plugin@11.1.0(webpack@5.100.2): dependencies: schema-utils: 4.3.2 serialize-javascript: 6.0.2 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) compression@1.7.4: dependencies: @@ -21618,7 +21719,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) css-mediaquery@0.1.2: {} @@ -22475,7 +22576,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color @@ -23031,7 +23132,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) file-uri-to-path@1.0.0: {} @@ -23699,7 +23800,7 @@ snapshots: readable-stream: 1.0.34 through2: 0.4.2 - html-webpack-plugin@5.6.3(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))): + html-webpack-plugin@5.6.3(webpack@5.100.2(webpack-cli@6.0.1)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -23707,7 +23808,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) htmlparser2@6.1.0: dependencies: @@ -24624,7 +24725,7 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 3.1.2 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) webpack-merge: 4.2.2 karma@6.4.4: @@ -25915,6 +26016,31 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@next/env': 15.4.4 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001727 + postcss: 8.4.31 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.28.0)(babel-plugin-macros@3.1.0)(react@19.1.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.4.4 + '@next/swc-darwin-x64': 15.4.4 + '@next/swc-linux-arm64-gnu': 15.4.4 + '@next/swc-linux-arm64-musl': 15.4.4 + '@next/swc-linux-x64-gnu': 15.4.4 + '@next/swc-linux-x64-musl': 15.4.4 + '@next/swc-win32-arm64-msvc': 15.4.4 + '@next/swc-win32-x64-msvc': 15.4.4 + '@opentelemetry/api': 1.8.0 + '@playwright/test': 1.54.1 + sharp: 0.34.3 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + nice-try@1.0.5: {} no-case@3.0.4: @@ -28646,14 +28772,14 @@ snapshots: dependencies: rimraf: 2.6.3 - terser-webpack-plugin@5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))): + terser-webpack-plugin@5.3.14(webpack@5.100.2): dependencies: '@jridgewell/trace-mapping': 0.3.29 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) terser@5.39.0: dependencies: @@ -29373,9 +29499,9 @@ snapshots: webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2): dependencies: '@discoveryjs/json-ext': 0.6.3 - '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2) - '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2) - '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2) + '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1)(webpack@5.100.2) + '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1)(webpack@5.100.2) + '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1)(webpack@5.100.2) colorette: 2.0.20 commander: 12.1.0 cross-spawn: 7.0.6 @@ -29384,7 +29510,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) + webpack: 5.100.2(webpack-cli@6.0.1) webpack-merge: 6.0.1 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -29403,7 +29529,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)): + webpack@5.100.2(webpack-cli@6.0.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -29427,7 +29553,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) + terser-webpack-plugin: 5.3.14(webpack@5.100.2) watchpack: 2.4.1 webpack-sources: 3.3.3 optionalDependencies: diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index 037135a259d75e..e1b2a96c2de3eb 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -1,5 +1,6 @@ -import { readFile } from 'fs/promises'; -import { resolve } from 'path'; +import * as fs from 'fs/promises'; +import * as path from 'path'; +import { resolveExports } from 'resolve-pkg-maps'; import fg from 'fast-glob'; const processedObjects = new WeakMap(); @@ -12,15 +13,15 @@ const processedObjects = new WeakMap(); * @param {Object} [options.exports] - Exports object to analyze (if not provided, reads from package.json) * @returns {Promise>>} Map of export paths to resolved files */ -// eslint-disable-next-line import/prefer-default-export + export async function findAllExportedPaths({ cwd = process.cwd(), exports } = {}) { let exportsObj = exports; // Read package.json if exports not provided if (!exportsObj) { try { - const packageJsonPath = resolve(cwd, 'package.json'); - const packageJsonContent = await readFile(packageJsonPath, 'utf8'); + const packageJsonPath = path.resolve(cwd, 'package.json'); + const packageJsonContent = await fs.readFile(packageJsonPath, 'utf8'); const packageJson = JSON.parse(packageJsonContent); exportsObj = packageJson.exports; } catch (error) { @@ -132,7 +133,7 @@ async function resolvePattern(pattern, cwd) { if (!filePattern.includes('*')) { // Non-wildcard pattern - return immediately - const absolutePath = resolve(cwd, filePattern); + const absolutePath = path.resolve(cwd, filePattern); return [ { exportPath: exportPattern, @@ -161,7 +162,7 @@ async function resolvePattern(pattern, cwd) { const capturedValue = match[1]; const exportPath = exportPattern.replace('*', capturedValue); - const absolutePath = resolve(cwd, matchedFile); + const absolutePath = path.resolve(cwd, matchedFile); return { exportPath, @@ -222,3 +223,69 @@ function createCaptureRegex(filePattern) { return new RegExp(regexPattern); } + +/** + * Creates package.json shim files for all exported paths + * + * @param {string} cwd - Working directory to create shims in + * @param {Object} exports - Exports object from package.json + * @returns {Promise} + */ +export async function shimPackageExports(cwd, exports) { + const exportedPaths = await findAllExportedPaths({ cwd, exports }); + + const shimPromises = Array.from(exportedPaths.keys(), async (exportPath) => { + if (exportPath === '.') { + return; // Skip root export + } + + let esmPath = null; + let cjsPath = null; + + // Try to resolve with import conditions + try { + const esmResults = resolveExports(exports, exportPath, ['import']); + if (esmResults && esmResults.length > 0) { + esmPath = esmResults[0]; + } + } catch (error) { + // Ignore resolution errors + } + + // Try to resolve with require conditions + try { + const cjsResults = resolveExports(exports, exportPath, ['require']); + if (cjsResults && cjsResults.length > 0) { + cjsPath = cjsResults[0]; + } + } catch (error) { + // Ignore resolution errors + } + + // Skip if neither ESM nor CJS resolved + if (!esmPath && !cjsPath) { + return; + } + + // Create the shim directory + const shimPath = path.join(cwd, exportPath.replace(/^\.\//, '')); + const shimDir = path.dirname(shimPath); + + await fs.mkdir(shimDir, { recursive: true }); + + // Create package.json content + const packageJsonContent = {}; + if (cjsPath) { + packageJsonContent.main = cjsPath; + } + if (esmPath) { + packageJsonContent.module = esmPath; + } + + // Write the shim package.json + const shimPackageJsonPath = path.join(shimPath, 'package.json'); + await fs.writeFile(shimPackageJsonPath, JSON.stringify(packageJsonContent, null, 2)); + }); + + await Promise.all(shimPromises); +} From f90ba78be796f2ccbcbdcb4111637c422efc8af6 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Mon, 28 Jul 2025 19:15:51 +0200 Subject: [PATCH 29/37] WIP --- scripts/copyFilesUtils.mjs | 7 +++++ scripts/exportsUtils.mjs | 63 +++++++++++++++++++++++++++----------- 2 files changed, 52 insertions(+), 18 deletions(-) diff --git a/scripts/copyFilesUtils.mjs b/scripts/copyFilesUtils.mjs index 81216e8f6e7065..4f2c6bf0758c47 100644 --- a/scripts/copyFilesUtils.mjs +++ b/scripts/copyFilesUtils.mjs @@ -2,6 +2,7 @@ import path from 'path'; import fse from 'fs-extra'; import glob from 'fast-glob'; +import { shimPackageExports } from './exportsUtils.mjs'; // Use .mjs extension for ESM output files if the MUI_EXPERIMENTAL_MJS environment variable is set. const EXPERIMENTAL_MJS = !!process.env.MUI_EXPERIMENTAL_MJS; @@ -150,6 +151,12 @@ export async function createPackageFile(useEsmExports = false) { await fse.writeFile(targetPath, JSON.stringify(newPackageData, null, 2), 'utf8'); console.log(`Created package.json in ${targetPath}`); + // Create shim structure for package exports + if (newPackageData.exports) { + await shimPackageExports(buildPath, newPackageData.exports); + console.log(`Created shim structure in ${buildPath}`); + } + return newPackageData; } diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index e1b2a96c2de3eb..d668cc3bc15d19 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -157,6 +157,7 @@ async function resolvePattern(pattern, cwd) { return matchedFiles.map((matchedFile) => { const match = regex.exec(matchedFile); if (!match || match[1] === undefined) { + console.log(regex.source); throw new Error(`File ${matchedFile} does not match pattern ${filePattern}`); } @@ -175,21 +176,19 @@ async function resolvePattern(pattern, cwd) { /** * Convert file pattern with * to glob pattern */ -function convertToGlob(filePattern) { - const pattern = filePattern.startsWith('./') ? filePattern.slice(2) : filePattern; - +function convertToGlob(pattern) { if (!pattern.includes('*')) { return pattern; // No wildcard } // Check for exactly one wildcard if (pattern.indexOf('*') !== pattern.lastIndexOf('*')) { - throw new Error(`Export pattern can only contain one wildcard: ${filePattern}`); + throw new Error(`Export pattern can only contain one wildcard: ${pattern}`); } // Rule 1: * between two / slashes → convert to ** if (pattern.includes('/*/')) { - return pattern.replace('/*/', '/**/'); + return pattern.replace('/*/', '/**/*/'); } // Rule 2: * between / and file extension → convert to **/*. @@ -203,9 +202,7 @@ function convertToGlob(filePattern) { } // If we reach here, it's an invalid wildcard usage - throw new Error( - `Invalid wildcard pattern: ${filePattern}. Wildcard must be entire path segment.`, - ); + throw new Error(`Invalid wildcard pattern: ${pattern}. Wildcard must be entire path segment.`); } /** @@ -216,12 +213,28 @@ function createCaptureRegex(filePattern) { const pattern = filePattern.startsWith('./') ? filePattern.slice(2) : filePattern; // Escape regex special characters except * - const escaped = pattern.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&'); + const escaped = RegExp.escape(pattern); // Replace * with capturing group (.+) - const regexPattern = `^${escaped.replace('\\\\*', '(.+)')}$`; + const regexPattern = escaped.replace('\\*', '(.+)'); - return new RegExp(regexPattern); + // Always make leading ./ optional + return new RegExp(`^(?:\\.\/)?${regexPattern}$`); +} + +/** + * Converts a path relative to package root to a path relative to shim location + * @param {string} packageRoot - Absolute path to package root + * @param {string} shimLocation - Absolute path to shim directory + * @param {string} resolvedPath - Path relative to package root (e.g., "./index.js") + * @returns {string|null} Path relative to shim location with "./" prefix + */ +function makeRelativeToShim(packageRoot, shimLocation, resolvedPath) { + if (!resolvedPath) return null; + + const absoluteResolvedPath = path.resolve(packageRoot, resolvedPath); + const relativePath = path.relative(shimLocation, absoluteResolvedPath); + return './' + relativePath; } /** @@ -239,6 +252,16 @@ export async function shimPackageExports(cwd, exports) { return; // Skip root export } + // Skip package.json + if (exportPath === './package.json') { + return; + } + + // Skip non-JavaScript files + if (/\.[a-zA-Z0-9]+$/.test(exportPath) && !/\.(js|jsx|mjs|cjs|ts|tsx)$/.test(exportPath)) { + return; + } + let esmPath = null; let cjsPath = null; @@ -268,22 +291,26 @@ export async function shimPackageExports(cwd, exports) { } // Create the shim directory - const shimPath = path.join(cwd, exportPath.replace(/^\.\//, '')); - const shimDir = path.dirname(shimPath); + const shimDir = path.resolve(cwd, exportPath); await fs.mkdir(shimDir, { recursive: true }); + // Convert resolved paths to be relative to shim location + const absoluteCwd = path.resolve(cwd); + const relativeCjsPath = makeRelativeToShim(absoluteCwd, shimDir, cjsPath); + const relativeEsmPath = makeRelativeToShim(absoluteCwd, shimDir, esmPath); + // Create package.json content const packageJsonContent = {}; - if (cjsPath) { - packageJsonContent.main = cjsPath; + if (relativeCjsPath) { + packageJsonContent.main = relativeCjsPath; } - if (esmPath) { - packageJsonContent.module = esmPath; + if (relativeEsmPath) { + packageJsonContent.module = relativeEsmPath; } // Write the shim package.json - const shimPackageJsonPath = path.join(shimPath, 'package.json'); + const shimPackageJsonPath = path.join(shimDir, 'package.json'); await fs.writeFile(shimPackageJsonPath, JSON.stringify(packageJsonContent, null, 2)); }); From 69b8201634a47d8c518e440c91f59df5a3ae73aa Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Mon, 28 Jul 2025 19:17:09 +0200 Subject: [PATCH 30/37] Update exportsUtils.mjs --- scripts/exportsUtils.mjs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index d668cc3bc15d19..032c9341c896e6 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -225,16 +225,18 @@ function createCaptureRegex(filePattern) { /** * Converts a path relative to package root to a path relative to shim location * @param {string} packageRoot - Absolute path to package root - * @param {string} shimLocation - Absolute path to shim directory + * @param {string} shimLocation - Absolute path to shim directory * @param {string} resolvedPath - Path relative to package root (e.g., "./index.js") * @returns {string|null} Path relative to shim location with "./" prefix */ function makeRelativeToShim(packageRoot, shimLocation, resolvedPath) { - if (!resolvedPath) return null; - + if (!resolvedPath) { + return null; + } + const absoluteResolvedPath = path.resolve(packageRoot, resolvedPath); const relativePath = path.relative(shimLocation, absoluteResolvedPath); - return './' + relativePath; + return `./${relativePath}`; } /** From 6cf48a75c0443015ea02ba0a47529559958de603 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Mon, 28 Jul 2025 19:36:44 +0200 Subject: [PATCH 31/37] Fix negative patterns --- scripts/copyFilesUtils.mjs | 2 ++ scripts/exportsUtils.mjs | 50 ++++++++++++++++++++++++++------------ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/scripts/copyFilesUtils.mjs b/scripts/copyFilesUtils.mjs index 4f2c6bf0758c47..a01c9b6b0625cf 100644 --- a/scripts/copyFilesUtils.mjs +++ b/scripts/copyFilesUtils.mjs @@ -104,7 +104,9 @@ export async function createPackageFile(useEsmExports = false) { Object.assign(packageExports, { ...createExportFor('./*', { [srcCondition]: './src/*/index.ts' }), ...createExportFor('./esm', null), + ...createExportFor('./esm/*', null), ...createExportFor('./modern', null), + ...createExportFor('./modern/*', null), }); } diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index 032c9341c896e6..e1d931dc879ddf 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -37,22 +37,25 @@ export async function findAllExportedPaths({ cwd = process.cwd(), exports } = {} const patterns = []; collectPatterns(exportsObj, [], patterns); - // Phase 2: Resolve patterns - const resolvePromises = patterns.map((pattern) => resolvePattern(pattern, cwd)); - const resolvedResults = await Promise.all(resolvePromises); - - // Flatten and organize results with deduplication + // Phase 2: Resolve patterns sequentially const results = new Map(); - const seen = new Set(); - - for (const resultList of resolvedResults) { - for (const result of resultList) { - // Create unique key: path + conditions (preserve order) - const uniqueKey = `${result.filePath}|${result.conditions.join(',')}`; - if (!seen.has(uniqueKey)) { - seen.add(uniqueKey); + for (const pattern of patterns) { + if (pattern.filePattern === null) { + // This is a blocking pattern - remove matching entries + const blockingRegex = createBlockingRegex(pattern.exportPattern); + // Remove all matching entries from results + for (const exportPath of results.keys()) { + if (blockingRegex.test(exportPath)) { + results.delete(exportPath); + } + } + } else { + // Normal pattern - resolve and add to results + // eslint-disable-next-line no-await-in-loop + const resolvedResults = await resolvePattern(pattern, cwd); + for (const result of resolvedResults) { if (!results.has(result.exportPath)) { results.set(result.exportPath, []); } @@ -72,7 +75,13 @@ export async function findAllExportedPaths({ cwd = process.cwd(), exports } = {} * Phase 1: Recursively collect all export patterns */ function collectPatterns(exportsObj, conditions, patterns, exportPath = '') { - if (exportsObj == null) { + if (exportsObj === null) { + // Handle null exports (blocking patterns) + patterns.push({ + exportPattern: exportPath, + filePattern: null, // null indicates this blocks the path + conditions: [...conditions], + }); return; } @@ -125,6 +134,16 @@ function collectPatterns(exportsObj, conditions, patterns, exportPath = '') { } } +/** + * Create regex to match paths that should be blocked by null exports + */ +function createBlockingRegex(exportPattern) { + // Convert export pattern to regex that matches blocked paths + const escaped = RegExp.escape(exportPattern); + const regexPattern = escaped.replace('\\*', '.*'); + return new RegExp(`^${regexPattern}$`); +} + /** * Phase 2: Resolve a single pattern to actual file paths */ @@ -157,7 +176,6 @@ async function resolvePattern(pattern, cwd) { return matchedFiles.map((matchedFile) => { const match = regex.exec(matchedFile); if (!match || match[1] === undefined) { - console.log(regex.source); throw new Error(`File ${matchedFile} does not match pattern ${filePattern}`); } @@ -219,7 +237,7 @@ function createCaptureRegex(filePattern) { const regexPattern = escaped.replace('\\*', '(.+)'); // Always make leading ./ optional - return new RegExp(`^(?:\\.\/)?${regexPattern}$`); + return new RegExp(`^(?:\\./)?${regexPattern}$`); } /** From 26c1b1658f095e5adfda934c85b3e93d65d61876 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 29 Jul 2025 10:16:39 +0200 Subject: [PATCH 32/37] fixes --- scripts/copyFilesUtils.mjs | 2 -- scripts/exportsUtils.mjs | 53 +++++++++++++++++--------------------- 2 files changed, 24 insertions(+), 31 deletions(-) diff --git a/scripts/copyFilesUtils.mjs b/scripts/copyFilesUtils.mjs index a01c9b6b0625cf..1e3610b7a68eb9 100644 --- a/scripts/copyFilesUtils.mjs +++ b/scripts/copyFilesUtils.mjs @@ -105,8 +105,6 @@ export async function createPackageFile(useEsmExports = false) { ...createExportFor('./*', { [srcCondition]: './src/*/index.ts' }), ...createExportFor('./esm', null), ...createExportFor('./esm/*', null), - ...createExportFor('./modern', null), - ...createExportFor('./modern/*', null), }); } diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index e1d931dc879ddf..3f571660edde31 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -5,6 +5,14 @@ import fg from 'fast-glob'; const processedObjects = new WeakMap(); +function ensurePrefix(str, prefix) { + return str.startsWith(prefix) ? str : `${prefix}${str}`; +} + +function ensureNoPrefix(str, prefix) { + return str.startsWith(prefix) ? str.slice(prefix.length) : str; +} + /** * Finds all exported paths from a package.json exports field and resolves them to actual file paths. * @@ -115,7 +123,7 @@ function collectPatterns(exportsObj, conditions, patterns, exportPath = '') { try { for (const [key, value] of Object.entries(exportsObj)) { - if (key.startsWith('./') || key === '.') { + if (key.startsWith('.')) { // This is an export path collectPatterns(value, conditions, patterns, key); } else { @@ -164,7 +172,6 @@ async function resolvePattern(pattern, cwd) { // Wildcard pattern - use glob and regex const globPattern = convertToGlob(filePattern); - const regex = createCaptureRegex(filePattern); const matchedFiles = await fg(globPattern, { cwd, @@ -173,14 +180,13 @@ async function resolvePattern(pattern, cwd) { ignore: ['node_modules/**', '.git/**', '**/.DS_Store'], }); + const wildcardIndex = filePattern.indexOf('*'); + const leadingChars = wildcardIndex; + const trailingChars = filePattern.length - wildcardIndex - 1; return matchedFiles.map((matchedFile) => { - const match = regex.exec(matchedFile); - if (!match || match[1] === undefined) { - throw new Error(`File ${matchedFile} does not match pattern ${filePattern}`); - } - - const capturedValue = match[1]; - const exportPath = exportPattern.replace('*', capturedValue); + matchedFile = ensurePrefix(matchedFile, './'); + const expandedWildcard = matchedFile.slice(leadingChars, matchedFile.length - trailingChars); + const exportPath = exportPattern.replace('*', expandedWildcard); const absolutePath = path.resolve(cwd, matchedFile); return { @@ -223,23 +229,6 @@ function convertToGlob(pattern) { throw new Error(`Invalid wildcard pattern: ${pattern}. Wildcard must be entire path segment.`); } -/** - * Create regex with capturing group for the * in file pattern - */ -function createCaptureRegex(filePattern) { - // Remove leading ./ if present - const pattern = filePattern.startsWith('./') ? filePattern.slice(2) : filePattern; - - // Escape regex special characters except * - const escaped = RegExp.escape(pattern); - - // Replace * with capturing group (.+) - const regexPattern = escaped.replace('\\*', '(.+)'); - - // Always make leading ./ optional - return new RegExp(`^(?:\\./)?${regexPattern}$`); -} - /** * Converts a path relative to package root to a path relative to shim location * @param {string} packageRoot - Absolute path to package root @@ -254,7 +243,7 @@ function makeRelativeToShim(packageRoot, shimLocation, resolvedPath) { const absoluteResolvedPath = path.resolve(packageRoot, resolvedPath); const relativePath = path.relative(shimLocation, absoluteResolvedPath); - return `./${relativePath}`; + return relativePath.startsWith('.') ? relativePath : `./${relativePath}`; } /** @@ -287,7 +276,10 @@ export async function shimPackageExports(cwd, exports) { // Try to resolve with import conditions try { - const esmResults = resolveExports(exports, exportPath, ['import']); + const esmResults = resolveExports(exports, ensureNoPrefix(exportPath, './'), [ + 'import', + 'default', + ]); if (esmResults && esmResults.length > 0) { esmPath = esmResults[0]; } @@ -297,7 +289,10 @@ export async function shimPackageExports(cwd, exports) { // Try to resolve with require conditions try { - const cjsResults = resolveExports(exports, exportPath, ['require']); + const cjsResults = resolveExports(exports, ensureNoPrefix(exportPath, './'), [ + 'require', + 'default', + ]); if (cjsResults && cjsResults.length > 0) { cjsPath = cjsResults[0]; } From 337128a9ddd2332fc50a454637014b8c54be76ba Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 29 Jul 2025 10:20:30 +0200 Subject: [PATCH 33/37] Update exportsUtils.mjs --- scripts/exportsUtils.mjs | 93 ++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 51 deletions(-) diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index 3f571660edde31..25202d2276b7ee 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -230,20 +230,27 @@ function convertToGlob(pattern) { } /** - * Converts a path relative to package root to a path relative to shim location + * Resolves and converts export path to be relative to shim location + * @param {Object} exports - Exports object from package.json + * @param {string} exportPath - Export path to resolve (without leading "./") + * @param {string[]} conditions - Conditions to resolve with * @param {string} packageRoot - Absolute path to package root * @param {string} shimLocation - Absolute path to shim directory - * @param {string} resolvedPath - Path relative to package root (e.g., "./index.js") - * @returns {string|null} Path relative to shim location with "./" prefix + * @returns {string|null} Path relative to shim location with "./" prefix, or null if resolution fails */ -function makeRelativeToShim(packageRoot, shimLocation, resolvedPath) { - if (!resolvedPath) { - return null; +function resolveForShim(exports, exportPath, conditions, packageRoot, shimLocation) { + try { + const results = resolveExports(exports, exportPath, conditions); + if (results && results.length > 0) { + const resolvedPath = results[0]; + const absoluteResolvedPath = path.resolve(packageRoot, resolvedPath); + const relativePath = path.relative(shimLocation, absoluteResolvedPath); + return relativePath.startsWith('.') ? relativePath : `./${relativePath}`; + } + } catch (error) { + // Ignore resolution errors } - - const absoluteResolvedPath = path.resolve(packageRoot, resolvedPath); - const relativePath = path.relative(shimLocation, absoluteResolvedPath); - return relativePath.startsWith('.') ? relativePath : `./${relativePath}`; + return null; } /** @@ -271,57 +278,41 @@ export async function shimPackageExports(cwd, exports) { return; } - let esmPath = null; - let cjsPath = null; - - // Try to resolve with import conditions - try { - const esmResults = resolveExports(exports, ensureNoPrefix(exportPath, './'), [ - 'import', - 'default', - ]); - if (esmResults && esmResults.length > 0) { - esmPath = esmResults[0]; - } - } catch (error) { - // Ignore resolution errors - } - - // Try to resolve with require conditions - try { - const cjsResults = resolveExports(exports, ensureNoPrefix(exportPath, './'), [ - 'require', - 'default', - ]); - if (cjsResults && cjsResults.length > 0) { - cjsPath = cjsResults[0]; - } - } catch (error) { - // Ignore resolution errors - } + // Create the shim directory + const shimDir = path.resolve(cwd, exportPath); + const absoluteCwd = path.resolve(cwd); + const pathToResolve = ensureNoPrefix(exportPath, './'); + + // Resolve and convert paths to be relative to shim location + const cjsPath = resolveForShim( + exports, + pathToResolve, + ['require', 'default'], + absoluteCwd, + shimDir, + ); + const esmPath = resolveForShim( + exports, + pathToResolve, + ['import', 'default'], + absoluteCwd, + shimDir, + ); // Skip if neither ESM nor CJS resolved - if (!esmPath && !cjsPath) { + if (!cjsPath && !esmPath) { return; } - // Create the shim directory - const shimDir = path.resolve(cwd, exportPath); - await fs.mkdir(shimDir, { recursive: true }); - // Convert resolved paths to be relative to shim location - const absoluteCwd = path.resolve(cwd); - const relativeCjsPath = makeRelativeToShim(absoluteCwd, shimDir, cjsPath); - const relativeEsmPath = makeRelativeToShim(absoluteCwd, shimDir, esmPath); - // Create package.json content const packageJsonContent = {}; - if (relativeCjsPath) { - packageJsonContent.main = relativeCjsPath; + if (cjsPath) { + packageJsonContent.main = cjsPath; } - if (relativeEsmPath) { - packageJsonContent.module = relativeEsmPath; + if (esmPath) { + packageJsonContent.module = esmPath; } // Write the shim package.json From 37a374ac67a4da8de666cd484c94b5c417bb0d39 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 29 Jul 2025 10:21:09 +0200 Subject: [PATCH 34/37] remove MUI_EXPERIMENTAL_MJS --- .circleci/config.yml | 1 - .github/workflows/ci.yml | 2 -- 2 files changed, 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index da73d5ec046da5..42891b0b7253dd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,7 +43,6 @@ default-job: &default-job AWS_REGION_ARTIFACTS: eu-central-1 COREPACK_ENABLE_DOWNLOAD_PROMPT: '0' DANGER_DISABLE_TRANSPILATION: 'true' - MUI_EXPERIMENTAL_MJS: 1 working_directory: /tmp/material-ui docker: - image: cimg/node:20.17 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 38cdab6f924384..d3268d38b70091 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,8 +33,6 @@ jobs: cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies - run: pnpm install:codesandbox - run: pnpm build:codesandbox - env: - MUI_EXPERIMENTAL_MJS: 1 - run: pnpm pkg-pr-new-release # Tests dev-only scripts across all supported dev environments From ff3cb8e1b16570eea260c2637d169072ddd5db20 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 29 Jul 2025 11:55:06 +0200 Subject: [PATCH 35/37] node 24 --- package.json | 1 + pnpm-lock.yaml | 215 ++++++++++--------------------------- scripts/copyFilesUtils.mjs | 4 +- scripts/exportsUtils.mjs | 28 ++--- 4 files changed, 68 insertions(+), 180 deletions(-) diff --git a/package.json b/package.json index bfd873baede1b6..90b2b103857dc4 100644 --- a/package.json +++ b/package.json @@ -189,6 +189,7 @@ "prettier": "^3.6.2", "pretty-quick": "^4.2.2", "process": "^0.11.10", + "regexp.escape": "^2.0.1", "resolve-pkg-maps": "^1.0.0", "rimraf": "^6.0.1", "serve": "^14.2.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a5069e872be9ca..36f37ee8eb89c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,7 +95,7 @@ importers: version: 2.0.7-canary.7(@babel/core@7.28.0) '@mui/internal-bundle-size-checker': specifier: ^1.0.9-canary.5 - version: 1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1)(yaml@2.8.0) + version: 1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(yaml@2.8.0) '@mui/internal-code-infra': specifier: 0.0.2-canary.17 version: 0.0.2-canary.17(@typescript-eslint/parser@8.35.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-webpack@0.13.10)(eslint@9.31.0(jiti@2.4.2))(prettier@3.6.2)(typescript@5.8.3) @@ -288,6 +288,9 @@ importers: process: specifier: ^0.11.10 version: 0.11.10 + regexp.escape: + specifier: ^2.0.1 + version: 2.0.1 resolve-pkg-maps: specifier: ^1.0.0 version: 1.0.0 @@ -305,7 +308,7 @@ importers: version: 38.0.0(stylelint@16.22.0(typescript@5.8.3)) terser-webpack-plugin: specifier: ^5.3.14 - version: 5.3.14(webpack@5.100.2) + version: 5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) tsconfig-paths-webpack-plugin: specifier: ^4.2.0 version: 4.2.0 @@ -326,7 +329,7 @@ importers: version: 0.7.1(vite@6.3.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) webpack: specifier: ^5.100.2 - version: 5.100.2(webpack-cli@6.0.1) + version: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -644,7 +647,7 @@ importers: version: 4.1.11 '@toolpad/core': specifier: ^0.16.0 - version: 0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) + version: 0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -725,7 +728,7 @@ importers: version: 5.3.6(@mui/material@packages+mui-material+build)(@types/react@19.1.8)(react@19.1.0) next: specifier: ^15.4.2 - version: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) notistack: specifier: 3.0.2 version: 3.0.2(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -1324,7 +1327,7 @@ importers: version: 19.1.8 next: specifier: ^15.4.2 - version: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -1499,7 +1502,7 @@ importers: version: 4.17.21 next: specifier: ^15.4.2 - version: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -1697,7 +1700,7 @@ importers: version: 19.1.8 next: specifier: ^15.4.2 - version: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -2103,7 +2106,7 @@ importers: version: 11.3.0 html-webpack-plugin: specifier: ^5.6.3 - version: 5.6.3(webpack@5.100.2(webpack-cli@6.0.1)) + version: 5.6.3(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -2139,7 +2142,7 @@ importers: version: 1.6.28 webpack: specifier: ^5.100.2 - version: 5.100.2(webpack-cli@6.0.1) + version: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) yargs: specifier: ^17.7.2 version: 17.7.2 @@ -4678,105 +4681,54 @@ packages: engines: {node: '>=18.14.0'} hasBin: true - '@next/env@15.4.3': - resolution: {integrity: sha512-lKJ9KJAvaWzqurIsz6NWdQOLj96mdhuDMusLSYHw9HBe2On7BjUwU1WeRvq19x7NrEK3iOgMeSBV5qEhVH1cMw==} - '@next/env@15.4.4': resolution: {integrity: sha512-SJKOOkULKENyHSYXE5+KiFU6itcIb6wSBjgM92meK0HVKpo94dNOLZVdLLuS7/BxImROkGoPsjR4EnuDucqiiA==} '@next/eslint-plugin-next@15.4.2': resolution: {integrity: sha512-k0rjdWjXBY6tAOty1ckrMETE6Mx66d85NsgcAIdDp7/cXOsTJ93ywmbg3uUcpxX5TUHFEcCWI5mb8nPhwCe9jg==} - '@next/swc-darwin-arm64@15.4.3': - resolution: {integrity: sha512-YAhZWKeEYY7LHQJiQ8fe3Y6ymfcDcTn7rDC8PDu/pdeIl1Z2LHD4uyPNuQUGCEQT//MSNv6oZCeQzZfTCKZv+A==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - '@next/swc-darwin-arm64@15.4.4': resolution: {integrity: sha512-eVG55dnGwfUuG+TtnUCt+mEJ+8TGgul6nHEvdb8HEH7dmJIFYOCApAaFrIrxwtEq2Cdf+0m5sG1Np8cNpw9EAw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.4.3': - resolution: {integrity: sha512-ZPHRdd51xaxCMpT4viQ6h8TgYM1zPW1JIeksPY9wKlyvBVUQqrWqw8kEh1sa7/x0Ied+U7pYHkAkutrUwxbMcg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - '@next/swc-darwin-x64@15.4.4': resolution: {integrity: sha512-zqG+/8apsu49CltEj4NAmCGZvHcZbOOOsNoTVeIXphYWIbE4l6A/vuQHyqll0flU2o3dmYCXsBW5FmbrGDgljQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.4.3': - resolution: {integrity: sha512-QUdqftCXC5vw5cowucqi9FeOPQ0vdMxoOHLY0J5jPdercwSJFjdi9CkEO4Xkq1eG4t1TB/BG81n6rmTsWoILnw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - '@next/swc-linux-arm64-gnu@15.4.4': resolution: {integrity: sha512-LRD4l2lq4R+2QCHBQVC0wjxxkLlALGJCwigaJ5FSRSqnje+MRKHljQNZgDCaKUZQzO/TXxlmUdkZP/X3KNGZaw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.4.3': - resolution: {integrity: sha512-HTL31NsmoafX+r5g91Yj3+q34nrn1xKmCWVuNA+fUWO4X0pr+n83uGzLyEOn0kUqbMZ40KmWx+4wsbMoUChkiQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - '@next/swc-linux-arm64-musl@15.4.4': resolution: {integrity: sha512-LsGUCTvuZ0690fFWerA4lnQvjkYg9gHo12A3wiPUR4kCxbx/d+SlwmonuTH2SWZI+RVGA9VL3N0S03WTYv6bYg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.4.3': - resolution: {integrity: sha512-HRQLWoeFkKXd2YCEEy9GhfwOijRm37x4w5r0MMVHxBKSA6ms3JoPUXvGhfHT6srnGRcEUWNrQ2vzkHir5ZWTSw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - '@next/swc-linux-x64-gnu@15.4.4': resolution: {integrity: sha512-aOy5yNRpLL3wNiJVkFYl6w22hdREERNjvegE6vvtix8LHRdsTHhWTpgvcYdCK7AIDCQW5ATmzr9XkPHvSoAnvg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.4.3': - resolution: {integrity: sha512-NyXUx6G7AayaRGUsVPenuwhyAoyxjQuQPaK50AXoaAHPwRuif4WmSrXUs8/Y0HJIZh8E/YXRm9H7uuGfiacpuQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - '@next/swc-linux-x64-musl@15.4.4': resolution: {integrity: sha512-FL7OAn4UkR8hKQRGBmlHiHinzOb07tsfARdGh7v0Z0jEJ3sz8/7L5bR23ble9E6DZMabSStqlATHlSxv1fuzAg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.4.3': - resolution: {integrity: sha512-2CUTmpzN/7cL1a7GjdLkDFlfH3nwMwW8a6JiaAUsL9MtKmNNO3fnXqnY0Zk30fii3hVEl4dr7ztrpYt0t2CcGQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - '@next/swc-win32-arm64-msvc@15.4.4': resolution: {integrity: sha512-eEdNW/TXwjYhOulQh0pffTMMItWVwKCQpbziSBmgBNFZIIRn2GTXrhrewevs8wP8KXWYMx8Z+mNU0X+AfvtrRg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.4.3': - resolution: {integrity: sha512-i54YgUhvrUQxQD84SjAbkfWhYkOdm/DNRAVekCHLWxVg3aUbyC6NFQn9TwgCkX5QAS2pXCJo3kFboSFvrsd7dA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - '@next/swc-win32-x64-msvc@15.4.4': resolution: {integrity: sha512-SE5pYNbn/xZKMy1RE3pAs+4xD32OI4rY6mzJa4XUkp/ItZY+OMjIgilskmErt8ls/fVJ+Ihopi2QIeW6O3TrMw==} engines: {node: '>= 10'} @@ -11224,27 +11176,6 @@ packages: resolution: {integrity: sha512-Nc3loyVASW59W+8fLDZT1lncpG7llffyZ2o0UQLx/Fr20i7P8oP+lE7+TEcFvXj9IUWU6LjB9P3BH+iFGyp+mg==} engines: {node: ^14.16.0 || >=16.0.0} - next@15.4.3: - resolution: {integrity: sha512-uW7Qe6poVasNIE1X382nI29oxSdFJzjQzTgJFLD43MxyPfGKKxCMySllhBpvqr48f58Om+tLMivzRwBpXEytvA==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.51.1 - babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - babel-plugin-react-compiler: - optional: true - sass: - optional: true - next@15.4.4: resolution: {integrity: sha512-kNcubvJjOL9yUOfwtZF3HfDhuhp+kVD+FM2A6Tyua1eI/xfmY4r/8ZS913MMz+oWKDlbps/dQOWdDricuIkXLw==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} @@ -12651,6 +12582,10 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regexp.escape@2.0.1: + resolution: {integrity: sha512-JItRb4rmyTzmERBkAf6J87LjDPy/RscIwmaJQ3gsFlAzrmZbZU8LwBw5IydFZXW9hqpgbPlGbMhtpqtuAhMgtg==} + engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -17192,7 +17127,7 @@ snapshots: '@babel/core': 7.28.0 resolve: 1.22.10 - '@mui/internal-bundle-size-checker@1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1)(yaml@2.8.0)': + '@mui/internal-bundle-size-checker@1.0.9-canary.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.0)(terser@5.39.0)(tsx@4.20.3)(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(yaml@2.8.0)': dependencies: '@aws-sdk/client-s3': 3.787.0 '@aws-sdk/credential-providers': 3.787.0 @@ -17212,9 +17147,9 @@ snapshots: micromatch: 4.0.8 piscina: 4.9.2 rollup-plugin-visualizer: 6.0.1(rollup@4.40.0) - terser-webpack-plugin: 5.3.14(webpack@5.100.2) + terser-webpack-plugin: 5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) vite: 6.3.5(@types/node@20.19.9)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) webpack-bundle-analyzer: 4.10.2 yargs: 17.7.2 transitivePeerDependencies: @@ -17827,59 +17762,33 @@ snapshots: - rollup - supports-color - '@next/env@15.4.3': {} - '@next/env@15.4.4': {} '@next/eslint-plugin-next@15.4.2': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@15.4.3': - optional: true - '@next/swc-darwin-arm64@15.4.4': optional: true - '@next/swc-darwin-x64@15.4.3': - optional: true - '@next/swc-darwin-x64@15.4.4': optional: true - '@next/swc-linux-arm64-gnu@15.4.3': - optional: true - '@next/swc-linux-arm64-gnu@15.4.4': optional: true - '@next/swc-linux-arm64-musl@15.4.3': - optional: true - '@next/swc-linux-arm64-musl@15.4.4': optional: true - '@next/swc-linux-x64-gnu@15.4.3': - optional: true - '@next/swc-linux-x64-gnu@15.4.4': optional: true - '@next/swc-linux-x64-musl@15.4.3': - optional: true - '@next/swc-linux-x64-musl@15.4.4': optional: true - '@next/swc-win32-arm64-msvc@15.4.3': - optional: true - '@next/swc-win32-arm64-msvc@15.4.4': optional: true - '@next/swc-win32-x64-msvc@15.4.3': - optional: true - '@next/swc-win32-x64-msvc@15.4.4': optional: true @@ -19316,7 +19225,7 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 - '@toolpad/core@0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': + '@toolpad/core@0.16.0(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0))(@types/react@19.1.8)(react@19.1.0))(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@19.1.8)(date-fns@2.30.0)(luxon@3.6.1)(next@15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react-router@7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.27.6 '@emotion/cache': 11.14.0 @@ -19335,7 +19244,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - next: 15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-router: 7.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@emotion/styled' @@ -20067,19 +19976,19 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.100.2)': + '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2)': dependencies: - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2) - '@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.100.2)': + '@webpack-cli/info@3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2)': dependencies: - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2) - '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack@5.100.2)': + '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2)': dependencies: - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2) '@whatwg-node/disposablestack@0.0.6': @@ -20608,7 +20517,7 @@ snapshots: dependencies: '@babel/core': 7.28.0 find-up: 5.0.0 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) babel-merge@3.0.0(@babel/core@7.28.0): dependencies: @@ -21378,13 +21287,13 @@ snapshots: dependencies: schema-utils: 4.3.2 serialize-javascript: 6.0.2 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) compression-webpack-plugin@11.1.0(webpack@5.100.2): dependencies: schema-utils: 4.3.2 serialize-javascript: 6.0.2 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) compression@1.7.4: dependencies: @@ -21719,7 +21628,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) css-mediaquery@0.1.2: {} @@ -22576,7 +22485,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) transitivePeerDependencies: - supports-color @@ -23132,7 +23041,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) file-uri-to-path@1.0.0: {} @@ -23800,7 +23709,7 @@ snapshots: readable-stream: 1.0.34 through2: 0.4.2 - html-webpack-plugin@5.6.3(webpack@5.100.2(webpack-cli@6.0.1)): + html-webpack-plugin@5.6.3(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -23808,7 +23717,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) htmlparser2@6.1.0: dependencies: @@ -24725,7 +24634,7 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 3.1.2 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) webpack-merge: 4.2.2 karma@6.4.4: @@ -25991,31 +25900,6 @@ snapshots: p-wait-for: 5.0.2 qs: 6.13.0 - next@15.4.3(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@next/env': 15.4.3 - '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001727 - postcss: 8.4.31 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - styled-jsx: 5.1.6(@babel/core@7.28.0)(babel-plugin-macros@3.1.0)(react@19.1.0) - optionalDependencies: - '@next/swc-darwin-arm64': 15.4.3 - '@next/swc-darwin-x64': 15.4.3 - '@next/swc-linux-arm64-gnu': 15.4.3 - '@next/swc-linux-arm64-musl': 15.4.3 - '@next/swc-linux-x64-gnu': 15.4.3 - '@next/swc-linux-x64-musl': 15.4.3 - '@next/swc-win32-arm64-msvc': 15.4.3 - '@next/swc-win32-x64-msvc': 15.4.3 - '@opentelemetry/api': 1.8.0 - '@playwright/test': 1.54.1 - sharp: 0.34.3 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - next@15.4.4(@babel/core@7.28.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.54.1)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.4.4 @@ -27670,6 +27554,15 @@ snapshots: regenerator-runtime@0.14.1: {} + regexp.escape@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + for-each: 0.3.5 + safe-regex-test: 1.1.0 + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -28772,14 +28665,14 @@ snapshots: dependencies: rimraf: 2.6.3 - terser-webpack-plugin@5.3.14(webpack@5.100.2): + terser-webpack-plugin@5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))): dependencies: '@jridgewell/trace-mapping': 0.3.29 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) terser@5.39.0: dependencies: @@ -29499,9 +29392,9 @@ snapshots: webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2): dependencies: '@discoveryjs/json-ext': 0.6.3 - '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1)(webpack@5.100.2) - '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1)(webpack@5.100.2) - '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1)(webpack@5.100.2) + '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2) + '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2) + '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))(webpack@5.100.2) colorette: 2.0.20 commander: 12.1.0 cross-spawn: 7.0.6 @@ -29510,7 +29403,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.100.2(webpack-cli@6.0.1) + webpack: 5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)) webpack-merge: 6.0.1 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -29529,7 +29422,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.100.2(webpack-cli@6.0.1): + webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -29553,7 +29446,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(webpack@5.100.2) + terser-webpack-plugin: 5.3.14(webpack@5.100.2(webpack-cli@6.0.1(webpack-bundle-analyzer@4.10.2)(webpack@5.100.2))) watchpack: 2.4.1 webpack-sources: 3.3.3 optionalDependencies: diff --git a/scripts/copyFilesUtils.mjs b/scripts/copyFilesUtils.mjs index 1e3610b7a68eb9..b1433d014cdc0b 100644 --- a/scripts/copyFilesUtils.mjs +++ b/scripts/copyFilesUtils.mjs @@ -153,7 +153,9 @@ export async function createPackageFile(useEsmExports = false) { // Create shim structure for package exports if (newPackageData.exports) { - await shimPackageExports(buildPath, newPackageData.exports); + await shimPackageExports(buildPath, newPackageData.exports, { + sideEffects: newPackageData.sideEffects, + }); console.log(`Created shim structure in ${buildPath}`); } diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index 25202d2276b7ee..a8acbdbd8e9c13 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -2,6 +2,7 @@ import * as fs from 'fs/promises'; import * as path from 'path'; import { resolveExports } from 'resolve-pkg-maps'; import fg from 'fast-glob'; +import regexpEscape from 'regexp.escape'; const processedObjects = new WeakMap(); @@ -146,8 +147,7 @@ function collectPatterns(exportsObj, conditions, patterns, exportPath = '') { * Create regex to match paths that should be blocked by null exports */ function createBlockingRegex(exportPattern) { - // Convert export pattern to regex that matches blocked paths - const escaped = RegExp.escape(exportPattern); + const escaped = regexpEscape(exportPattern); const regexPattern = escaped.replace('\\*', '.*'); return new RegExp(`^${regexPattern}$`); } @@ -260,7 +260,7 @@ function resolveForShim(exports, exportPath, conditions, packageRoot, shimLocati * @param {Object} exports - Exports object from package.json * @returns {Promise} */ -export async function shimPackageExports(cwd, exports) { +export async function shimPackageExports(cwd, exports, pkgJson = {}) { const exportedPaths = await findAllExportedPaths({ cwd, exports }); const shimPromises = Array.from(exportedPaths.keys(), async (exportPath) => { @@ -284,20 +284,9 @@ export async function shimPackageExports(cwd, exports) { const pathToResolve = ensureNoPrefix(exportPath, './'); // Resolve and convert paths to be relative to shim location - const cjsPath = resolveForShim( - exports, - pathToResolve, - ['require', 'default'], - absoluteCwd, - shimDir, - ); - const esmPath = resolveForShim( - exports, - pathToResolve, - ['import', 'default'], - absoluteCwd, - shimDir, - ); + const typesPath = resolveForShim(exports, pathToResolve, ['types'], absoluteCwd, shimDir); + const cjsPath = resolveForShim(exports, pathToResolve, ['require'], absoluteCwd, shimDir); + const esmPath = resolveForShim(exports, pathToResolve, ['import'], absoluteCwd, shimDir); // Skip if neither ESM nor CJS resolved if (!cjsPath && !esmPath) { @@ -307,13 +296,16 @@ export async function shimPackageExports(cwd, exports) { await fs.mkdir(shimDir, { recursive: true }); // Create package.json content - const packageJsonContent = {}; + const packageJsonContent = { ...pkgJson }; if (cjsPath) { packageJsonContent.main = cjsPath; } if (esmPath) { packageJsonContent.module = esmPath; } + if (typesPath) { + packageJsonContent.types = typesPath; + } // Write the shim package.json const shimPackageJsonPath = path.join(shimDir, 'package.json'); From be42b3ee9721cd0f39c805108725cfebe27ca297 Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 29 Jul 2025 12:27:27 +0200 Subject: [PATCH 36/37] Update exportsUtils.mjs --- scripts/exportsUtils.mjs | 92 ++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 41 deletions(-) diff --git a/scripts/exportsUtils.mjs b/scripts/exportsUtils.mjs index a8acbdbd8e9c13..69da915782c5e3 100644 --- a/scripts/exportsUtils.mjs +++ b/scripts/exportsUtils.mjs @@ -263,54 +263,64 @@ function resolveForShim(exports, exportPath, conditions, packageRoot, shimLocati export async function shimPackageExports(cwd, exports, pkgJson = {}) { const exportedPaths = await findAllExportedPaths({ cwd, exports }); - const shimPromises = Array.from(exportedPaths.keys(), async (exportPath) => { - if (exportPath === '.') { - return; // Skip root export - } + const iterator = exportedPaths.keys(); + const concurrency = 100; // Limit concurrent file operations + + // Worker function that processes items from shared iterator + // Avoid `Error: EMFILE: too many open files` on large packages + const worker = async () => { + for (const exportPath of iterator) { + if (exportPath === '.') { + continue; // Skip root export + } - // Skip package.json - if (exportPath === './package.json') { - return; - } + // Skip package.json + if (exportPath === './package.json') { + continue; + } - // Skip non-JavaScript files - if (/\.[a-zA-Z0-9]+$/.test(exportPath) && !/\.(js|jsx|mjs|cjs|ts|tsx)$/.test(exportPath)) { - return; - } + // Skip non-JavaScript files + if (/\.[a-zA-Z0-9]+$/.test(exportPath) && !/\.(js|jsx|mjs|cjs|ts|tsx)$/.test(exportPath)) { + continue; + } - // Create the shim directory - const shimDir = path.resolve(cwd, exportPath); - const absoluteCwd = path.resolve(cwd); - const pathToResolve = ensureNoPrefix(exportPath, './'); + // Create the shim directory + const shimDir = path.resolve(cwd, exportPath); + const absoluteCwd = path.resolve(cwd); + const pathToResolve = ensureNoPrefix(exportPath, './'); - // Resolve and convert paths to be relative to shim location - const typesPath = resolveForShim(exports, pathToResolve, ['types'], absoluteCwd, shimDir); - const cjsPath = resolveForShim(exports, pathToResolve, ['require'], absoluteCwd, shimDir); - const esmPath = resolveForShim(exports, pathToResolve, ['import'], absoluteCwd, shimDir); + // Resolve and convert paths to be relative to shim location + const typesPath = resolveForShim(exports, pathToResolve, ['types'], absoluteCwd, shimDir); + const cjsPath = resolveForShim(exports, pathToResolve, ['require'], absoluteCwd, shimDir); + const esmPath = resolveForShim(exports, pathToResolve, ['import'], absoluteCwd, shimDir); - // Skip if neither ESM nor CJS resolved - if (!cjsPath && !esmPath) { - return; - } + // Skip if neither ESM nor CJS resolved + if (!cjsPath && !esmPath) { + continue; + } - await fs.mkdir(shimDir, { recursive: true }); + // Create package.json content + const packageJsonContent = { ...pkgJson }; + if (cjsPath) { + packageJsonContent.main = cjsPath; + } + if (esmPath) { + packageJsonContent.module = esmPath; + } + if (typesPath) { + packageJsonContent.types = typesPath; + } - // Create package.json content - const packageJsonContent = { ...pkgJson }; - if (cjsPath) { - packageJsonContent.main = cjsPath; - } - if (esmPath) { - packageJsonContent.module = esmPath; - } - if (typesPath) { - packageJsonContent.types = typesPath; + // Write the shim package.json + const shimPackageJsonPath = path.join(shimDir, 'package.json'); + // eslint-disable-next-line no-await-in-loop + await fs.mkdir(shimDir, { recursive: true }); + // eslint-disable-next-line no-await-in-loop + await fs.writeFile(shimPackageJsonPath, JSON.stringify(packageJsonContent, null, 2)); } + }; - // Write the shim package.json - const shimPackageJsonPath = path.join(shimDir, 'package.json'); - await fs.writeFile(shimPackageJsonPath, JSON.stringify(packageJsonContent, null, 2)); - }); - - await Promise.all(shimPromises); + // Start multiple workers concurrently + const workers = Array.from({ length: concurrency }, worker); + await Promise.all(workers); } From ab4ab566ee2433ca7f42b1bbb0c23bef18902f6f Mon Sep 17 00:00:00 2001 From: Janpot <2109932+Janpot@users.noreply.github.com> Date: Tue, 29 Jul 2025 13:18:06 +0200 Subject: [PATCH 37/37] re-enable --- .circleci/config.yml | 1 + .github/workflows/ci.yml | 2 ++ netlify.toml | 1 + 3 files changed, 4 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 42891b0b7253dd..da73d5ec046da5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,6 +43,7 @@ default-job: &default-job AWS_REGION_ARTIFACTS: eu-central-1 COREPACK_ENABLE_DOWNLOAD_PROMPT: '0' DANGER_DISABLE_TRANSPILATION: 'true' + MUI_EXPERIMENTAL_MJS: 1 working_directory: /tmp/material-ui docker: - image: cimg/node:20.17 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d3268d38b70091..38cdab6f924384 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,8 @@ jobs: cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies - run: pnpm install:codesandbox - run: pnpm build:codesandbox + env: + MUI_EXPERIMENTAL_MJS: 1 - run: pnpm pkg-pr-new-release # Tests dev-only scripts across all supported dev environments diff --git a/netlify.toml b/netlify.toml index 7ceaf30e657d2f..fb94526627ec2d 100644 --- a/netlify.toml +++ b/netlify.toml @@ -8,6 +8,7 @@ [build.environment] NODE_VERSION = "20" PNPM_FLAGS = "--frozen-lockfile" + MUI_EXPERIMENTAL_MJS = "1" [[plugins]] package = "./packages/netlify-plugin-cache-docs"