From c8e9d7b7dccadd5cb5254f11144eda98d508c7b4 Mon Sep 17 00:00:00 2001 From: fi3ework Date: Tue, 23 Sep 2025 11:27:05 +0800 Subject: [PATCH 1/5] feat: support JSX preserve --- biome.json | 3 +- .../module-federation/mf-host/package.json | 2 +- .../mf-react-component/package.json | 2 +- .../module-federation/mf-remote/package.json | 2 +- .../react-component-bundle-false/package.json | 2 +- examples/react-component-bundle/package.json | 2 +- examples/react-component-umd/package.json | 2 +- packages/core/src/config.ts | 38 ++ .../tests/__snapshots__/config.test.ts.snap | 40 +- packages/core/tests/config.test.ts | 1 + .../fragments/base/react-js/package.json | 2 +- .../fragments/base/react-ts/package.json | 2 +- .../template-[react]-[]-js/package.json | 2 +- .../template-[react]-[]-ts/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../template-[react]-[rstest]-js/package.json | 2 +- .../template-[react]-[rstest]-ts/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../template-[react]-[vitest]-js/package.json | 2 +- .../template-[react]-[vitest]-ts/package.json | 2 +- pnpm-lock.yaml | 504 +++++++++--------- tests/integration/asset/hash/package.json | 2 +- tests/integration/asset/svgr/package.json | 2 +- .../bundle-false/svgr/package.json | 2 +- .../preserve-jsx/__snapshots__/cjs.jsx.snap | 158 ++++++ .../__snapshots__/esm-jsx.jsx.snap | 81 +++ .../preserve-jsx/__snapshots__/esm.jsx.snap | 81 +++ .../preserve-jsx/default/package.json | 12 + .../preserve-jsx/default/rslib.config.ts | 42 ++ .../preserve-jsx/default/src/Component1.jsx | 105 ++++ .../preserve-jsx/default/src/Component2.tsx | 115 ++++ .../preserve-jsx/default/tsconfig.json | 20 + .../preserve-jsx/forbid-bundle/package.json | 6 + .../forbid-bundle/rslib.config.ts | 19 + .../preserve-jsx/forbid-bundle/src/index.tsx | 1 + .../preserve-jsx/forbid-bundle/tsconfig.json | 16 + tests/integration/preserve-jsx/index.test.ts | 54 ++ tests/package.json | 2 +- tests/scripts/shared.ts | 2 +- website/docs/en/guide/solution/react.mdx | 32 +- website/docs/zh/guide/solution/react.mdx | 32 +- website/package.json | 2 +- 46 files changed, 1133 insertions(+), 279 deletions(-) create mode 100644 tests/integration/preserve-jsx/__snapshots__/cjs.jsx.snap create mode 100644 tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap create mode 100644 tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap create mode 100644 tests/integration/preserve-jsx/default/package.json create mode 100644 tests/integration/preserve-jsx/default/rslib.config.ts create mode 100644 tests/integration/preserve-jsx/default/src/Component1.jsx create mode 100644 tests/integration/preserve-jsx/default/src/Component2.tsx create mode 100644 tests/integration/preserve-jsx/default/tsconfig.json create mode 100644 tests/integration/preserve-jsx/forbid-bundle/package.json create mode 100644 tests/integration/preserve-jsx/forbid-bundle/rslib.config.ts create mode 100644 tests/integration/preserve-jsx/forbid-bundle/src/index.tsx create mode 100644 tests/integration/preserve-jsx/forbid-bundle/tsconfig.json create mode 100644 tests/integration/preserve-jsx/index.test.ts diff --git a/biome.json b/biome.json index 83b5e0625..04d7f891c 100644 --- a/biome.json +++ b/biome.json @@ -21,7 +21,8 @@ "**", "!**/*.vue", "!**/.rslib/**/*", - "!tests/e2e/react-component/public/umd/**/*" + "!tests/e2e/react-component/public/umd/**/*", + "!tests/integration/preserve-jsx/default/src/Component2.tsx" ], "indentStyle": "space" }, diff --git a/examples/module-federation/mf-host/package.json b/examples/module-federation/mf-host/package.json index bc749a8dc..62b302020 100644 --- a/examples/module-federation/mf-host/package.json +++ b/examples/module-federation/mf-host/package.json @@ -14,7 +14,7 @@ "devDependencies": { "@module-federation/rsbuild-plugin": "^0.19.1", "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", "typescript": "^5.9.2" diff --git a/examples/module-federation/mf-react-component/package.json b/examples/module-federation/mf-react-component/package.json index e422618a5..af38b5a8e 100644 --- a/examples/module-federation/mf-react-component/package.json +++ b/examples/module-federation/mf-react-component/package.json @@ -21,7 +21,7 @@ "@module-federation/enhanced": "^0.19.1", "@module-federation/rsbuild-plugin": "^0.19.1", "@module-federation/storybook-addon": "^4.0.30", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@types/react": "^19.1.13", "http-server": "^14.1.1", diff --git a/examples/module-federation/mf-remote/package.json b/examples/module-federation/mf-remote/package.json index 2cfb2d5af..d2630217d 100644 --- a/examples/module-federation/mf-remote/package.json +++ b/examples/module-federation/mf-remote/package.json @@ -14,7 +14,7 @@ "devDependencies": { "@module-federation/rsbuild-plugin": "^0.19.1", "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", "typescript": "^5.9.2" diff --git a/examples/react-component-bundle-false/package.json b/examples/react-component-bundle-false/package.json index 69afd9f0f..d962c76f2 100644 --- a/examples/react-component-bundle-false/package.json +++ b/examples/react-component-bundle-false/package.json @@ -8,7 +8,7 @@ "build": "rslib build" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-sass": "^1.4.0", "@rslib/core": "workspace:*", "@types/react": "^19.1.13", diff --git a/examples/react-component-bundle/package.json b/examples/react-component-bundle/package.json index 43daf9f16..3969b4b1b 100644 --- a/examples/react-component-bundle/package.json +++ b/examples/react-component-bundle/package.json @@ -8,7 +8,7 @@ "build": "rslib build" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-sass": "^1.4.0", "@rslib/core": "workspace:*", "@types/react": "^19.1.13", diff --git a/examples/react-component-umd/package.json b/examples/react-component-umd/package.json index ce418a46b..59251135b 100644 --- a/examples/react-component-umd/package.json +++ b/examples/react-component-umd/package.json @@ -7,7 +7,7 @@ "build": "rslib build" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-sass": "^1.4.0", "@rslib/core": "workspace:*", "@types/react": "^19.1.13", diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts index 4f7b0bdfb..075a6be94 100644 --- a/packages/core/src/config.ts +++ b/packages/core/src/config.ts @@ -397,6 +397,8 @@ export function composeMinifyConfig(config: LibConfig): EnvironmentConfig { js: true, css: false, jsOptions: { + // Tweaked based on https://github.com/web-infra-dev/rspack/blob/e350b76163c976ee48da54c29bbb9d72153738d7/crates/rspack_plugin_swc_js_minimizer/src/lib.rs#L40. + test: /\.[cm]?jsx?(\?.*)?$/, minimizerOptions: { mangle: false, // MF assets are loaded over the network, which means they will not be compressed by the project. Therefore, minifying them is necessary. @@ -838,6 +840,40 @@ const fixJsModuleTypePlugin = (): RsbuildPlugin => ({ }, }); +const BundlePlugin = (): RsbuildPlugin => ({ + name: 'rslib:bundle', + setup(api) { + api.onBeforeBuild({ + order: 'post', + handler: ({ bundlerConfigs }) => { + if (bundlerConfigs) { + for (const config of bundlerConfigs) { + if (config?.module?.parser?.javascript?.jsx === true) { + throw new Error( + 'Bundle mode does not support preserving JSX syntax. Set `bundle` to `false` or change the JSX runtime to `automatic` or `classic`.', + ); + } + } + } + }, + }); + }, +}); + +const composeBundleConfig = ( + bundle: LibConfig['bundle'], +): { rsbuildConfig: EnvironmentConfig } => { + if (bundle) { + return { + rsbuildConfig: { + plugins: [BundlePlugin()], + }, + }; + } + + return { rsbuildConfig: {} }; +}; + const composeShimsConfig = ( format: Format, shims?: Shims, @@ -1676,6 +1712,7 @@ async function composeLibRsbuildConfig( redirect = {}, umdName, } = config; + const { rsbuildConfig: bundleConfig } = composeBundleConfig(bundle); const { rsbuildConfig: shimsConfig, enabledShims } = composeShimsConfig( format, shims, @@ -1761,6 +1798,7 @@ async function composeLibRsbuildConfig( const printFileSizeConfig = composePrintFileSizeConfig(bundle, target); return mergeRsbuildConfig( + bundleConfig, formatConfig, // outputConfig, shimsConfig, diff --git a/packages/core/tests/__snapshots__/config.test.ts.snap b/packages/core/tests/__snapshots__/config.test.ts.snap index 9627c8111..3422b69ea 100644 --- a/packages/core/tests/__snapshots__/config.test.ts.snap +++ b/packages/core/tests/__snapshots__/config.test.ts.snap @@ -931,7 +931,8 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i toplevel: true } }, - extractComments: true + extractComments: true, + test: /\\.[cm]?jsx?(\\?.*)?$/ } ) ], @@ -1627,7 +1628,8 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i toplevel: true } }, - extractComments: true + extractComments: true, + test: /\\.[cm]?jsx?(\\?.*)?$/ } ) ], @@ -2230,7 +2232,8 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i toplevel: true } }, - extractComments: true + extractComments: true, + test: /\\.[cm]?jsx?(\\?.*)?$/ } ) ], @@ -2831,7 +2834,8 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i toplevel: true } }, - extractComments: true + extractComments: true, + test: /\\.[cm]?jsx?(\\?.*)?$/ } ) ], @@ -3401,7 +3405,8 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i toplevel: false } }, - extractComments: true + extractComments: true, + test: /\\.[cm]?jsx?(\\?.*)?$/ } ) ], @@ -3559,6 +3564,7 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "mangle": false, "minify": false, }, + "test": /\\\\\\.\\[cm\\]\\?jsx\\?\\(\\\\\\?\\.\\*\\)\\?\\$/, }, }, "overrideBrowserslist": [ @@ -3572,6 +3578,10 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i }, }, "plugins": [ + { + "name": "rslib:bundle", + "setup": [Function], + }, { "name": "rsbuild:disable-url-parse", "setup": [Function], @@ -3835,6 +3845,7 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "mangle": false, "minify": false, }, + "test": /\\\\\\.\\[cm\\]\\?jsx\\?\\(\\\\\\?\\.\\*\\)\\?\\$/, }, }, "overrideBrowserslist": [ @@ -3848,6 +3859,10 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i }, }, "plugins": [ + { + "name": "rslib:bundle", + "setup": [Function], + }, { "name": "rsbuild:cjs-import-meta-url-shim", "setup": [Function], @@ -4099,6 +4114,7 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "mangle": false, "minify": false, }, + "test": /\\\\\\.\\[cm\\]\\?jsx\\?\\(\\\\\\?\\.\\*\\)\\?\\$/, }, }, "overrideBrowserslist": [ @@ -4112,6 +4128,10 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i }, }, "plugins": [ + { + "name": "rslib:bundle", + "setup": [Function], + }, { "name": "rsbuild:fix-js-module-type", "setup": [Function], @@ -4338,6 +4358,7 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "minify": false, "module": true, }, + "test": /\\\\\\.\\[cm\\]\\?jsx\\?\\(\\\\\\?\\.\\*\\)\\?\\$/, }, }, "overrideBrowserslist": [ @@ -4351,6 +4372,10 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i }, }, "plugins": [ + { + "name": "rslib:bundle", + "setup": [Function], + }, { "name": "rsbuild:fix-js-module-type", "setup": [Function], @@ -4522,6 +4547,7 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "mangle": false, "minify": true, }, + "test": /\\\\\\.\\[cm\\]\\?jsx\\?\\(\\\\\\?\\.\\*\\)\\?\\$/, }, }, "overrideBrowserslist": [ @@ -4540,6 +4566,10 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i }, }, "plugins": [ + { + "name": "rslib:bundle", + "setup": [Function], + }, { "name": "rsbuild:fix-js-module-type", "setup": [Function], diff --git a/packages/core/tests/config.test.ts b/packages/core/tests/config.test.ts index efd2e0fc5..cd72a17e7 100644 --- a/packages/core/tests/config.test.ts +++ b/packages/core/tests/config.test.ts @@ -354,6 +354,7 @@ describe('minify', () => { "mangle": false, "minify": false, }, + "test": /\\\\\\.\\[cm\\]\\?jsx\\?\\(\\\\\\?\\.\\*\\)\\?\\$/, }, } `); diff --git a/packages/create-rslib/fragments/base/react-js/package.json b/packages/create-rslib/fragments/base/react-js/package.json index 75578b48d..76f4b9fc3 100644 --- a/packages/create-rslib/fragments/base/react-js/package.json +++ b/packages/create-rslib/fragments/base/react-js/package.json @@ -15,7 +15,7 @@ "dev": "rslib build --watch" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "react": "^19.1.1" }, diff --git a/packages/create-rslib/fragments/base/react-ts/package.json b/packages/create-rslib/fragments/base/react-ts/package.json index c27b63519..d9803f0c5 100644 --- a/packages/create-rslib/fragments/base/react-ts/package.json +++ b/packages/create-rslib/fragments/base/react-ts/package.json @@ -17,7 +17,7 @@ "dev": "rslib build --watch" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@types/react": "^19.1.13", "react": "^19.1.1", diff --git a/packages/create-rslib/template-[react]-[]-js/package.json b/packages/create-rslib/template-[react]-[]-js/package.json index 75578b48d..76f4b9fc3 100644 --- a/packages/create-rslib/template-[react]-[]-js/package.json +++ b/packages/create-rslib/template-[react]-[]-js/package.json @@ -15,7 +15,7 @@ "dev": "rslib build --watch" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "react": "^19.1.1" }, diff --git a/packages/create-rslib/template-[react]-[]-ts/package.json b/packages/create-rslib/template-[react]-[]-ts/package.json index c27b63519..d9803f0c5 100644 --- a/packages/create-rslib/template-[react]-[]-ts/package.json +++ b/packages/create-rslib/template-[react]-[]-ts/package.json @@ -17,7 +17,7 @@ "dev": "rslib build --watch" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@types/react": "^19.1.13", "react": "^19.1.1", diff --git a/packages/create-rslib/template-[react]-[rstest,storybook]-js/package.json b/packages/create-rslib/template-[react]-[rstest,storybook]-js/package.json index e55cd8ae2..07242e1a6 100644 --- a/packages/create-rslib/template-[react]-[rstest,storybook]-js/package.json +++ b/packages/create-rslib/template-[react]-[rstest,storybook]-js/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@rstest/core": "^0.4.1", "@storybook/addon-docs": "^9.1.7", diff --git a/packages/create-rslib/template-[react]-[rstest,storybook]-ts/package.json b/packages/create-rslib/template-[react]-[rstest,storybook]-ts/package.json index e2914a97b..156f20aaa 100644 --- a/packages/create-rslib/template-[react]-[rstest,storybook]-ts/package.json +++ b/packages/create-rslib/template-[react]-[rstest,storybook]-ts/package.json @@ -21,7 +21,7 @@ }, "devDependencies": { "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@rstest/core": "^0.4.1", "@storybook/addon-docs": "^9.1.7", diff --git a/packages/create-rslib/template-[react]-[rstest]-js/package.json b/packages/create-rslib/template-[react]-[rstest]-js/package.json index 7e53b80fa..359a6714e 100644 --- a/packages/create-rslib/template-[react]-[rstest]-js/package.json +++ b/packages/create-rslib/template-[react]-[rstest]-js/package.json @@ -16,7 +16,7 @@ "test": "rstest" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@rstest/core": "^0.4.1", "@testing-library/jest-dom": "^6.8.0", diff --git a/packages/create-rslib/template-[react]-[rstest]-ts/package.json b/packages/create-rslib/template-[react]-[rstest]-ts/package.json index e7f33a791..52dc8a20a 100644 --- a/packages/create-rslib/template-[react]-[rstest]-ts/package.json +++ b/packages/create-rslib/template-[react]-[rstest]-ts/package.json @@ -18,7 +18,7 @@ "test": "rstest" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@rstest/core": "^0.4.1", "@testing-library/jest-dom": "^6.8.0", diff --git a/packages/create-rslib/template-[react]-[storybook,vitest]-js/package.json b/packages/create-rslib/template-[react]-[storybook,vitest]-js/package.json index 65ca24c09..c53f1ab31 100644 --- a/packages/create-rslib/template-[react]-[storybook,vitest]-js/package.json +++ b/packages/create-rslib/template-[react]-[storybook,vitest]-js/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@storybook/addon-docs": "^9.1.7", "@storybook/addon-essentials": "^9.0.0-alpha.12", diff --git a/packages/create-rslib/template-[react]-[storybook,vitest]-ts/package.json b/packages/create-rslib/template-[react]-[storybook,vitest]-ts/package.json index 8aa8cb503..6b8759276 100644 --- a/packages/create-rslib/template-[react]-[storybook,vitest]-ts/package.json +++ b/packages/create-rslib/template-[react]-[storybook,vitest]-ts/package.json @@ -21,7 +21,7 @@ }, "devDependencies": { "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@storybook/addon-docs": "^9.1.7", "@storybook/addon-essentials": "^9.0.0-alpha.12", diff --git a/packages/create-rslib/template-[react]-[storybook]-js/package.json b/packages/create-rslib/template-[react]-[storybook]-js/package.json index 65bf02f5e..5e5731c37 100644 --- a/packages/create-rslib/template-[react]-[storybook]-js/package.json +++ b/packages/create-rslib/template-[react]-[storybook]-js/package.json @@ -18,7 +18,7 @@ }, "devDependencies": { "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@storybook/addon-docs": "^9.1.7", "@storybook/addon-essentials": "^9.0.0-alpha.12", diff --git a/packages/create-rslib/template-[react]-[storybook]-ts/package.json b/packages/create-rslib/template-[react]-[storybook]-ts/package.json index 95cb185ee..99d880f7c 100644 --- a/packages/create-rslib/template-[react]-[storybook]-ts/package.json +++ b/packages/create-rslib/template-[react]-[storybook]-ts/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@storybook/addon-docs": "^9.1.7", "@storybook/addon-essentials": "^9.0.0-alpha.12", diff --git a/packages/create-rslib/template-[react]-[vitest]-js/package.json b/packages/create-rslib/template-[react]-[vitest]-js/package.json index 276078caf..53a1aa074 100644 --- a/packages/create-rslib/template-[react]-[vitest]-js/package.json +++ b/packages/create-rslib/template-[react]-[vitest]-js/package.json @@ -16,7 +16,7 @@ "test": "vitest run" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", diff --git a/packages/create-rslib/template-[react]-[vitest]-ts/package.json b/packages/create-rslib/template-[react]-[vitest]-ts/package.json index 3b0ac97b2..c1045c4c8 100644 --- a/packages/create-rslib/template-[react]-[vitest]-ts/package.json +++ b/packages/create-rslib/template-[react]-[vitest]-ts/package.json @@ -18,7 +18,7 @@ "test": "vitest run" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rslib/core": "workspace:*", "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af21a1537..e804aa4d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,13 +94,13 @@ importers: devDependencies: '@module-federation/rsbuild-plugin': specifier: ^0.19.1 - version: 0.19.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + version: 0.19.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@types/react': specifier: ^19.1.13 version: 19.1.13 @@ -115,16 +115,16 @@ importers: devDependencies: '@module-federation/enhanced': specifier: ^0.19.1 - version: 0.19.1(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + version: 0.19.1(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@module-federation/rsbuild-plugin': specifier: ^0.19.1 - version: 0.19.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + version: 0.19.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@module-federation/storybook-addon': specifier: ^4.0.30 - version: 4.0.30(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))(webpack-virtual-modules@0.6.2) + version: 4.0.30(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))(webpack-virtual-modules@0.6.2) '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rslib/core': specifier: workspace:* version: link:../../../packages/core @@ -145,10 +145,10 @@ importers: version: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) storybook-addon-rslib: specifier: ^2.1.1 - version: 2.1.1(@rsbuild/core@1.5.11)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2))(typescript@5.9.2) + version: 2.1.1(@rsbuild/core@1.5.12)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2))(typescript@5.9.2) storybook-react-rsbuild: specifier: ^2.1.1 - version: 2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.2)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) + version: 2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.2)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) examples/module-federation/mf-remote: dependencies: @@ -161,13 +161,13 @@ importers: devDependencies: '@module-federation/rsbuild-plugin': specifier: ^0.19.1 - version: 0.19.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + version: 0.19.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@types/react': specifier: ^19.1.13 version: 19.1.13 @@ -182,10 +182,10 @@ importers: devDependencies: '@rsbuild/plugin-preact': specifier: ^1.5.2 - version: 1.5.2(@rsbuild/core@1.5.11)(preact@10.27.2) + version: 1.5.2(@rsbuild/core@1.5.12)(preact@10.27.2) '@rsbuild/plugin-sass': specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + version: 1.4.0(@rsbuild/core@1.5.12) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -196,11 +196,11 @@ importers: examples/react-component-bundle: devDependencies: '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-sass': specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + version: 1.4.0(@rsbuild/core@1.5.12) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -214,11 +214,11 @@ importers: examples/react-component-bundle-false: devDependencies: '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-sass': specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + version: 1.4.0(@rsbuild/core@1.5.12) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -232,11 +232,11 @@ importers: examples/react-component-umd: devDependencies: '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-sass': specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + version: 1.4.0(@rsbuild/core@1.5.12) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -251,13 +251,13 @@ importers: devDependencies: '@rsbuild/plugin-babel': specifier: ^1.0.6 - version: 1.0.6(@rsbuild/core@1.5.11) + version: 1.0.6(@rsbuild/core@1.5.12) '@rsbuild/plugin-sass': specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + version: 1.4.0(@rsbuild/core@1.5.12) '@rsbuild/plugin-solid': specifier: ^1.0.6 - version: 1.0.6(@babel/core@7.28.0)(@rsbuild/core@1.5.11)(solid-js@1.9.9) + version: 1.0.6(@babel/core@7.28.0)(@rsbuild/core@1.5.12)(solid-js@1.9.9) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -275,7 +275,7 @@ importers: version: link:../../packages/core rsbuild-plugin-unplugin-vue: specifier: ^0.1.0 - version: 0.1.0(@rsbuild/core@1.5.11)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1) + version: 0.1.0(@rsbuild/core@1.5.12)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1) typescript: specifier: ^5.9.2 version: 5.9.2 @@ -314,16 +314,16 @@ importers: version: 9.1.7(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(vue@3.5.21(typescript@5.9.2)) rsbuild-plugin-unplugin-vue: specifier: ^0.1.0 - version: 0.1.0(@rsbuild/core@1.5.11)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1) + version: 0.1.0(@rsbuild/core@1.5.12)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1) storybook: specifier: ^9.1.7 version: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) storybook-addon-rslib: specifier: ^2.1.1 - version: 2.1.1(@rsbuild/core@1.5.11)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2))(typescript@5.9.2) + version: 2.1.1(@rsbuild/core@1.5.12)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2))(typescript@5.9.2) storybook-vue3-rsbuild: specifier: ^2.1.1 - version: 2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) + version: 2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) typescript: specifier: ^5.9.2 version: 5.9.2 @@ -338,14 +338,14 @@ importers: dependencies: '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 rsbuild-plugin-dts: specifier: workspace:* version: link:../plugin-dts devDependencies: '@module-federation/rsbuild-plugin': specifier: ^0.19.1 - version: 0.19.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + version: 0.19.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@rslib/tsconfig': specifier: workspace:* version: link:../../scripts/tsconfig @@ -375,7 +375,7 @@ importers: version: 1.4.2(typescript@5.9.2) rsbuild-plugin-publint: specifier: ^0.3.3 - version: 0.3.3(@rsbuild/core@1.5.11) + version: 0.3.3(@rsbuild/core@1.5.12) rslib: specifier: npm:@rslib/core@0.13.3 version: '@rslib/core@0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2)' @@ -412,7 +412,7 @@ importers: version: 11.3.2 rsbuild-plugin-publint: specifier: ^0.3.3 - version: 0.3.3(@rsbuild/core@1.5.11) + version: 0.3.3(@rsbuild/core@1.5.12) rslib: specifier: npm:@rslib/core@0.13.3 version: '@rslib/core@0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2)' @@ -434,7 +434,7 @@ importers: version: 7.52.13(@types/node@22.18.6) '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 '@rslib/tsconfig': specifier: workspace:* version: link:../../scripts/tsconfig @@ -452,7 +452,7 @@ importers: version: 1.4.2(typescript@5.9.2) rsbuild-plugin-publint: specifier: ^0.3.3 - version: 0.3.3(@rsbuild/core@1.5.11) + version: 0.3.3(@rsbuild/core@1.5.12) rslib: specifier: npm:@rslib/core@0.13.3 version: '@rslib/core@0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2)' @@ -482,31 +482,31 @@ importers: version: 4.0.1(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) '@module-federation/rsbuild-plugin': specifier: ^0.19.1 - version: 0.19.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + version: 0.19.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@playwright/test': specifier: 1.55.0 version: 1.55.0 '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 '@rsbuild/plugin-less': specifier: ^1.5.0 - version: 1.5.0(@rsbuild/core@1.5.11) + version: 1.5.0(@rsbuild/core@1.5.12) '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-sass': specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + version: 1.4.0(@rsbuild/core@1.5.12) '@rsbuild/plugin-toml': specifier: ^1.1.1 - version: 1.1.1(@rsbuild/core@1.5.11) + version: 1.1.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-typed-css-modules': specifier: ^1.1.0 - version: 1.1.0(@rsbuild/core@1.5.11) + version: 1.1.0(@rsbuild/core@1.5.12) '@rsbuild/plugin-yaml': specifier: ^1.0.3 - version: 1.0.3(@rsbuild/core@1.5.11) + version: 1.0.3(@rsbuild/core@1.5.12) '@rslib/core': specifier: workspace:* version: link:../packages/core @@ -570,8 +570,8 @@ importers: version: 19.1.1 devDependencies: '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) tests/integration/asset/json: {} @@ -586,11 +586,11 @@ importers: tests/integration/asset/svgr: devDependencies: '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-svgr': specifier: ^1.2.2 - version: 1.2.2(@rsbuild/core@1.5.11)(typescript@5.9.2) + version: 1.2.2(@rsbuild/core@1.5.12)(typescript@5.9.2) tests/integration/async-chunks/default: {} @@ -683,11 +683,11 @@ importers: version: 19.1.1 devDependencies: '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-svgr': specifier: ^1.2.2 - version: 1.2.2(@rsbuild/core@1.5.11)(typescript@5.9.2) + version: 1.2.2(@rsbuild/core@1.5.12)(typescript@5.9.2) tests/integration/cli/build: {} @@ -949,10 +949,10 @@ importers: devDependencies: '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 '@rsbuild/plugin-node-polyfill': specifier: ^1.4.2 - version: 1.4.2(@rsbuild/core@1.5.11) + version: 1.4.2(@rsbuild/core@1.5.12) tests/integration/node-polyfill/bundle-false: dependencies: @@ -962,10 +962,10 @@ importers: devDependencies: '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 '@rsbuild/plugin-node-polyfill': specifier: ^1.4.2 - version: 1.4.2(@rsbuild/core@1.5.11) + version: 1.4.2(@rsbuild/core@1.5.12) tests/integration/outBase/custom-entry: {} @@ -987,11 +987,23 @@ importers: devDependencies: '@rsbuild/plugin-babel': specifier: ^1.0.6 - version: 1.0.6(@rsbuild/core@1.5.11) + version: 1.0.6(@rsbuild/core@1.5.12) babel-plugin-polyfill-corejs3: specifier: ^0.13.0 version: 0.13.0(@babel/core@7.28.0) + tests/integration/preserve-jsx/default: + dependencies: + react: + specifier: ^19.1.1 + version: 19.1.1 + devDependencies: + '@rsbuild/plugin-react': + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) + + tests/integration/preserve-jsx/forbid-bundle: {} + tests/integration/redirect/asset: {} tests/integration/redirect/dts: @@ -1135,13 +1147,13 @@ importers: devDependencies: '@rsbuild/plugin-stylus': specifier: ^1.2.0 - version: 1.2.0(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17)) + version: 1.2.0(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17)) tests/integration/style/stylus/bundle-false: devDependencies: '@rsbuild/plugin-stylus': specifier: ^1.2.0 - version: 1.2.0(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17)) + version: 1.2.0(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17)) tests/integration/style/tailwindcss/bundle: devDependencies: @@ -1204,10 +1216,10 @@ importers: devDependencies: '@rsbuild/plugin-less': specifier: ^1.5.0 - version: 1.5.0(@rsbuild/core@1.5.11) + version: 1.5.0(@rsbuild/core@1.5.12) rsbuild-plugin-unplugin-vue: specifier: ^0.1.0 - version: 0.1.0(@rsbuild/core@1.5.11)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1) + version: 0.1.0(@rsbuild/core@1.5.12)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1) vue: specifier: ^3.5.21 version: 3.5.21(typescript@5.9.2) @@ -1220,16 +1232,16 @@ importers: devDependencies: '@module-federation/rsbuild-plugin': specifier: ^0.19.1 - version: 0.19.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + version: 0.19.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@rsbuild/core': specifier: ~1.5.11 - version: 1.5.11 + version: 1.5.12 '@rsbuild/plugin-react': - specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + specifier: ^1.4.1 + version: 1.4.1(@rsbuild/core@1.5.12) '@rsbuild/plugin-sass': specifier: ^1.4.0 - version: 1.4.0(@rsbuild/core@1.5.11) + version: 1.4.0(@rsbuild/core@1.5.12) '@rslib/core': specifier: workspace:* version: link:../packages/core @@ -1277,10 +1289,10 @@ importers: version: 19.1.1(react@19.1.1) rsbuild-plugin-google-analytics: specifier: 1.0.4 - version: 1.0.4(@rsbuild/core@1.5.11) + version: 1.0.4(@rsbuild/core@1.5.12) rsbuild-plugin-open-graph: specifier: ^1.1.0 - version: 1.1.0(@rsbuild/core@1.5.11) + version: 1.1.0(@rsbuild/core@1.5.12) rspress-plugin-font-open-sans: specifier: 1.0.3 version: 1.0.3(@rspress/core@2.0.0-beta.33(@types/react@19.1.13)) @@ -2392,8 +2404,8 @@ packages: engines: {node: '>=18'} hasBin: true - '@polka/url@1.0.0-next.28': - resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} '@prefresh/core@1.5.5': resolution: {integrity: sha512-H6GTXUl4V4fe3ijz7yhSa/mZ+pGSOh7XaJb6uP/sQsagBx9yl0D1HKDaeoMQA8Ad2Xm27LqvbitMGSdY9UFSKQ==} @@ -2536,8 +2548,8 @@ packages: engines: {node: '>=18.12.0'} hasBin: true - '@rsbuild/core@1.5.11': - resolution: {integrity: sha512-WlpeRlcfwh2Aasx4eJy6KWW9+bWNQo8EjZJE47iR5Rz+3l0znGzke4sNx4OYsDx8xV0gGkAzIbIMRc4ciLVq4Q==} + '@rsbuild/core@1.5.12': + resolution: {integrity: sha512-DpinE1If6WRTwQYqH+PRtJo3zshkDYHfIcWq4lTtfsPfPLrXshmRXBam3BS1RRu4v2gGT+LCNiUefftsmcmL0A==} engines: {node: '>=18.12.0'} hasBin: true @@ -2564,8 +2576,8 @@ packages: peerDependencies: '@rsbuild/core': 1.x - '@rsbuild/plugin-react@1.4.0': - resolution: {integrity: sha512-YhhOUOonJBjnKpUf7E4iXKidldPWAGmYBRtDjQgcSmW4tbW0DasFpNCqLn5870Q2Ly6oCU06sLv+8G597I36+w==} + '@rsbuild/plugin-react@1.4.1': + resolution: {integrity: sha512-kahvnfRPQTsG0tReR6h0KuVfyjKJfpv/PoU5qW5SDkON7vmbGn8Jx7l3fI+yU3lR/7qDiAO19QnNjkqxPsFT3Q==} peerDependencies: '@rsbuild/core': 1.x @@ -2673,8 +2685,8 @@ packages: cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-arm64@1.5.6': - resolution: {integrity: sha512-eRG8wbciBn09rdEGGijt3ZKYNgq1DGaiLaDb08HP1hZ/+SN4OdM9wxGo+abwkWl/Zv9ab/Ff8xc+Ry357UFvKA==} + '@rspack/binding-darwin-arm64@1.5.7': + resolution: {integrity: sha512-prQ/vgJxOPdlYiR4gVeOEKofTCEOu70JQIQApqFnw8lKM7rd9ag8ogDNqmc2L/GGXGHLAqds28oeKXRlzYf7+Q==} cpu: [arm64] os: [darwin] @@ -2683,8 +2695,8 @@ packages: cpu: [x64] os: [darwin] - '@rspack/binding-darwin-x64@1.5.6': - resolution: {integrity: sha512-+0ulwI2XNu1ArNP2UucKbePr1GAJiwaNL6Us5Ke0Qx/DRRzPGuA6X+R2iT30HjJRSLe6G9T9DxnBOnnqJOlysw==} + '@rspack/binding-darwin-x64@1.5.7': + resolution: {integrity: sha512-FPqiWSbEEerqfJrGnYe68svvl6NyuQFAb3qqFe/Q0MqFhBYmAZwa0R2/ylugCdgFLZxmkFuWqpDgItpvJb/E3Q==} cpu: [x64] os: [darwin] @@ -2693,8 +2705,8 @@ packages: cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-gnu@1.5.6': - resolution: {integrity: sha512-a7LxYdJzANj8xNjjlNJDCITQ9yAYGlc4Znz4DAYTX6vW0Q146rXCDif/UJLboYjQgrrbNbufpfRKEpPbYu2zGw==} + '@rspack/binding-linux-arm64-gnu@1.5.7': + resolution: {integrity: sha512-fwy+NY+0CHrZqqzDrjPBlTuK53W4dG5EEg/QQFAE7KVM+okRqPk8tg45bJ5628rCNLe13GDmPIE107LmgspNqA==} cpu: [arm64] os: [linux] @@ -2703,8 +2715,8 @@ packages: cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-musl@1.5.6': - resolution: {integrity: sha512-Bi2Z8HhWH1ZikH2Ettowzej75Iy219KZYIl2W1RVwLkuAqm/DBRx099YsMmh+6esI8e3UgBQtWcHLz5lXaB+6g==} + '@rspack/binding-linux-arm64-musl@1.5.7': + resolution: {integrity: sha512-576u/0F4ZUzpHckFme4vQ0sSxjE+B/gVP4tNJ+P6bJaclXLFXV4icbjTUQwOIgmA1EQz/JFeKGGJZ4p6mowpBQ==} cpu: [arm64] os: [linux] @@ -2713,8 +2725,8 @@ packages: cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-gnu@1.5.6': - resolution: {integrity: sha512-Ko4IbyaWA0B4e0EtXyfouVvkeIyh0bcgcESahir1tX/wRyXAV9aqOm0uRZ3eSIRaIvKxWQAmoi49/gFNgUMNJA==} + '@rspack/binding-linux-x64-gnu@1.5.7': + resolution: {integrity: sha512-brSHywXjjeuWkv0ywgxS4VgDgquarEb4XGr+eXhOaPcc8x2rNefyc4hErplrI7+oxPXVuGK5VE4ZH5bj3Yknvg==} cpu: [x64] os: [linux] @@ -2723,8 +2735,8 @@ packages: cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-musl@1.5.6': - resolution: {integrity: sha512-Nyk2KoMiWruGe8GSGKlg0MU+EBWUiWJ+fV4/IEZw6tnAsod4YKIm4vD7f9jac0Mw07GIXggKQc0MaVhWTC8F7g==} + '@rspack/binding-linux-x64-musl@1.5.7': + resolution: {integrity: sha512-HcS0DzbLlWCwVfYcWMbTgILh4GELD6m4CZoFEhIr4fJCJi0p8NgLYycy1QtDhaUjs8TKalmyMwHrJwGnD141JA==} cpu: [x64] os: [linux] @@ -2732,8 +2744,8 @@ packages: resolution: {integrity: sha512-8rVpl6xfaAFJgo1wCd+emksfl+/8nlehrtkmjY9bj79Ou+kp07L9e1B+UU0jfs8e7aLPntQuF68kzLHwYLzWIQ==} cpu: [wasm32] - '@rspack/binding-wasm32-wasi@1.5.6': - resolution: {integrity: sha512-Jj44lsdQWAaBZZwKk/x6UeQD/NFpH5uucHVXQUsC5BGF0PO3XbGSwhX7GSQ7+JuvFvEpIZDg6DuFXycB0Kv6iA==} + '@rspack/binding-wasm32-wasi@1.5.7': + resolution: {integrity: sha512-uTRUEuK+TVlvUBSWXVoxD+6JTN+rvtRqVlO+A7I7VnOY7p9Rpvk1sXcHtEwg/XuDCq4DALnvlzbFLh7G3zILvw==} cpu: [wasm32] '@rspack/binding-win32-arm64-msvc@1.5.0': @@ -2741,8 +2753,8 @@ packages: cpu: [arm64] os: [win32] - '@rspack/binding-win32-arm64-msvc@1.5.6': - resolution: {integrity: sha512-zkAe6JRAUqHGYFO64GyGDQHk6jg5s+odFkZ66Z1jun7AvHXB99iDN5mX8+kNjaECXjIl4A9dT5oO8Ogc04vLkQ==} + '@rspack/binding-win32-arm64-msvc@1.5.7': + resolution: {integrity: sha512-dFHrXRUmMTkxEn/Uw2RLbIckKfi0Zmn2NnEXwedWdyRgZW4Vhk7+VBxM22O/CHZmAGt12Ol25yTuVv58ANLEKA==} cpu: [arm64] os: [win32] @@ -2751,8 +2763,8 @@ packages: cpu: [ia32] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.5.6': - resolution: {integrity: sha512-M7ghMl0eh/cD5oNCCd8OPsUdgCPEsI3BKJqrWZmKFIMbJci0mDTLivc2/NIMt7fgbfRBSeUKeIQKbVbey6yufg==} + '@rspack/binding-win32-ia32-msvc@1.5.7': + resolution: {integrity: sha512-PNtnOIUzE9p/Fbl6l/1Zs7bhn8ccTlaHTgZgQq0sO/QxjLlbU0WPjRl+YLo27cAningSOAbANuYlN8vAcuimrw==} cpu: [ia32] os: [win32] @@ -2761,16 +2773,16 @@ packages: cpu: [x64] os: [win32] - '@rspack/binding-win32-x64-msvc@1.5.6': - resolution: {integrity: sha512-i8HiI1gErP+vQ8DYz+oDbpNHPRZ8BSRl8tt3GA02FINujanKvy0xWyOQyOssxSio4IwWTlZQRQf0TEAT1UraUg==} + '@rspack/binding-win32-x64-msvc@1.5.7': + resolution: {integrity: sha512-22gTaYkwaIUvyXRxf1RVnFTJPqF2hD1pgAQNBIz7kYybe6vvSZ6KInW4WyG4vjYKrJg/cbS4QvtlLn0lYXrdIw==} cpu: [x64] os: [win32] '@rspack/binding@1.5.0': resolution: {integrity: sha512-UGXQmwEu2gdO+tnGv2q4rOWJdWioy6dlLXeZOLYAZVh3mrfKJhZWtDEygX9hCdE5thWNRTlEvx30QQchJAszIQ==} - '@rspack/binding@1.5.6': - resolution: {integrity: sha512-1I6VOr5pe4FeL6wUlrOmMUVXWcYTVJTpwBzprxGdiu9oYwltBTiTXd7F6x6NOId1CiPcmXZII+3aZr9X3JwoPA==} + '@rspack/binding@1.5.7': + resolution: {integrity: sha512-/fFrf4Yu8Tc0yXBw33g2++turdld1MDphLiLg05bx92fOVI1MafocwPvm35e3y1z7CtlQJ2Bmvzhi6APJShKxg==} '@rspack/core@1.5.0': resolution: {integrity: sha512-eEtiKV+CUcAtnt1K+eiHDzmBXQcNM8CfCXOzr0+gHGp4w4Zks2B8RF36sYD03MM2bg8VRXXsf0MicQ8FvRMCOg==} @@ -2781,8 +2793,8 @@ packages: '@swc/helpers': optional: true - '@rspack/core@1.5.6': - resolution: {integrity: sha512-lM+0m5P+YZdY1tMWX8qbEO3gywAS2lV7pUWFQRF2hqyF7mwWo9oN4erp99MIf5dq5A+vDrK3oPDNIuTWrWz5NA==} + '@rspack/core@1.5.7': + resolution: {integrity: sha512-57ey3wafK/g+B9zLdCiIrX3eTK8rFEM3yvxBUb2ro3ZtAaCGm4y7xERcXZJNn4D01pjzzCJ/u1ezpQmsZYLP7A==} engines: {node: '>=18.12.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -2800,8 +2812,8 @@ packages: '@prefresh/core': ^1.5.0 '@prefresh/utils': ^1.2.0 - '@rspack/plugin-react-refresh@1.5.0': - resolution: {integrity: sha512-pYOmc1mrK8Ui/7VWUgjKt9YqrxFn4woURTgGpFYWwsFvJxmWm05zog4fUbChvErbaBHkx1aA+KHxIvM/6tFODg==} + '@rspack/plugin-react-refresh@1.5.1': + resolution: {integrity: sha512-GT3KV1GSmIXO8dQg6taNf9AuZ8XHEs8cZqRn5mC2GT6DPCvUA/ZKezIGsHTyH+HMEbJnJ/T8yYeJnvnzuUcqAQ==} peerDependencies: react-refresh: '>=0.10.0 <1.0.0' webpack-hot-middleware: 2.x @@ -3011,10 +3023,10 @@ packages: peerDependencies: storybook: ^9.0.0-alpha.12 - '@storybook/addon-docs@9.1.6': - resolution: {integrity: sha512-4ZE/T2Ayw77/v2ersAk/VM7vlvqV2zCNFwt0uvOzUR1VZ9VqZCHhsfy/IyBPeKt6Otax3EpfE1LkH4slfceB0g==} + '@storybook/addon-docs@9.1.8': + resolution: {integrity: sha512-GVrNVEdNRRo6r1hawfgyy6x+HJqPx1oOHm0U0wz0SGAxgS/Xh6SQVZL+RDoh7NpXkNi1GbezVlT931UsHQTyvQ==} peerDependencies: - storybook: ^9.1.6 + storybook: ^9.1.8 '@storybook/addon-essentials@9.0.0-alpha.12': resolution: {integrity: sha512-wmUT9Q4rl6SvVgrIYDj97uHHkMSGba1A+/rMHypIw7OtrdUp+w1OKZRDNVrU0AfqfbaptT5dRrBsDr/eFZ9v8Q==} @@ -3067,15 +3079,15 @@ packages: react-dom: optional: true - '@storybook/core-webpack@9.1.6': - resolution: {integrity: sha512-NaDXVS7QaSYfFB3CDbcrXPFBSyWPxhrMOOqnHAcvxvKSoABlWhvNBDLOOxeFUs6yqdHexNcLGQNgKKQrUSqaSg==} + '@storybook/core-webpack@9.1.8': + resolution: {integrity: sha512-osNCuxPFtU1WiE/VTD93njxplxg7P/94p2Kc0NIwF2cdUQ64xlx68DWB5xJDaoZiVtcrY3/kjk/VWnf7X3Z6zg==} peerDependencies: - storybook: ^9.1.6 + storybook: ^9.1.8 - '@storybook/csf-plugin@9.1.6': - resolution: {integrity: sha512-cz4Y+OYCtuovFNwoLkIKk0T62clrRTYf26Bbo1gdIGuX/W3JPP/LnN97sP2/0nfF6heZqCdEwb47k7RubkxXZg==} + '@storybook/csf-plugin@9.1.8': + resolution: {integrity: sha512-KnrXPz87bn+8ZGkzFEBc7TT5HkWpR1Xz7ojxPclSvkKxTfzazuaw0JlOQMzJoI1+wHXDAIw/4MIsO8HEiaWyfQ==} peerDependencies: - storybook: ^9.1.6 + storybook: ^9.1.8 '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -3100,6 +3112,13 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^9.1.6 + '@storybook/react-dom-shim@9.1.8': + resolution: {integrity: sha512-OepccjVZh/KQugTH8/RL2CIyf1g5Lwc5ESC8x8BH3iuYc82WMQBwMJzRI5EofQdirau63NGrqkWCgQASoVreEA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^9.1.8 + '@storybook/react@9.1.6': resolution: {integrity: sha512-BGf3MQaXj6LmYnYpSwHUoWH0RP6kaqBoPc2u5opSU2ajw34enIL5w2sFaXzL+k2ap0aHnCYYlyBINBBvtD6NIA==} engines: {node: '>=20.0.0'} @@ -5729,8 +5748,8 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} ms@2.1.3: @@ -7287,14 +7306,9 @@ packages: peerDependencies: vue: ^3.2.25 - unplugin@1.15.0: - resolution: {integrity: sha512-jTPIs63W+DUEDW207ztbaoO7cQ4p5aVaB823LSlxpsFEU3Mykwxf3ZGC/wzxFJeZlASZYgVrWeo7LgOrqJZ8RA==} + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} - peerDependencies: - webpack-sources: ^3 - peerDependenciesMeta: - webpack-sources: - optional: true unplugin@2.3.4: resolution: {integrity: sha512-m4PjxTurwpWfpMomp8AptjD5yj8qEZN5uQjjGM3TAs9MWWD2tXSSNNj6jGR2FoVGod4293ytyV6SwBbertfyJg==} @@ -8570,7 +8584,7 @@ snapshots: - supports-color - utf-8-validate - '@module-federation/enhanced@0.19.1(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': + '@module-federation/enhanced@0.19.1(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.19.1 '@module-federation/cli': 0.19.1(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) @@ -8580,7 +8594,7 @@ snapshots: '@module-federation/inject-external-runtime-core-plugin': 0.19.1(@module-federation/runtime-tools@0.19.1) '@module-federation/managers': 0.19.1 '@module-federation/manifest': 0.19.1(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) - '@module-federation/rspack': 0.19.1(@rspack/core@1.5.6(@swc/helpers@0.5.17))(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + '@module-federation/rspack': 0.19.1(@rspack/core@1.5.7(@swc/helpers@0.5.17))(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@module-federation/runtime-tools': 0.19.1 '@module-federation/sdk': 0.19.1 btoa: 1.2.1 @@ -8627,9 +8641,9 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/node@2.7.17(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': + '@module-federation/node@2.7.17(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': dependencies: - '@module-federation/enhanced': 0.19.1(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + '@module-federation/enhanced': 0.19.1(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@module-federation/runtime': 0.19.1 '@module-federation/sdk': 0.19.1 btoa: 1.2.1 @@ -8647,14 +8661,14 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/rsbuild-plugin@0.19.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': + '@module-federation/rsbuild-plugin@0.19.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': dependencies: - '@module-federation/enhanced': 0.19.1(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) - '@module-federation/node': 2.7.17(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + '@module-federation/enhanced': 0.19.1(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + '@module-federation/node': 2.7.17(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@module-federation/sdk': 0.19.1 fs-extra: 11.3.0 optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 transitivePeerDependencies: - '@rspack/core' - bufferutil @@ -8668,7 +8682,7 @@ snapshots: - vue-tsc - webpack - '@module-federation/rspack@0.19.1(@rspack/core@1.5.6(@swc/helpers@0.5.17))(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': + '@module-federation/rspack@0.19.1(@rspack/core@1.5.7(@swc/helpers@0.5.17))(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.19.1 '@module-federation/dts-plugin': 0.19.1(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) @@ -8677,7 +8691,7 @@ snapshots: '@module-federation/manifest': 0.19.1(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@module-federation/runtime-tools': 0.19.1 '@module-federation/sdk': 0.19.1 - '@rspack/core': 1.5.6(@swc/helpers@0.5.17) + '@rspack/core': 1.5.7(@swc/helpers@0.5.17) btoa: 1.2.1 optionalDependencies: typescript: 5.9.2 @@ -8724,12 +8738,12 @@ snapshots: '@module-federation/sdk@0.19.1': {} - '@module-federation/storybook-addon@4.0.30(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))(webpack-virtual-modules@0.6.2)': + '@module-federation/storybook-addon@4.0.30(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2))(webpack-virtual-modules@0.6.2)': dependencies: - '@module-federation/enhanced': 0.19.1(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) + '@module-federation/enhanced': 0.19.1(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(vue-tsc@3.0.7(typescript@5.9.2)) '@module-federation/sdk': 0.19.1 optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 webpack-virtual-modules: 0.6.2 transitivePeerDependencies: - '@rspack/core' @@ -8883,7 +8897,7 @@ snapshots: dependencies: playwright: 1.55.0 - '@polka/url@1.0.0-next.28': {} + '@polka/url@1.0.0-next.29': {} '@prefresh/core@1.5.5(preact@10.27.2)': dependencies: @@ -8982,21 +8996,21 @@ snapshots: core-js: 3.45.1 jiti: 2.6.0 - '@rsbuild/core@1.5.11': + '@rsbuild/core@1.5.12': dependencies: - '@rspack/core': 1.5.6(@swc/helpers@0.5.17) + '@rspack/core': 1.5.7(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.17 core-js: 3.45.1 jiti: 2.6.0 - '@rsbuild/plugin-babel@1.0.6(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-babel@1.0.6(@rsbuild/core@1.5.12)': dependencies: '@babel/core': 7.28.0 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0) '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0) '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 '@types/babel__core': 7.20.5 deepmerge: 4.3.1 reduce-configs: 1.1.1 @@ -9004,13 +9018,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@rsbuild/plugin-less@1.5.0(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-less@1.5.0(@rsbuild/core@1.5.12)': dependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 deepmerge: 4.3.1 reduce-configs: 1.1.1 - '@rsbuild/plugin-node-polyfill@1.4.2(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-node-polyfill@1.4.2(@rsbuild/core@1.5.12)': dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -9036,39 +9050,39 @@ snapshots: util: 0.12.5 vm-browserify: 1.1.2 optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 - '@rsbuild/plugin-preact@1.5.2(@rsbuild/core@1.5.11)(preact@10.27.2)': + '@rsbuild/plugin-preact@1.5.2(@rsbuild/core@1.5.12)(preact@10.27.2)': dependencies: '@prefresh/core': 1.5.5(preact@10.27.2) '@prefresh/utils': 1.2.1 - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 '@rspack/plugin-preact-refresh': 1.1.2(@prefresh/core@1.5.5(preact@10.27.2))(@prefresh/utils@1.2.1) '@swc/plugin-prefresh': 9.0.1 transitivePeerDependencies: - preact - '@rsbuild/plugin-react@1.4.0(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-react@1.4.1(@rsbuild/core@1.5.12)': dependencies: - '@rsbuild/core': 1.5.11 - '@rspack/plugin-react-refresh': 1.5.0(react-refresh@0.17.0) + '@rsbuild/core': 1.5.12 + '@rspack/plugin-react-refresh': 1.5.1(react-refresh@0.17.0) react-refresh: 0.17.0 transitivePeerDependencies: - webpack-hot-middleware - '@rsbuild/plugin-sass@1.4.0(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-sass@1.4.0(@rsbuild/core@1.5.12)': dependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 deepmerge: 4.3.1 loader-utils: 2.0.4 postcss: 8.5.6 reduce-configs: 1.1.1 sass-embedded: 1.90.0 - '@rsbuild/plugin-solid@1.0.6(@babel/core@7.28.0)(@rsbuild/core@1.5.11)(solid-js@1.9.9)': + '@rsbuild/plugin-solid@1.0.6(@babel/core@7.28.0)(@rsbuild/core@1.5.12)(solid-js@1.9.9)': dependencies: - '@rsbuild/core': 1.5.11 - '@rsbuild/plugin-babel': 1.0.6(@rsbuild/core@1.5.11) + '@rsbuild/core': 1.5.12 + '@rsbuild/plugin-babel': 1.0.6(@rsbuild/core@1.5.12) babel-preset-solid: 1.9.6(@babel/core@7.28.0) solid-refresh: 0.6.3(solid-js@1.9.9) transitivePeerDependencies: @@ -9076,22 +9090,22 @@ snapshots: - solid-js - supports-color - '@rsbuild/plugin-stylus@1.2.0(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))': + '@rsbuild/plugin-stylus@1.2.0(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))': dependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 deepmerge: 4.3.1 reduce-configs: 1.1.1 stylus: 0.64.0 - stylus-loader: 8.1.2(@rspack/core@1.5.6(@swc/helpers@0.5.17))(stylus@0.64.0) + stylus-loader: 8.1.2(@rspack/core@1.5.7(@swc/helpers@0.5.17))(stylus@0.64.0) transitivePeerDependencies: - '@rspack/core' - supports-color - webpack - '@rsbuild/plugin-svgr@1.2.2(@rsbuild/core@1.5.11)(typescript@5.9.2)': + '@rsbuild/plugin-svgr@1.2.2(@rsbuild/core@1.5.12)(typescript@5.9.2)': dependencies: - '@rsbuild/core': 1.5.11 - '@rsbuild/plugin-react': 1.4.0(@rsbuild/core@1.5.11) + '@rsbuild/core': 1.5.12 + '@rsbuild/plugin-react': 1.4.1(@rsbuild/core@1.5.12) '@svgr/core': 8.1.0(typescript@5.9.2) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.2)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.2))(typescript@5.9.2) @@ -9102,36 +9116,36 @@ snapshots: - typescript - webpack-hot-middleware - '@rsbuild/plugin-toml@1.1.1(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-toml@1.1.1(@rsbuild/core@1.5.12)': dependencies: toml: 3.0.0 optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 - '@rsbuild/plugin-type-check@1.2.4(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(typescript@5.9.2)': + '@rsbuild/plugin-type-check@1.2.4(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(typescript@5.9.2)': dependencies: deepmerge: 4.3.1 json5: 2.2.3 reduce-configs: 1.1.1 - ts-checker-rspack-plugin: 1.1.5(@rspack/core@1.5.6(@swc/helpers@0.5.17))(typescript@5.9.2) + ts-checker-rspack-plugin: 1.1.5(@rspack/core@1.5.7(@swc/helpers@0.5.17))(typescript@5.9.2) optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 transitivePeerDependencies: - '@rspack/core' - typescript - '@rsbuild/plugin-typed-css-modules@1.1.0(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-typed-css-modules@1.1.0(@rsbuild/core@1.5.12)': optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 - '@rsbuild/plugin-yaml@1.0.3(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-yaml@1.0.3(@rsbuild/core@1.5.12)': optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 '@rslib/core@0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2)': dependencies: - '@rsbuild/core': 1.5.11 - rsbuild-plugin-dts: 0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@rsbuild/core@1.5.11)(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2) + '@rsbuild/core': 1.5.12 + rsbuild-plugin-dts: 0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@rsbuild/core@1.5.12)(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2) optionalDependencies: '@microsoft/api-extractor': 7.52.13(@types/node@22.18.6) typescript: 5.9.2 @@ -9168,37 +9182,37 @@ snapshots: '@rspack/binding-darwin-arm64@1.5.0': optional: true - '@rspack/binding-darwin-arm64@1.5.6': + '@rspack/binding-darwin-arm64@1.5.7': optional: true '@rspack/binding-darwin-x64@1.5.0': optional: true - '@rspack/binding-darwin-x64@1.5.6': + '@rspack/binding-darwin-x64@1.5.7': optional: true '@rspack/binding-linux-arm64-gnu@1.5.0': optional: true - '@rspack/binding-linux-arm64-gnu@1.5.6': + '@rspack/binding-linux-arm64-gnu@1.5.7': optional: true '@rspack/binding-linux-arm64-musl@1.5.0': optional: true - '@rspack/binding-linux-arm64-musl@1.5.6': + '@rspack/binding-linux-arm64-musl@1.5.7': optional: true '@rspack/binding-linux-x64-gnu@1.5.0': optional: true - '@rspack/binding-linux-x64-gnu@1.5.6': + '@rspack/binding-linux-x64-gnu@1.5.7': optional: true '@rspack/binding-linux-x64-musl@1.5.0': optional: true - '@rspack/binding-linux-x64-musl@1.5.6': + '@rspack/binding-linux-x64-musl@1.5.7': optional: true '@rspack/binding-wasm32-wasi@1.5.0': @@ -9206,7 +9220,7 @@ snapshots: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rspack/binding-wasm32-wasi@1.5.6': + '@rspack/binding-wasm32-wasi@1.5.7': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true @@ -9214,19 +9228,19 @@ snapshots: '@rspack/binding-win32-arm64-msvc@1.5.0': optional: true - '@rspack/binding-win32-arm64-msvc@1.5.6': + '@rspack/binding-win32-arm64-msvc@1.5.7': optional: true '@rspack/binding-win32-ia32-msvc@1.5.0': optional: true - '@rspack/binding-win32-ia32-msvc@1.5.6': + '@rspack/binding-win32-ia32-msvc@1.5.7': optional: true '@rspack/binding-win32-x64-msvc@1.5.0': optional: true - '@rspack/binding-win32-x64-msvc@1.5.6': + '@rspack/binding-win32-x64-msvc@1.5.7': optional: true '@rspack/binding@1.5.0': @@ -9242,18 +9256,18 @@ snapshots: '@rspack/binding-win32-ia32-msvc': 1.5.0 '@rspack/binding-win32-x64-msvc': 1.5.0 - '@rspack/binding@1.5.6': + '@rspack/binding@1.5.7': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.5.6 - '@rspack/binding-darwin-x64': 1.5.6 - '@rspack/binding-linux-arm64-gnu': 1.5.6 - '@rspack/binding-linux-arm64-musl': 1.5.6 - '@rspack/binding-linux-x64-gnu': 1.5.6 - '@rspack/binding-linux-x64-musl': 1.5.6 - '@rspack/binding-wasm32-wasi': 1.5.6 - '@rspack/binding-win32-arm64-msvc': 1.5.6 - '@rspack/binding-win32-ia32-msvc': 1.5.6 - '@rspack/binding-win32-x64-msvc': 1.5.6 + '@rspack/binding-darwin-arm64': 1.5.7 + '@rspack/binding-darwin-x64': 1.5.7 + '@rspack/binding-linux-arm64-gnu': 1.5.7 + '@rspack/binding-linux-arm64-musl': 1.5.7 + '@rspack/binding-linux-x64-gnu': 1.5.7 + '@rspack/binding-linux-x64-musl': 1.5.7 + '@rspack/binding-wasm32-wasi': 1.5.7 + '@rspack/binding-win32-arm64-msvc': 1.5.7 + '@rspack/binding-win32-ia32-msvc': 1.5.7 + '@rspack/binding-win32-x64-msvc': 1.5.7 '@rspack/core@1.5.0(@swc/helpers@0.5.17)': dependencies: @@ -9263,10 +9277,10 @@ snapshots: optionalDependencies: '@swc/helpers': 0.5.17 - '@rspack/core@1.5.6(@swc/helpers@0.5.17)': + '@rspack/core@1.5.7(@swc/helpers@0.5.17)': dependencies: '@module-federation/runtime-tools': 0.18.0 - '@rspack/binding': 1.5.6 + '@rspack/binding': 1.5.7 '@rspack/lite-tapable': 1.0.1 optionalDependencies: '@swc/helpers': 0.5.17 @@ -9278,7 +9292,7 @@ snapshots: '@prefresh/core': 1.5.5(preact@10.27.2) '@prefresh/utils': 1.2.1 - '@rspack/plugin-react-refresh@1.5.0(react-refresh@0.17.0)': + '@rspack/plugin-react-refresh@1.5.1(react-refresh@0.17.0)': dependencies: error-stack-parser: 2.1.4 html-entities: 2.6.0 @@ -9288,8 +9302,8 @@ snapshots: dependencies: '@mdx-js/mdx': 3.1.1 '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.1) - '@rsbuild/core': 1.5.11 - '@rsbuild/plugin-react': 1.4.0(@rsbuild/core@1.5.11) + '@rsbuild/core': 1.5.12 + '@rsbuild/plugin-react': 1.4.1(@rsbuild/core@1.5.12) '@rspress/mdx-rs': 0.6.6 '@rspress/runtime': 2.0.0-beta.33 '@rspress/shared': 2.0.0-beta.33 @@ -9415,7 +9429,7 @@ snapshots: '@rspress/shared@2.0.0-beta.33': dependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 '@shikijs/rehype': 3.12.2 gray-matter: 4.0.3 lodash-es: 4.17.21 @@ -9593,19 +9607,18 @@ snapshots: storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) ts-dedent: 2.2.0 - '@storybook/addon-docs@9.1.6(@types/react@19.1.13)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': + '@storybook/addon-docs@9.1.8(@types/react@19.1.13)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.1) - '@storybook/csf-plugin': 9.1.6(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) + '@storybook/csf-plugin': 9.1.8(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) '@storybook/icons': 1.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@storybook/react-dom-shim': 9.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) + '@storybook/react-dom-shim': 9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - - webpack-sources '@storybook/addon-essentials@9.0.0-alpha.12(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': dependencies: @@ -9660,17 +9673,15 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@storybook/core-webpack@9.1.6(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': + '@storybook/core-webpack@9.1.8(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': dependencies: storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) ts-dedent: 2.2.0 - '@storybook/csf-plugin@9.1.6(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': + '@storybook/csf-plugin@9.1.8(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': dependencies: storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) - unplugin: 1.15.0 - transitivePeerDependencies: - - webpack-sources + unplugin: 1.16.1 '@storybook/global@5.0.0': {} @@ -9698,6 +9709,12 @@ snapshots: react-dom: 19.1.1(react@19.1.1) storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) + '@storybook/react-dom-shim@9.1.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))': + dependencies: + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) + '@storybook/react@9.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2)': dependencies: '@storybook/global': 5.0.0 @@ -12819,7 +12836,7 @@ snapshots: mri@1.2.0: {} - mrmime@2.0.0: {} + mrmime@2.0.1: {} ms@2.1.3: {} @@ -13666,42 +13683,42 @@ snapshots: transitivePeerDependencies: - supports-color - rsbuild-plugin-dts@0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@rsbuild/core@1.5.11)(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2): + rsbuild-plugin-dts@0.13.3(@microsoft/api-extractor@7.52.13(@types/node@22.18.6))(@rsbuild/core@1.5.12)(@typescript/native-preview@7.0.0-dev.20250921.1)(typescript@5.9.2): dependencies: '@ast-grep/napi': 0.37.0 - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 optionalDependencies: '@microsoft/api-extractor': 7.52.13(@types/node@22.18.6) '@typescript/native-preview': 7.0.0-dev.20250921.1 typescript: 5.9.2 - rsbuild-plugin-google-analytics@1.0.4(@rsbuild/core@1.5.11): + rsbuild-plugin-google-analytics@1.0.4(@rsbuild/core@1.5.12): optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 - rsbuild-plugin-html-minifier-terser@1.1.2(@rsbuild/core@1.5.11): + rsbuild-plugin-html-minifier-terser@1.1.2(@rsbuild/core@1.5.12): dependencies: '@types/html-minifier-terser': 7.0.2 html-minifier-terser: 7.2.0 optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 - rsbuild-plugin-open-graph@1.1.0(@rsbuild/core@1.5.11): + rsbuild-plugin-open-graph@1.1.0(@rsbuild/core@1.5.12): optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 - rsbuild-plugin-publint@0.3.3(@rsbuild/core@1.5.11): + rsbuild-plugin-publint@0.3.3(@rsbuild/core@1.5.12): dependencies: picocolors: 1.1.1 publint: 0.3.12 optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 - rsbuild-plugin-unplugin-vue@0.1.0(@rsbuild/core@1.5.11)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1): + rsbuild-plugin-unplugin-vue@0.1.0(@rsbuild/core@1.5.12)(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1): dependencies: unplugin-vue: 6.2.0(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(vue@3.5.21(typescript@5.9.2))(yaml@2.6.1) optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 transitivePeerDependencies: - '@types/node' - jiti @@ -13998,8 +14015,8 @@ snapshots: sirv@2.0.4: dependencies: - '@polka/url': 1.0.0-next.28 - mrmime: 2.0.0 + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 totalist: 3.0.1 slash@3.0.0: {} @@ -14076,20 +14093,20 @@ snapshots: stdin-discarder@0.2.2: {} - storybook-addon-rslib@2.1.1(@rsbuild/core@1.5.11)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2))(typescript@5.9.2): + storybook-addon-rslib@2.1.1(@rsbuild/core@1.5.12)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2))(typescript@5.9.2): dependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 '@rslib/core': link:packages/core - storybook-builder-rsbuild: 2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) + storybook-builder-rsbuild: 2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) optionalDependencies: typescript: 5.9.2 - storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2): + storybook-builder-rsbuild@2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2): dependencies: - '@rsbuild/core': 1.5.11 - '@rsbuild/plugin-type-check': 1.2.4(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(typescript@5.9.2) - '@storybook/addon-docs': 9.1.6(@types/react@19.1.13)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) - '@storybook/core-webpack': 9.1.6(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) + '@rsbuild/core': 1.5.12 + '@rsbuild/plugin-type-check': 1.2.4(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(typescript@5.9.2) + '@storybook/addon-docs': 9.1.8(@types/react@19.1.13)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) + '@storybook/core-webpack': 9.1.8(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1))) browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 @@ -14099,7 +14116,7 @@ snapshots: magic-string: 0.30.19 path-browserify: 1.0.1 process: 0.11.10 - rsbuild-plugin-html-minifier-terser: 1.1.2(@rsbuild/core@1.5.11) + rsbuild-plugin-html-minifier-terser: 1.1.2(@rsbuild/core@1.5.12) sirv: 2.0.4 storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) ts-dedent: 2.2.0 @@ -14113,12 +14130,11 @@ snapshots: transitivePeerDependencies: - '@rspack/core' - '@types/react' - - webpack-sources - storybook-react-rsbuild@2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.2)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2): + storybook-react-rsbuild@2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.46.2)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.46.2) - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 '@storybook/react': 9.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) '@storybook/react-docgen-typescript-plugin': 1.0.1(typescript@5.9.2) find-up: 5.0.0 @@ -14129,7 +14145,7 @@ snapshots: react-dom: 19.1.1(react@19.1.1) resolve: 1.22.10 storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) - storybook-builder-rsbuild: 2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) + storybook-builder-rsbuild: 2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) tsconfig-paths: 4.2.0 optionalDependencies: typescript: 5.9.2 @@ -14139,14 +14155,13 @@ snapshots: - rollup - supports-color - webpack - - webpack-sources - storybook-vue3-rsbuild@2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)): + storybook-vue3-rsbuild@2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)): dependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.5.12 '@storybook/vue3': 9.1.7(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(vue@3.5.21(typescript@5.9.2)) storybook: 9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)) - storybook-builder-rsbuild: 2.1.1(@rsbuild/core@1.5.11)(@rspack/core@1.5.6(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) + storybook-builder-rsbuild: 2.1.1(@rsbuild/core@1.5.12)(@rspack/core@1.5.7(@swc/helpers@0.5.17))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)))(typescript@5.9.2) vue: 3.5.21(typescript@5.9.2) vue-docgen-loader: 2.0.1 transitivePeerDependencies: @@ -14159,7 +14174,6 @@ snapshots: - typescript - vue-docgen-api - webpack - - webpack-sources storybook@9.1.7(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.18.6)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.90.0)(sass@1.90.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.6.1)): dependencies: @@ -14267,13 +14281,13 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - stylus-loader@8.1.2(@rspack/core@1.5.6(@swc/helpers@0.5.17))(stylus@0.64.0): + stylus-loader@8.1.2(@rspack/core@1.5.7(@swc/helpers@0.5.17))(stylus@0.64.0): dependencies: fast-glob: 3.3.2 normalize-path: 3.0.0 stylus: 0.64.0 optionalDependencies: - '@rspack/core': 1.5.6(@swc/helpers@0.5.17) + '@rspack/core': 1.5.7(@swc/helpers@0.5.17) stylus@0.64.0: dependencies: @@ -14421,7 +14435,7 @@ snapshots: trough@2.2.0: {} - ts-checker-rspack-plugin@1.1.5(@rspack/core@1.5.6(@swc/helpers@0.5.17))(typescript@5.9.2): + ts-checker-rspack-plugin@1.1.5(@rspack/core@1.5.7(@swc/helpers@0.5.17))(typescript@5.9.2): dependencies: '@babel/code-frame': 7.27.1 '@rspack/lite-tapable': 1.0.1 @@ -14432,7 +14446,7 @@ snapshots: picocolors: 1.1.1 typescript: 5.9.2 optionalDependencies: - '@rspack/core': 1.5.6(@swc/helpers@0.5.17) + '@rspack/core': 1.5.7(@swc/helpers@0.5.17) ts-dedent@2.2.0: {} @@ -14569,7 +14583,7 @@ snapshots: - tsx - yaml - unplugin@1.15.0: + unplugin@1.16.1: dependencies: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 diff --git a/tests/integration/asset/hash/package.json b/tests/integration/asset/hash/package.json index ce416448f..b524028da 100644 --- a/tests/integration/asset/hash/package.json +++ b/tests/integration/asset/hash/package.json @@ -7,6 +7,6 @@ "react": "^19.1.1" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0" + "@rsbuild/plugin-react": "^1.4.1" } } diff --git a/tests/integration/asset/svgr/package.json b/tests/integration/asset/svgr/package.json index eafcf841e..21e34cee8 100644 --- a/tests/integration/asset/svgr/package.json +++ b/tests/integration/asset/svgr/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-svgr": "^1.2.2" }, "peerDependencies": { diff --git a/tests/integration/bundle-false/svgr/package.json b/tests/integration/bundle-false/svgr/package.json index e1ffdb61b..c1e39c72e 100644 --- a/tests/integration/bundle-false/svgr/package.json +++ b/tests/integration/bundle-false/svgr/package.json @@ -7,7 +7,7 @@ "react": "^19.1.1" }, "devDependencies": { - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-svgr": "^1.2.2" } } diff --git a/tests/integration/preserve-jsx/__snapshots__/cjs.jsx.snap b/tests/integration/preserve-jsx/__snapshots__/cjs.jsx.snap new file mode 100644 index 000000000..12b890918 --- /dev/null +++ b/tests/integration/preserve-jsx/__snapshots__/cjs.jsx.snap @@ -0,0 +1,158 @@ +"use strict"; +var __webpack_modules__ = { + "./App1": function(module) { + module.exports = require("./App1.cjs"); + } +}; +var __webpack_module_cache__ = {}; +function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (void 0 !== cachedModule) return cachedModule.exports; + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId](module, module.exports, __webpack_require__); + return module.exports; +} +(()=>{ + var getProto = Object.getPrototypeOf ? (obj)=>Object.getPrototypeOf(obj) : (obj)=>obj.__proto__; + var leafPrototypes; + __webpack_require__.t = function(value, mode) { + if (1 & mode) value = this(value); + if (8 & mode) return value; + if ('object' == typeof value && value) { + if (4 & mode && value.__esModule) return value; + if (16 & mode && 'function' == typeof value.then) return value; + } + var ns = Object.create(null); + __webpack_require__.r(ns); + var def = {}; + leafPrototypes = leafPrototypes || [ + null, + getProto({}), + getProto([]), + getProto(getProto) + ]; + for(var current = 2 & mode && value; 'object' == typeof current && !~leafPrototypes.indexOf(current); current = getProto(current))Object.getOwnPropertyNames(current).forEach((key)=>{ + def[key] = ()=>value[key]; + }); + def['default'] = ()=>value; + __webpack_require__.d(ns, def); + return ns; + }; +})(); +(()=>{ + __webpack_require__.d = (exports1, definition)=>{ + for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, { + enumerable: true, + get: definition[key] + }); + }; +})(); +(()=>{ + __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop); +})(); +(()=>{ + __webpack_require__.r = (exports1)=>{ + if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, { + value: 'Module' + }); + Object.defineProperty(exports1, '__esModule', { + value: true + }); + }; +})(); +var __webpack_exports__ = {}; +(()=>{ + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: ()=>Root + }); + var external_App1_cjs_ = __webpack_require__("./App1"); + const external_App2_cjs_namespaceObject = require("./App2.cjs"); + const DynamicComponent = ()=>{ + const Component = Math.random() > 0.5 ? external_App1_cjs_.App1A : external_App1_cjs_.App1C; + return Promise.resolve().then(__webpack_require__.t.bind(__webpack_require__, "./App1", 23)).then((mod)=>{ + const Dynamic = mod[Component === external_App1_cjs_.App1A ? 'App1A' : 'App1C']; + return ; + }); + }; + const SectionWithSpread = (props)=>
; + const spreadChildren = [ + First, + Second + ]; + function Root() { + return <> + + <> + + Loading...}> + + + + + + {x ? + + + + + + : } + + + + + } fragmentContent={<> + Nested + Fragment + }/> +
+ {[ +
+ + + + {'item-one'.toUpperCase()} + {} +
, +
+ + app2 + + + + + {} +
, +
+ + + + {(()=>)()} + {} +
+ ]} + {...spreadChildren} + bold' + }}/> + +
+ ; + } +})(); +exports["default"] = __webpack_exports__["default"]; +for(var __webpack_i__ in __webpack_exports__)if (-1 === [ + "default" +].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__]; +Object.defineProperty(exports, '__esModule', { + value: true +}); diff --git a/tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap b/tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap new file mode 100644 index 000000000..0e35c27ce --- /dev/null +++ b/tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap @@ -0,0 +1,81 @@ +import { App, App1A, App1B, App1C, app1cProps } from "./App1.jsx"; +import { App2, app2Props } from "./App2.jsx"; +const DynamicComponent = ()=>{ + const Component = Math.random() > 0.5 ? App1A : App1C; + return import("./App1.jsx").then((mod)=>{ + const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; + return ; + }); +}; +const SectionWithSpread = (props)=>
; +const spreadChildren = [ + First, + Second +]; +function Root() { + return <> + + <> + + Loading...}> + + + + + + {x ? + + + + + + : } + + + + + } fragmentContent={<> + Nested + Fragment + }/> +
+ {[ +
+ + + + {'item-one'.toUpperCase()} + {} +
, +
+ + app2 + + + + + {} +
, +
+ + + + {(()=>)()} + {} +
+ ]} + {...spreadChildren} + bold' + }}/> + +
+ ; +} +export { Root as default }; diff --git a/tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap b/tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap new file mode 100644 index 000000000..c3467e960 --- /dev/null +++ b/tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap @@ -0,0 +1,81 @@ +import { App, App1A, App1B, App1C, app1cProps } from "./App1.js"; +import { App2, app2Props } from "./App2.js"; +const DynamicComponent = ()=>{ + const Component = Math.random() > 0.5 ? App1A : App1C; + return import("./App1.js").then((mod)=>{ + const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; + return ; + }); +}; +const SectionWithSpread = (props)=>
; +const spreadChildren = [ + First, + Second +]; +function Root() { + return <> + + <> + + Loading...}> + + + + + + {x ? + + + + + + : } + + + + + } fragmentContent={<> + Nested + Fragment + }/> +
+ {[ +
+ + + + {'item-one'.toUpperCase()} + {} +
, +
+ + app2 + + + + + {} +
, +
+ + + + {(()=>)()} + {} +
+ ]} + {...spreadChildren} + bold' + }}/> + +
+ ; +} +export { Root as default }; diff --git a/tests/integration/preserve-jsx/default/package.json b/tests/integration/preserve-jsx/default/package.json new file mode 100644 index 000000000..e5a07d912 --- /dev/null +++ b/tests/integration/preserve-jsx/default/package.json @@ -0,0 +1,12 @@ +{ + "name": "preserve-jsx-default-test", + "version": "1.0.0", + "private": true, + "type": "module", + "dependencies": { + "react": "^19.1.1" + }, + "devDependencies": { + "@rsbuild/plugin-react": "^1.4.1" + } +} diff --git a/tests/integration/preserve-jsx/default/rslib.config.ts b/tests/integration/preserve-jsx/default/rslib.config.ts new file mode 100644 index 000000000..bbc1c5857 --- /dev/null +++ b/tests/integration/preserve-jsx/default/rslib.config.ts @@ -0,0 +1,42 @@ +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; +import { generateBundleCjsConfig, generateBundleEsmConfig } from 'test-helper'; + +export default defineConfig({ + lib: [ + generateBundleCjsConfig({ + bundle: false, + }), + generateBundleEsmConfig({ + bundle: false, + output: { + distPath: { + root: 'dist/esm0', + }, + }, + }), + generateBundleEsmConfig({ + bundle: false, + output: { + distPath: { + root: 'dist/esm1', + }, + filename: { + js: '[name].jsx', + }, + }, + }), + ], + source: { + entry: { + index: './src/**', + }, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: 'preserve', + }, + }), + ], +}); diff --git a/tests/integration/preserve-jsx/default/src/Component1.jsx b/tests/integration/preserve-jsx/default/src/Component1.jsx new file mode 100644 index 000000000..4ece10e68 --- /dev/null +++ b/tests/integration/preserve-jsx/default/src/Component1.jsx @@ -0,0 +1,105 @@ +import * as NamespaceImportApp1 from './App1'; +import { App1A, App1C, App1C as C } from './App1'; +import { App2, app2Props } from './App2'; + +const DynamicComponent = () => { + const Component = Math.random() > 0.5 ? App1A : App1C; + return import('./App1').then((mod) => { + const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; + return ; + }); +}; + +const NamespaceComponents = { + Button: ({ label, ...rest }) => ( + + ), +}; + +const SectionWithSpread = (props) =>
; + +const spreadChildren = [ + First, + Second, +]; + +export default function Root() { + return ( + <> + + <> + + Loading...}> + + + + + + {x ? ( + + + + + + + + ) : ( + + )} + + + + + } + fragmentContent={ + <> + Nested + Fragment + + } + /> +
+ {[ +
+ + + + {'item-one'.toUpperCase()} + {/* JSXEmptyExpr in action */} +
, +
+ + app2 + + + + + {/* JSXEmptyExpr in action */} +
, +
+ + + + {(() => ( + + ))()} + {/* JSXEmptyExpr in action */} +
, + ]} + {...spreadChildren} + bold' }} + /> + +
+ + ); +} diff --git a/tests/integration/preserve-jsx/default/src/Component2.tsx b/tests/integration/preserve-jsx/default/src/Component2.tsx new file mode 100644 index 000000000..eb3770c72 --- /dev/null +++ b/tests/integration/preserve-jsx/default/src/Component2.tsx @@ -0,0 +1,115 @@ +import type { JSX, ReactNode } from 'react'; +import type { App1ButtonProps, App1CProps, App1Namespace } from './App1'; +import * as NamespaceImportApp1 from './App1'; +import { App1A, App1C, App1C as C } from './App1'; +import type { AsyncComponentLoader } from './App2'; +import { App2, app2Props } from './App2'; + +interface DynamicComponentState { + Component: typeof App1A | typeof App1C; +} + +const DynamicComponent: AsyncComponentLoader = () => { + const Component: DynamicComponentState['Component'] = + Math.random() > 0.5 ? App1A : App1C; + return import('./App1').then((mod) => { + const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; + return ; + }); +}; + +const NamespaceComponents: App1Namespace = { + Button: ({ label, ...rest }: App1ButtonProps) => ( + + ), +}; + +const SectionWithSpread = (props: Record) => ( +
+); + +const spreadChildren: ReactNode[] = [ + First, + Second, +]; + +export default function Root(): JSX.Element { + return ( + <> + + <> + + Loading...}> + + + + + + {x ? ( + + + + + + + + ) : ( + + )} + + + + + } + fragmentContent={ + <> + Nested + Fragment + + } + /> +
+ {[ +
+ + + + {'item-one'.toUpperCase()} + {/* JSXEmptyExpr in action */} +
, +
+ + app2 + + + + + {/* JSXEmptyExpr in action */} +
, +
+ + + + {(() => ( + + ))()} + {/* JSXEmptyExpr in action */} +
, + ]} + {...spreadChildren} + bold' }} + /> + +
+ + ); +} diff --git a/tests/integration/preserve-jsx/default/tsconfig.json b/tests/integration/preserve-jsx/default/tsconfig.json new file mode 100644 index 000000000..0ddeb9b58 --- /dev/null +++ b/tests/integration/preserve-jsx/default/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "allowJs": true, + "baseUrl": ".", + "declaration": true, + "emitDeclarationOnly": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "jsx": "preserve", + "lib": ["DOM", "ESNext"], + "moduleResolution": "node", + "resolveJsonModule": true, + "rootDir": "src", + "skipLibCheck": true, + "strict": true + }, + "exclude": ["**/node_modules"], + "include": ["src"] +} diff --git a/tests/integration/preserve-jsx/forbid-bundle/package.json b/tests/integration/preserve-jsx/forbid-bundle/package.json new file mode 100644 index 000000000..6360b151a --- /dev/null +++ b/tests/integration/preserve-jsx/forbid-bundle/package.json @@ -0,0 +1,6 @@ +{ + "name": "preserve-jsx-forbid-bundle-test", + "version": "1.0.0", + "private": true, + "type": "module" +} diff --git a/tests/integration/preserve-jsx/forbid-bundle/rslib.config.ts b/tests/integration/preserve-jsx/forbid-bundle/rslib.config.ts new file mode 100644 index 000000000..448d9c2a8 --- /dev/null +++ b/tests/integration/preserve-jsx/forbid-bundle/rslib.config.ts @@ -0,0 +1,19 @@ +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; +import { generateBundleEsmConfig } from 'test-helper'; + +export default defineConfig({ + lib: [generateBundleEsmConfig({})], + source: { + entry: { + index: './src/index.tsx', + }, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: 'preserve', + }, + }), + ], +}); diff --git a/tests/integration/preserve-jsx/forbid-bundle/src/index.tsx b/tests/integration/preserve-jsx/forbid-bundle/src/index.tsx new file mode 100644 index 000000000..64a32fd29 --- /dev/null +++ b/tests/integration/preserve-jsx/forbid-bundle/src/index.tsx @@ -0,0 +1 @@ +export const answer = 42; diff --git a/tests/integration/preserve-jsx/forbid-bundle/tsconfig.json b/tests/integration/preserve-jsx/forbid-bundle/tsconfig.json new file mode 100644 index 000000000..d7462bc92 --- /dev/null +++ b/tests/integration/preserve-jsx/forbid-bundle/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "esModuleInterop": true, + "isolatedModules": true, + "jsx": "preserve", + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext" + }, + "include": ["src"], + "exclude": ["node_modules"] +} diff --git a/tests/integration/preserve-jsx/index.test.ts b/tests/integration/preserve-jsx/index.test.ts new file mode 100644 index 000000000..01dd7b40d --- /dev/null +++ b/tests/integration/preserve-jsx/index.test.ts @@ -0,0 +1,54 @@ +import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; +import { buildAndGetResults, queryContent } from 'test-helper'; + +test('JSX syntax should be preserved', async () => { + const fixturePath = join(__dirname, 'default'); + const { contents } = await buildAndGetResults({ fixturePath }); + const { content: cjsContent } = queryContent(contents.cjs, 'Component1.cjs', { + basename: true, + }); + await expect(cjsContent).toMatchFileSnapshot('./__snapshots__/cjs.jsx.snap'); + + const { content: esmContent } = queryContent( + contents.esm0!, + 'Component1.js', + { + basename: true, + }, + ); + const { content: esmTsxContent } = queryContent( + contents.esm0!, + 'Component2.js', + { + basename: true, + }, + ); + + // apart from the TS types, this tsx file is completely identical to a jsx file. + // expect them to be the same after stripping the types. + expect(esmContent).toBe(esmTsxContent); + await expect(esmContent).toMatchFileSnapshot('./__snapshots__/esm.jsx.snap'); + + const { content: esmJsxContent } = queryContent( + contents.esm1!, + 'Component1.jsx', + { + basename: true, + }, + ); + await expect(esmJsxContent).toMatchFileSnapshot( + './__snapshots__/esm-jsx.jsx.snap', + ); + + await expect(esmContent.replace(/\.js"/g, '.jsx"')).toBe(esmJsxContent); +}); + +test('throw error when preserve JSX with bundle mode', async () => { + const fixturePath = join(__dirname, 'forbid-bundle'); + const build = buildAndGetResults({ fixturePath }); + + await expect(build).rejects.toThrowError( + 'Bundle mode does not support preserving JSX syntax. Set `bundle` to `false` or change the JSX runtime to `automatic` or `classic`.', + ); +}); diff --git a/tests/package.json b/tests/package.json index faa25e86d..eb22d8fad 100644 --- a/tests/package.json +++ b/tests/package.json @@ -18,7 +18,7 @@ "@playwright/test": "1.55.0", "@rsbuild/core": "~1.5.11", "@rsbuild/plugin-less": "^1.5.0", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-sass": "^1.4.0", "@rsbuild/plugin-toml": "^1.1.1", "@rsbuild/plugin-typed-css-modules": "^1.1.0", diff --git a/tests/scripts/shared.ts b/tests/scripts/shared.ts index e2b95576c..c6e453636 100644 --- a/tests/scripts/shared.ts +++ b/tests/scripts/shared.ts @@ -171,7 +171,7 @@ export async function getResults( ? /\.d.(ts|cts|mts)(\.map)?$/ : type === 'css' ? /\.css(\.map)?$/ - : /\.(js|cjs|mjs)(\.map)?$/; + : /\.(js|cjs|mjs|jsx)(\.map)?$/; const content: Record = await globContentJSON(globFolder, { absolute: true, diff --git a/website/docs/en/guide/solution/react.mdx b/website/docs/en/guide/solution/react.mdx index 7c8ae522f..3932c3573 100644 --- a/website/docs/en/guide/solution/react.mdx +++ b/website/docs/en/guide/solution/react.mdx @@ -45,7 +45,7 @@ export default defineConfig({ ## JSX transform -- **Type**: `'automatic' | 'classic'` +- **Type**: `'automatic' | 'classic' | 'preserve'` - **Default**: `'automatic'` React introduced a [new JSX transform](https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) in version 17. This new transform removes the need to import `React` when using JSX. @@ -76,6 +76,36 @@ export default defineConfig({ }); ``` +When you need to keep native JSX in the build output, set the runtime to `'preserve'`. This mode retains JSX syntax so it can be processed later (for example by another bundler). Because the files stay unbundled, you must switch to bundleless mode by setting `bundle: false`. + +To emit `.jsx` files, configure the JS filename template while using the preserve runtime: + +```ts title="rslib.config.ts" twoslash +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; + +export default defineConfig({ + lib: [ + { + bundle: false, + format: 'esm', + output: { + filename: { + js: '[name].jsx', // [!code highlight] + }, + }, + }, + ], + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: 'preserve', + }, + }), + ], +}); +``` + ## JSX import source - **Type**: `string` diff --git a/website/docs/zh/guide/solution/react.mdx b/website/docs/zh/guide/solution/react.mdx index 4450daf50..c0dab5e41 100644 --- a/website/docs/zh/guide/solution/react.mdx +++ b/website/docs/zh/guide/solution/react.mdx @@ -45,7 +45,7 @@ export default defineConfig({ ## JSX transform -- **类型**: `'automatic' | 'classic'` +- **类型**: `'automatic' | 'classic' | 'preserve'` - **默认值**: `'automatic'` React 引入了一个 [新的 JSX transform](https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) 在版本 17 中。这个新的 transform 在使用 JSX 时无需导入 `React`。 @@ -76,6 +76,36 @@ export default defineConfig({ }); ``` +当你希望在构建产物中保留原始 JSX 时,可以将 runtime 设置为 `'preserve'`。该模式会保留 JSX 语法,方便后续由其他打包工具处理。因为文件保持非打包状态,所以必须通过将 `bundle` 设为 `false` 启用 bundleless 模式。 + +若要输出 `.jsx` 后缀的文件,可在使用 preserve runtime 时配置 JS 文件名模版: + +```ts title="rslib.config.ts" twoslash +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; + +export default defineConfig({ + lib: [ + { + bundle: false, + format: 'esm', + output: { + filename: { + js: '[name].jsx', // [!code highlight] + }, + }, + }, + ], + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: 'preserve', + }, + }), + ], +}); +``` + ## JSX import source - **类型**: `string` diff --git a/website/package.json b/website/package.json index d7ab4f4da..d0fb1d39d 100644 --- a/website/package.json +++ b/website/package.json @@ -11,7 +11,7 @@ "devDependencies": { "@module-federation/rsbuild-plugin": "^0.19.1", "@rsbuild/core": "~1.5.11", - "@rsbuild/plugin-react": "^1.4.0", + "@rsbuild/plugin-react": "^1.4.1", "@rsbuild/plugin-sass": "^1.4.0", "@rslib/core": "workspace:*", "@rslib/tsconfig": "workspace:*", From ac405e8453797fcf9705e31bc08f7b788d0f92c1 Mon Sep 17 00:00:00 2001 From: fi3ework Date: Sun, 28 Sep 2025 14:25:27 +0800 Subject: [PATCH 2/5] ok, windows --- .../__snapshots__/esm-jsx.jsx.snap | 81 -------- .../preserve-jsx/__snapshots__/esm.jsx.snap | 81 -------- .../{cjs.jsx.snap => index.test.ts.snap} | 177 +++++++++++++++++- tests/integration/preserve-jsx/index.test.ts | 9 +- 4 files changed, 179 insertions(+), 169 deletions(-) delete mode 100644 tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap delete mode 100644 tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap rename tests/integration/preserve-jsx/__snapshots__/{cjs.jsx.snap => index.test.ts.snap} (52%) diff --git a/tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap b/tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap deleted file mode 100644 index 0e35c27ce..000000000 --- a/tests/integration/preserve-jsx/__snapshots__/esm-jsx.jsx.snap +++ /dev/null @@ -1,81 +0,0 @@ -import { App, App1A, App1B, App1C, app1cProps } from "./App1.jsx"; -import { App2, app2Props } from "./App2.jsx"; -const DynamicComponent = ()=>{ - const Component = Math.random() > 0.5 ? App1A : App1C; - return import("./App1.jsx").then((mod)=>{ - const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; - return ; - }); -}; -const SectionWithSpread = (props)=>
; -const spreadChildren = [ - First, - Second -]; -function Root() { - return <> - - <> - - Loading...}> - - - - - - {x ? - - - - - - : } - - - - - } fragmentContent={<> - Nested - Fragment - }/> -
- {[ -
- - - - {'item-one'.toUpperCase()} - {} -
, -
- - app2 - - - - - {} -
, -
- - - - {(()=>)()} - {} -
- ]} - {...spreadChildren} - bold' - }}/> - -
- ; -} -export { Root as default }; diff --git a/tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap b/tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap deleted file mode 100644 index c3467e960..000000000 --- a/tests/integration/preserve-jsx/__snapshots__/esm.jsx.snap +++ /dev/null @@ -1,81 +0,0 @@ -import { App, App1A, App1B, App1C, app1cProps } from "./App1.js"; -import { App2, app2Props } from "./App2.js"; -const DynamicComponent = ()=>{ - const Component = Math.random() > 0.5 ? App1A : App1C; - return import("./App1.js").then((mod)=>{ - const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; - return ; - }); -}; -const SectionWithSpread = (props)=>
; -const spreadChildren = [ - First, - Second -]; -function Root() { - return <> - - <> - - Loading...}> - - - - - - {x ? - - - - - - : } - - - - - } fragmentContent={<> - Nested - Fragment - }/> -
- {[ -
- - - - {'item-one'.toUpperCase()} - {} -
, -
- - app2 - - - - - {} -
, -
- - - - {(()=>)()} - {} -
- ]} - {...spreadChildren} - bold' - }}/> - -
- ; -} -export { Root as default }; diff --git a/tests/integration/preserve-jsx/__snapshots__/cjs.jsx.snap b/tests/integration/preserve-jsx/__snapshots__/index.test.ts.snap similarity index 52% rename from tests/integration/preserve-jsx/__snapshots__/cjs.jsx.snap rename to tests/integration/preserve-jsx/__snapshots__/index.test.ts.snap index 12b890918..c447ab4e5 100644 --- a/tests/integration/preserve-jsx/__snapshots__/cjs.jsx.snap +++ b/tests/integration/preserve-jsx/__snapshots__/index.test.ts.snap @@ -1,4 +1,7 @@ -"use strict"; +// Rstest Snapshot v1 + +exports[`JSX syntax should be preserved 1`] = ` +""use strict"; var __webpack_modules__ = { "./App1": function(module) { module.exports = require("./App1.cjs"); @@ -156,3 +159,175 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [ Object.defineProperty(exports, '__esModule', { value: true }); +" +`; + +exports[`JSX syntax should be preserved 2`] = ` +"import { App, App1A, App1B, App1C, app1cProps } from "./App1.js"; +import { App2, app2Props } from "./App2.js"; +const DynamicComponent = ()=>{ + const Component = Math.random() > 0.5 ? App1A : App1C; + return import("./App1.js").then((mod)=>{ + const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; + return ; + }); +}; +const SectionWithSpread = (props)=>
; +const spreadChildren = [ + First, + Second +]; +function Root() { + return <> + + <> + + Loading...}> + + + + + + {x ? + + + + + + : } + + + + + } fragmentContent={<> + Nested + Fragment + }/> +
+ {[ +
+ + + + {'item-one'.toUpperCase()} + {} +
, +
+ + app2 + + + + + {} +
, +
+ + + + {(()=>)()} + {} +
+ ]} + {...spreadChildren} + bold' + }}/> + +
+ ; +} +export { Root as default }; +" +`; + +exports[`JSX syntax should be preserved 3`] = ` +"import { App, App1A, App1B, App1C, app1cProps } from "./App1.jsx"; +import { App2, app2Props } from "./App2.jsx"; +const DynamicComponent = ()=>{ + const Component = Math.random() > 0.5 ? App1A : App1C; + return import("./App1.jsx").then((mod)=>{ + const Dynamic = mod[Component === App1A ? 'App1A' : 'App1C']; + return ; + }); +}; +const SectionWithSpread = (props)=>
; +const spreadChildren = [ + First, + Second +]; +function Root() { + return <> + + <> + + Loading...}> + + + + + + {x ? + + + + + + : } + + + + + } fragmentContent={<> + Nested + Fragment + }/> +
+ {[ +
+ + + + {'item-one'.toUpperCase()} + {} +
, +
+ + app2 + + + + + {} +
, +
+ + + + {(()=>)()} + {} +
+ ]} + {...spreadChildren} + bold' + }}/> + +
+ ; +} +export { Root as default }; +" +`; diff --git a/tests/integration/preserve-jsx/index.test.ts b/tests/integration/preserve-jsx/index.test.ts index 01dd7b40d..53201ab0a 100644 --- a/tests/integration/preserve-jsx/index.test.ts +++ b/tests/integration/preserve-jsx/index.test.ts @@ -8,7 +8,7 @@ test('JSX syntax should be preserved', async () => { const { content: cjsContent } = queryContent(contents.cjs, 'Component1.cjs', { basename: true, }); - await expect(cjsContent).toMatchFileSnapshot('./__snapshots__/cjs.jsx.snap'); + await expect(cjsContent).toMatchSnapshot(); const { content: esmContent } = queryContent( contents.esm0!, @@ -28,7 +28,7 @@ test('JSX syntax should be preserved', async () => { // apart from the TS types, this tsx file is completely identical to a jsx file. // expect them to be the same after stripping the types. expect(esmContent).toBe(esmTsxContent); - await expect(esmContent).toMatchFileSnapshot('./__snapshots__/esm.jsx.snap'); + await expect(esmContent).toMatchSnapshot(); const { content: esmJsxContent } = queryContent( contents.esm1!, @@ -37,10 +37,7 @@ test('JSX syntax should be preserved', async () => { basename: true, }, ); - await expect(esmJsxContent).toMatchFileSnapshot( - './__snapshots__/esm-jsx.jsx.snap', - ); - + await expect(esmJsxContent).toMatchSnapshot(); await expect(esmContent.replace(/\.js"/g, '.jsx"')).toBe(esmJsxContent); }); From 234bdcdf3f32f4178d1372c7a4f34b705ec4d9c4 Mon Sep 17 00:00:00 2001 From: fi3ework Date: Sun, 28 Sep 2025 14:59:28 +0800 Subject: [PATCH 3/5] cr --- packages/core/src/config.ts | 9 +++++++-- tests/integration/preserve-jsx/index.test.ts | 18 +++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts index 075a6be94..1816871e2 100644 --- a/packages/core/src/config.ts +++ b/packages/core/src/config.ts @@ -849,9 +849,14 @@ const BundlePlugin = (): RsbuildPlugin => ({ if (bundlerConfigs) { for (const config of bundlerConfigs) { if (config?.module?.parser?.javascript?.jsx === true) { - throw new Error( - 'Bundle mode does not support preserving JSX syntax. Set `bundle` to `false` or change the JSX runtime to `automatic` or `classic`.', + logger.error( + 'Bundle mode does not support preserving JSX syntax. Set "bundle" to "false" or change the JSX runtime to `automatic` or `classic`. Check out ' + + color.green( + 'https://rslib.rs/guide/solution/react#jsx-transform', + ) + + ' for more details.', ); + process.exit(1); } } } diff --git a/tests/integration/preserve-jsx/index.test.ts b/tests/integration/preserve-jsx/index.test.ts index 53201ab0a..8077f024e 100644 --- a/tests/integration/preserve-jsx/index.test.ts +++ b/tests/integration/preserve-jsx/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; import { expect, test } from '@rstest/core'; -import { buildAndGetResults, queryContent } from 'test-helper'; +import { buildAndGetResults, proxyConsole, queryContent } from 'test-helper'; test('JSX syntax should be preserved', async () => { const fixturePath = join(__dirname, 'default'); @@ -43,9 +43,17 @@ test('JSX syntax should be preserved', async () => { test('throw error when preserve JSX with bundle mode', async () => { const fixturePath = join(__dirname, 'forbid-bundle'); - const build = buildAndGetResults({ fixturePath }); + const { logs, restore } = proxyConsole(); - await expect(build).rejects.toThrowError( - 'Bundle mode does not support preserving JSX syntax. Set `bundle` to `false` or change the JSX runtime to `automatic` or `classic`.', - ); + try { + await buildAndGetResults({ fixturePath }); + } catch { + expect(logs).toMatchInlineSnapshot(` + [ + "error Bundle mode does not support preserving JSX syntax. Set "bundle" to "false" or change the JSX runtime to \`automatic\` or \`classic\`. Check out https://rslib.rs/guide/solution/react#jsx-transform for more details.", + ] + `); + } finally { + restore(); + } }); From 588e6120be697ea148feee6e84b854215b1a14d5 Mon Sep 17 00:00:00 2001 From: Wei Date: Sun, 28 Sep 2025 15:12:03 +0800 Subject: [PATCH 4/5] docs: clarify preserve runtime requirements --- website/docs/en/guide/solution/react.mdx | 10 ++++++++-- website/docs/zh/guide/solution/react.mdx | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/website/docs/en/guide/solution/react.mdx b/website/docs/en/guide/solution/react.mdx index 3932c3573..058cd360a 100644 --- a/website/docs/en/guide/solution/react.mdx +++ b/website/docs/en/guide/solution/react.mdx @@ -76,9 +76,15 @@ export default defineConfig({ }); ``` -When you need to keep native JSX in the build output, set the runtime to `'preserve'`. This mode retains JSX syntax so it can be processed later (for example by another bundler). Because the files stay unbundled, you must switch to bundleless mode by setting `bundle: false`. +When you need to keep native JSX in the build output, set the runtime to `'preserve'`. This mode retains JSX syntax so it can be processed later (for example by another bundler). -To emit `.jsx` files, configure the JS filename template while using the preserve runtime: +::: warn + +Because the files stay unbundled, you must switch to bundleless mode by setting `bundle: false`. + +::: + +To emit `.jsx` files, configure the JS filename template through [output.filename](/config/rsbuild/output#outputfilename) while using the preserve runtime: ```ts title="rslib.config.ts" twoslash import { pluginReact } from '@rsbuild/plugin-react'; diff --git a/website/docs/zh/guide/solution/react.mdx b/website/docs/zh/guide/solution/react.mdx index c0dab5e41..4d0c19dba 100644 --- a/website/docs/zh/guide/solution/react.mdx +++ b/website/docs/zh/guide/solution/react.mdx @@ -76,9 +76,15 @@ export default defineConfig({ }); ``` -当你希望在构建产物中保留原始 JSX 时,可以将 runtime 设置为 `'preserve'`。该模式会保留 JSX 语法,方便后续由其他打包工具处理。因为文件保持非打包状态,所以必须通过将 `bundle` 设为 `false` 启用 bundleless 模式。 +当你希望在构建产物中保留原始 JSX 时,可以将 runtime 设置为 `'preserve'`。该模式会保留 JSX 语法,方便后续由其他打包工具处理。 -若要输出 `.jsx` 后缀的文件,可在使用 preserve runtime 时配置 JS 文件名模版: +::: warn + +因为文件保持非打包状态,所以必须通过将 `bundle` 设为 `false` 启用 bundleless 模式。 + +::: + +若要输出 `.jsx` 后缀的文件,可通过 [output.filename](/config/rsbuild/output#outputfilename) 配置 JS 文件名模版: ```ts title="rslib.config.ts" twoslash import { pluginReact } from '@rsbuild/plugin-react'; From f6b3281a1e5b1e62b2eabc6b069649eec9095e3d Mon Sep 17 00:00:00 2001 From: Timeless0911 <1604889533@qq.com> Date: Sun, 28 Sep 2025 16:02:47 +0800 Subject: [PATCH 5/5] chore: update --- website/docs/en/guide/solution/react.mdx | 21 ++++++++++++--------- website/docs/zh/guide/solution/react.mdx | 19 +++++++++++-------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/website/docs/en/guide/solution/react.mdx b/website/docs/en/guide/solution/react.mdx index 058cd360a..1b337146a 100644 --- a/website/docs/en/guide/solution/react.mdx +++ b/website/docs/en/guide/solution/react.mdx @@ -45,14 +45,16 @@ export default defineConfig({ ## JSX transform -- **Type**: `'automatic' | 'classic' | 'preserve'` -- **Default**: `'automatic'` +- **Type:** `'automatic' | 'classic' | 'preserve'` +- **Default:** `'automatic'` React introduced a [new JSX transform](https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) in version 17. This new transform removes the need to import `React` when using JSX. -By default, Rsbuild uses the new JSX transform, which is `runtime: 'automatic'`. It requires at least React `16.14.0` or higher. The `peerDependencies` should be declared as `"react": ">=16.14.0"`. +By default, Rslib uses the new JSX transform, which is `runtime: 'automatic'`. It requires at least React `16.14.0` or higher and the `peerDependencies` should be specified as `"react": ">=16.14.0"`. -To change the JSX transform, you can pass the [swcReactOptions](https://rsbuild.rs/plugins/list/plugin-react#swcreactoptionsruntime) option to the React plugin. For example, to use the classic runtime: +To change the JSX transform, you can set the [swcReactOptions](https://rsbuild.rs/plugins/list/plugin-react#swcreactoptionsruntime) option in `@rsbuild/plugin-react`. + +For example, to use the classic runtime: ```ts title="rslib.config.ts" twoslash import { pluginReact } from '@rsbuild/plugin-react'; @@ -76,15 +78,15 @@ export default defineConfig({ }); ``` -When you need to keep native JSX in the build output, set the runtime to `'preserve'`. This mode retains JSX syntax so it can be processed later (for example by another bundler). +When you need to keep native JSX in the build output, you can set the runtime to `'preserve'` to leave JSX syntax unchanged without transforming it, which is useful for subsequent processing by other bundlers. -::: warn +::: warning -Because the files stay unbundled, you must switch to bundleless mode by setting `bundle: false`. +When using `runtime: 'preserve'`, you must set `bundle: false` to enable [bundleless mode](/guide/basic/output-structure#bundle--bundleless) to keep files unbundled. ::: -To emit `.jsx` files, configure the JS filename template through [output.filename](/config/rsbuild/output#outputfilename) while using the preserve runtime: +To emit `.jsx` files, you can configure the JS filename template through [output.filename](/config/rsbuild/output#outputfilename) option: ```ts title="rslib.config.ts" twoslash import { pluginReact } from '@rsbuild/plugin-react'; @@ -95,9 +97,10 @@ export default defineConfig({ { bundle: false, format: 'esm', + // [!code highlight:5] output: { filename: { - js: '[name].jsx', // [!code highlight] + js: '[name].jsx', }, }, }, diff --git a/website/docs/zh/guide/solution/react.mdx b/website/docs/zh/guide/solution/react.mdx index 4d0c19dba..9b075472c 100644 --- a/website/docs/zh/guide/solution/react.mdx +++ b/website/docs/zh/guide/solution/react.mdx @@ -45,14 +45,16 @@ export default defineConfig({ ## JSX transform -- **类型**: `'automatic' | 'classic' | 'preserve'` -- **默认值**: `'automatic'` +- **类型:** `'automatic' | 'classic' | 'preserve'` +- **默认值:** `'automatic'` React 引入了一个 [新的 JSX transform](https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) 在版本 17 中。这个新的 transform 在使用 JSX 时无需导入 `React`。 -默认情况下,Rsbuild 使用新的 JSX 转换,即 `runtime: 'automatic'`。需要 React `16.14.0` 或更高版本。 `peerDependencies` 中应声明 `"react": ">=16.14.0"`。 +默认情况下,Rslib 使用新的 JSX 转换,即 `runtime: 'automatic'`。这需要 React `16.14.0` 或更高版本,且 `peerDependencies` 中应声明 `"react": ">=16.14.0"`。 -要更改 JSX transform,可以传递 [swcReactOptions](https://rsbuild.rs/zh/plugins/list/plugin-react#swcreactoptionsruntime) 给 React plugin. 比如要使用 classic runtime 时: +要更改 JSX transform,可以在 `@rsbuild/plugin-react` 中设置 [swcReactOptions](https://rsbuild.rs/zh/plugins/list/plugin-react#swcreactoptionsruntime) 选项。 + +比如要使用 classic runtime 时: ```ts title="rslib.config.ts" twoslash import { pluginReact } from '@rsbuild/plugin-react'; @@ -76,11 +78,11 @@ export default defineConfig({ }); ``` -当你希望在构建产物中保留原始 JSX 时,可以将 runtime 设置为 `'preserve'`。该模式会保留 JSX 语法,方便后续由其他打包工具处理。 +当你希望在构建产物中保留原始 JSX 时,可以将 runtime 设置为 `'preserve'`。该模式可以保持 JSX 语法原样,不做任何转换,方便后续由其他打包工具处理。 -::: warn +::: warning -因为文件保持非打包状态,所以必须通过将 `bundle` 设为 `false` 启用 bundleless 模式。 +使用 `runtime: 'preserve'` 时,必须设置 `bundle: false` 启用 [bundleless 模式](/guide/basic/output-structure#bundle--bundleless) 使文件保持非打包状态。 ::: @@ -95,9 +97,10 @@ export default defineConfig({ { bundle: false, format: 'esm', + // [!code highlight:5] output: { filename: { - js: '[name].jsx', // [!code highlight] + js: '[name].jsx', }, }, },