From a7435cd55703d465a8d541101d8ecea6047719cc Mon Sep 17 00:00:00 2001 From: "gaoyuan.1226" Date: Thu, 21 Aug 2025 11:36:49 +0800 Subject: [PATCH 1/7] fix: can not rerun all tests when has command filter --- e2e/watch/shortcuts.test.ts | 37 ++++++++++++++++++++ packages/core/src/core/plugins/entry.ts | 46 ++++++++++++++++++++++++- packages/core/src/core/runTests.ts | 5 ++- 3 files changed, 84 insertions(+), 4 deletions(-) diff --git a/e2e/watch/shortcuts.test.ts b/e2e/watch/shortcuts.test.ts index 269c18cc..1f112966 100644 --- a/e2e/watch/shortcuts.test.ts +++ b/e2e/watch/shortcuts.test.ts @@ -90,4 +90,41 @@ describe('CLI shortcuts', () => { cli.exec.kill(); }); + + it('shortcut `a` should work as expected with command filter', async () => { + const fixturesTargetPath = `${__dirname}/fixtures-test-shortcuts-a`; + await prepareFixtures({ + fixturesPath: `${__dirname}/fixtures-shortcuts`, + fixturesTargetPath, + }); + + const { cli } = await runRstestCli({ + command: 'rstest', + args: ['watch', 'index1'], + options: { + nodeOptions: { + env: { + FORCE_TTY: 'true', + CI: undefined, + }, + cwd: fixturesTargetPath, + }, + }, + }); + + // initial run + await cli.waitForStdout('Duration'); + expect(cli.stdout).toMatch('Tests 1 failed'); + + await cli.waitForStdout('press h to show help'); + + cli.resetStd(); + + // rerun all tests + cli.exec.process!.stdin!.write('a'); + await cli.waitForStdout('Duration'); + expect(cli.stdout).toMatch('Tests 1 failed | 1 passed'); + + cli.exec.kill(); + }); }); diff --git a/packages/core/src/core/plugins/entry.ts b/packages/core/src/core/plugins/entry.ts index 5a636669..8b6c53a8 100644 --- a/packages/core/src/core/plugins/entry.ts +++ b/packages/core/src/core/plugins/entry.ts @@ -25,6 +25,18 @@ class TestFileWatchPlugin { } } +const rstestVirtualEntryFlag = 'rstest-virtual-entry-'; + +let rerunTrigger: (() => void) | null = null; + +const registerRerunTrigger = (fn: () => void) => { + rerunTrigger = fn; +}; + +export const triggerRerun = (): void => { + rerunTrigger?.(); +}; + export const pluginEntryWatch: (params: { globTestSourceEntries: () => Promise>; setupFiles: Record; @@ -38,14 +50,46 @@ export const pluginEntryWatch: (params: { }) => ({ name: 'rstest:entry-watch', setup: (api) => { - api.modifyRspackConfig(async (config) => { + api.onCloseDevServer(() => { + rerunTrigger = null; + }); + + api.modifyRspackConfig(async (config, { rspack }) => { if (isWatch) { + // FIXME: inspect config will retrigger initConfig + if (rerunTrigger) { + return; + } + config.plugins.push(new TestFileWatchPlugin(api.context.rootPath)); + + // Add virtual entry to trigger recompile + const virtualEntryName = `${rstestVirtualEntryFlag}${config.name!}.js`; + const virtualEntryPath = `${config.context!}/${virtualEntryName}`; + + const virtualModulesPlugin = + new rspack.experiments.VirtualModulesPlugin({ + [virtualEntryPath]: `export const virtualEntry = ${Date.now()}`, + }); + + registerRerunTrigger(() => + virtualModulesPlugin.writeModule( + virtualEntryPath, + `export const virtualEntry = ${Date.now()}`, + ), + ); + + config.experiments ??= {}; + config.experiments.nativeWatcher = true; + + config.plugins.push(virtualModulesPlugin); + config.entry = async () => { const sourceEntries = await globTestSourceEntries(); return { ...sourceEntries, ...setupFiles, + [virtualEntryPath]: virtualEntryPath, }; }; diff --git a/packages/core/src/core/runTests.ts b/packages/core/src/core/runTests.ts index a923cbea..b77a88cb 100644 --- a/packages/core/src/core/runTests.ts +++ b/packages/core/src/core/runTests.ts @@ -175,6 +175,7 @@ export async function runTests(context: RstestContext): Promise { }; const { onBeforeRestart } = await import('./restart'); + const { triggerRerun } = await import('./plugins/entry'); onBeforeRestart(async () => { await pool.close(); @@ -201,9 +202,7 @@ export async function runTests(context: RstestContext): Promise { context.normalizedConfig.testNamePattern = undefined; context.fileFilters = undefined; - // TODO: should rerun compile with new entries - await run(); - afterTestsWatchRun(); + triggerRerun(); }, runWithTestNamePattern: async (pattern?: string) => { clearLogs(); From 630b788d01e4fa4be90f044ddd3d796f795d9fa3 Mon Sep 17 00:00:00 2001 From: "gaoyuan.1226" Date: Fri, 22 Aug 2025 17:02:33 +0800 Subject: [PATCH 2/7] fix: update default aggregateTimeout --- packages/core/src/core/plugins/entry.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/src/core/plugins/entry.ts b/packages/core/src/core/plugins/entry.ts index 8b6c53a8..b197cd66 100644 --- a/packages/core/src/core/plugins/entry.ts +++ b/packages/core/src/core/plugins/entry.ts @@ -94,6 +94,8 @@ export const pluginEntryWatch: (params: { }; config.watchOptions ??= {}; + config.watchOptions.aggregateTimeout = 5; + // TODO: rspack should support `(string | RegExp)[]` type // https://github.com/web-infra-dev/rspack/issues/10596 config.watchOptions.ignored = castArray( From 2d11b19c2ec569c1d206c589822d987eb8b68172 Mon Sep 17 00:00:00 2001 From: "gaoyuan.1226" Date: Tue, 26 Aug 2025 19:23:38 +0800 Subject: [PATCH 3/7] fix: bump rsbuild --- e2e/dom/fixtures/package.json | 2 +- e2e/package.json | 2 +- e2e/vue/fixtures/package.json | 2 +- examples/react/package.json | 2 +- packages/core/package.json | 2 +- .../core/__snapshots__/rsbuild.test.ts.snap | 60 ++-- pnpm-lock.yaml | 262 +++++++++++++----- 7 files changed, 223 insertions(+), 109 deletions(-) diff --git a/e2e/dom/fixtures/package.json b/e2e/dom/fixtures/package.json index 3083d512..20aa9c4c 100644 --- a/e2e/dom/fixtures/package.json +++ b/e2e/dom/fixtures/package.json @@ -11,7 +11,7 @@ "react-dom": "^19.1.1" }, "devDependencies": { - "@rsbuild/core": "1.5.0-rc.0", + "@rsbuild/core": "1.5.0", "@rsbuild/plugin-react": "^1.3.5", "@testing-library/jest-dom": "^6.8.0", "@testing-library/dom": "^10.4.1", diff --git a/e2e/package.json b/e2e/package.json index a8a990c3..0d29c2f7 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -7,7 +7,7 @@ "typecheck": "tsc --noEmit" }, "devDependencies": { - "@rsbuild/core": "1.5.0-rc.0", + "@rsbuild/core": "1.5.0", "@rslib/core": "0.12.2", "@rstest/core": "workspace:*", "@rstest/tsconfig": "workspace:*", diff --git a/e2e/vue/fixtures/package.json b/e2e/vue/fixtures/package.json index 5b881b50..f72ccb44 100644 --- a/e2e/vue/fixtures/package.json +++ b/e2e/vue/fixtures/package.json @@ -12,7 +12,7 @@ }, "devDependencies": { "@rstest/core": "workspace:*", - "@rsbuild/core": "1.5.0-rc.0", + "@rsbuild/core": "1.5.0", "@rsbuild/plugin-babel": "^1.0.6", "@rsbuild/plugin-vue": "^1.1.1", "@rsbuild/plugin-vue-jsx": "^1.1.1", diff --git a/examples/react/package.json b/examples/react/package.json index 78056792..132d26b3 100644 --- a/examples/react/package.json +++ b/examples/react/package.json @@ -13,7 +13,7 @@ "react-dom": "^19.1.1" }, "devDependencies": { - "@rsbuild/core": "1.5.0-rc.0", + "@rsbuild/core": "1.5.0", "@rsbuild/plugin-react": "^1.3.5", "@testing-library/dom": "^10.4.1", "@testing-library/react": "^16.3.0", diff --git a/packages/core/package.json b/packages/core/package.json index 003f4233..db750392 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -52,7 +52,7 @@ "dependencies": { "chai": "^5.3.1", "@types/chai": "^5.2.2", - "@rsbuild/core": "1.5.0-rc.0", + "@rsbuild/core": "1.5.0", "birpc": "2.5.0", "pathe": "^2.0.3", "std-env": "^3.9.0", diff --git a/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap b/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap index 3899d192..da41777c 100644 --- a/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap +++ b/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap @@ -59,8 +59,8 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = }, "resourceQuery": { "not": [ - /\\^\\\\\\?raw\\$/, - /\\^\\\\\\?inline\\$/, + /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, + /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, ], }, "sideEffects": true, @@ -104,7 +104,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = "resolve": { "preferRelative": true, }, - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "sideEffects": true, "test": /\\\\\\.css\\$/, "type": "javascript/auto", @@ -121,7 +121,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = ], }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "test": /\\\\\\.css\\$/, "type": "asset/source", }, @@ -136,7 +136,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = /\\\\\\.\\(\\?:ts\\|tsx\\|jsx\\|mts\\|cts\\)\\$/, ], "resourceQuery": { - "not": /\\^\\\\\\?raw\\$/, + "not": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, }, "test": /\\\\\\.\\(\\?:js\\|jsx\\|mjs\\|cjs\\|ts\\|tsx\\|mts\\|cts\\)\\$/, "type": "javascript/auto", @@ -180,7 +180,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = ], }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "test": /\\\\\\.\\(\\?:js\\|jsx\\|mjs\\|cjs\\|ts\\|tsx\\|mts\\|cts\\)\\$/, "type": "asset/source", }, @@ -243,11 +243,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -274,11 +274,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -305,11 +305,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -336,11 +336,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -578,8 +578,8 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` }, "resourceQuery": { "not": [ - /\\^\\\\\\?raw\\$/, - /\\^\\\\\\?inline\\$/, + /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, + /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, ], }, "sideEffects": true, @@ -623,7 +623,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` "resolve": { "preferRelative": true, }, - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "sideEffects": true, "test": /\\\\\\.css\\$/, "type": "javascript/auto", @@ -640,7 +640,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` ], }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "test": /\\\\\\.css\\$/, "type": "asset/source", }, @@ -655,7 +655,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` /\\\\\\.\\(\\?:ts\\|tsx\\|jsx\\|mts\\|cts\\)\\$/, ], "resourceQuery": { - "not": /\\^\\\\\\?raw\\$/, + "not": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, }, "test": /\\\\\\.\\(\\?:js\\|jsx\\|mjs\\|cjs\\|ts\\|tsx\\|mts\\|cts\\)\\$/, "type": "javascript/auto", @@ -699,7 +699,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` ], }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "test": /\\\\\\.\\(\\?:js\\|jsx\\|mjs\\|cjs\\|ts\\|tsx\\|mts\\|cts\\)\\$/, "type": "asset/source", }, @@ -762,11 +762,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -793,11 +793,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -824,11 +824,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -855,11 +855,11 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` "type": "asset/resource", }, { - "resourceQuery": /\\^\\\\\\?inline\\$/, + "resourceQuery": /\\[\\?&\\]inline\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/inline", }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "type": "asset/source", }, { @@ -1048,7 +1048,7 @@ exports[`prepareRsbuild > should generate swc config correctly with user customi /node_modules\\[\\\\\\\\/\\]query-string\\[\\\\\\\\/\\]/, ], "resourceQuery": { - "not": /\\^\\\\\\?raw\\$/, + "not": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, }, "test": /\\\\\\.\\(\\?:js\\|jsx\\|mjs\\|cjs\\|ts\\|tsx\\|mts\\|cts\\)\\$/, "type": "javascript/auto", @@ -1093,7 +1093,7 @@ exports[`prepareRsbuild > should generate swc config correctly with user customi ], }, { - "resourceQuery": /\\^\\\\\\?raw\\$/, + "resourceQuery": /\\[\\?&\\]raw\\(\\?:&\\|=\\|\\$\\)/, "test": /\\\\\\.\\(\\?:js\\|jsx\\|mjs\\|cjs\\|ts\\|tsx\\|mts\\|cts\\)\\$/, "type": "asset/source", }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3484fd8f..e497be3c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,7 +18,7 @@ importers: version: 2.29.6(@types/node@22.13.8) '@rsdoctor/rspack-plugin': specifier: ^1.2.3 - version: 1.2.3(@rsbuild/core@1.4.15)(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) + version: 1.2.3(@rsbuild/core@1.5.0)(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) '@rslint/core': specifier: ^0.1.11 version: 0.1.11 @@ -71,8 +71,8 @@ importers: e2e: devDependencies: '@rsbuild/core': - specifier: 1.5.0-rc.0 - version: 1.5.0-rc.0 + specifier: 1.5.0 + version: 1.5.0 '@rslib/core': specifier: 0.12.2 version: 0.12.2(@microsoft/api-extractor@7.52.11(@types/node@22.13.8))(typescript@5.9.2) @@ -133,11 +133,11 @@ importers: version: 19.1.1(react@19.1.1) devDependencies: '@rsbuild/core': - specifier: 1.5.0-rc.0 - version: 1.5.0-rc.0 + specifier: 1.5.0 + version: 1.5.0 '@rsbuild/plugin-react': specifier: ^1.3.5 - version: 1.3.5(@rsbuild/core@1.5.0-rc.0) + version: 1.3.5(@rsbuild/core@1.5.0) '@testing-library/dom': specifier: ^10.4.1 version: 10.4.1 @@ -235,7 +235,7 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.5 - version: 1.3.5(@rsbuild/core@1.5.0-rc.0) + version: 1.3.5(@rsbuild/core@1.5.0) '@types/react': specifier: ^19.1.10 version: 19.1.10 @@ -253,17 +253,17 @@ importers: version: 3.5.19(typescript@5.9.2) devDependencies: '@rsbuild/core': - specifier: 1.5.0-rc.0 - version: 1.5.0-rc.0 + specifier: 1.5.0 + version: 1.5.0 '@rsbuild/plugin-babel': specifier: ^1.0.6 - version: 1.0.6(@rsbuild/core@1.5.0-rc.0) + version: 1.0.6(@rsbuild/core@1.5.0) '@rsbuild/plugin-vue': specifier: ^1.1.1 - version: 1.1.1(@rsbuild/core@1.5.0-rc.0)(vue@3.5.19(typescript@5.9.2)) + version: 1.1.1(@rsbuild/core@1.5.0)(vue@3.5.19(typescript@5.9.2)) '@rsbuild/plugin-vue-jsx': specifier: ^1.1.1 - version: 1.1.1(@babel/core@7.28.3)(@rsbuild/core@1.5.0-rc.0) + version: 1.1.1(@babel/core@7.28.3)(@rsbuild/core@1.5.0) '@rstest/core': specifier: workspace:* version: link:../../../packages/core @@ -305,11 +305,11 @@ importers: version: 19.1.1(react@19.1.1) devDependencies: '@rsbuild/core': - specifier: 1.5.0-rc.0 - version: 1.5.0-rc.0 + specifier: 1.5.0 + version: 1.5.0 '@rsbuild/plugin-react': specifier: ^1.3.5 - version: 1.3.5(@rsbuild/core@1.5.0-rc.0) + version: 1.3.5(@rsbuild/core@1.5.0) '@testing-library/dom': specifier: ^10.4.1 version: 10.4.1 @@ -332,8 +332,8 @@ importers: packages/core: dependencies: '@rsbuild/core': - specifier: 1.5.0-rc.0 - version: 1.5.0-rc.0 + specifier: 1.5.0 + version: 1.5.0 '@types/chai': specifier: ^5.2.2 version: 5.2.2 @@ -432,7 +432,7 @@ importers: devDependencies: '@rsbuild/plugin-sass': specifier: ^1.3.5 - version: 1.3.5(@rsbuild/core@1.5.0-rc.0) + version: 1.3.5(@rsbuild/core@1.5.0) '@rspress/core': specifier: ^2.0.0-beta.28 version: 2.0.0-beta.28(@types/react@19.1.10)(acorn@8.15.0) @@ -462,10 +462,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.0-rc.0) + version: 1.0.4(@rsbuild/core@1.5.0) rsbuild-plugin-open-graph: specifier: ^1.1.0 - version: 1.1.0(@rsbuild/core@1.5.0-rc.0) + version: 1.1.0(@rsbuild/core@1.5.0) rspress-plugin-font-open-sans: specifier: ^1.0.3 version: 1.0.3(@rspress/core@2.0.0-beta.28(@types/react@19.1.10)(acorn@8.15.0)) @@ -1191,13 +1191,13 @@ packages: engines: {node: '>=16.10.0'} hasBin: true - '@rsbuild/core@1.5.0-beta.4': - resolution: {integrity: sha512-h1jqpjZunalsdxTcJCbY8DovLu6F4MQgsYdZyxDjUp0xuggQayi1tpcE6MhLs3WWa077g+LZ2Am4gKt/pl/W9Q==} + '@rsbuild/core@1.5.0': + resolution: {integrity: sha512-C4TNndcgIQTDbBvdlSLbfuMGH9i66SJlsWkA6AVElwF7RI39lwZ5gIbP+v+l3W8HwcZ78a6iIu88ZEm1FuTSvA==} engines: {node: '>=18.12.0'} hasBin: true - '@rsbuild/core@1.5.0-rc.0': - resolution: {integrity: sha512-F1MDlAggmOItdia/6ArQ8kHH9OFPEiH6Bb76G2WUeTdXZyz856RuXox2YUQ6HiQ8osBz4lmhY30wU6xV0IA6tA==} + '@rsbuild/core@1.5.0-beta.4': + resolution: {integrity: sha512-h1jqpjZunalsdxTcJCbY8DovLu6F4MQgsYdZyxDjUp0xuggQayi1tpcE6MhLs3WWa077g+LZ2Am4gKt/pl/W9Q==} engines: {node: '>=18.12.0'} hasBin: true @@ -1323,6 +1323,11 @@ packages: cpu: [arm64] os: [darwin] + '@rspack/binding-darwin-arm64@1.5.0': + resolution: {integrity: sha512-7909YLNnKf0BYxiCpCWOk13WyWS4493Kxk1NQwy9KPLY9ydQExk84KVsix2NuNBaI8Pnk3aVLBPJiSNXtHLjnA==} + cpu: [arm64] + os: [darwin] + '@rspack/binding-darwin-arm64@1.5.0-beta.1': resolution: {integrity: sha512-aXSbz9Bo480xNDK6v64SZ19I/bmMuxaOuex6V9q0S+v3qx/ZsUWL+5aUd71scq7EfAb3KkvQFsYACpt5PMZ9DQ==} cpu: [arm64] @@ -1333,6 +1338,11 @@ packages: cpu: [x64] os: [darwin] + '@rspack/binding-darwin-x64@1.5.0': + resolution: {integrity: sha512-poGuQsGKCMQqSswgrz8X+frqMVTdmtzUDyvi/p9BLwW+2DwWgmywU8jwE+BYtjfWp1tErBSTlLxmEPQTdcIQgQ==} + cpu: [x64] + os: [darwin] + '@rspack/binding-darwin-x64@1.5.0-beta.1': resolution: {integrity: sha512-addeCT0bXtfOfvJZdVuHWBl20Cd8RmweOX03OiEH4AmQc9EgUEP/oCGpOmakBXxUCl3x/RnlrXx2nD1uDyuyLA==} cpu: [x64] @@ -1343,6 +1353,11 @@ packages: cpu: [arm64] os: [linux] + '@rspack/binding-linux-arm64-gnu@1.5.0': + resolution: {integrity: sha512-Bvmk8h3tRhN9UgOtH+vK0SgFM3qEO36eJz7oddOl4lJQxBf2GNA87bGtkMtX+AVPz/PUn7r82uWxrlVNQHAbFg==} + cpu: [arm64] + os: [linux] + '@rspack/binding-linux-arm64-gnu@1.5.0-beta.1': resolution: {integrity: sha512-fYgOfSsA0J0rUA40ZEexrMRKyIVAUo4m0KShTm6yVaAzQHWVZ0xjjcoLFNxCVE7EvAPI7wl9fDOyr7Y8EylVfQ==} cpu: [arm64] @@ -1353,6 +1368,11 @@ packages: cpu: [arm64] os: [linux] + '@rspack/binding-linux-arm64-musl@1.5.0': + resolution: {integrity: sha512-bH7UwkbACDYT37YnN9kkhaF9niFFK9ndcdNvYFFr1oUT4W9Ie3V9b41EXijqp3pyh0mDSeeLPFY0aEx1t3e7Pw==} + cpu: [arm64] + os: [linux] + '@rspack/binding-linux-arm64-musl@1.5.0-beta.1': resolution: {integrity: sha512-wWlOzsoJU2HJyPxoCDScW4zt3+5WO6NI8B7jSmhVA9dfmvCYUKktt/YZpskcgMsvCgtzXTE62wDc+VTQ5ucp9A==} cpu: [arm64] @@ -1363,6 +1383,11 @@ packages: cpu: [x64] os: [linux] + '@rspack/binding-linux-x64-gnu@1.5.0': + resolution: {integrity: sha512-xZ5dwNrE5KtpQyMd9israpJTcTQ3UYUUq23fTcNc79xE5aspkGixDFAYoql4YkhO0O+JWRmdSaFAn6jD+IQWQA==} + cpu: [x64] + os: [linux] + '@rspack/binding-linux-x64-gnu@1.5.0-beta.1': resolution: {integrity: sha512-OlgQIQLDLDDXvbUYBEfZmofO3uTDi0rGfIr58PXz/wTF87KdwqlU0HyjIeaeDUaQlV+lNXNysuCwvI0hl/o2tw==} cpu: [x64] @@ -1373,6 +1398,11 @@ packages: cpu: [x64] os: [linux] + '@rspack/binding-linux-x64-musl@1.5.0': + resolution: {integrity: sha512-mv65jYvcyYPkPZJ9kjSvTAcH0o7C5jfICWCQcMmN1tCGD3b8gmf9GqSZ8e+W/JkuvrJ05qTo/PvEq9nhu+pNIg==} + cpu: [x64] + os: [linux] + '@rspack/binding-linux-x64-musl@1.5.0-beta.1': resolution: {integrity: sha512-LkQSyfyf5Jy0UGD0tvm2Gz+0VjboawtRrYd+qYHE0Pm4h7tTJWyqnh02LRTROxOl3GrssC1VGn6J8XYTxOAWug==} cpu: [x64] @@ -1382,6 +1412,10 @@ packages: resolution: {integrity: sha512-hiYxHZjaZ17wQtXyLCK0IdtOvMWreGVTiGsaHCxyeT+SldDG+r16bXNjmlqfZsjlfl1mkAqKz1dg+mMX28OTqw==} cpu: [wasm32] + '@rspack/binding-wasm32-wasi@1.5.0': + resolution: {integrity: sha512-8rVpl6xfaAFJgo1wCd+emksfl+/8nlehrtkmjY9bj79Ou+kp07L9e1B+UU0jfs8e7aLPntQuF68kzLHwYLzWIQ==} + cpu: [wasm32] + '@rspack/binding-wasm32-wasi@1.5.0-beta.1': resolution: {integrity: sha512-ysnuVnqC9byoYfoAi/TsV0U5ZUxU0snnVPa/SvQEO6ew3J2GaNDq1vS1zWo0SOA4eLmwkop0/UcH8n3VXOy7NA==} cpu: [wasm32] @@ -1391,6 +1425,11 @@ packages: cpu: [arm64] os: [win32] + '@rspack/binding-win32-arm64-msvc@1.5.0': + resolution: {integrity: sha512-dWSmNm+GR6WSkOwbhlUcot4Oqwyon+1PRZ9E0vIMFHKGvESf9CQjgHAX0QE9G0kJmRM5x3I16J4x44Kw3W/98Q==} + cpu: [arm64] + os: [win32] + '@rspack/binding-win32-arm64-msvc@1.5.0-beta.1': resolution: {integrity: sha512-vcMXybMchQomBODyi6aIMCur8/oQktw+iVv0dH3hiiWy0v2g8xS9VLMjWXfGZAhonhRe7YWTP12dxCPbWmQyZw==} cpu: [arm64] @@ -1401,6 +1440,11 @@ packages: cpu: [ia32] os: [win32] + '@rspack/binding-win32-ia32-msvc@1.5.0': + resolution: {integrity: sha512-YtOrFEkwhO3Y3sY6Jq0OOYPY7NBTNYuwJ6epTgzPEDGs2cBnwZfzhq0jmD/koWtv1L9+twX95vKosBdauF0tNA==} + cpu: [ia32] + os: [win32] + '@rspack/binding-win32-ia32-msvc@1.5.0-beta.1': resolution: {integrity: sha512-fCj904xjc5iKOdUS0VLUE/LbAQZWlub/TF0ZKhzq2UK8WWwrfhA5U8ZHximU0A0LVDoMVZCM5M12rO12P0uHKw==} cpu: [ia32] @@ -1411,6 +1455,11 @@ packages: cpu: [x64] os: [win32] + '@rspack/binding-win32-x64-msvc@1.5.0': + resolution: {integrity: sha512-V4fcPVYWJgDkIkSsFwmUdwC9lkL8+1dzDOwyTWe6KW2MYHF2D148WPHNyVVE6gum12TShpbIsh0j4NiiMhkMtw==} + cpu: [x64] + os: [win32] + '@rspack/binding-win32-x64-msvc@1.5.0-beta.1': resolution: {integrity: sha512-iWCoFMwP2aUea1mIp2+mTE7IKj6wp9hxMuZgOcEGWQidE7pUss5/Zp3wrOSWnnyovIeQLmK9wsQEA/W3i3MiAQ==} cpu: [x64] @@ -1419,6 +1468,9 @@ packages: '@rspack/binding@1.4.11': resolution: {integrity: sha512-maGl/zRwnl0QVwkBCkgjn5PH20L9HdlRIdkYhEsfTepy5x2QZ0ti/0T49djjTJQrqb+S1i6wWQymMMMMMsxx6Q==} + '@rspack/binding@1.5.0': + resolution: {integrity: sha512-UGXQmwEu2gdO+tnGv2q4rOWJdWioy6dlLXeZOLYAZVh3mrfKJhZWtDEygX9hCdE5thWNRTlEvx30QQchJAszIQ==} + '@rspack/binding@1.5.0-beta.1': resolution: {integrity: sha512-qZ+cxvsNvXBOPX0NEP+KfxQlJI7TDZR2XLS8Jl+zHl2kgulEOBWsBa7Q1Dcw73YQgz2owxP3OWl3f8LWXnnC1Q==} @@ -1431,6 +1483,15 @@ packages: '@swc/helpers': optional: true + '@rspack/core@1.5.0': + resolution: {integrity: sha512-eEtiKV+CUcAtnt1K+eiHDzmBXQcNM8CfCXOzr0+gHGp4w4Zks2B8RF36sYD03MM2bg8VRXXsf0MicQ8FvRMCOg==} + engines: {node: '>=18.12.0'} + peerDependencies: + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@swc/helpers': + optional: true + '@rspack/core@1.5.0-beta.1': resolution: {integrity: sha512-o3yQreNKldm0k96wPMpXBI9p0B03LpeK3XyV4vhk24RfLIa2p6C2LPF4xn6U2M28CFQkSbeu1vwlMHnfW4xHNg==} engines: {node: '>=18.12.0'} @@ -2244,8 +2305,8 @@ packages: copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - core-js@3.45.0: - resolution: {integrity: sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==} + core-js@3.45.1: + resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==} cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} @@ -5479,32 +5540,32 @@ snapshots: '@rspack/core': 1.4.11(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.17 - core-js: 3.45.0 + core-js: 3.45.1 jiti: 2.5.1 - '@rsbuild/core@1.5.0-beta.4': + '@rsbuild/core@1.5.0': dependencies: - '@rspack/core': 1.5.0-beta.1(@swc/helpers@0.5.17) + '@rspack/core': 1.5.0(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.17 - core-js: 3.45.0 + core-js: 3.45.1 jiti: 2.5.1 - '@rsbuild/core@1.5.0-rc.0': + '@rsbuild/core@1.5.0-beta.4': dependencies: '@rspack/core': 1.5.0-beta.1(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.17 - core-js: 3.45.0 + core-js: 3.45.1 jiti: 2.5.1 - '@rsbuild/plugin-babel@1.0.6(@rsbuild/core@1.5.0-rc.0)': + '@rsbuild/plugin-babel@1.0.6(@rsbuild/core@1.5.0)': dependencies: '@babel/core': 7.28.3 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3) '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.3) '@babel/preset-typescript': 7.27.1(@babel/core@7.28.3) - '@rsbuild/core': 1.5.0-rc.0 + '@rsbuild/core': 1.5.0 '@types/babel__core': 7.20.5 deepmerge: 4.3.1 reduce-configs: 1.1.1 @@ -5512,7 +5573,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@rsbuild/plugin-check-syntax@1.3.0(@rsbuild/core@1.4.15)': + '@rsbuild/plugin-check-syntax@1.3.0(@rsbuild/core@1.5.0)': dependencies: acorn: 8.15.0 browserslist-to-es-version: 1.0.0 @@ -5520,7 +5581,7 @@ snapshots: picocolors: 1.1.1 source-map: 0.7.4 optionalDependencies: - '@rsbuild/core': 1.4.15 + '@rsbuild/core': 1.5.0 '@rsbuild/plugin-react@1.3.5(@rsbuild/core@1.4.15)': dependencies: @@ -5530,37 +5591,37 @@ snapshots: transitivePeerDependencies: - webpack-hot-middleware - '@rsbuild/plugin-react@1.3.5(@rsbuild/core@1.5.0-rc.0)': + '@rsbuild/plugin-react@1.3.5(@rsbuild/core@1.5.0)': dependencies: - '@rsbuild/core': 1.5.0-rc.0 + '@rsbuild/core': 1.5.0 '@rspack/plugin-react-refresh': 1.4.3(react-refresh@0.17.0) react-refresh: 0.17.0 transitivePeerDependencies: - webpack-hot-middleware - '@rsbuild/plugin-sass@1.3.5(@rsbuild/core@1.5.0-rc.0)': + '@rsbuild/plugin-sass@1.3.5(@rsbuild/core@1.5.0)': dependencies: - '@rsbuild/core': 1.5.0-rc.0 + '@rsbuild/core': 1.5.0 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-vue-jsx@1.1.1(@babel/core@7.28.3)(@rsbuild/core@1.5.0-rc.0)': + '@rsbuild/plugin-vue-jsx@1.1.1(@babel/core@7.28.3)(@rsbuild/core@1.5.0)': dependencies: - '@rsbuild/plugin-babel': 1.0.6(@rsbuild/core@1.5.0-rc.0) + '@rsbuild/plugin-babel': 1.0.6(@rsbuild/core@1.5.0) '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3) babel-plugin-vue-jsx-hmr: 1.0.0 optionalDependencies: - '@rsbuild/core': 1.5.0-rc.0 + '@rsbuild/core': 1.5.0 transitivePeerDependencies: - '@babel/core' - supports-color - '@rsbuild/plugin-vue@1.1.1(@rsbuild/core@1.5.0-rc.0)(vue@3.5.19(typescript@5.9.2))': + '@rsbuild/plugin-vue@1.1.1(@rsbuild/core@1.5.0)(vue@3.5.19(typescript@5.9.2))': dependencies: - '@rsbuild/core': 1.5.0-rc.0 + '@rsbuild/core': 1.5.0 vue-loader: 17.4.2(vue@3.5.19(typescript@5.9.2))(webpack@5.101.2) webpack: 5.101.2 transitivePeerDependencies: @@ -5573,13 +5634,13 @@ snapshots: '@rsdoctor/client@1.2.3': {} - '@rsdoctor/core@1.2.3(@rsbuild/core@1.4.15)(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2)': + '@rsdoctor/core@1.2.3(@rsbuild/core@1.5.0)(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2)': dependencies: - '@rsbuild/plugin-check-syntax': 1.3.0(@rsbuild/core@1.4.15) - '@rsdoctor/graph': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/sdk': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/types': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/utils': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsbuild/plugin-check-syntax': 1.3.0(@rsbuild/core@1.5.0) + '@rsdoctor/graph': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/sdk': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/types': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/utils': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) axios: 1.11.0 browserslist-load-config: 1.0.0 enhanced-resolve: 5.12.0 @@ -5598,10 +5659,10 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/graph@1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2)': + '@rsdoctor/graph@1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2)': dependencies: - '@rsdoctor/types': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/utils': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/types': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/utils': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) lodash.unionby: 4.8.0 source-map: 0.7.4 transitivePeerDependencies: @@ -5609,16 +5670,16 @@ snapshots: - supports-color - webpack - '@rsdoctor/rspack-plugin@1.2.3(@rsbuild/core@1.4.15)(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2)': + '@rsdoctor/rspack-plugin@1.2.3(@rsbuild/core@1.5.0)(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2)': dependencies: - '@rsdoctor/core': 1.2.3(@rsbuild/core@1.4.15)(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/graph': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/sdk': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/types': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/utils': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/core': 1.2.3(@rsbuild/core@1.5.0)(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/graph': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/sdk': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/types': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/utils': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) lodash: 4.17.21 optionalDependencies: - '@rspack/core': 1.4.11(@swc/helpers@0.5.17) + '@rspack/core': 1.5.0(@swc/helpers@0.5.17) transitivePeerDependencies: - '@rsbuild/core' - bufferutil @@ -5627,12 +5688,12 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/sdk@1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2)': + '@rsdoctor/sdk@1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2)': dependencies: '@rsdoctor/client': 1.2.3 - '@rsdoctor/graph': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/types': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) - '@rsdoctor/utils': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/graph': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/types': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/utils': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) '@types/fs-extra': 11.0.4 body-parser: 1.20.3 cors: 2.8.5 @@ -5651,20 +5712,20 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/types@1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2)': + '@rsdoctor/types@1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2)': dependencies: '@types/connect': 3.4.38 '@types/estree': 1.0.5 '@types/tapable': 2.2.7 source-map: 0.7.4 optionalDependencies: - '@rspack/core': 1.4.11(@swc/helpers@0.5.17) + '@rspack/core': 1.5.0(@swc/helpers@0.5.17) webpack: 5.101.2 - '@rsdoctor/utils@1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2)': + '@rsdoctor/utils@1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2)': dependencies: '@babel/code-frame': 7.26.2 - '@rsdoctor/types': 1.2.3(@rspack/core@1.4.11(@swc/helpers@0.5.17))(webpack@5.101.2) + '@rsdoctor/types': 1.2.3(@rspack/core@1.5.0(@swc/helpers@0.5.17))(webpack@5.101.2) '@types/estree': 1.0.5 acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) @@ -5724,36 +5785,54 @@ snapshots: '@rspack/binding-darwin-arm64@1.4.11': optional: true + '@rspack/binding-darwin-arm64@1.5.0': + optional: true + '@rspack/binding-darwin-arm64@1.5.0-beta.1': optional: true '@rspack/binding-darwin-x64@1.4.11': optional: true + '@rspack/binding-darwin-x64@1.5.0': + optional: true + '@rspack/binding-darwin-x64@1.5.0-beta.1': optional: true '@rspack/binding-linux-arm64-gnu@1.4.11': optional: true + '@rspack/binding-linux-arm64-gnu@1.5.0': + optional: true + '@rspack/binding-linux-arm64-gnu@1.5.0-beta.1': optional: true '@rspack/binding-linux-arm64-musl@1.4.11': optional: true + '@rspack/binding-linux-arm64-musl@1.5.0': + optional: true + '@rspack/binding-linux-arm64-musl@1.5.0-beta.1': optional: true '@rspack/binding-linux-x64-gnu@1.4.11': optional: true + '@rspack/binding-linux-x64-gnu@1.5.0': + optional: true + '@rspack/binding-linux-x64-gnu@1.5.0-beta.1': optional: true '@rspack/binding-linux-x64-musl@1.4.11': optional: true + '@rspack/binding-linux-x64-musl@1.5.0': + optional: true + '@rspack/binding-linux-x64-musl@1.5.0-beta.1': optional: true @@ -5762,6 +5841,11 @@ snapshots: '@napi-rs/wasm-runtime': 1.0.1 optional: true + '@rspack/binding-wasm32-wasi@1.5.0': + dependencies: + '@napi-rs/wasm-runtime': 1.0.1 + optional: true + '@rspack/binding-wasm32-wasi@1.5.0-beta.1': dependencies: '@napi-rs/wasm-runtime': 1.0.1 @@ -5770,18 +5854,27 @@ snapshots: '@rspack/binding-win32-arm64-msvc@1.4.11': optional: true + '@rspack/binding-win32-arm64-msvc@1.5.0': + optional: true + '@rspack/binding-win32-arm64-msvc@1.5.0-beta.1': optional: true '@rspack/binding-win32-ia32-msvc@1.4.11': optional: true + '@rspack/binding-win32-ia32-msvc@1.5.0': + optional: true + '@rspack/binding-win32-ia32-msvc@1.5.0-beta.1': optional: true '@rspack/binding-win32-x64-msvc@1.4.11': optional: true + '@rspack/binding-win32-x64-msvc@1.5.0': + optional: true + '@rspack/binding-win32-x64-msvc@1.5.0-beta.1': optional: true @@ -5798,6 +5891,19 @@ snapshots: '@rspack/binding-win32-ia32-msvc': 1.4.11 '@rspack/binding-win32-x64-msvc': 1.4.11 + '@rspack/binding@1.5.0': + optionalDependencies: + '@rspack/binding-darwin-arm64': 1.5.0 + '@rspack/binding-darwin-x64': 1.5.0 + '@rspack/binding-linux-arm64-gnu': 1.5.0 + '@rspack/binding-linux-arm64-musl': 1.5.0 + '@rspack/binding-linux-x64-gnu': 1.5.0 + '@rspack/binding-linux-x64-musl': 1.5.0 + '@rspack/binding-wasm32-wasi': 1.5.0 + '@rspack/binding-win32-arm64-msvc': 1.5.0 + '@rspack/binding-win32-ia32-msvc': 1.5.0 + '@rspack/binding-win32-x64-msvc': 1.5.0 + '@rspack/binding@1.5.0-beta.1': optionalDependencies: '@rspack/binding-darwin-arm64': 1.5.0-beta.1 @@ -5819,6 +5925,14 @@ snapshots: optionalDependencies: '@swc/helpers': 0.5.17 + '@rspack/core@1.5.0(@swc/helpers@0.5.17)': + dependencies: + '@module-federation/runtime-tools': 0.18.0 + '@rspack/binding': 1.5.0 + '@rspack/lite-tapable': 1.0.1 + optionalDependencies: + '@swc/helpers': 0.5.17 + '@rspack/core@1.5.0-beta.1(@swc/helpers@0.5.17)': dependencies: '@module-federation/runtime-tools': 0.18.0 @@ -6815,7 +6929,7 @@ snapshots: dependencies: toggle-selection: 1.0.6 - core-js@3.45.0: {} + core-js@3.45.1: {} cors@2.8.5: dependencies: @@ -8772,13 +8886,13 @@ snapshots: '@microsoft/api-extractor': 7.52.11(@types/node@22.13.8) typescript: 5.9.2 - rsbuild-plugin-google-analytics@1.0.4(@rsbuild/core@1.5.0-rc.0): + rsbuild-plugin-google-analytics@1.0.4(@rsbuild/core@1.5.0): optionalDependencies: - '@rsbuild/core': 1.5.0-rc.0 + '@rsbuild/core': 1.5.0 - rsbuild-plugin-open-graph@1.1.0(@rsbuild/core@1.5.0-rc.0): + rsbuild-plugin-open-graph@1.1.0(@rsbuild/core@1.5.0): optionalDependencies: - '@rsbuild/core': 1.5.0-rc.0 + '@rsbuild/core': 1.5.0 rslog@1.2.11: {} From bb88a0a733cefa689d22741eebf763a23c518c21 Mon Sep 17 00:00:00 2001 From: "gaoyuan.1226" Date: Tue, 26 Aug 2025 20:40:06 +0800 Subject: [PATCH 4/7] fix: ci --- e2e/watch/restart.test.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/e2e/watch/restart.test.ts b/e2e/watch/restart.test.ts index 336dda62..73371cb6 100644 --- a/e2e/watch/restart.test.ts +++ b/e2e/watch/restart.test.ts @@ -23,7 +23,15 @@ describe('restart', () => { fs.create( configFile, `import { defineConfig } from '@rstest/core'; -export default defineConfig({}); +export default defineConfig({ + tools: { + rspack: { + watchOptions: { + aggregateTimeout: 10, + }, + }, + }, +}); `, ); From 5733d6aaa2223f6e7ab915569df7ea148288016f Mon Sep 17 00:00:00 2001 From: "gaoyuan.1226" Date: Tue, 26 Aug 2025 21:07:00 +0800 Subject: [PATCH 5/7] test: add retry --- e2e/watch/index.test.ts | 6 +++++- e2e/watch/restart.test.ts | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/e2e/watch/index.test.ts b/e2e/watch/index.test.ts index e7e2441c..54eb07f8 100644 --- a/e2e/watch/index.test.ts +++ b/e2e/watch/index.test.ts @@ -1,11 +1,15 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; -import { describe, expect, it } from '@rstest/core'; +import { describe, expect, it, rs } from '@rstest/core'; import { prepareFixtures, runRstestCli } from '../scripts'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); +rs.setConfig({ + retry: 3, +}); + describe('watch', () => { it('test files should be ran when create / update / delete', async () => { const { fs } = await prepareFixtures({ diff --git a/e2e/watch/restart.test.ts b/e2e/watch/restart.test.ts index 73371cb6..3797291c 100644 --- a/e2e/watch/restart.test.ts +++ b/e2e/watch/restart.test.ts @@ -1,12 +1,16 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; -import { describe, expect, it } from '@rstest/core'; +import { describe, expect, it, rs } from '@rstest/core'; import { remove } from 'fs-extra'; import { prepareFixtures, runRstestCli } from '../scripts/'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); +rs.setConfig({ + retry: 3, +}); + describe('restart', () => { it('should restart when rstest config file changed', async () => { const { fs } = await prepareFixtures({ From c63b6276c0a880a4cf08ed91897bb4835c9b4736 Mon Sep 17 00:00:00 2001 From: "gaoyuan.1226" Date: Wed, 27 Aug 2025 15:31:59 +0800 Subject: [PATCH 6/7] fix: expect.poll --- e2e/watch/index.test.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/e2e/watch/index.test.ts b/e2e/watch/index.test.ts index 54eb07f8..65d56d86 100644 --- a/e2e/watch/index.test.ts +++ b/e2e/watch/index.test.ts @@ -46,8 +46,12 @@ describe('watch', () => { });`, ); - await cli.waitForStdout('Duration'); - expect(cli.stdout).toMatch('Tests 2 passed'); + await expect + .poll(() => cli.stdout, { + interval: 20, + }) + .toMatch('Tests 2 passed'); + expect(cli.stdout).toMatch(/Test files to re-run.*:\n.*bar\.test\.ts\n\n/); // update @@ -56,7 +60,11 @@ describe('watch', () => { return content.replace("toBe('bar')", "toBe('BAR')"); }); - await cli.waitForStdout('Duration'); + await expect + .poll(() => cli.stdout, { + interval: 20, + }) + .toMatch('Test Files 1 failed'); expect(cli.stdout).toMatch('Test Files 1 failed'); expect(cli.stdout).toMatch('✗ bar > bar should be to bar'); expect(cli.stdout).toMatch(/Test files to re-run.*:\n.*bar\.test\.ts\n\n/); @@ -64,9 +72,12 @@ describe('watch', () => { // delete cli.resetStd(); fs.delete('./fixtures-test-0/bar.test.ts'); - await cli.waitForStdout('Duration'); + await expect + .poll(() => cli.stdout, { + interval: 20, + }) + .toMatch('Test Files 1 passed'); expect(cli.stdout).toMatch('No test files are re-run.'); - expect(cli.stdout).toMatch('Test Files 1 passed'); cli.exec.kill(); }); From faa1a75fa364be546979f91ce6fa71ef5737ae97 Mon Sep 17 00:00:00 2001 From: "gaoyuan.1226" Date: Wed, 27 Aug 2025 18:01:14 +0800 Subject: [PATCH 7/7] fix: update timeout --- e2e/watch/index.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2e/watch/index.test.ts b/e2e/watch/index.test.ts index 65d56d86..4f3004d2 100644 --- a/e2e/watch/index.test.ts +++ b/e2e/watch/index.test.ts @@ -49,6 +49,7 @@ describe('watch', () => { await expect .poll(() => cli.stdout, { interval: 20, + timeout: 2000, }) .toMatch('Tests 2 passed'); @@ -63,6 +64,7 @@ describe('watch', () => { await expect .poll(() => cli.stdout, { interval: 20, + timeout: 2000, }) .toMatch('Test Files 1 failed'); expect(cli.stdout).toMatch('Test Files 1 failed');