From 66dd2364ecc1cfe139317a9ab40654482c35b9ed Mon Sep 17 00:00:00 2001 From: 9aoy Date: Wed, 16 Jul 2025 14:56:11 +0800 Subject: [PATCH 1/8] chore(workflow): test in node.js v24 (#392) --- .github/workflows/test.yml | 2 +- tests/build/runtimeRequire/package.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ca948feb..834fabb2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -75,7 +75,7 @@ jobs: matrix: # run ut in macOS, as SWC cases will fail in Ubuntu CI os: [macos-14, windows-latest] - node_version: [18, 20, 22] + node_version: [18, 20, 22, 24] steps: - name: Checkout diff --git a/tests/build/runtimeRequire/package.json b/tests/build/runtimeRequire/package.json index 22341369..28644a51 100644 --- a/tests/build/runtimeRequire/package.json +++ b/tests/build/runtimeRequire/package.json @@ -1,6 +1,5 @@ { "private": true, "name": "@rstest/tests-runtime-require", - "type": "module", "version": "1.0.0" } From 4ed6c7a4cd60e485fd6e805875d4e6bc0e6f9bd5 Mon Sep 17 00:00:00 2001 From: 9aoy Date: Wed, 16 Jul 2025 20:30:04 +0800 Subject: [PATCH 2/8] fix: should keep `require.resolve` expressions (#395) --- packages/core/src/core/rsbuild.ts | 2 ++ .../core/__snapshots__/rsbuild.test.ts.snap | 2 ++ pnpm-lock.yaml | 4 +-- tests/basic/test/index.test.ts | 2 +- .../build/{ => fixtures}/runtimeRequire/a.js | 0 tests/build/fixtures/runtimeRequire/b.ts | 1 + .../fixtures/runtimeRequire/index.test.ts | 33 +++++++++++++++++++ .../runtimeRequire/package.json | 0 .../fixtures/runtimeRequire/rstest.config.ts | 20 +++++++++++ tests/build/resolve.test.ts | 21 ++++++++++++ tests/build/runtimeRequire/b.ts | 1 - tests/build/runtimeRequire/index.test.ts | 16 --------- 12 files changed, 82 insertions(+), 20 deletions(-) rename tests/build/{ => fixtures}/runtimeRequire/a.js (100%) create mode 100644 tests/build/fixtures/runtimeRequire/b.ts create mode 100644 tests/build/fixtures/runtimeRequire/index.test.ts rename tests/build/{ => fixtures}/runtimeRequire/package.json (100%) create mode 100644 tests/build/fixtures/runtimeRequire/rstest.config.ts create mode 100644 tests/build/resolve.test.ts delete mode 100644 tests/build/runtimeRequire/b.ts delete mode 100644 tests/build/runtimeRequire/index.test.ts diff --git a/packages/core/src/core/rsbuild.ts b/packages/core/src/core/rsbuild.ts index aec15731..6f3ca1e4 100644 --- a/packages/core/src/core/rsbuild.ts +++ b/packages/core/src/core/rsbuild.ts @@ -214,6 +214,8 @@ export const prepareRsbuild = async ( // eg. (modulePath) => require(modulePath) requireDynamic: false, requireAsExpression: false, + // Keep require.resolve expressions. + requireResolve: false, ...(config.module.parser.javascript || {}), }; diff --git a/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap b/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap index f5573fd1..38e0ee0f 100644 --- a/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap +++ b/packages/core/tests/core/__snapshots__/rsbuild.test.ts.snap @@ -36,6 +36,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (jsdom) 1`] = "importDynamic": false, "requireAsExpression": false, "requireDynamic": false, + "requireResolve": false, }, }, "rules": [ @@ -527,6 +528,7 @@ exports[`prepareRsbuild > should generate rspack config correctly (node) 1`] = ` "importDynamic": false, "requireAsExpression": false, "requireDynamic": false, + "requireResolve": false, }, }, "rules": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 23a99566..45df784c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -252,9 +252,9 @@ importers: specifier: ^5.8.3 version: 5.8.3 - tests/build/runtimeImport: {} + tests/build/fixtures/runtimeRequire: {} - tests/build/runtimeRequire: {} + tests/build/runtimeImport: {} tests/cli: devDependencies: diff --git a/tests/basic/test/index.test.ts b/tests/basic/test/index.test.ts index c13d7407..42a1acf6 100644 --- a/tests/basic/test/index.test.ts +++ b/tests/basic/test/index.test.ts @@ -21,7 +21,7 @@ describe('Index', () => { it('should use require.resolve correctly', async () => { expect( - require.resolve('../src/index.ts').endsWith('/basic/src/index.ts'), + require.resolve('../src/index.ts').endsWith('index.ts'), ).toBeTruthy(); }); }); diff --git a/tests/build/runtimeRequire/a.js b/tests/build/fixtures/runtimeRequire/a.js similarity index 100% rename from tests/build/runtimeRequire/a.js rename to tests/build/fixtures/runtimeRequire/a.js diff --git a/tests/build/fixtures/runtimeRequire/b.ts b/tests/build/fixtures/runtimeRequire/b.ts new file mode 100644 index 00000000..5f03b7e1 --- /dev/null +++ b/tests/build/fixtures/runtimeRequire/b.ts @@ -0,0 +1 @@ +exports.a = 2; diff --git a/tests/build/fixtures/runtimeRequire/index.test.ts b/tests/build/fixtures/runtimeRequire/index.test.ts new file mode 100644 index 00000000..dd50bdb7 --- /dev/null +++ b/tests/build/fixtures/runtimeRequire/index.test.ts @@ -0,0 +1,33 @@ +import fs from 'node:fs'; +import { join } from 'node:path'; +import { afterAll, expect, it } from '@rstest/core'; + +const customRequire = (name: string) => { + return require(join(__dirname, name)); +}; + +const distDir = join(__dirname, './dist'); + +afterAll(() => { + fs.rmSync(distDir, { recursive: true, force: true }); +}); + +it('should load runtime deps correctly', async () => { + const res = customRequire('./a.js'); + expect(res.a).toBe(1); +}); + +it('should load compile-time deps correctly', async () => { + const res = require('./b.ts'); + expect(res.b).toBe(2); +}); + +it('should run require.resolve correctly', async () => { + fs.mkdirSync(distDir, { recursive: true }); + const fileName = 'hello-world.txt'; + + fs.writeFileSync(join(distDir, fileName), 'hello world'); + + const res = require.resolve(`./dist/${fileName}`); + expect(res).toContain('hello-world.txt'); +}); diff --git a/tests/build/runtimeRequire/package.json b/tests/build/fixtures/runtimeRequire/package.json similarity index 100% rename from tests/build/runtimeRequire/package.json rename to tests/build/fixtures/runtimeRequire/package.json diff --git a/tests/build/fixtures/runtimeRequire/rstest.config.ts b/tests/build/fixtures/runtimeRequire/rstest.config.ts new file mode 100644 index 00000000..52c1d2d6 --- /dev/null +++ b/tests/build/fixtures/runtimeRequire/rstest.config.ts @@ -0,0 +1,20 @@ +import { defineConfig } from '@rstest/core'; + +export default defineConfig({ + output: { + cleanDistPath: true, + }, + plugins: [ + { + name: 'test-loader', + setup: (api) => { + api.transform( + { filter: /\.js$/ }, + async ({ code }: { code: string }) => { + return code.replace(/exports\.a/g, 'exports.b'); + }, + ); + }, + }, + ], +}); diff --git a/tests/build/resolve.test.ts b/tests/build/resolve.test.ts new file mode 100644 index 00000000..d6905772 --- /dev/null +++ b/tests/build/resolve.test.ts @@ -0,0 +1,21 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { it } from '@rstest/core'; +import { runRstestCli } from '../scripts/'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +it('should resolve correctly ', async () => { + const { expectExecSuccess } = await runRstestCli({ + command: 'rstest', + args: ['run'], + options: { + nodeOptions: { + cwd: join(__dirname, 'fixtures/runtimeRequire'), + }, + }, + }); + + await expectExecSuccess(); +}); diff --git a/tests/build/runtimeRequire/b.ts b/tests/build/runtimeRequire/b.ts deleted file mode 100644 index 1b8c43df..00000000 --- a/tests/build/runtimeRequire/b.ts +++ /dev/null @@ -1 +0,0 @@ -exports.b = 1; diff --git a/tests/build/runtimeRequire/index.test.ts b/tests/build/runtimeRequire/index.test.ts deleted file mode 100644 index b3aa4eeb..00000000 --- a/tests/build/runtimeRequire/index.test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { join } from 'node:path'; -import { expect, it } from '@rstest/core'; - -const customRequire = (name: string) => { - return require(join(__dirname, name)); -}; - -it('should load runtime deps correctly', async () => { - const res = require('./a.js'); - expect(res.a).toBe(1); -}); - -it('should load compile-time deps correctly', async () => { - const res = customRequire('./b.ts'); - expect(res.b).toBe(1); -}); From ade7282a736d0124fd6e6a841e4d8fb1932a4130 Mon Sep 17 00:00:00 2001 From: 9aoy Date: Thu, 17 Jul 2025 14:45:35 +0800 Subject: [PATCH 3/8] feat: support bundle `node_modules` in node environment (#394) --- packages/core/src/core/rsbuild.ts | 19 +++++----- pnpm-lock.yaml | 2 ++ tests/externals/bundle.test.ts | 36 +++++++++++++++++++ tests/externals/fixtures/bundle.test.ts | 6 ++++ .../fixtures/rstest.bundle.config.ts | 9 +++++ tests/externals/fixtures/test-bundle/index.ts | 1 + .../fixtures/test-bundle/package.json | 6 ++++ tests/externals/fixtures/test-pkg/env.d.ts | 1 + .../externals/fixtures/test-pkg/testBundle.ts | 1 + tests/vue/sfc.test.ts | 3 +- website/docs/en/config/build/output.mdx | 14 ++++++++ website/docs/zh/config/build/output.mdx | 14 ++++++++ 12 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 tests/externals/bundle.test.ts create mode 100644 tests/externals/fixtures/bundle.test.ts create mode 100644 tests/externals/fixtures/rstest.bundle.config.ts create mode 100644 tests/externals/fixtures/test-bundle/index.ts create mode 100644 tests/externals/fixtures/test-bundle/package.json create mode 100644 tests/externals/fixtures/test-pkg/env.d.ts create mode 100644 tests/externals/fixtures/test-pkg/testBundle.ts diff --git a/packages/core/src/core/rsbuild.ts b/packages/core/src/core/rsbuild.ts index 6f3ca1e4..d581c987 100644 --- a/packages/core/src/core/rsbuild.ts +++ b/packages/core/src/core/rsbuild.ts @@ -75,16 +75,17 @@ const autoExternalNodeModules: ( }); }; -const autoExternalNodeBuiltin: ( - data: Rspack.ExternalItemFunctionData, +function autoExternalNodeBuiltin( + { request, dependencyType }: Rspack.ExternalItemFunctionData, callback: ( err?: Error, result?: Rspack.ExternalItemValue, type?: Rspack.ExternalsType, ) => void, -) => void = ({ request, dependencyType }, callback) => { +): void { if (!request) { - return callback(); + callback(); + return; } const isNodeBuiltin = NODE_BUILTINS.some((builtin) => { @@ -104,7 +105,7 @@ const autoExternalNodeBuiltin: ( } else { callback(); } -}; +} export const prepareRsbuild = async ( context: RstestContext, @@ -166,6 +167,10 @@ export const prepareRsbuild = async ( sourceMap: { js: 'source-map', }, + externals: + testEnvironment === 'node' + ? [autoExternalNodeModules] + : undefined, distPath: { root: TEMP_RSTEST_OUTPUT_DIR, }, @@ -197,10 +202,6 @@ export const prepareRsbuild = async ( '@rstest/core': 'global @rstest/core', }); - if (testEnvironment === 'node') { - config.externals.push(autoExternalNodeModules); - } - config.externalsPresets ??= {}; config.externalsPresets.node = false; config.externals.push(autoExternalNodeBuiltin); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 45df784c..a10a5d4f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -314,6 +314,8 @@ importers: specifier: ^7.1.0 version: 7.1.0 + tests/externals/fixtures/test-bundle: {} + tests/externals/fixtures/test-interop: {} tests/externals/fixtures/test-lodash: {} diff --git a/tests/externals/bundle.test.ts b/tests/externals/bundle.test.ts new file mode 100644 index 00000000..1d83186c --- /dev/null +++ b/tests/externals/bundle.test.ts @@ -0,0 +1,36 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { beforeAll, describe, it } from '@rstest/core'; +import fse from 'fs-extra'; +import { runRstestCli } from '../scripts/'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +describe('test externals false', () => { + beforeAll(() => { + fse.copySync( + join(__dirname, './fixtures/test-bundle'), + join(__dirname, './fixtures/test-pkg/node_modules/test-bundle'), + ); + }); + + it('should bundle node_modules', async () => { + const { expectExecSuccess } = await runRstestCli({ + command: 'rstest', + args: [ + 'run', + './fixtures/bundle.test.ts', + '-c', + './fixtures/rstest.bundle.config.ts', + ], + options: { + nodeOptions: { + cwd: __dirname, + }, + }, + }); + + await expectExecSuccess(); + }); +}); diff --git a/tests/externals/fixtures/bundle.test.ts b/tests/externals/fixtures/bundle.test.ts new file mode 100644 index 00000000..b221ac52 --- /dev/null +++ b/tests/externals/fixtures/bundle.test.ts @@ -0,0 +1,6 @@ +import { expect, it } from '@rstest/core'; +import { a } from './test-pkg/testBundle'; + +it('should load pkg correctly with bundled', () => { + expect(a).toBe(1); +}); diff --git a/tests/externals/fixtures/rstest.bundle.config.ts b/tests/externals/fixtures/rstest.bundle.config.ts new file mode 100644 index 00000000..f39daad7 --- /dev/null +++ b/tests/externals/fixtures/rstest.bundle.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from '@rstest/core'; + +export default defineConfig({ + tools: { + rspack: (config) => { + config.externals = []; + }, + }, +}); diff --git a/tests/externals/fixtures/test-bundle/index.ts b/tests/externals/fixtures/test-bundle/index.ts new file mode 100644 index 00000000..cc798ff5 --- /dev/null +++ b/tests/externals/fixtures/test-bundle/index.ts @@ -0,0 +1 @@ +export const a = 1; diff --git a/tests/externals/fixtures/test-bundle/package.json b/tests/externals/fixtures/test-bundle/package.json new file mode 100644 index 00000000..776a010d --- /dev/null +++ b/tests/externals/fixtures/test-bundle/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "name": "@rstest/tests-bundle", + "main": "index.ts", + "version": "1.0.0" +} diff --git a/tests/externals/fixtures/test-pkg/env.d.ts b/tests/externals/fixtures/test-pkg/env.d.ts new file mode 100644 index 00000000..df922454 --- /dev/null +++ b/tests/externals/fixtures/test-pkg/env.d.ts @@ -0,0 +1 @@ +declare module 'test-bundle'; diff --git a/tests/externals/fixtures/test-pkg/testBundle.ts b/tests/externals/fixtures/test-pkg/testBundle.ts new file mode 100644 index 00000000..53e8bded --- /dev/null +++ b/tests/externals/fixtures/test-pkg/testBundle.ts @@ -0,0 +1 @@ +export { a } from 'test-bundle'; diff --git a/tests/vue/sfc.test.ts b/tests/vue/sfc.test.ts index 0484db4b..5cdf1cee 100644 --- a/tests/vue/sfc.test.ts +++ b/tests/vue/sfc.test.ts @@ -19,5 +19,6 @@ describe('vue sfc', () => { }); await expectExecSuccess(); - }); + // fix timeout in CI + }, 20000); }); diff --git a/website/docs/en/config/build/output.mdx b/website/docs/en/config/build/output.mdx index ba321776..1dcb70e2 100644 --- a/website/docs/en/config/build/output.mdx +++ b/website/docs/en/config/build/output.mdx @@ -21,6 +21,20 @@ export default defineConfig({ }); ``` +If you want all dependencies to be bundled, you can configure it through the following configuration: + +```ts title="rstest.config.ts" +import { defineConfig } from '@rstest/core'; + +export default defineConfig({ + tools: { + rspack: (config) => { + config.externals = []; + }, + }, +}); +``` + ## output.cssModules For custom CSS Modules configuration. diff --git a/website/docs/zh/config/build/output.mdx b/website/docs/zh/config/build/output.mdx index a6dec3de..d9683021 100644 --- a/website/docs/zh/config/build/output.mdx +++ b/website/docs/zh/config/build/output.mdx @@ -21,6 +21,20 @@ export default defineConfig({ }); ``` +如果你希望所有依赖都被打包,可以通过如下配置: + +```ts title="rstest.config.ts" +import { defineConfig } from '@rstest/core'; + +export default defineConfig({ + tools: { + rspack: (config) => { + config.externals = []; + }, + }, +}); +``` + ## output.cssModules 用于自定义 CSS Modules 的配置。 From 768e328be657ba42f9080d596542c351ec03e18b Mon Sep 17 00:00:00 2001 From: Wei Date: Fri, 18 Jul 2025 11:09:44 +0800 Subject: [PATCH 4/8] docs(api): mock modules (#397) Co-authored-by: 9aoy --- packages/core/src/types/mock.ts | 10 +- website/docs/en/api/rstest/_meta.json | 2 +- website/docs/en/api/rstest/mockModules.mdx | 175 +++++++++++++++++++++ website/docs/zh/api/rstest/_meta.json | 2 +- website/docs/zh/api/rstest/mockModules.mdx | 175 +++++++++++++++++++++ 5 files changed, 360 insertions(+), 4 deletions(-) create mode 100644 website/docs/en/api/rstest/mockModules.mdx create mode 100644 website/docs/zh/api/rstest/mockModules.mdx diff --git a/packages/core/src/types/mock.ts b/packages/core/src/types/mock.ts index 6c46fbf6..058606dd 100644 --- a/packages/core/src/types/mock.ts +++ b/packages/core/src/types/mock.ts @@ -208,7 +208,10 @@ export type RstestUtilities = { /** * Mock a module */ - mock: (moduleName: string, moduleFactory?: () => T) => void; + mock: ( + moduleName: string, + moduleFactory?: () => T | Promise, + ) => void; /** * Mock a module @@ -221,7 +224,10 @@ export type RstestUtilities = { /** * Mock a module, not hoisted. */ - doMock: (moduleName: string, moduleFactory?: () => T) => void; + doMock: ( + moduleName: string, + moduleFactory?: () => T | Promise, + ) => void; /** * Mock a module, not hoisted. diff --git a/website/docs/en/api/rstest/_meta.json b/website/docs/en/api/rstest/_meta.json index d3265c1c..98ce8f02 100644 --- a/website/docs/en/api/rstest/_meta.json +++ b/website/docs/en/api/rstest/_meta.json @@ -1 +1 @@ -["mockFunctions", "mockInstance", "fakeTimers", "utilities"] +["mockModules", "mockFunctions", "mockInstance", "fakeTimers", "utilities"] diff --git a/website/docs/en/api/rstest/mockModules.mdx b/website/docs/en/api/rstest/mockModules.mdx new file mode 100644 index 00000000..06cd80ae --- /dev/null +++ b/website/docs/en/api/rstest/mockModules.mdx @@ -0,0 +1,175 @@ +--- +title: Mock modules +--- + +# Mock modules + +Rstest supports mocking modules, which allows you to replace the implementation of modules in tests. Rstest provides utility functions in `rs` (`rstest`) for mocking modules. You can directly use the following methods to mock modules: + +## rs.mock + +- **Type**: `(moduleName: string, moduleFactory?: () => T) => void` + +When calling `rs.mock`, Rstest will mock and replace the module specified in the first parameter. `rs.mock` will determine how to handle the mocked module based on whether a second mock factory function is provided, as explained in detail below. + +**Note that:** `rs.mock` is hoisted to the top of the current module, so even if you execute `import fn from 'some_module'` before calling `rs.mock('some_module')`, `some_module` will be mocked from the beginning. + +Based on the second parameter provided, `rs.mock` has two behaviors: + +1. If a factory function is provided as the second parameter to `rs.mock`, the module will be replaced with the return value of the factory function (the factory function can be async, use the awaited return value) as the implementation of the mocked module. + +
+
+ ```ts title="src/sum.test.ts" + import { sum } from './sum'; + + rs.mock('./sum', () => { + return { + sum: (a: number, b: number) => a + b + 100, + }; + }); + + expect(sum(1, 2)).toBe(103); // PASS + ``` + +
+
+ ```ts title="src/sum.ts" + export const sum = (a: number, b: number) => a + b; + + ``` + +
+
+ +2. If `rs.mock` is called without providing a factory function, it will attempt to resolve a module with the same name in the `__mocks__` directory at the same level as the mocked module. The specific mock resolution rules are as follows: + 1. If the mocked module is not an npm dependency, and there is a `__mocks__` folder at the same level as the file being mocked, where the `__mocks__` folder contains a file with the same name as the mocked module, Rstest will use that file as the mock implementation. + 2. If the mocked module is an npm dependency, and there is a `__mocks__` folder in the root directory that contains a file with the same name as the mocked module, Rstest will use that file as the mock implementation. + 3. If the mocked module is a Node.js built-in module (such as `fs`, `path`, etc.), and there is a `__mocks__` folder in the root directory that contains a file with the same name as the built-in module (e.g., `__mocks__/fs.mjs`, `__mocks__/path.ts`, etc.), Rstest will use that file as the corresponding mock implementation (when using the `node:` protocol to import built-in modules, the `node:` prefix will be ignored). + + For example, if the project has the following file structure: + + ```txt + ├── __mocks__ + │ └── lodash.js + ├── src + │ ├── multiple.ts + │ └── __mocks__ + │ └── multiple.ts + └── __test__ + └── multiple.test.ts + ``` + + Then in the following test file, when trying to mock the `lodash` and `src/multiple` modules, they will be replaced with implementations from `__mocks__/lodash.js` and `src/__mocks__/multiple.ts`. + + ```ts title="src/multiple.test.ts" + import { rs } from '@rstest/core'; + + // lodash is a default export from `__mocks__/lodash.js` + import lodash from 'lodash'; + + // multiple is a named export from `src/__mocks__/multiple.ts` + import { multiple } from '../src/multiple'; + + rs.mock('lodash'); + rs.mock('../src/multiple'); + + lodash.random(multiple(1, 2), multiple(3, 4)); + ``` + +## rs.doMock + +- **Type**: `(moduleName: string, moduleFactory?: () => T | Promise) => void` + +Similar to `rs.mock`, `rs.doMock` also mocks modules, but it is not hoisted to the top of the module. It is called when it's executed, which means that if a module has already been imported before calling `rs.doMock`, that module will not be mocked, while modules imported after calling `rs.doMock` will be mocked. + + ```ts title="src/sum.test.ts" + import { rs } from '@rstest/core'; + import { sum } from './sum'; + + it('test', async () => { + // sum is imported before executing doMock, it's not mocked yet + expect(sum(1, 2)).toBe(3); // PASS + rs.doMock('./sum') + const { sum: mockedSum } = await import('./sum'); + // sum is imported after executing doMock, it's mocked now + expect(mockedSum(1, 2)).toBe(3); // FAILED + }) + ``` + +{/* ## TODO: rs.mocked */} + +## rs.importActual + +- **Type**: `>(path: string) => Promise` + +Imports the original module regardless of whether it has been mocked. If you want to partially mock a module, you can use `rs.importActual` to get the original module's implementation and merge it with the mock implementation for partial mocking. + +```ts title="src/sum.test.ts" +rs.mock('./sum', async () => { + const originalModule = await rs.importActual('./sum'); + return { ...originalModule, sum2: rs.fn() }; +}); +``` + +## rs.importMock + +- **Type**: `>(path: string) => Promise` + +Imports a module and all its properties as mock implementations. + +```ts title="src/sum.test.ts" +it('test', async () => { + const mockedModule = await rs.importMock('./sum'); + expect(mockedModule.sum2(1, 2)).toBe(103); +}); +``` + +## rs.unmock + +- **Type**: `(path: string) => void` + +Cancels the mock implementation of the specified module. After this, all calls to `import` will return the original module, even if it was previously mocked. Like `rs.mock`, this call is hoisted to the top of the file, so it will only cancel module mocks executed in `setupFiles`. + +
+
+ ```ts title="src/sum.test.ts" + import { rs } from '@rstest/core'; + import { sum } from './src/sum'; + + rs.unmock('./src/sum'); + + expect(sum(1, 2)).toBe(3); // PASS + ``` + +
+
+ ```ts title="rstest.setup.ts" + import { rs } from '@rstest/core' + ; + rs.mock('./src/sum', () => { + return { + sum: (a: number, b: number) => a + b + 100, + }; + }); + + ``` + +
+
+ +## rs.doUnmock + +- **Type**: `(path: string) => void` + +Same as `rs.unmock`, but it is not hoisted to the top of the file. The next import of the module will import the original module instead of the mock. This will not cancel modules that were imported before the mock. + +## rs.resetModules + +- **Type**: `resetModules: () => RstestUtilities` + +Clears the cache of all modules. This allows modules to be re-executed when re-imported. This is useful for isolating the state of modules shared between different tests. + +:::warning +Does not reset mocked modules. To clear mocked modules, use [`rs.unmock`](#rsunmock) or [`rs.doUnmock`](#rsdounmock). +::: diff --git a/website/docs/zh/api/rstest/_meta.json b/website/docs/zh/api/rstest/_meta.json index d3265c1c..98ce8f02 100644 --- a/website/docs/zh/api/rstest/_meta.json +++ b/website/docs/zh/api/rstest/_meta.json @@ -1 +1 @@ -["mockFunctions", "mockInstance", "fakeTimers", "utilities"] +["mockModules", "mockFunctions", "mockInstance", "fakeTimers", "utilities"] diff --git a/website/docs/zh/api/rstest/mockModules.mdx b/website/docs/zh/api/rstest/mockModules.mdx new file mode 100644 index 00000000..90392a1a --- /dev/null +++ b/website/docs/zh/api/rstest/mockModules.mdx @@ -0,0 +1,175 @@ +--- +title: Mock modules +--- + +# Mock modules + +Rstest 支持对模块进行 mock,这使得你可以在测试中替换模块的实现。Rstest 提供了 `rs`(别名 `rstest`)工具函数来进行模块的 mock 。你可以直接使用以下方法来 mock 模块: + +## rs.mock + +- **类型:**: `(moduleName: string, moduleFactory?: () => T | Promise) => void` + +调用 `rs.mock` 时,Rstest 会对第一个参数对应的模块进行 mock 替换。`rs.mock` 将根据是否提供了第二个 mock 工厂函数来决定如何处理被 mock 的模块,下面会详细介绍这两种情况。 + +**需要注意的是:**`rs.mock` 会被提升到当前模块的顶部,所以即使在调用 `rs.mock('some_module')` 前执行了 `import fn from 'some_module'`,`some_module` 也会在一开始被 mock。 + +根据提供的第二个参数,`rs.mock` 有两种行为: + +1. 如果 `rs.mock` 方法的第二个参数提供了一个工厂函数,则替换为工厂函数的返回值(工厂函数可以是异步函数,取异步函数 await 后的返回值)作为被 mock 的模块的实现。 + +
+
+ ```ts title="src/sum.test.ts" + import { sum } from './sum'; + + rs.mock('./sum', () => { + return { + sum: (a: number, b: number) => a + b + 100, + }; + }); + + expect(sum(1, 2)).toBe(103); // PASS + ``` + +
+
+ ```ts title="src/sum.ts" + export const sum = (a: number, b: number) => a + b; + + ``` + +
+
+ +2. 如果 `rs.mock` 方法调用时没有提供工厂函数,则会尝试去解析与被 mock 的模块在同级的 `__mocks__` 目录下的同名模块,具体的 mock 的解析的规则如下: + 1. 如果被 mock 的模块不是 npm 依赖,并且如果有一个 `__mocks__` 文件夹与正在 mock 的文件同级,其中 `__mocks__` 文件夹包含一个与被 mock 的模块同名的文件,则 Rstest 将使用该文件作为 mock 的实现。 + 2. 如果被 mock 的模块是 npm 依赖,并且在根目录中有一个 `__mocks__` 文件夹,其中包含一个与被 mock 的模块同名的文件,则 Rstest 将使用该文件作为 mock 实现。 + 3. 如果被 mock 的模块是 Node.js 的内置模块(如 `fs`、`path` 等),并且在根目录中有一个 `__mocks__` 文件夹,其中包含一个与内置模块同名的文件(如 `__mocks__/fs.mjs`、`__mocks__/path.ts` 等),则 Rstest 将使用该文件作为对应的 mock 实现(使用 `node:` 协议导入内置模块时将忽略 `node:` 前缀)。 + + 例如项目中有这样的文件结构: + + ```txt + ├── __mocks__ + │ └── lodash.js + ├── src + │ ├── multiple.ts + │ └── __mocks__ + │ └── multiple.ts + └── __test__ + └── multiple.test.ts + ``` + + 那么在如下的测试文件中尝试 mock `lodash` 和 `src/multiple` 模块,他们会被替换为 `__mocks__/lodash.js` 和 `src/__mocks__/multiple.ts` 中的实现。 + + ```ts title="src/multiple.test.ts" + import { rs } from '@rstest/core'; + + // lodash is a default export from `__mocks__/lodash.js` + import lodash from 'lodash'; + + // multiple is a named export from `src/__mocks__/multiple.ts` + import { multiple } from '../src/multiple'; + + rs.mock('lodash'); + rs.mock('../src/multiple'); + + lodash.random(multiple(1, 2), multiple(3, 4)); + ``` + +## rs.doMock + +- **类型:**: `(moduleName: string, moduleFactory?: () => T | Promise) => void` + +与 `rs.mock` 类似,`rs.doMock` 也会 mock 模块,但它不会被提升到模块顶部。它会在被执行到时调用,这意味着,如果在调用 `rs.doMock` 之前已经导入了模块,则该模块不会被 mock,而在调用 `rs.doMock` 之后导入的模块会被 mock。 + + ```ts title="src/sum.test.ts" + import { rs } from '@rstest/core'; + import { sum } from './sum'; + + it('test', async () => { + // sum is imported before executing doMock, it's not mocked yet + expect(sum(1, 2)).toBe(3); // PASS + rs.doMock('./sum') + const { sum: mockedSum } = await import('./sum'); + // sum is imported after executing doMock, it's mocked now + expect(mockedSum(1, 2)).toBe(3); // FAILED + }) + ``` + +{/* ## TODO: rs.mocked */} + +## rs.importActual + +- **类型:**: `>(path: string) => Promise` + +无视一个模块是否被 mock,导入其原始的模块。如果你想 mock 模块的部分实现,可以使用 `rs.importActual` 来获取原始模块的实现与 mock 的实现进行合并进行部分 mock。 + +```ts title="src/sum.test.ts" +rs.mock('./sum', async () => { + const originalModule = await rs.importActual('./sum'); + return { ...originalModule, sum2: rs.fn() }; +}); +``` + +## rs.importMock + +- **类型:**: `>(path: string) => Promise` + +导入一个模块及其所有属性的 mock 实现。 + +```ts title="src/sum.test.ts" +it('test', async () => { + const mockedModule = await rs.importMock('./sum'); + expect(mockedModule.sum2(1, 2)).toBe(103); +}); +``` + +## rs.unmock + +- **类型:**: `(path: string) => void` + +取消指定模块的 mock 实现。之后所有对 `import` 的调用都将返回原始模块,即使它之前已被 mock。与 `rs.mock` 类似,此调用被提升到文件的顶部,因此它将仅取消在 `setupFiles` 中执行的模块 mock。 + +
+
+ ```ts title="src/sum.test.ts" + import { rs } from '@rstest/core'; + import { sum } from './src/sum'; + + rs.unmock('./src/sum'); + + expect(sum(1, 2)).toBe(3); // PASS + ``` + +
+
+ ```ts title="rstest.setup.ts" + import { rs } from '@rstest/core' + ; + rs.mock('./src/sum', () => { + return { + sum: (a: number, b: number) => a + b + 100, + }; + }); + + ``` + +
+
+ +## rs.doUnmock + +- **类型:**: `(path: string) => void` + +与 `rs.unmock` 相同,但不会被提升到文件顶部。模块的下一次导入将导入原始模块而不是 mock。这不会取消 mock 之前导入的模块。 + +## rs.resetModules + +- **类型:**: `resetModules: () => RstestUtilities` + +清除所有模块的缓存。这允许在重新导入时重新执行模块。这在隔离不同测试中共享的模块的状态时非常有用。 + +:::warning +不会重置被 mock 的 modules。要清除 mock 的模块,请使用 [`rs.unmock`](#rsunmock) 或 [`rs.doUnmock`](#rsdounmock) 。 +::: From 37dd7360b374292cecb68318842d203bc2b972c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 13:57:26 +0800 Subject: [PATCH 5/8] chore(deps): update all patch dependencies (#400) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/react/package.json | 2 +- package.json | 4 +- packages/core/package.json | 4 +- pnpm-lock.yaml | 260 ++++++++++++++++---------------- tests/dom/fixtures/package.json | 2 +- tests/package.json | 4 +- tests/vue/fixtures/package.json | 2 +- website/package.json | 2 +- 8 files changed, 140 insertions(+), 140 deletions(-) diff --git a/examples/react/package.json b/examples/react/package.json index 8aad59d5..445b1927 100644 --- a/examples/react/package.json +++ b/examples/react/package.json @@ -13,7 +13,7 @@ "react-dom": "^19.1.0" }, "devDependencies": { - "@rsbuild/core": "1.4.7", + "@rsbuild/core": "1.4.8", "@rsbuild/plugin-react": "^1.3.4", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.3.0", diff --git a/package.json b/package.json index e29de467..e93778ad 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "pnpm-lock.yaml": "pnpm dedupe --check" }, "devDependencies": { - "@biomejs/biome": "^2.1.1", + "@biomejs/biome": "^2.1.2", "@changesets/cli": "^2.29.5", "@rsdoctor/rspack-plugin": "^1.1.8", "@rstest/core": "workspace:*", @@ -45,7 +45,7 @@ "nx": "^21.2.3", "path-serializer": "0.5.0", "prettier": "^3.6.2", - "prettier-plugin-packagejson": "^2.5.18", + "prettier-plugin-packagejson": "^2.5.19", "simple-git-hooks": "^2.13.0", "typescript": "^5.8.3" }, diff --git a/packages/core/package.json b/packages/core/package.json index 517d6ca1..404e8c28 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -54,7 +54,7 @@ "test": "npx rstest run --globals" }, "dependencies": { - "@rsbuild/core": "1.4.7", + "@rsbuild/core": "1.4.8", "@types/chai": "^5.2.2", "@vitest/expect": "^3.2.4", "@vitest/snapshot": "^3.2.4", @@ -68,7 +68,7 @@ "@babel/code-frame": "^7.27.1", "@jridgewell/trace-mapping": "0.3.29", "@microsoft/api-extractor": "^7.52.8", - "@rslib/core": "0.10.5", + "@rslib/core": "0.10.6", "@rstest/tsconfig": "workspace:*", "@sinonjs/fake-timers": "^14.0.0", "@types/babel__code-frame": "^7.0.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a10a5d4f..52e4ee56 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,14 +11,14 @@ importers: .: devDependencies: '@biomejs/biome': - specifier: ^2.1.1 - version: 2.1.1 + specifier: ^2.1.2 + version: 2.1.2 '@changesets/cli': specifier: ^2.29.5 version: 2.29.5 '@rsdoctor/rspack-plugin': specifier: ^1.1.8 - version: 1.1.8(@rsbuild/core@1.4.7)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) + version: 1.1.8(@rsbuild/core@1.4.8)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) '@rstest/core': specifier: workspace:* version: link:packages/core @@ -56,8 +56,8 @@ importers: specifier: ^3.6.2 version: 3.6.2 prettier-plugin-packagejson: - specifier: ^2.5.18 - version: 2.5.18(prettier@3.6.2) + specifier: ^2.5.19 + version: 2.5.19(prettier@3.6.2) simple-git-hooks: specifier: ^2.13.0 version: 2.13.0 @@ -87,11 +87,11 @@ importers: version: 19.1.0(react@19.1.0) devDependencies: '@rsbuild/core': - specifier: 1.4.7 - version: 1.4.7 + specifier: 1.4.8 + version: 1.4.8 '@rsbuild/plugin-react': specifier: ^1.3.4 - version: 1.3.4(@rsbuild/core@1.4.7) + version: 1.3.4(@rsbuild/core@1.4.8) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -114,8 +114,8 @@ importers: packages/core: dependencies: '@rsbuild/core': - specifier: 1.4.7 - version: 1.4.7 + specifier: 1.4.8 + version: 1.4.8 '@types/chai': specifier: ^5.2.2 version: 5.2.2 @@ -151,8 +151,8 @@ importers: specifier: ^7.52.8 version: 7.52.8(@types/node@22.13.8) '@rslib/core': - specifier: 0.10.5 - version: 0.10.5(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(typescript@5.8.3) + specifier: 0.10.6 + version: 0.10.6(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(typescript@5.8.3) '@rstest/tsconfig': specifier: workspace:* version: link:../../scripts/tsconfig @@ -210,11 +210,11 @@ importers: tests: devDependencies: '@rsbuild/core': - specifier: 1.4.7 - version: 1.4.7 + specifier: 1.4.8 + version: 1.4.8 '@rslib/core': - specifier: 0.10.5 - version: 0.10.5(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(typescript@5.8.3) + specifier: 0.10.6 + version: 0.10.6(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(typescript@5.8.3) '@rstest/core': specifier: workspace:* version: link:../packages/core @@ -272,11 +272,11 @@ importers: version: 19.1.0(react@19.1.0) devDependencies: '@rsbuild/core': - specifier: 1.4.7 - version: 1.4.7 + specifier: 1.4.8 + version: 1.4.8 '@rsbuild/plugin-react': specifier: ^1.3.4 - version: 1.3.4(@rsbuild/core@1.4.7) + version: 1.3.4(@rsbuild/core@1.4.8) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -374,7 +374,7 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.4 - version: 1.3.4(@rsbuild/core@1.4.7) + version: 1.3.4(@rsbuild/core@1.4.8) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -392,17 +392,17 @@ importers: version: 3.5.17(typescript@5.8.3) devDependencies: '@rsbuild/core': - specifier: 1.4.7 - version: 1.4.7 + specifier: 1.4.8 + version: 1.4.8 '@rsbuild/plugin-babel': specifier: ^1.0.5 - version: 1.0.5(@rsbuild/core@1.4.7) + version: 1.0.5(@rsbuild/core@1.4.8) '@rsbuild/plugin-vue': specifier: ^1.1.0 - version: 1.1.0(@rsbuild/core@1.4.7)(vue@3.5.17(typescript@5.8.3)) + version: 1.1.0(@rsbuild/core@1.4.8)(vue@3.5.17(typescript@5.8.3)) '@rsbuild/plugin-vue-jsx': specifier: ^1.1.0 - version: 1.1.0(@babel/core@7.28.0)(@rsbuild/core@1.4.7) + version: 1.1.0(@babel/core@7.28.0)(@rsbuild/core@1.4.8) '@rstest/core': specifier: workspace:* version: link:../../../packages/core @@ -426,13 +426,13 @@ importers: devDependencies: '@rsbuild/plugin-sass': specifier: ^1.3.3 - version: 1.3.3(@rsbuild/core@1.4.7) + version: 1.3.3(@rsbuild/core@1.4.8) '@rspress/plugin-llms': specifier: 2.0.0-beta.21 version: 2.0.0-beta.21(rspress@2.0.0-beta.21(@types/react@19.1.8)(acorn@8.14.1)(webpack@5.99.9)) '@rstack-dev/doc-ui': - specifier: 1.10.6 - version: 1.10.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: 1.10.7 + version: 1.10.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@rstest/tsconfig': specifier: workspace:* version: link:../scripts/tsconfig @@ -453,10 +453,10 @@ importers: version: 19.1.0(react@19.1.0) rsbuild-plugin-google-analytics: specifier: ^1.0.3 - version: 1.0.3(@rsbuild/core@1.4.7) + version: 1.0.3(@rsbuild/core@1.4.8) rsbuild-plugin-open-graph: specifier: ^1.0.2 - version: 1.0.2(@rsbuild/core@1.4.7) + version: 1.0.2(@rsbuild/core@1.4.8) rspress: specifier: ^2.0.0-beta.21 version: 2.0.0-beta.21(@types/react@19.1.8)(acorn@8.14.1)(webpack@5.99.9) @@ -695,55 +695,55 @@ packages: resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} engines: {node: '>=6.9.0'} - '@biomejs/biome@2.1.1': - resolution: {integrity: sha512-HFGYkxG714KzG+8tvtXCJ1t1qXQMzgWzfvQaUjxN6UeKv+KvMEuliInnbZLJm6DXFXwqVi6446EGI0sGBLIYng==} + '@biomejs/biome@2.1.2': + resolution: {integrity: sha512-yq8ZZuKuBVDgAS76LWCfFKHSYIAgqkxVB3mGVVpOe2vSkUTs7xG46zXZeNPRNVjiJuw0SZ3+J2rXiYx0RUpfGg==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.1.1': - resolution: {integrity: sha512-2Muinu5ok4tWxq4nu5l19el48cwCY/vzvI7Vjbkf3CYIQkjxZLyj0Ad37Jv2OtlXYaLvv+Sfu1hFeXt/JwRRXQ==} + '@biomejs/cli-darwin-arm64@2.1.2': + resolution: {integrity: sha512-leFAks64PEIjc7MY/cLjE8u5OcfBKkcDB0szxsWUB4aDfemBep1WVKt0qrEyqZBOW8LPHzrFMyDl3FhuuA0E7g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.1.1': - resolution: {integrity: sha512-cC8HM5lrgKQXLAK+6Iz2FrYW5A62pAAX6KAnRlEyLb+Q3+Kr6ur/sSuoIacqlp1yvmjHJqjYfZjPvHWnqxoEIA==} + '@biomejs/cli-darwin-x64@2.1.2': + resolution: {integrity: sha512-Nmmv7wRX5Nj7lGmz0FjnWdflJg4zii8Ivruas6PBKzw5SJX/q+Zh2RfnO+bBnuKLXpj8kiI2x2X12otpH6a32A==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.1.1': - resolution: {integrity: sha512-/7FBLnTswu4jgV9ttI3AMIdDGqVEPIZd8I5u2D4tfCoj8rl9dnjrEQbAIDlWhUXdyWlFSz8JypH3swU9h9P+2A==} + '@biomejs/cli-linux-arm64-musl@2.1.2': + resolution: {integrity: sha512-qgHvafhjH7Oca114FdOScmIKf1DlXT1LqbOrrbR30kQDLFPEOpBG0uzx6MhmsrmhGiCFCr2obDamu+czk+X0HQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@2.1.1': - resolution: {integrity: sha512-tw4BEbhAUkWPe4WBr6IX04DJo+2jz5qpPzpW/SWvqMjb9QuHY8+J0M23V8EPY/zWU4IG8Ui0XESapR1CB49Q7g==} + '@biomejs/cli-linux-arm64@2.1.2': + resolution: {integrity: sha512-NWNy2Diocav61HZiv2enTQykbPP/KrA/baS7JsLSojC7Xxh2nl9IczuvE5UID7+ksRy2e7yH7klm/WkA72G1dw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@2.1.1': - resolution: {integrity: sha512-kUu+loNI3OCD2c12cUt7M5yaaSjDnGIksZwKnueubX6c/HWUyi/0mPbTBHR49Me3F0KKjWiKM+ZOjsmC+lUt9g==} + '@biomejs/cli-linux-x64-musl@2.1.2': + resolution: {integrity: sha512-xlB3mU14ZUa3wzLtXfmk2IMOGL+S0aHFhSix/nssWS/2XlD27q+S6f0dlQ8WOCbYoXcuz8BCM7rCn2lxdTrlQA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@2.1.1': - resolution: {integrity: sha512-3WJ1GKjU7NzZb6RTbwLB59v9cTIlzjbiFLDB0z4376TkDqoNYilJaC37IomCr/aXwuU8QKkrYoHrgpSq5ffJ4Q==} + '@biomejs/cli-linux-x64@2.1.2': + resolution: {integrity: sha512-Km/UYeVowygTjpX6sGBzlizjakLoMQkxWbruVZSNE6osuSI63i4uCeIL+6q2AJlD3dxoiBJX70dn1enjQnQqwA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@2.1.1': - resolution: {integrity: sha512-vEHK0v0oW+E6RUWLoxb2isI3rZo57OX9ZNyyGH701fZPj6Il0Rn1f5DMNyCmyflMwTnIQstEbs7n2BxYSqQx4Q==} + '@biomejs/cli-win32-arm64@2.1.2': + resolution: {integrity: sha512-G8KWZli5ASOXA3yUQgx+M4pZRv3ND16h77UsdunUL17uYpcL/UC7RkWTdkfvMQvogVsAuz5JUcBDjgZHXxlKoA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.1.1': - resolution: {integrity: sha512-i2PKdn70kY++KEF/zkQFvQfX1e8SkA8hq4BgC+yE9dZqyLzB/XStY2MvwI3qswlRgnGpgncgqe0QYKVS1blksg==} + '@biomejs/cli-win32-x64@2.1.2': + resolution: {integrity: sha512-9zajnk59PMpjBkty3bK2IrjUsUHvqe9HWwyAWQBjGLE7MIBjbX2vwv1XPEhmO2RRuGoTkVx3WCanHrjAytICLA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -1047,8 +1047,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.4': - resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@polka/url@1.0.0-next.29': @@ -1058,8 +1058,8 @@ packages: resolution: {integrity: sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==} engines: {node: '>=14.0.0'} - '@rsbuild/core@1.4.7': - resolution: {integrity: sha512-mYvMYlCKUQAfz7x7GJnD6lBsVBfUSEAfrZLxkDQ0F3w7If9cQpHWLWZWdRmcFFy3Pzns1Edxn0st1nAmcFhRJQ==} + '@rsbuild/core@1.4.8': + resolution: {integrity: sha512-IJhpLl8lrp5ynlf04V5l7rMrVTNuGLG36ZDadHiBIC5qLRGSS3rMF8cVLSkSA6qM1OiRlPpMgwQbqFYh325RvQ==} engines: {node: '>=16.10.0'} hasBin: true @@ -1133,8 +1133,8 @@ packages: '@rsdoctor/utils@1.1.8': resolution: {integrity: sha512-t8OWc9cDJHaiHDWunWBYjAJnBBZ+q0XgQfWkHJHRtF+MPf4RpZCQtNiu7WwZOXquKNu+3fY+otOJtnHnlRtvww==} - '@rslib/core@0.10.5': - resolution: {integrity: sha512-kThW/bkKgja++/AykW1fJaRK+TAiW3+ZSWiCKJxHHS87ZQc/PeRTxk2A0upHi7R3CyfdGgXGNcEBPoeBUj4zYw==} + '@rslib/core@0.10.6': + resolution: {integrity: sha512-7OLdmmQbY116gNAAsY9baCid9REr+z11qfAzwVVFw+Q8avCE6YqpcBLfrBXlfmpBikfshDmHH8EpRrQwz8gZJQ==} engines: {node: '>=16.7.0'} hasBin: true peerDependencies: @@ -1293,8 +1293,8 @@ packages: resolution: {integrity: sha512-G+yJiAZW0oiAB7FyMFWrEI5B/Lg3z2IdxegbGo3a9q2tYo24bd35YuuXOQOIPuE/0+hWxCtB1vxDYH6WyZwMIQ==} engines: {node: '>=18.0.0'} - '@rstack-dev/doc-ui@1.10.6': - resolution: {integrity: sha512-lO5zRhQsLfiDuoIw0DnI/xLdG17N4RKcBO3MIW2H1R1XFGxcpdIfFVQI56/J4LaTMgVj7S2D00xnXMikwKm42w==} + '@rstack-dev/doc-ui@1.10.7': + resolution: {integrity: sha512-WanOXuqt5AFUd+B04g65Dv7om+tmGcKnyZowYwRCOGMGX0i7PDxiqiHbQgw2taz2eNai3PIQyZAVNoqf20zeRA==} '@rushstack/node-core-library@5.13.1': resolution: {integrity: sha512-5yXhzPFGEkVc9Fu92wsNJ9jlvdwz4RNb2bMso+/+TH0nMm1jDDDsOIf4l8GAkPxGuwPw5DH24RliWVfSPhlW/Q==} @@ -2428,8 +2428,8 @@ packages: resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} - framer-motion@12.16.0: - resolution: {integrity: sha512-xryrmD4jSBQrS2IkMdcTmiS4aSKckbS7kLDCuhUn9110SQKG1w3zlq1RTqCblewg+ZYe+m3sdtzQA6cRwo5g8Q==} + framer-motion@12.23.6: + resolution: {integrity: sha512-dsJ389QImVE3lQvM8Mnk99/j8tiZDM/7706PCqvkQ8sSCnpmWxsgX+g0lj7r5OBVL0U36pIecCTBoIWcM2RuKw==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -3201,11 +3201,11 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - motion-dom@12.16.0: - resolution: {integrity: sha512-Z2nGwWrrdH4egLEtgYMCEN4V2qQt1qxlKy/uV7w691ztyA41Q5Rbn0KNGbsNVDZr9E8PD2IOQ3hSccRnB6xWzw==} + motion-dom@12.23.6: + resolution: {integrity: sha512-G2w6Nw7ZOVSzcQmsdLc0doMe64O/Sbuc2bVAbgMz6oP/6/pRStKRiVRV4bQfHp5AHYAKEGhEdVHTM+R3FDgi5w==} - motion-utils@12.12.1: - resolution: {integrity: sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==} + motion-utils@12.23.6: + resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -3432,8 +3432,8 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - prettier-plugin-packagejson@2.5.18: - resolution: {integrity: sha512-NKznPGcGrcj4NPGxnh+w78JXPyfB6I4RQSCM0v+CAXwpDG7OEpJQ5zMyfC5NBgKH1k7Skwcj5ak5by2mrHvC5g==} + prettier-plugin-packagejson@2.5.19: + resolution: {integrity: sha512-Qsqp4+jsZbKMpEGZB1UP1pxeAT8sCzne2IwnKkr+QhUe665EXUo3BAvTf1kAPCqyMv9kg3ZmO0+7eOni/C6Uag==} peerDependencies: prettier: '>= 1.16.0' peerDependenciesMeta: @@ -3638,8 +3638,8 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - rsbuild-plugin-dts@0.10.5: - resolution: {integrity: sha512-gjngxgV0RD4T7aKDTf7kho9IUBNjHR+Y3krYwNEnUakOiuk9Fn03MxVCcASyCsPY+H7HooI8P8wXZoPhiSWSZA==} + rsbuild-plugin-dts@0.10.6: + resolution: {integrity: sha512-rVP82fFMDHW0GirhYx+w2bER1HhkOKJ8e/bAAF2OkMUP2k2fviMpl/gsnbO8KI9vcSqsQE2QXHkj781m6W84Ow==} engines: {node: '>=16.7.0'} peerDependencies: '@microsoft/api-extractor': ^7 @@ -4031,8 +4031,8 @@ packages: resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} engines: {node: '>=16.0.0'} - synckit@0.11.8: - resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} table@6.9.0: @@ -4714,39 +4714,39 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@biomejs/biome@2.1.1': + '@biomejs/biome@2.1.2': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.1.1 - '@biomejs/cli-darwin-x64': 2.1.1 - '@biomejs/cli-linux-arm64': 2.1.1 - '@biomejs/cli-linux-arm64-musl': 2.1.1 - '@biomejs/cli-linux-x64': 2.1.1 - '@biomejs/cli-linux-x64-musl': 2.1.1 - '@biomejs/cli-win32-arm64': 2.1.1 - '@biomejs/cli-win32-x64': 2.1.1 - - '@biomejs/cli-darwin-arm64@2.1.1': + '@biomejs/cli-darwin-arm64': 2.1.2 + '@biomejs/cli-darwin-x64': 2.1.2 + '@biomejs/cli-linux-arm64': 2.1.2 + '@biomejs/cli-linux-arm64-musl': 2.1.2 + '@biomejs/cli-linux-x64': 2.1.2 + '@biomejs/cli-linux-x64-musl': 2.1.2 + '@biomejs/cli-win32-arm64': 2.1.2 + '@biomejs/cli-win32-x64': 2.1.2 + + '@biomejs/cli-darwin-arm64@2.1.2': optional: true - '@biomejs/cli-darwin-x64@2.1.1': + '@biomejs/cli-darwin-x64@2.1.2': optional: true - '@biomejs/cli-linux-arm64-musl@2.1.1': + '@biomejs/cli-linux-arm64-musl@2.1.2': optional: true - '@biomejs/cli-linux-arm64@2.1.1': + '@biomejs/cli-linux-arm64@2.1.2': optional: true - '@biomejs/cli-linux-x64-musl@2.1.1': + '@biomejs/cli-linux-x64-musl@2.1.2': optional: true - '@biomejs/cli-linux-x64@2.1.1': + '@biomejs/cli-linux-x64@2.1.2': optional: true - '@biomejs/cli-win32-arm64@2.1.1': + '@biomejs/cli-win32-arm64@2.1.2': optional: true - '@biomejs/cli-win32-x64@2.1.1': + '@biomejs/cli-win32-x64@2.1.2': optional: true '@bufbuild/protobuf@2.6.0': {} @@ -5191,13 +5191,13 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.2.4': {} + '@pkgr/core@0.2.9': {} '@polka/url@1.0.0-next.29': {} '@remix-run/router@1.23.0': {} - '@rsbuild/core@1.4.7': + '@rsbuild/core@1.4.8': dependencies: '@rspack/core': 1.4.8(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 @@ -5205,13 +5205,13 @@ snapshots: core-js: 3.44.0 jiti: 2.4.2 - '@rsbuild/plugin-babel@1.0.5(@rsbuild/core@1.4.7)': + '@rsbuild/plugin-babel@1.0.5(@rsbuild/core@1.4.8)': 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.4.7 + '@rsbuild/core': 1.4.8 '@types/babel__core': 7.20.5 deepmerge: 4.3.1 reduce-configs: 1.1.0 @@ -5219,7 +5219,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@rsbuild/plugin-check-syntax@1.3.0(@rsbuild/core@1.4.7)': + '@rsbuild/plugin-check-syntax@1.3.0(@rsbuild/core@1.4.8)': dependencies: acorn: 8.14.1 browserslist-to-es-version: 1.0.0 @@ -5227,39 +5227,39 @@ snapshots: picocolors: 1.1.1 source-map: 0.7.4 optionalDependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 - '@rsbuild/plugin-react@1.3.4(@rsbuild/core@1.4.7)': + '@rsbuild/plugin-react@1.3.4(@rsbuild/core@1.4.8)': dependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 '@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.3(@rsbuild/core@1.4.7)': + '@rsbuild/plugin-sass@1.3.3(@rsbuild/core@1.4.8)': dependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 deepmerge: 4.3.1 loader-utils: 2.0.4 postcss: 8.5.6 reduce-configs: 1.1.0 sass-embedded: 1.89.2 - '@rsbuild/plugin-vue-jsx@1.1.0(@babel/core@7.28.0)(@rsbuild/core@1.4.7)': + '@rsbuild/plugin-vue-jsx@1.1.0(@babel/core@7.28.0)(@rsbuild/core@1.4.8)': dependencies: - '@rsbuild/plugin-babel': 1.0.5(@rsbuild/core@1.4.7) + '@rsbuild/plugin-babel': 1.0.5(@rsbuild/core@1.4.8) '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.28.0) babel-plugin-vue-jsx-hmr: 1.0.0 optionalDependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 transitivePeerDependencies: - '@babel/core' - supports-color - '@rsbuild/plugin-vue@1.1.0(@rsbuild/core@1.4.7)(vue@3.5.17(typescript@5.8.3))': + '@rsbuild/plugin-vue@1.1.0(@rsbuild/core@1.4.8)(vue@3.5.17(typescript@5.8.3))': dependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 vue-loader: 17.4.2(vue@3.5.17(typescript@5.8.3))(webpack@5.99.9) webpack: 5.99.9 transitivePeerDependencies: @@ -5272,9 +5272,9 @@ snapshots: '@rsdoctor/client@1.1.8': {} - '@rsdoctor/core@1.1.8(@rsbuild/core@1.4.7)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9)': + '@rsdoctor/core@1.1.8(@rsbuild/core@1.4.8)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9)': dependencies: - '@rsbuild/plugin-check-syntax': 1.3.0(@rsbuild/core@1.4.7) + '@rsbuild/plugin-check-syntax': 1.3.0(@rsbuild/core@1.4.8) '@rsdoctor/graph': 1.1.8(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) '@rsdoctor/sdk': 1.1.8(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) '@rsdoctor/types': 1.1.8(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) @@ -5312,9 +5312,9 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/rspack-plugin@1.1.8(@rsbuild/core@1.4.7)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9)': + '@rsdoctor/rspack-plugin@1.1.8(@rsbuild/core@1.4.8)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9)': dependencies: - '@rsdoctor/core': 1.1.8(@rsbuild/core@1.4.7)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) + '@rsdoctor/core': 1.1.8(@rsbuild/core@1.4.8)(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) '@rsdoctor/graph': 1.1.8(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) '@rsdoctor/sdk': 1.1.8(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) '@rsdoctor/types': 1.1.8(@rspack/core@1.4.8(@swc/helpers@0.5.17))(webpack@5.99.9) @@ -5389,10 +5389,10 @@ snapshots: - supports-color - webpack - '@rslib/core@0.10.5(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(typescript@5.8.3)': + '@rslib/core@0.10.6(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(typescript@5.8.3)': dependencies: - '@rsbuild/core': 1.4.7 - rsbuild-plugin-dts: 0.10.5(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(@rsbuild/core@1.4.7)(typescript@5.8.3) + '@rsbuild/core': 1.4.8 + rsbuild-plugin-dts: 0.10.6(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(@rsbuild/core@1.4.8)(typescript@5.8.3) tinyglobby: 0.2.14 optionalDependencies: '@microsoft/api-extractor': 7.52.8(@types/node@22.13.8) @@ -5464,8 +5464,8 @@ snapshots: '@mdx-js/loader': 3.1.0(acorn@8.14.1)(webpack@5.99.9) '@mdx-js/mdx': 3.1.0(acorn@8.14.1) '@mdx-js/react': 3.1.0(@types/react@19.1.8)(react@19.1.0) - '@rsbuild/core': 1.4.7 - '@rsbuild/plugin-react': 1.3.4(@rsbuild/core@1.4.7) + '@rsbuild/core': 1.4.8 + '@rsbuild/plugin-react': 1.3.4(@rsbuild/core@1.4.8) '@rspress/mdx-rs': 0.6.6 '@rspress/runtime': 2.0.0-beta.21 '@rspress/shared': 2.0.0-beta.21 @@ -5560,7 +5560,7 @@ snapshots: '@rspress/shared@2.0.0-beta.21': dependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 '@shikijs/rehype': 3.4.2 gray-matter: 4.0.3 lodash-es: 4.17.21 @@ -5585,9 +5585,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@rstack-dev/doc-ui@1.10.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rstack-dev/doc-ui@1.10.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - framer-motion: 12.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + framer-motion: 12.23.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@emotion/is-prop-valid' - react @@ -6841,10 +6841,10 @@ snapshots: es-set-tostringtag: 2.1.0 mime-types: 2.1.35 - framer-motion@12.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + framer-motion@12.23.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - motion-dom: 12.16.0 - motion-utils: 12.12.1 + motion-dom: 12.23.6 + motion-utils: 12.23.6 tslib: 2.8.1 optionalDependencies: react: 19.1.0 @@ -7962,11 +7962,11 @@ snapshots: minipass@7.1.2: {} - motion-dom@12.16.0: + motion-dom@12.23.6: dependencies: - motion-utils: 12.12.1 + motion-utils: 12.23.6 - motion-utils@12.12.1: {} + motion-utils@12.23.6: {} mri@1.2.0: {} @@ -8196,10 +8196,10 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prettier-plugin-packagejson@2.5.18(prettier@3.6.2): + prettier-plugin-packagejson@2.5.19(prettier@3.6.2): dependencies: sort-package-json: 3.4.0 - synckit: 0.11.8 + synckit: 0.11.11 optionalDependencies: prettier: 3.6.2 @@ -8449,10 +8449,10 @@ snapshots: rrweb-cssom@0.8.0: {} - rsbuild-plugin-dts@0.10.5(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(@rsbuild/core@1.4.7)(typescript@5.8.3): + rsbuild-plugin-dts@0.10.6(@microsoft/api-extractor@7.52.8(@types/node@22.13.8))(@rsbuild/core@1.4.8)(typescript@5.8.3): dependencies: '@ast-grep/napi': 0.37.0 - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 magic-string: 0.30.17 picocolors: 1.1.1 tinyglobby: 0.2.14 @@ -8461,13 +8461,13 @@ snapshots: '@microsoft/api-extractor': 7.52.8(@types/node@22.13.8) typescript: 5.8.3 - rsbuild-plugin-google-analytics@1.0.3(@rsbuild/core@1.4.7): + rsbuild-plugin-google-analytics@1.0.3(@rsbuild/core@1.4.8): optionalDependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 - rsbuild-plugin-open-graph@1.0.2(@rsbuild/core@1.4.7): + rsbuild-plugin-open-graph@1.0.2(@rsbuild/core@1.4.8): optionalDependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 rslog@1.2.9: {} @@ -8481,7 +8481,7 @@ snapshots: rspress@2.0.0-beta.21(@types/react@19.1.8)(acorn@8.14.1)(webpack@5.99.9): dependencies: - '@rsbuild/core': 1.4.7 + '@rsbuild/core': 1.4.8 '@rspress/core': 2.0.0-beta.21(@types/react@19.1.8)(acorn@8.14.1)(webpack@5.99.9) '@rspress/shared': 2.0.0-beta.21 cac: 6.7.14 @@ -8837,9 +8837,9 @@ snapshots: sync-message-port@1.1.3: {} - synckit@0.11.8: + synckit@0.11.11: dependencies: - '@pkgr/core': 0.2.4 + '@pkgr/core': 0.2.9 table@6.9.0: dependencies: diff --git a/tests/dom/fixtures/package.json b/tests/dom/fixtures/package.json index 72a91415..f5ada922 100644 --- a/tests/dom/fixtures/package.json +++ b/tests/dom/fixtures/package.json @@ -11,7 +11,7 @@ "react-dom": "^19.1.0" }, "devDependencies": { - "@rsbuild/core": "1.4.7", + "@rsbuild/core": "1.4.8", "@rsbuild/plugin-react": "^1.3.4", "@testing-library/jest-dom": "^6.6.3", "@testing-library/dom": "^10.4.0", diff --git a/tests/package.json b/tests/package.json index d385b4d1..5090f7bc 100644 --- a/tests/package.json +++ b/tests/package.json @@ -7,8 +7,8 @@ "typecheck": "tsc --noEmit" }, "devDependencies": { - "@rsbuild/core": "1.4.7", - "@rslib/core": "0.10.5", + "@rsbuild/core": "1.4.8", + "@rslib/core": "0.10.6", "@rstest/core": "workspace:*", "@rstest/tsconfig": "workspace:*", "@types/jest-image-snapshot": "^6.4.0", diff --git a/tests/vue/fixtures/package.json b/tests/vue/fixtures/package.json index 6b47eabe..a9d1ba9c 100644 --- a/tests/vue/fixtures/package.json +++ b/tests/vue/fixtures/package.json @@ -12,7 +12,7 @@ }, "devDependencies": { "@rstest/core": "workspace:*", - "@rsbuild/core": "1.4.7", + "@rsbuild/core": "1.4.8", "@rsbuild/plugin-babel": "^1.0.5", "@rsbuild/plugin-vue": "^1.1.0", "@rsbuild/plugin-vue-jsx": "^1.1.0", diff --git a/website/package.json b/website/package.json index d4a08739..489f5e20 100644 --- a/website/package.json +++ b/website/package.json @@ -11,7 +11,7 @@ "devDependencies": { "@rsbuild/plugin-sass": "^1.3.3", "@rspress/plugin-llms": "2.0.0-beta.21", - "@rstack-dev/doc-ui": "1.10.6", + "@rstack-dev/doc-ui": "1.10.7", "@rstest/tsconfig": "workspace:*", "@types/node": "^22.13.8", "@types/react": "^19.1.8", From 60381dad60197ea3ccfb439393e79f35a7c28ab2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 13:59:39 +0800 Subject: [PATCH 6/8] chore(deps): update dependency birpc to v2.5.0 (#401) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/core/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 404e8c28..206df5bf 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -58,7 +58,7 @@ "@types/chai": "^5.2.2", "@vitest/expect": "^3.2.4", "@vitest/snapshot": "^3.2.4", - "birpc": "2.4.0", + "birpc": "2.5.0", "chai": "^5.2.1", "pathe": "^2.0.3", "std-env": "^3.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 52e4ee56..d8840853 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -126,8 +126,8 @@ importers: specifier: ^3.2.4 version: 3.2.4 birpc: - specifier: 2.4.0 - version: 2.4.0 + specifier: 2.5.0 + version: 2.5.0 chai: specifier: ^5.2.1 version: 5.2.1 @@ -1821,8 +1821,8 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - birpc@2.4.0: - resolution: {integrity: sha512-5IdNxTyhXHv2UlgnPHQ0h+5ypVmkrYHzL8QT+DwFZ//2N/oNV8Ch+BCRmTJ3x6/z9Axo/cXYBc9eprsUVK/Jsg==} + birpc@2.5.0: + resolution: {integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==} bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -6245,7 +6245,7 @@ snapshots: binary-extensions@2.3.0: {} - birpc@2.4.0: {} + birpc@2.5.0: {} bl@4.1.0: dependencies: From 367864ffc859ac00cdaad7535ed11dc851c1caa8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 14:10:27 +0800 Subject: [PATCH 7/8] chore(deps): update dependency nx to ^21.3.1 (#402) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 138 +++++++++++++++++-------------------------------- 2 files changed, 47 insertions(+), 93 deletions(-) diff --git a/package.json b/package.json index e93778ad..b8d78aa0 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "fs-extra": "^11.3.0", "heading-case": "^0.1.6", "nano-staged": "^0.8.0", - "nx": "^21.2.3", + "nx": "^21.3.1", "path-serializer": "0.5.0", "prettier": "^3.6.2", "prettier-plugin-packagejson": "^2.5.19", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d8840853..124a60e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: ^0.8.0 version: 0.8.0 nx: - specifier: ^21.2.3 - version: 21.2.3 + specifier: ^21.3.1 + version: 21.3.1 path-serializer: specifier: 0.5.0 version: 0.5.0 @@ -867,10 +867,6 @@ packages: resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/schemas@30.0.1': resolution: {integrity: sha512-+g/1TKjFuGrf1Hh0QPCv0gISwBxJ+MQSNXmG9zjHy7BmFhtoJ9fdNhWJp3qUKRi93AOZHXtdxZgJ1vAtz6z65w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -990,53 +986,53 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nx/nx-darwin-arm64@21.2.3': - resolution: {integrity: sha512-5WgOjoX4vqG286A8abYoLCScA2ZF5af/2ZBjaM5EHypgbJLGQuMcP2ahzX66FYohT4wdAej1D0ILkEax71fAKw==} + '@nx/nx-darwin-arm64@21.3.1': + resolution: {integrity: sha512-DND5/CRN1rP7qMt4xkDjklzf3OoA3JcweN+47xZCfiQlu/VobvnS04OC6tLZc+Nymi73whk4lserpUG9biQjCA==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@21.2.3': - resolution: {integrity: sha512-aSaK8Ic9nHTwSuNZZtaKCPIXgD6+Ss9UwkNMIXPLYiYLF+EdSDORHnHutmajZZ8HakoWCQPWvxfWv30zre6iqw==} + '@nx/nx-darwin-x64@21.3.1': + resolution: {integrity: sha512-iFR/abYakCwrFFIfb6gRXN6/gytle/8jj2jwEol0EFrkBIrBi/YrSyuRpsbnxuDB7MhuZ9zwvxlkE6mEJt9UoQ==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@21.2.3': - resolution: {integrity: sha512-hFSbtaYM1gL+XQq88CkmwqeeabmFsLjpsBF+HFIv1UMAjb02ObrYHVVICmmin5c1NkBsEJcQzh3mf8PBSOHW8A==} + '@nx/nx-freebsd-x64@21.3.1': + resolution: {integrity: sha512-e/cx0cR8sLBX3b2JRLqwXj8z4ENhgDwJ5CF7hbcNRkMncKz1J2MZSsqHQHKUfls+HT4Mmmzwyf86laj879cs7Q==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@21.2.3': - resolution: {integrity: sha512-yRzt8dLwTpRP7655We9/ol+Ol+n52R9wsRRnxJFdWHyLrHguZF0dqiZ5rAFFzyvywaDP6CRoPuS7wqFT7K14bw==} + '@nx/nx-linux-arm-gnueabihf@21.3.1': + resolution: {integrity: sha512-JvDfLVZhxzKfetcA1r5Ak+re5Qfks6JdgQD165wMysgAyZDdeM1GFn78xo5CqRPShlE8f/nhF4aX405OL6HYPw==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@21.2.3': - resolution: {integrity: sha512-5u8mmUogvrNn1xlJk8Y6AJg/g1h2bKxYSyWfxR2mazKj5wI/VgbHuxHAgMXB7WDW2tK5bEcrUTvO8V0DjZQhNA==} + '@nx/nx-linux-arm64-gnu@21.3.1': + resolution: {integrity: sha512-J+LkCHzFCgZw4ZMgIuahprjaabWTDmsqJdsYLPFm/pw7TR6AyidXzUEZPfEgBK5WTO1PQr1LJp+Ps8twpf+iBg==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@21.2.3': - resolution: {integrity: sha512-4huuq2iuCBOWmJQw60gk5g3yjeHxFzwdDZJPM0680fZ7Pa/haPwamkR6kE2U6aFtFMhi1QVGPEoj4v4vE4ZS5g==} + '@nx/nx-linux-arm64-musl@21.3.1': + resolution: {integrity: sha512-VCiwPf4pj6WZWmPl30UpcKyp8DWb7Axs0pvU0/dsJz6Ye7bhKnsEZ/Ehp4laVZkck+MVEMFMHavikUdgNzWx3g==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@21.2.3': - resolution: {integrity: sha512-qWpJXpF8vjOrZTkgSC8kQAnIh0pIFbsisePicYWj5U9szJYyTUvVbjMAvdUPH4Z3bnrUtt+nzf9mpFCJRLjsOQ==} + '@nx/nx-linux-x64-gnu@21.3.1': + resolution: {integrity: sha512-Erxxqir8zZDgfrTgOOeaByn22e8vbOTxWNif5i0brH2tQpdr6+2f3v1qNrRlP9CWjqwypPDmkU781U38u+qHHg==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@21.2.3': - resolution: {integrity: sha512-JZHlovF9uzvN3blImysYJmG90/8ookr3jOmEFxmP4RfMUl6EdN9yBLBdx0zIG2ulh7+WQrR3eQ1qrmsWFb6oiw==} + '@nx/nx-linux-x64-musl@21.3.1': + resolution: {integrity: sha512-dG5djRnC3zzOjEzOAzVX8u1sZSn0TSmvVUKKH+WorxI8QKpxHVHbzpvvyLXpiAbtSk0reIPC1c9iRw+MR0GAvw==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@21.2.3': - resolution: {integrity: sha512-8Q1ljgFle6F2ZGSe6dLBItSdvYXjO0n2ovZI0zIih9+5OGLdN8wf6iONQJT7he2YST1dowIDPNWdeKiuOzPo6w==} + '@nx/nx-win32-arm64-msvc@21.3.1': + resolution: {integrity: sha512-mkV6HERTtP2uY6aq0AhxbkL6KSsvomobPOypdEdrnfUsc2Rvd+U/pWl/flZHFkk8V6aXzEG56lWCZqXVyGUD1Q==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@21.2.3': - resolution: {integrity: sha512-qJpHIZU/D48+EZ2bH02/LIFIkANYryGbcbNQUqC+pYA8ZPCU0wMqZVn4UcNMoI9K4YtXe/SvSBdjiObDuRb8yw==} + '@nx/nx-win32-x64-msvc@21.3.1': + resolution: {integrity: sha512-9cQZDiLT9bD1ixZ+WwNHVPRrxuszGHc30xzLzVgQ2l/IwOHJX6oRxMZa1IfgUYv846K0TSKWis+S41tcxUy80Q==} cpu: [x64] os: [win32] @@ -1345,9 +1341,6 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sinclair/typebox@0.34.33': resolution: {integrity: sha512-5HAV9exOMcXRUxo+9iYB5n09XxzCXnfy4VTNW4xnDv+FgjzAGY989C28BIdljKqmF+ZltUwujE3aossvcVtq6g==} @@ -2129,10 +2122,6 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2783,10 +2772,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-diff@30.0.3: resolution: {integrity: sha512-Q1TAV0cUcBTic57SVnk/mug0/ASyAqtSIOkr7RAlxx97llRYsM74+E8N5WdGJUlwCKwgxPAkVjKh653h1+HA9A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -2795,10 +2780,6 @@ packages: resolution: {integrity: sha512-TSjceIf6797jyd+R64NXqicttROD+Qf98fex7CowmlSn7f8+En0da1Dglwr1AXxDtVizoxXYZBlUQwNhoOXkNw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-image-snapshot@6.5.1: resolution: {integrity: sha512-xlJFufgfY2Z4DsRsjcnTwxuynvo1bKdhf4OfcEftNuUAK+BwSCUtPmwlBGJhQ0XJXfm9JMAi/4BhQiHbaV8HrA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3263,8 +3244,8 @@ packages: nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - nx@21.2.3: - resolution: {integrity: sha512-2wL/2fSmIbRWn6zXaQ/g3kj5DfEaTw/aJkPr6ozJh8BUq5iYKE+tS9oh0PjsVVwN6Pybe80Lu+mn9RgWyeV3xw==} + nx@21.3.1: + resolution: {integrity: sha512-lOMDktM4CUcVa/yUmiAXGNxbNo6SC0T8/alRml1sgaOG1QHUpH6XyA1/nR4M3DNjlmON4wD06pZQUDKFb8kd8w==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -3454,10 +3435,6 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-format@30.0.2: resolution: {integrity: sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -4950,10 +4927,6 @@ snapshots: '@types/node': 22.13.8 jest-regex-util: 30.0.1 - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - '@jest/schemas@30.0.1': dependencies: '@sinclair/typebox': 0.34.33 @@ -5156,34 +5129,34 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@nx/nx-darwin-arm64@21.2.3': + '@nx/nx-darwin-arm64@21.3.1': optional: true - '@nx/nx-darwin-x64@21.2.3': + '@nx/nx-darwin-x64@21.3.1': optional: true - '@nx/nx-freebsd-x64@21.2.3': + '@nx/nx-freebsd-x64@21.3.1': optional: true - '@nx/nx-linux-arm-gnueabihf@21.2.3': + '@nx/nx-linux-arm-gnueabihf@21.3.1': optional: true - '@nx/nx-linux-arm64-gnu@21.2.3': + '@nx/nx-linux-arm64-gnu@21.3.1': optional: true - '@nx/nx-linux-arm64-musl@21.2.3': + '@nx/nx-linux-arm64-musl@21.3.1': optional: true - '@nx/nx-linux-x64-gnu@21.2.3': + '@nx/nx-linux-x64-gnu@21.3.1': optional: true - '@nx/nx-linux-x64-musl@21.2.3': + '@nx/nx-linux-x64-musl@21.3.1': optional: true - '@nx/nx-win32-arm64-msvc@21.2.3': + '@nx/nx-win32-arm64-msvc@21.3.1': optional: true - '@nx/nx-win32-x64-msvc@21.2.3': + '@nx/nx-win32-x64-msvc@21.3.1': optional: true '@one-ini/wasm@0.1.1': {} @@ -5674,8 +5647,6 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@sinclair/typebox@0.27.8': {} - '@sinclair/typebox@0.34.33': {} '@sindresorhus/merge-streams@2.3.0': {} @@ -6534,8 +6505,6 @@ snapshots: dependencies: dequal: 2.0.3 - diff-sequences@29.6.3: {} - dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -7267,13 +7236,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - jest-diff@30.0.3: dependencies: '@jest/diff-sequences': 30.0.1 @@ -7288,8 +7250,6 @@ snapshots: chalk: 4.1.2 pretty-format: 30.0.2 - jest-get-type@29.6.3: {} - jest-image-snapshot@6.5.1: dependencies: chalk: 4.1.2 @@ -8004,7 +7964,7 @@ snapshots: nwsapi@2.2.20: {} - nx@21.2.3: + nx@21.3.1: dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 @@ -8022,7 +7982,7 @@ snapshots: flat: 5.0.2 front-matter: 4.0.2 ignore: 5.3.2 - jest-diff: 29.7.0 + jest-diff: 30.0.4 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 minimatch: 9.0.3 @@ -8042,16 +8002,16 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 21.2.3 - '@nx/nx-darwin-x64': 21.2.3 - '@nx/nx-freebsd-x64': 21.2.3 - '@nx/nx-linux-arm-gnueabihf': 21.2.3 - '@nx/nx-linux-arm64-gnu': 21.2.3 - '@nx/nx-linux-arm64-musl': 21.2.3 - '@nx/nx-linux-x64-gnu': 21.2.3 - '@nx/nx-linux-x64-musl': 21.2.3 - '@nx/nx-win32-arm64-msvc': 21.2.3 - '@nx/nx-win32-x64-msvc': 21.2.3 + '@nx/nx-darwin-arm64': 21.3.1 + '@nx/nx-darwin-x64': 21.3.1 + '@nx/nx-freebsd-x64': 21.3.1 + '@nx/nx-linux-arm-gnueabihf': 21.3.1 + '@nx/nx-linux-arm64-gnu': 21.3.1 + '@nx/nx-linux-arm64-musl': 21.3.1 + '@nx/nx-linux-x64-gnu': 21.3.1 + '@nx/nx-linux-x64-musl': 21.3.1 + '@nx/nx-win32-arm64-msvc': 21.3.1 + '@nx/nx-win32-x64-msvc': 21.3.1 transitivePeerDependencies: - debug @@ -8213,12 +8173,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - pretty-format@30.0.2: dependencies: '@jest/schemas': 30.0.1 From b665987273b3abd97c84498a010dc3fd9a1afe4c Mon Sep 17 00:00:00 2001 From: 9aoy Date: Mon, 21 Jul 2025 14:41:36 +0800 Subject: [PATCH 8/8] release: 0.0.9 (#403) --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 206df5bf..a27c4369 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@rstest/core", - "version": "0.0.8", + "version": "0.0.9", "description": "The Rsbuild-based test tool.", "bugs": { "url": "https://github.com/web-infra-dev/rstest/issues" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy