diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 6a99bb231..f7b499555 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -66,8 +66,6 @@ // umd tests need to lock this version 'react-18', 'react-dom-18', - // bundled dts tests need to lock this version - '@vitest/expect', // see https://github.com/web-infra-dev/rslib/pull/992 '@ast-grep/napi', ], diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 18db04e22..fa3e8c0f6 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -20,30 +20,34 @@ jobs: node-version: [20] steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - fetch-depth: 10 - ref: ${{ inputs.ref || 'main' }} - - - name: Install pnpm - run: | - npm install -g corepack@latest --force - corepack enable - - - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 - with: - node-version: ${{ matrix.node-version }} - cache: 'pnpm' - - - name: Install Dependencies - run: pnpm install && cd ./tests && pnpm playwright install chromium - - # only run benchmark in Ubuntu - - name: Benchmarks (Vitest) - uses: CodSpeedHQ/action@0010eb0ca6e89b80c88e8edaaa07cfe5f3e6664d # v3 - with: - run: pnpm run test:benchmark - # token retrieved from the CodSpeed app at the previous step - token: ${{ secrets.CODSPEED_TOKEN }} + # just a dummy step + - name: Dummy Step + run: echo "TODO:\ Support benchmark in Rstest, this job is only a placeholder for the time being." + + # - name: Checkout + # uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + # with: + # fetch-depth: 10 + # ref: ${{ inputs.ref || 'main' }} + + # - name: Install pnpm + # run: | + # npm install -g corepack@latest --force + # corepack enable + + # - name: Setup Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + # with: + # node-version: ${{ matrix.node-version }} + # cache: 'pnpm' + + # - name: Install Dependencies + # run: pnpm install && cd ./tests && pnpm playwright install chromium + + # # only run benchmark in Ubuntu + # - name: Benchmarks (Rstest) + # uses: CodSpeedHQ/action@0010eb0ca6e89b80c88e8edaaa07cfe5f3e6664d # v3 + # with: + # run: pnpm run test:benchmark + # # token retrieved from the CodSpeed app at the previous step + # token: ${{ secrets.CODSPEED_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ec2f9bb20..711a8f703 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -121,7 +121,7 @@ jobs: if: steps.changes.outputs.changed == 'true' run: pnpm install && cd ./tests && pnpm playwright install chromium - - name: Integration Test (Vitest) + - name: Integration Test (Rstest) if: steps.changes.outputs.changed == 'true' run: pnpm run test:integration diff --git a/.gitignore b/.gitignore index a3d5134d2..ac9cb468f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,5 @@ test-results **/@mf-types **/@mf-types/** .env.local -.env.*.local \ No newline at end of file +.env.*.local +.rslib/**/* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ea87a4c47..4772bc810 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,7 +72,7 @@ npx nx build @rslib/core --watch If you've fixed a bug or added code that should be tested, then add some tests. -You can add unit test cases in the `/tests` folder. The test runner is based on [Vitest](https://vitest.dev/). +You can add unit test cases in the `/tests` folder. The test runner is based on [Rstest](https://rstest.rs/). ### Run unit tests diff --git a/biome.json b/biome.json index d3c7c2672..d05d36dea 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.0.5/schema.json", + "$schema": "https://biomejs.dev/schemas/2.0.6/schema.json", "assist": { "actions": { "source": { @@ -46,6 +46,7 @@ "includes": [ "**", "!**/*.vue", + "!**/dist/**", "!**/.rslib/**/*", "!tests/integration/**/*/src/**/*", "!tests/e2e/react-component/public/umd/**/*" diff --git a/examples/module-federation/mf-host/package.json b/examples/module-federation/mf-host/package.json index 8baad06bf..7699e5a89 100644 --- a/examples/module-federation/mf-host/package.json +++ b/examples/module-federation/mf-host/package.json @@ -12,7 +12,7 @@ "react-dom": "^19.1.0" }, "devDependencies": { - "@module-federation/rsbuild-plugin": "^0.15.0", + "@module-federation/rsbuild-plugin": "^0.16.0", "@rsbuild/core": "~1.4.2", "@rsbuild/plugin-react": "^1.3.2", "@types/react": "^19.1.8", diff --git a/examples/module-federation/mf-host/rsbuild.config.ts b/examples/module-federation/mf-host/rsbuild.config.ts index 785e857f9..9573d01be 100644 --- a/examples/module-federation/mf-host/rsbuild.config.ts +++ b/examples/module-federation/mf-host/rsbuild.config.ts @@ -5,22 +5,25 @@ import { pluginReact } from '@rsbuild/plugin-react'; export default defineConfig({ plugins: [ pluginReact(), - pluginModuleFederation({ - name: 'rsbuild_host', - remotes: { - rslib: 'rslib@http://localhost:3001/mf/mf-manifest.json', - }, - shared: { - react: { - singleton: true, + pluginModuleFederation( + { + name: 'rsbuild_host', + remotes: { + rslib: 'rslib@http://localhost:3001/mf/mf-manifest.json', }, - 'react-dom': { - singleton: true, + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, }, + // Enable this when the output of Rslib is build under 'production' mode, while the host app is 'development'. + // Reference: https://rslib.rs/guide/advanced/module-federation#faqs + shareStrategy: 'loaded-first', }, - // Enable this when the output of Rslib is build under 'production' mode, while the host app is 'development'. - // Reference: https://rslib.rs/guide/advanced/module-federation#faqs - shareStrategy: 'loaded-first', - }), + {}, + ), ], }); diff --git a/examples/module-federation/mf-react-component/package.json b/examples/module-federation/mf-react-component/package.json index 0e96f6958..face3e72d 100644 --- a/examples/module-federation/mf-react-component/package.json +++ b/examples/module-federation/mf-react-component/package.json @@ -18,8 +18,8 @@ "storybook": "storybook dev -p 6006" }, "devDependencies": { - "@module-federation/enhanced": "^0.15.0", - "@module-federation/rsbuild-plugin": "^0.15.0", + "@module-federation/enhanced": "^0.16.0", + "@module-federation/rsbuild-plugin": "^0.16.0", "@module-federation/storybook-addon": "^4.0.20", "@rsbuild/plugin-react": "^1.3.2", "@rslib/core": "workspace:*", diff --git a/examples/module-federation/mf-react-component/rslib.config.ts b/examples/module-federation/mf-react-component/rslib.config.ts index 95d535810..68af64b7d 100644 --- a/examples/module-federation/mf-react-component/rslib.config.ts +++ b/examples/module-federation/mf-react-component/rslib.config.ts @@ -34,20 +34,23 @@ export default defineConfig({ assetPrefix: 'http://localhost:3001/mf', }, plugins: [ - pluginModuleFederation({ - name: 'rslib_provider', - exposes: { - '.': './src/index.tsx', - }, - shared: { - react: { - singleton: true, + pluginModuleFederation( + { + name: 'rslib_provider', + exposes: { + '.': './src/index.tsx', }, - 'react-dom': { - singleton: true, + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, }, }, - }), + {}, + ), ], }, ], diff --git a/examples/module-federation/mf-remote/package.json b/examples/module-federation/mf-remote/package.json index 0db97e572..5cb765e59 100644 --- a/examples/module-federation/mf-remote/package.json +++ b/examples/module-federation/mf-remote/package.json @@ -12,7 +12,7 @@ "react-dom": "^19.1.0" }, "devDependencies": { - "@module-federation/rsbuild-plugin": "^0.15.0", + "@module-federation/rsbuild-plugin": "^0.16.0", "@rsbuild/core": "~1.4.2", "@rsbuild/plugin-react": "^1.3.2", "@types/react": "^19.1.8", diff --git a/examples/module-federation/mf-remote/rsbuild.config.ts b/examples/module-federation/mf-remote/rsbuild.config.ts index c9ab13fbb..56230e01d 100644 --- a/examples/module-federation/mf-remote/rsbuild.config.ts +++ b/examples/module-federation/mf-remote/rsbuild.config.ts @@ -5,20 +5,23 @@ import { pluginReact } from '@rsbuild/plugin-react'; export default defineConfig({ plugins: [ pluginReact(), - pluginModuleFederation({ - name: 'rsbuild_remote', - exposes: { - '.': './src/App.tsx', - }, - shared: { - react: { - singleton: true, + pluginModuleFederation( + { + name: 'rsbuild_remote', + exposes: { + '.': './src/App.tsx', }, - 'react-dom': { - singleton: true, + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, }, }, - }), + {}, + ), ], server: { port: 3002, diff --git a/package.json b/package.json index 7a703863a..0ba655f92 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,8 @@ "test:benchmark": "cd ./tests && pnpm run test:benchmark", "test:e2e": "pnpm run build:examples && cd tests && pnpm run test:e2e", "test:ecosystem-ci": "pnpm run test:unit && cross-env ECO_CI=1 pnpm run test:integration && pnpm run test:e2e", - "test:integration": "cross-env NODE_OPTIONS='--experimental-vm-modules' vitest run --project integration", - "test:integration:watch": "cross-env NODE_OPTIONS='--experimental-vm-modules' vitest --project integration", - "test:unit": "vitest run --project unit*", - "test:unit:watch": "vitest --project unit*", + "test:integration": "pnpm -r --filter \"./tests\" run test", + "test:unit": "pnpm -r --filter \"./packages/**\" run test", "testu": "pnpm run test:unit -u && pnpm run test:integration -u", "type-check": "pnpm -r run type-check", "update:rsbuild": "npx taze minor --include /rsbuild/ -w -r -l", @@ -44,6 +42,7 @@ "devDependencies": { "@biomejs/biome": "^2.0.6", "@changesets/cli": "^2.29.5", + "@rstest/core": "0.0.6", "@types/fs-extra": "^11.0.4", "@types/node": "^22.15.34", "check-dependency-version-consistency": "^5.0.1", @@ -57,7 +56,6 @@ "prettier-plugin-packagejson": "^2.5.17", "simple-git-hooks": "^2.13.0", "typescript": "^5.8.3", - "vitest": "^3.2.4", "zx": "^8.6.0" }, "packageManager": "pnpm@10.12.4", diff --git a/packages/core/__mocks__/fs/promises.cjs b/packages/core/__mocks__/fs/promises.cjs deleted file mode 100644 index 88da5403e..000000000 --- a/packages/core/__mocks__/fs/promises.cjs +++ /dev/null @@ -1,5 +0,0 @@ -// we can also use `import`, but then -// every export should be explicitly defined - -const { fs } = require('memfs'); -module.exports = fs.promises; diff --git a/packages/core/__mocks__/fs/promises.js b/packages/core/__mocks__/fs/promises.js new file mode 100644 index 000000000..4a01268d3 --- /dev/null +++ b/packages/core/__mocks__/fs/promises.js @@ -0,0 +1,2 @@ +import { promises } from 'memfs'; +export default promises; diff --git a/packages/core/package.json b/packages/core/package.json index 4b1ac9e59..5aea71d67 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -39,6 +39,7 @@ "build": "rslib build", "dev": "rslib build --watch", "prebundle": "prebundle", + "test": "rstest run", "type-check": "tsc --noEmit && tsc --noEmit -p tests" }, "dependencies": { @@ -47,7 +48,7 @@ "tinyglobby": "^0.2.14" }, "devDependencies": { - "@module-federation/rsbuild-plugin": "^0.15.0", + "@module-federation/rsbuild-plugin": "^0.16.0", "@rslib/tsconfig": "workspace:*", "@types/fs-extra": "^11.0.4", "cac": "^6.7.14", diff --git a/packages/core/rstest.config.ts b/packages/core/rstest.config.ts new file mode 100644 index 000000000..c72db6bfd --- /dev/null +++ b/packages/core/rstest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from '@rstest/core'; +import { shared } from '../../rstest.workspace'; + +export default defineConfig({ + ...shared, + name: 'unit', +}); diff --git a/packages/core/tests/__snapshots__/config.test.ts.snap b/packages/core/tests/__snapshots__/config.test.ts.snap index 39e693a73..ed84621f4 100644 --- a/packages/core/tests/__snapshots__/config.test.ts.snap +++ b/packages/core/tests/__snapshots__/config.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config in each format 1`] = ` [ @@ -15,6 +15,16 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i }, "externals": [ [Function], + /\\^@rsbuild\\\\/core\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^rsbuild-plugin-dts\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^tinyglobby\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^@microsoft\\\\/api-extractor\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^typescript\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + "@rsbuild/core", + "rsbuild-plugin-dts", + "tinyglobby", + "@microsoft/api-extractor", + "typescript", "assert", "assert/strict", "async_hooks", @@ -73,7 +83,7 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "pnpapi", ], "filename": { - "js": "[name].mjs", + "js": "[name].js", }, "filenameHash": false, "minify": { @@ -275,6 +285,16 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "jsAsync": "./", }, "externals": [ + /\\^@rsbuild\\\\/core\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^rsbuild-plugin-dts\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^tinyglobby\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^@microsoft\\\\/api-extractor\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + /\\^typescript\\(\\$\\|\\\\/\\|\\\\\\\\\\)/, + "@rsbuild/core", + "rsbuild-plugin-dts", + "tinyglobby", + "@microsoft/api-extractor", + "typescript", "assert", "assert/strict", "async_hooks", @@ -333,7 +353,7 @@ exports[`Should compose create Rsbuild config correctly > Merge Rsbuild config i "pnpapi", ], "filename": { - "js": "[name].js", + "js": "[name].cjs", }, "filenameHash": false, "minify": { diff --git a/packages/core/tests/config.test.ts b/packages/core/tests/config.test.ts index 5958764cd..22f72cb29 100644 --- a/packages/core/tests/config.test.ts +++ b/packages/core/tests/config.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; -import { describe, expect, test, vi } from 'vitest'; +import { describe, expect, rs, test } from '@rstest/core'; import { composeCreateRsbuildConfig, composeRsbuildEnvironments, @@ -8,7 +8,7 @@ import { } from '../src/config'; import type { RslibConfig } from '../src/types/config'; -vi.mock('rslog'); +rs.mock('rslog'); describe('Should load config file correctly', () => { test('Load config.js in cjs project', async () => { @@ -182,7 +182,7 @@ describe('Should compose create Rsbuild config correctly', () => { }, { format: 'mf', - plugins: [pluginModuleFederation({})], + plugins: [pluginModuleFederation({}, {})], }, ], source: { diff --git a/packages/core/tests/constant.test.ts b/packages/core/tests/constant.test.ts index d9fdf4ee7..179cdb720 100644 --- a/packages/core/tests/constant.test.ts +++ b/packages/core/tests/constant.test.ts @@ -1,4 +1,4 @@ -import { expect, test } from 'vitest'; +import { expect, test } from '@rstest/core'; import { CSS_EXTENSIONS_PATTERN, DTS_EXTENSIONS_PATTERN, diff --git a/packages/core/tests/extension.test.ts b/packages/core/tests/extension.test.ts index 363789db2..9c6a95bcf 100644 --- a/packages/core/tests/extension.test.ts +++ b/packages/core/tests/extension.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, rs } from '@rstest/core'; import type { Format, PkgJson } from '../src/types'; import { getDefaultExtension } from '../src/utils/extension'; @@ -8,7 +8,7 @@ type Options = { autoExtension: boolean; }; -vi.mock('rslog'); +rs.mock('rslog'); describe('should get extension correctly', () => { it('autoExtension is false', () => { diff --git a/packages/core/tests/external.test.ts b/packages/core/tests/external.test.ts index 7398cd5cc..dacecd499 100644 --- a/packages/core/tests/external.test.ts +++ b/packages/core/tests/external.test.ts @@ -1,7 +1,7 @@ -import { describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, rs } from '@rstest/core'; import { composeAutoExternalConfig } from '../src/config'; -vi.mock('rslog'); +rs.mock('rslog'); describe('should composeAutoExternalConfig correctly', () => { it('autoExternal default value', () => { diff --git a/packages/core/tests/helper.test.ts b/packages/core/tests/helper.test.ts index d5b7bd572..35f217d48 100644 --- a/packages/core/tests/helper.test.ts +++ b/packages/core/tests/helper.test.ts @@ -1,8 +1,8 @@ import { join } from 'node:path'; -import { expect, it, vi } from 'vitest'; +import { expect, it, rs } from '@rstest/core'; import { checkMFPlugin, readPackageJson } from '../src/utils/helper'; -vi.mock('rslog'); +rs.mock('rslog'); it('readPackageJson correctly', async () => { expect(readPackageJson('path/to/root')).toBeUndefined(); diff --git a/packages/core/tests/lcp.test.ts b/packages/core/tests/lcp.test.ts index 8283538c1..96816f944 100644 --- a/packages/core/tests/lcp.test.ts +++ b/packages/core/tests/lcp.test.ts @@ -1,10 +1,10 @@ import os from 'node:os'; +import { beforeEach, describe, expect, it, rs } from '@rstest/core'; import { vol } from 'memfs'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; import { calcLongestCommonPath } from '../src/utils/helper'; -vi.mock('node:fs'); -vi.mock('node:fs/promises'); +rs.mock('node:fs'); +rs.mock('node:fs/promises'); // LCP test mock will affect other tests describe('LCP calculate correctly', () => { diff --git a/packages/core/tests/syntax.test.ts b/packages/core/tests/syntax.test.ts index 99f38d297..9dd876bc2 100644 --- a/packages/core/tests/syntax.test.ts +++ b/packages/core/tests/syntax.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from '@rstest/core'; import type { EcmaScriptVersion } from '../src/types'; import { ESX_TO_BROWSERSLIST, diff --git a/packages/core/tests/tsconfig.test.ts b/packages/core/tests/tsconfig.test.ts index ccea7091e..c97b73765 100644 --- a/packages/core/tests/tsconfig.test.ts +++ b/packages/core/tests/tsconfig.test.ts @@ -1,5 +1,5 @@ import { join } from 'node:path'; -import { describe, expect, it } from 'vitest'; +import { describe, expect, it } from '@rstest/core'; import { loadTsconfig } from '../src/utils/tsconfig'; describe('loadTsconfig', () => { diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts deleted file mode 100644 index 189b65d86..000000000 --- a/packages/core/vitest.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineConfig } from 'vitest/config'; -import { shared } from '../../vitest.workspace'; - -export default defineConfig({ - test: { - ...shared, - name: 'unit', - }, -}); diff --git a/packages/create-rslib/package.json b/packages/create-rslib/package.json index 9b8691637..5f9d4e6a9 100644 --- a/packages/create-rslib/package.json +++ b/packages/create-rslib/package.json @@ -26,7 +26,7 @@ "dev": "rslib build --watch", "generate-templates": "pnpm tsx ./src/genTemplates.ts", "start": "node ./dist/index.js", - "test": "vitest run" + "test": "rstest run" }, "dependencies": { "create-rstack": "1.5.2" diff --git a/packages/create-rslib/rstest.config.ts b/packages/create-rslib/rstest.config.ts new file mode 100644 index 000000000..3fa38f782 --- /dev/null +++ b/packages/create-rslib/rstest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from '@rstest/core'; +import { shared } from '../../rstest.workspace'; + +export default defineConfig({ + ...shared, + name: 'unit-create', + include: ['./test/*.{test,spec}.?(c|m)[jt]s?(x)'], +}); diff --git a/packages/create-rslib/test/helper.ts b/packages/create-rslib/test/helper.ts index 2bd6ee9d3..919ed5dff 100644 --- a/packages/create-rslib/test/helper.ts +++ b/packages/create-rslib/test/helper.ts @@ -1,8 +1,8 @@ import { execSync } from 'node:child_process'; import { existsSync } from 'node:fs'; import path from 'node:path'; +import { expect } from '@rstest/core'; import fse from 'fs-extra'; -import { expect } from 'vitest'; export const decomposeTemplateName = ( name: string, diff --git a/packages/create-rslib/test/index.test.ts b/packages/create-rslib/test/index.test.ts index 610d89fa5..a6388b630 100644 --- a/packages/create-rslib/test/index.test.ts +++ b/packages/create-rslib/test/index.test.ts @@ -1,6 +1,6 @@ import { existsSync } from 'node:fs'; import { join } from 'node:path'; -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from '@rstest/core'; import { composeTemplateName, TEMPLATES } from '../src/helpers'; import { createAndValidate } from './helper'; diff --git a/packages/create-rslib/vitest.config.ts b/packages/create-rslib/vitest.config.ts deleted file mode 100644 index 8a6769cc8..000000000 --- a/packages/create-rslib/vitest.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from 'vitest/config'; -import { shared } from '../../vitest.workspace'; - -export default defineConfig({ - test: { - ...shared, - name: 'unit-create', - include: ['./test/*.{test,spec}.?(c|m)[jt]s?(x)'], - }, -}); diff --git a/packages/plugin-dts/package.json b/packages/plugin-dts/package.json index 2bf9f192b..099d80fe0 100644 --- a/packages/plugin-dts/package.json +++ b/packages/plugin-dts/package.json @@ -26,7 +26,8 @@ ], "scripts": { "build": "rslib build", - "dev": "rslib build --watch" + "dev": "rslib build --watch", + "test": "rstest run" }, "dependencies": { "@ast-grep/napi": "0.37.0", diff --git a/packages/plugin-dts/rstest.config.ts b/packages/plugin-dts/rstest.config.ts new file mode 100644 index 000000000..9648ec181 --- /dev/null +++ b/packages/plugin-dts/rstest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from '@rstest/core'; +import { shared } from '../../rstest.workspace'; + +export default defineConfig({ + ...shared, + name: 'unit-dts', +}); diff --git a/packages/plugin-dts/src/utils.ts b/packages/plugin-dts/src/utils.ts index f3dbd0ec9..de929c4de 100644 --- a/packages/plugin-dts/src/utils.ts +++ b/packages/plugin-dts/src/utils.ts @@ -1,5 +1,6 @@ import fs from 'node:fs'; import fsP from 'node:fs/promises'; + import { platform } from 'node:os'; import path, { basename, diff --git a/packages/plugin-dts/tests/dts.test.ts b/packages/plugin-dts/tests/dts.test.ts index ed4419894..38e0a4f65 100644 --- a/packages/plugin-dts/tests/dts.test.ts +++ b/packages/plugin-dts/tests/dts.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it } from '@rstest/core'; import type { PluginDtsOptions } from '../src/index'; import { getDtsEmitPath } from '../src/utils'; diff --git a/packages/plugin-dts/tests/external.test.ts b/packages/plugin-dts/tests/external.test.ts index 2698d90b6..cb8d7808b 100644 --- a/packages/plugin-dts/tests/external.test.ts +++ b/packages/plugin-dts/tests/external.test.ts @@ -1,6 +1,6 @@ import fs from 'node:fs'; import { logger } from '@rsbuild/core'; -import { describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, rs } from '@rstest/core'; import { calcBundledPackages } from '../src/dts'; const commonPkgJson = { @@ -18,7 +18,7 @@ const commonPkgJson = { describe('should calcBundledPackages correctly', () => { it('autoExternal is true', () => { - vi.spyOn(fs, 'readFileSync').mockImplementation(() => + rs.spyOn(fs, 'readFileSync').mockImplementation(() => JSON.stringify(commonPkgJson), ); @@ -31,7 +31,7 @@ describe('should calcBundledPackages correctly', () => { }); it('autoExternal is object', () => { - vi.spyOn(fs, 'readFileSync').mockImplementation(() => + rs.spyOn(fs, 'readFileSync').mockImplementation(() => JSON.stringify(commonPkgJson), ); const result = calcBundledPackages({ @@ -47,7 +47,7 @@ describe('should calcBundledPackages correctly', () => { }); it('autoExternal is false', () => { - vi.spyOn(fs, 'readFileSync').mockImplementation(() => + rs.spyOn(fs, 'readFileSync').mockImplementation(() => JSON.stringify(commonPkgJson), ); const result = calcBundledPackages({ @@ -59,7 +59,7 @@ describe('should calcBundledPackages correctly', () => { }); it('autoExternal with user externals', () => { - vi.spyOn(fs, 'readFileSync').mockImplementation(() => + rs.spyOn(fs, 'readFileSync').mockImplementation(() => JSON.stringify({ devDependencies: { baz: '1.0.0', @@ -97,7 +97,7 @@ describe('should calcBundledPackages correctly', () => { }); it('read package.json failed', () => { - vi.spyOn(logger, 'warn').mockImplementation(() => {}); + rs.spyOn(logger, 'warn').mockImplementation(() => {}); const result = calcBundledPackages({ autoExternal: true, cwd: 'pkg/to/root', @@ -107,7 +107,7 @@ describe('should calcBundledPackages correctly', () => { }); it('overrides with bundledPackages', () => { - vi.spyOn(fs, 'readFileSync').mockImplementation(() => + rs.spyOn(fs, 'readFileSync').mockImplementation(() => JSON.stringify(commonPkgJson), ); diff --git a/packages/plugin-dts/vitest.config.ts b/packages/plugin-dts/vitest.config.ts deleted file mode 100644 index e517c7161..000000000 --- a/packages/plugin-dts/vitest.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineConfig } from 'vitest/config'; -import { shared } from '../../vitest.workspace'; - -export default defineConfig({ - test: { - ...shared, - name: 'unit-dts', - }, -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2727c5489..aaa4fd330 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: '@changesets/cli': specifier: ^2.29.5 version: 2.29.5 + '@rstest/core': + specifier: 0.0.6 + version: 0.0.6 '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -56,9 +59,6 @@ importers: typescript: specifier: ^5.8.3 version: 5.8.3 - vitest: - specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) zx: specifier: ^8.6.0 version: 8.6.0 @@ -90,14 +90,14 @@ importers: version: 19.1.0(react@19.1.0) devDependencies: '@module-federation/rsbuild-plugin': - specifier: ^0.15.0 - version: 0.15.0(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + specifier: ^0.16.0 + version: 0.16.0(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@rsbuild/core': specifier: ~1.4.2 - version: 1.4.2 + version: 1.4.3 '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -111,17 +111,17 @@ importers: examples/module-federation/mf-react-component: devDependencies: '@module-federation/enhanced': - specifier: ^0.15.0 - version: 0.15.0(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + specifier: ^0.16.0 + version: 0.16.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@module-federation/rsbuild-plugin': - specifier: ^0.15.0 - version: 0.15.0(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + specifier: ^0.16.0 + version: 0.16.0(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@module-federation/storybook-addon': specifier: ^4.0.20 - version: 4.0.20(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))(webpack-virtual-modules@0.6.2) + version: 4.0.20(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))(webpack-virtual-modules@0.6.2) '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rslib/core': specifier: workspace:* version: link:../../../packages/core @@ -142,10 +142,10 @@ importers: version: 9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2) storybook-addon-rslib: specifier: ^2.0.2 - version: 2.0.2(@rsbuild/core@1.4.2)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3))(typescript@5.8.3) + version: 2.0.2(@rsbuild/core@1.4.3)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3))(typescript@5.8.3) storybook-react-rsbuild: specifier: ^2.0.2 - version: 2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) + version: 2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) examples/module-federation/mf-remote: dependencies: @@ -157,14 +157,14 @@ importers: version: 19.1.0(react@19.1.0) devDependencies: '@module-federation/rsbuild-plugin': - specifier: ^0.15.0 - version: 0.15.0(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + specifier: ^0.16.0 + version: 0.16.0(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@rsbuild/core': specifier: ~1.4.2 - version: 1.4.2 + version: 1.4.3 '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -179,10 +179,10 @@ importers: devDependencies: '@rsbuild/plugin-preact': specifier: ^1.5.0 - version: 1.5.0(@rsbuild/core@1.4.2)(preact@10.26.9) + version: 1.5.0(@rsbuild/core@1.4.3)(preact@10.26.9) '@rsbuild/plugin-sass': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -194,10 +194,10 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-sass': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -212,10 +212,10 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-sass': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -230,10 +230,10 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-sass': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -248,13 +248,13 @@ importers: devDependencies: '@rsbuild/plugin-babel': specifier: ^1.0.5 - version: 1.0.5(@rsbuild/core@1.4.2) + version: 1.0.5(@rsbuild/core@1.4.3) '@rsbuild/plugin-sass': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-solid': specifier: ^1.0.5 - version: 1.0.5(@babel/core@7.26.10)(@rsbuild/core@1.4.2)(solid-js@1.9.7) + version: 1.0.5(@babel/core@7.26.10)(@rsbuild/core@1.4.3)(solid-js@1.9.7) '@rslib/core': specifier: workspace:* version: link:../../packages/core @@ -272,7 +272,7 @@ importers: version: link:../../packages/core rsbuild-plugin-unplugin-vue: specifier: ^0.1.0 - version: 0.1.0(@rsbuild/core@1.4.2)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1) + version: 0.1.0(@rsbuild/core@1.4.3)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -311,16 +311,16 @@ importers: version: 9.0.14(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(vue@3.5.17(typescript@5.8.3)) rsbuild-plugin-unplugin-vue: specifier: ^0.1.0 - version: 0.1.0(@rsbuild/core@1.4.2)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1) + version: 0.1.0(@rsbuild/core@1.4.3)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1) storybook: specifier: ^9.0.14 version: 9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2) storybook-addon-rslib: specifier: ^2.0.2 - version: 2.0.2(@rsbuild/core@1.4.2)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3))(typescript@5.8.3) + version: 2.0.2(@rsbuild/core@1.4.3)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3))(typescript@5.8.3) storybook-vue3-rsbuild: specifier: ^2.0.2 - version: 2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) + version: 2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -335,7 +335,7 @@ importers: dependencies: '@rsbuild/core': specifier: ~1.4.2 - version: 1.4.2 + version: 1.4.3 rsbuild-plugin-dts: specifier: workspace:* version: link:../plugin-dts @@ -344,8 +344,8 @@ importers: version: 0.2.14 devDependencies: '@module-federation/rsbuild-plugin': - specifier: ^0.15.0 - version: 0.15.0(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + specifier: ^0.16.0 + version: 0.16.0(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@rslib/tsconfig': specifier: workspace:* version: link:../../scripts/tsconfig @@ -372,7 +372,7 @@ importers: version: 1.3.4(typescript@5.8.3) rsbuild-plugin-publint: specifier: ^0.3.2 - version: 0.3.2(@rsbuild/core@1.4.2) + version: 0.3.2(@rsbuild/core@1.4.3) rslib: specifier: npm:@rslib/core@0.10.4 version: '@rslib/core@0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(typescript@5.8.3)' @@ -406,7 +406,7 @@ importers: version: 11.3.0 rsbuild-plugin-publint: specifier: ^0.3.2 - version: 0.3.2(@rsbuild/core@1.4.2) + version: 0.3.2(@rsbuild/core@1.4.3) rslib: specifier: npm:@rslib/core@0.10.4 version: '@rslib/core@0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(typescript@5.8.3)' @@ -440,13 +440,13 @@ importers: version: 7.52.8(@types/node@22.15.34) '@rsbuild/core': specifier: ~1.4.2 - version: 1.4.2 + version: 1.4.3 '@rslib/tsconfig': specifier: workspace:* version: link:../../scripts/tsconfig rsbuild-plugin-publint: specifier: ^0.3.2 - version: 0.3.2(@rsbuild/core@1.4.2) + version: 0.3.2(@rsbuild/core@1.4.3) rslib: specifier: npm:@rslib/core@0.10.4 version: '@rslib/core@0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(typescript@5.8.3)' @@ -467,34 +467,34 @@ importers: devDependencies: '@codspeed/vitest-plugin': specifier: ^4.0.1 - version: 4.0.1(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 4.0.1(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) '@module-federation/rsbuild-plugin': - specifier: ^0.15.0 - version: 0.15.0(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + specifier: ^0.16.0 + version: 0.16.0(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@playwright/test': specifier: 1.53.1 version: 1.53.1 '@rsbuild/core': specifier: ~1.4.2 - version: 1.4.2 + version: 1.4.3 '@rsbuild/plugin-less': specifier: ^1.2.4 - version: 1.2.4(@rsbuild/core@1.4.2) + version: 1.2.4(@rsbuild/core@1.4.3) '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-sass': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-toml': specifier: ^1.1.0 - version: 1.1.0(@rsbuild/core@1.4.2) + version: 1.1.0(@rsbuild/core@1.4.3) '@rsbuild/plugin-typed-css-modules': specifier: ^1.0.2 - version: 1.0.2(@rsbuild/core@1.4.2) + version: 1.0.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-yaml': specifier: ^1.0.2 - version: 1.0.2(@rsbuild/core@1.4.2) + version: 1.0.2(@rsbuild/core@1.4.3) '@rslib/core': specifier: workspace:* version: link:../packages/core @@ -559,7 +559,7 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) tests/integration/asset/json: {} @@ -575,10 +575,10 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-svgr': specifier: ^1.2.0 - version: 1.2.0(@rsbuild/core@1.4.2)(typescript@5.8.3) + version: 1.2.0(@rsbuild/core@1.4.3)(typescript@5.8.3) tests/integration/async-chunks/default: {} @@ -672,10 +672,10 @@ importers: devDependencies: '@rsbuild/plugin-react': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rsbuild/plugin-svgr': specifier: ^1.2.0 - version: 1.2.0(@rsbuild/core@1.4.2)(typescript@5.8.3) + version: 1.2.0(@rsbuild/core@1.4.3)(typescript@5.8.3) tests/integration/cli/build: {} @@ -751,9 +751,9 @@ importers: tests/integration/dts/bundle/bundled-packages: devDependencies: - '@vitest/expect': - specifier: 3.1.4 - version: 3.1.4 + '@reduxjs/toolkit': + specifier: ^2.8.2 + version: 2.8.2(react@19.1.0) tests/integration/dts/bundle/clean: {} @@ -863,7 +863,7 @@ importers: devDependencies: '@rsbuild/plugin-node-polyfill': specifier: ^1.3.0 - version: 1.3.0(@rsbuild/core@1.4.2) + version: 1.3.0(@rsbuild/core@1.4.3) tests/integration/node-polyfill/bundle-false: dependencies: @@ -873,7 +873,7 @@ importers: devDependencies: '@rsbuild/plugin-node-polyfill': specifier: ^1.3.0 - version: 1.3.0(@rsbuild/core@1.4.2) + version: 1.3.0(@rsbuild/core@1.4.3) tests/integration/outBase/custom-entry: {} @@ -891,7 +891,7 @@ importers: devDependencies: '@rsbuild/plugin-babel': specifier: ^1.0.5 - version: 1.0.5(@rsbuild/core@1.4.2) + version: 1.0.5(@rsbuild/core@1.4.3) babel-plugin-polyfill-corejs3: specifier: ^0.13.0 version: 0.13.0(@babel/core@7.26.10) @@ -1026,13 +1026,13 @@ importers: devDependencies: '@rsbuild/plugin-stylus': specifier: ^1.1.1 - version: 1.1.1(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17)) + version: 1.1.1(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17)) tests/integration/style/stylus/bundle-false: devDependencies: '@rsbuild/plugin-stylus': specifier: ^1.1.1 - version: 1.1.1(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17)) + version: 1.1.1(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17)) tests/integration/style/tailwindcss/bundle: devDependencies: @@ -1089,10 +1089,10 @@ importers: devDependencies: '@rsbuild/plugin-less': specifier: ^1.2.4 - version: 1.2.4(@rsbuild/core@1.4.2) + version: 1.2.4(@rsbuild/core@1.4.3) rsbuild-plugin-unplugin-vue: specifier: ^0.1.0 - version: 0.1.0(@rsbuild/core@1.4.2)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1) + version: 0.1.0(@rsbuild/core@1.4.3)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1) vue: specifier: ^3.5.17 version: 3.5.17(typescript@5.8.3) @@ -1105,10 +1105,10 @@ importers: devDependencies: '@rsbuild/core': specifier: ~1.4.2 - version: 1.4.2 + version: 1.4.3 '@rsbuild/plugin-sass': specifier: ^1.3.2 - version: 1.3.2(@rsbuild/core@1.4.2) + version: 1.3.2(@rsbuild/core@1.4.3) '@rslib/tsconfig': specifier: workspace:* version: link:../scripts/tsconfig @@ -1144,10 +1144,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.2) + version: 1.0.3(@rsbuild/core@1.4.3) rsbuild-plugin-open-graph: specifier: ^1.0.2 - version: 1.0.2(@rsbuild/core@1.4.2) + version: 1.0.2(@rsbuild/core@1.4.3) rspress: specifier: 2.0.0-beta.18 version: 2.0.0-beta.18(@types/react@19.1.8)(acorn@8.14.1) @@ -2060,17 +2060,31 @@ packages: '@module-federation/bridge-react-webpack-plugin@0.15.0': resolution: {integrity: sha512-bbinV0gC82x0JGrT6kNV1tQHi4UBxqY79mZJKWVbGpSMPM+nifC9y/nQCYhZZajT7D/5zIHNkP0BKrQmPA7ArA==} + '@module-federation/bridge-react-webpack-plugin@0.16.0': + resolution: {integrity: sha512-4HP5keHby66ql5NTe3sXgRaSbWuYCxwIrhO+TI5FsJyBVmVlHuc6ZxhdbV7ssU/u4u2ri0qPL9x1ALwnNie/pw==} + '@module-federation/cli@0.15.0': resolution: {integrity: sha512-ZFQ7TA7vwSro4n21/+9cGxVkeRU9IcXcQGs1GIToz/JFvomTHbGN33iplR3GNMhuMNyXQ/wxe2gWkEmIBCzW2w==} engines: {node: '>=16.0.0'} hasBin: true + '@module-federation/cli@0.16.0': + resolution: {integrity: sha512-4H9i7vgkRqvVk8VcbGl8LoFZOwLXnXOyefIwQdpxAyG3i99AzuUScTaD2/uGNq/fM+iybo8DGyWy/P6leNHqBQ==} + engines: {node: '>=16.0.0'} + hasBin: true + '@module-federation/data-prefetch@0.15.0': resolution: {integrity: sha512-ivAnthD4SbBoT3590qLzCyKELGyfa7nj8BEjWjb6BNrP5Eu8sHX3Q2wHf76QsYfuwErtjaMU87N7dTe2ELZPVg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' + '@module-federation/data-prefetch@0.16.0': + resolution: {integrity: sha512-+6dxkU5MEORhx5/wrQVMxY/7vW7P23dxn+VCMCtH0FLhocYbyhVtJD+ecEVKI2ZV6WvLRS472u24Fz6C4QJq5A==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + '@module-federation/dts-plugin@0.15.0': resolution: {integrity: sha512-UztaFAhpCpsy+EUOP1BiqlYpRdD4h2TUITphCmThO1grOCqU7dYYwGjWNy37NtJeykRRznH3FU0+iGBG3Oiw6w==} peerDependencies: @@ -2080,6 +2094,15 @@ packages: vue-tsc: optional: true + '@module-federation/dts-plugin@0.16.0': + resolution: {integrity: sha512-A5ToViydF/JSdnrpxSKx4y38bGAs9CMXdWetrf9mD0Ha15aB3LQDn+1dFzUaiUk4bHblbzRB6BZnKFy7rPzB8g==} + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + vue-tsc: + optional: true + '@module-federation/enhanced@0.15.0': resolution: {integrity: sha512-YzGcjdggtR+VrNdIgT1nvhT+V6I+LnrdsLV3YfOB0iVkOe4+YFbDLZJK16CuYRSm/HTR38LVbziE/6tWcibKYw==} hasBin: true @@ -2095,22 +2118,51 @@ packages: webpack: optional: true + '@module-federation/enhanced@0.16.0': + resolution: {integrity: sha512-ShkQeNXDBLmKMpOF3B+omXU59lVvogsEzRNmNxnnTNz+/zd/MgHxLwOLcNr2bNxdDPk0Ejz/n9GXG4YQKDaJpA==} + hasBin: true + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + '@module-federation/error-codes@0.15.0': resolution: {integrity: sha512-CFJSF+XKwTcy0PFZ2l/fSUpR4z247+Uwzp1sXVkdIfJ/ATsnqf0Q01f51qqSEA6MYdQi6FKos9FIcu3dCpQNdg==} + '@module-federation/error-codes@0.16.0': + resolution: {integrity: sha512-TfmA45b8vvISniGudMg8jjIy1q3tLPon0QN/JdFp5f8AJ8/peICN5b+dkEQnWsAVg2fEusYhk9dO7z3nUeJM8A==} + '@module-federation/inject-external-runtime-core-plugin@0.15.0': resolution: {integrity: sha512-D6+FO2oj2Gr6QpfWv3i9RI9VJM2IFCMiFQKg5zOpKw1qdrPRWb35fiXAXGjw9RrVgrZz0Z1b9OP4zC9hfbpnQQ==} peerDependencies: '@module-federation/runtime-tools': 0.15.0 + '@module-federation/inject-external-runtime-core-plugin@0.16.0': + resolution: {integrity: sha512-kVW5DTxg1K/sqadVvg/r2s5ArZVH4VaVsw+/24dllfUQwn7opVorVMrI491zqz8NpSBjN2MHykWMLPQnSW659g==} + peerDependencies: + '@module-federation/runtime-tools': 0.16.0 + '@module-federation/managers@0.15.0': resolution: {integrity: sha512-YMIiFRgMHtuMcLBgOYyfkFpwU9vo6l0VjOZE5Wdr33DltQBUgp9Lo8+2AkyZ4TTkelqjvUWSNKKYV3MV4GL7gw==} + '@module-federation/managers@0.16.0': + resolution: {integrity: sha512-ySWz7j+D9CjKDWgSKkAOTIn7m1Jd8BTNglcsMK66jL3Z76kYFX+oUtogJXu5mV/MiHUkTyp6Pv8AEeaTArdgBw==} + '@module-federation/manifest@0.15.0': resolution: {integrity: sha512-x+UVFkdoKiNZhpUO8H/9jlM3nmC5bIApZvbC2TQuNva+ElCPotdhEO8jduiVkBnc2lr8D9qnFm8U5Kx/aFnGlA==} - '@module-federation/node@2.7.7': - resolution: {integrity: sha512-8NaByOBkbTkv25k2iBgaEFvjzLPAQKjlFBtR1JYdMXMyeouzzsDi9G7S0Hblc5td8ZKe7PDP/+KA3+uS35jMcQ==} + '@module-federation/manifest@0.16.0': + resolution: {integrity: sha512-O9UY4JDlzXmZWzxuvG9dqGForZWcz0Lh5IU9GyPOCDNysVLAejwuwO/Vptohs0D2T3C8U0x/Bd29XqOVu3J/kw==} + + '@module-federation/node@2.7.8': + resolution: {integrity: sha512-z1b8vvzswPmHqwegQCJ7M/doJ1uTJilyEXAzS0STmWzYTV16I4I6IalIgOjHr8JknMzs7GfF2ja1S+2AjiEfrg==} peerDependencies: next: '*' react: ^16||^17||^18||^19 @@ -2124,8 +2176,8 @@ packages: react-dom: optional: true - '@module-federation/rsbuild-plugin@0.15.0': - resolution: {integrity: sha512-3F3R4+tN7AjT/4jN+N6jzSDU37DYPumnYBTioD1wLeook5QF1xVtPaTjTB0Jm6JSjnvkQ24K6YAT6tG9wXVvAg==} + '@module-federation/rsbuild-plugin@0.16.0': + resolution: {integrity: sha512-+f42BVBJNVJ4yg+bKn2AFQYdilBbVu8bRud0N91DM5ucTdI4iFhfEqwdhuLJaDSN2ec+e5eHlqFYSbF2bi62ZA==} engines: {node: '>=16.0.0'} peerDependencies: '@rsbuild/core': ^1.3.21 @@ -2145,18 +2197,42 @@ packages: vue-tsc: optional: true + '@module-federation/rspack@0.16.0': + resolution: {integrity: sha512-42JiUVqVevosbwxNKV2KxOyrE6BGQXneUjg8AE7+K9pm4p0j180se5xpFerDMQf2blU4gJs4Wjgpj5q1EFQLUw==} + peerDependencies: + '@rspack/core': '>=0.7' + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: '>=1.0.24' + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + '@module-federation/runtime-core@0.15.0': resolution: {integrity: sha512-RYzI61fRDrhyhaEOXH3AgIGlHiot0wPFXu7F43cr+ZnTi+VlSYWLdlZ4NBuT9uV6JSmH54/c+tEZm5SXgKR2sQ==} + '@module-federation/runtime-core@0.16.0': + resolution: {integrity: sha512-5SECQowG4hlUVBRk/y6bnYLfxbsl5NcMmqn043WPe7NDOhGQWbTuYibJ3Bk+ZBv5U4uYLEmXipBGDc1FKsHklQ==} + '@module-federation/runtime-tools@0.15.0': resolution: {integrity: sha512-kzFn3ObUeBp5vaEtN1WMxhTYBuYEErxugu1RzFUERD21X3BZ+b4cWwdFJuBDlsmVjctIg/QSOoZoPXRKAO0foA==} + '@module-federation/runtime-tools@0.16.0': + resolution: {integrity: sha512-OzmXNluXBQ2E6znzX4m9CJt1MFHVGmbN8c8MSKcYIDcLzLSKBQAiaz9ZUMhkyWx2YrPgD134glyPEqJrc+fY8A==} + '@module-federation/runtime@0.15.0': resolution: {integrity: sha512-dTPsCNum9Bhu3yPOcrPYq0YnM9eCMMMNB1wuiqf1+sFbQlNApF0vfZxooqz3ln0/MpgE0jerVvFsLVGfqvC9Ug==} + '@module-federation/runtime@0.16.0': + resolution: {integrity: sha512-6o84WI8Qhc9O3HwPLx89kTvOSkyUOHQr73R/zr0I04sYhlMJgw5xTwXeGE7bQAmNgbJclzW9Kh7JTP7+3o3CHg==} + '@module-federation/sdk@0.15.0': resolution: {integrity: sha512-PWiYbGcJrKUD6JZiEPihrXhV3bgXdll4bV7rU+opV7tHaun+Z0CdcawjZ82Xnpb8MCPGmqHwa1MPFeUs66zksw==} + '@module-federation/sdk@0.16.0': + resolution: {integrity: sha512-UXJW1WWuDoDmScX0tpISjl4xIRPzAiN62vg9etuBdAEUM+ja9rz/zwNZaByiUPFS2aqlj2RHenCRvIapE8mYEg==} + '@module-federation/storybook-addon@4.0.20': resolution: {integrity: sha512-8nQaNFOghaRsvYtrfy3yXmWU5voC6ntZ846ogivgFhrdJqx2myyjAvfbg8FryddXwB6Fju1rVPzWJu0qSEnHSA==} peerDependencies: @@ -2186,9 +2262,15 @@ packages: '@module-federation/third-party-dts-extractor@0.15.0': resolution: {integrity: sha512-rML74G1NB9wtHubXP+ZTMI5HZkYypN/E93w8Zkwr6rc/k1eoZZza2lghw2znCNeu3lDlhvI9i4iaVsJQrX4oQA==} + '@module-federation/third-party-dts-extractor@0.16.0': + resolution: {integrity: sha512-Q/stS4DshYCHWmsHnd7sbtbBieB4XjQ7cf5EZzWDd9DVpRaghXbt4rDhP+Vwcg2MM6RvmxQFcapiILMBzxMvJQ==} + '@module-federation/webpack-bundler-runtime@0.15.0': resolution: {integrity: sha512-i+3wu2Ljh2TmuUpsnjwZVupOVqV50jP0ndA8PSP4gwMKlgdGeaZ4VH5KkHAXGr2eiYUxYLMrJXz1+eILJqeGDg==} + '@module-federation/webpack-bundler-runtime@0.16.0': + resolution: {integrity: sha512-yqIDQTelJZP0Rxml0OXv4Er8Kbdxy7NFh6PCzPwDFWI1SkiokJ3uXQJBvtlxZ3lOnCDYOzdHstqa8sJG4JP02Q==} + '@napi-rs/wasm-runtime@0.2.11': resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} @@ -2285,6 +2367,17 @@ packages: resolution: {integrity: sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw==} engines: {node: '>=18'} + '@reduxjs/toolkit@2.8.2': + resolution: {integrity: sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + '@remix-run/router@1.22.0': resolution: {integrity: sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==} engines: {node: '>=14.0.0'} @@ -2398,8 +2491,8 @@ packages: cpu: [x64] os: [win32] - '@rsbuild/core@1.4.2': - resolution: {integrity: sha512-46rcBPYz2kIdDQ1en40yDRT7ZGOKUB0+NqeOAvMAg4DU7TCfgK1qJdmznVasagTWKN9RjjzNpy5encS6W7gUOQ==} + '@rsbuild/core@1.4.3': + resolution: {integrity: sha512-97vmVaOXUxID85cVSDFHLFmDfeJTR4SoOHbn7kknkEeZFg3wHlDYhx+lbQPOZf+toHOm8d1w1LlunxVkCAdHLg==} engines: {node: '>=16.10.0'} hasBin: true @@ -2501,60 +2594,60 @@ packages: typescript: optional: true - '@rspack/binding-darwin-arm64@1.4.1': - resolution: {integrity: sha512-enh5DYbpaexdEmjbcxj3BJDauP3w+20jFKWvKROtAQV350PUw0bf2b4WOgngIH9hBzlfjpXNYAk6T5AhVAlY3Q==} + '@rspack/binding-darwin-arm64@1.4.2': + resolution: {integrity: sha512-0fPOew7D0l/x6qFZYdyUqutbw15K98VLvES2/7x2LPssTgypE4rVmnQSmVBnge3Nr8Qs/9qASPRpMWXBaqMfOA==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.4.1': - resolution: {integrity: sha512-KoehyhBji4TLXhn4mqOUw6xsQNRzNVA9XcCm1Jx+M1Qb0dhMTNfduvBSyXuRV5+/QaRbk7+4UJbyRNFUtt96kA==} + '@rspack/binding-darwin-x64@1.4.2': + resolution: {integrity: sha512-0Dh6ssGgwnd9G+IO8SwQaJ0RJ8NkQbk4hwoJH/u52Mnfl0EvhmNvuhkbSEoKn1U3kElOA2cxH/3gbYzuYExn3g==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.4.1': - resolution: {integrity: sha512-PJ5cHqvrj1bK7jH5DVrdKoR8Fy+p6l9baxXajq/6xWTxP+4YTdEtLsRZnpLMS1Ho2RRpkxDWJn+gdlKuleNioQ==} + '@rspack/binding-linux-arm64-gnu@1.4.2': + resolution: {integrity: sha512-UHAzggS8Mc7b3Xguhj82HwujLqBZquCeo8qJj5XreNaMKGb6YRw/91dJOVmkNiLCB0bj71CRE1Cocd+Peq3N9A==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-musl@1.4.1': - resolution: {integrity: sha512-cpDz+z3FwVQfK6VYfXQEb0ym6fFIVmvK4y3R/2VAbVGWYVxZB5I6AcSdOWdDnpppHmcHpf+qQFlwhHvbpMMJNQ==} + '@rspack/binding-linux-arm64-musl@1.4.2': + resolution: {integrity: sha512-QybZ0VxlFih+upLoE7Le5cN3LpxJwk6EnEQTigmzpfc4c4SOC889ftBoIAO3IeBk+mF3H2C9xD+/NolTdwoeiw==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-x64-gnu@1.4.1': - resolution: {integrity: sha512-jjTx53CpiYWK7fAv5qS8xHEytFK6gLfZRk+0kt2YII6uqez/xQ3SRcboreH8XbJcBoxINBzMNMf5/SeMBZ939A==} + '@rspack/binding-linux-x64-gnu@1.4.2': + resolution: {integrity: sha512-ucCCWdtH1tekZadrsYj6GNJ8EP21BM2uSE7MootbwLw8aBtgVTKUuRDQEps1h/rtrdthzd9XBX6Lc2N926gM+g==} cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-musl@1.4.1': - resolution: {integrity: sha512-FAyR3Og81Smtr/CnsuTiW4ZCYAPCqeV73lzMKZ9xdVUgM9324ryEgqgX38GZLB5Mo7cvQhv7/fpMeHQo16XQCw==} + '@rspack/binding-linux-x64-musl@1.4.2': + resolution: {integrity: sha512-+Y2LS6Qyk2AZor8DqlA8yKCqElYr0Urjc3M66O4ZzlxDT5xXX0J2vp04AtFp0g81q/+UgV3cbC//dqDvO0SiBA==} cpu: [x64] os: [linux] - '@rspack/binding-wasm32-wasi@1.4.1': - resolution: {integrity: sha512-3Q1VICIQP4GsaTJEmmwfowQ48NvhlL0CKH88l5+mbji2rBkGx7yR67pPdfCVNjXcCtFoemTYw98eaumJTjC++g==} + '@rspack/binding-wasm32-wasi@1.4.2': + resolution: {integrity: sha512-3WvfHY7NvzORek3FcQWLI/B8wQ7NZe0e0Bub9GyLNVxe5Bi+dxnSzEg6E7VsjbUzKnYufJA0hDKbEJ2qCMvpdw==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.4.1': - resolution: {integrity: sha512-DdLPOy1J98kn45uEhiEqlBKgMvet+AxOzX2OcrnU0wQXthGM9gty1YXYNryOhlK+X+eOcwcP3GbnDOAKi8nKqw==} + '@rspack/binding-win32-arm64-msvc@1.4.2': + resolution: {integrity: sha512-Y6L9DrLFRW6qBBCY3xBt7townStN5mlcbBTuG1zeXl0KcORPv1G1Cq6HXP6f1em+YsHE1iwnNqLvv4svg5KsnQ==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.4.1': - resolution: {integrity: sha512-13s8fYtyC9DyvKosD2Kvzd6fVZDZZyPp91L4TEXWaO0CFhaCbtLTYIntExq9MwtKHYKKx7bchIFw93o0xjKjUg==} + '@rspack/binding-win32-ia32-msvc@1.4.2': + resolution: {integrity: sha512-FyTJrL7GcYXPWKUB9Oj2X29kfma6MUgM9PyXGy8gDMti21kMMhpHp/bGVqfurRbazDyklDuLLtbHuawpa6toeA==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.4.1': - resolution: {integrity: sha512-ubQW8FcLnwljDanwTzkC9Abyo59gmX8m9uVr1GHOEuEU9Cua0KMijX2j/MYfiziz4nuQgv1saobY7K1I5nE3YA==} + '@rspack/binding-win32-x64-msvc@1.4.2': + resolution: {integrity: sha512-ODSU26tmG8MfMFDHCaMLCORB64EVdEtDvPP5zJs0Mgh7vQaqweJtqgG0ukZCQy4ApUatOrMaZrLk557jp9Biyw==} cpu: [x64] os: [win32] - '@rspack/binding@1.4.1': - resolution: {integrity: sha512-zYgOmI+LC2zxB/LIcnaeK66ElFHaPChdWzRruTT1LAFFwpgGkBGAwFoP27PDnxQW0Aejci21Ld8X9tyxm08QFw==} + '@rspack/binding@1.4.2': + resolution: {integrity: sha512-NdTLlA20ufD0thFvDIwwPk+bX9yo3TDE4XjfvZYbwFyYvBgqJOWQflnbwLgvSTck0MSTiOqWIqpR88ymAvWTqg==} - '@rspack/core@1.4.1': - resolution: {integrity: sha512-UTRCTQk2G8YiPBiMvfn8FcysxeO4Muek6a/Z39Cw2r4ZI8k5iPnKiyZboTJLS7120PwWBw2SO+QQje35Z44x0g==} + '@rspack/core@1.4.2': + resolution: {integrity: sha512-Mmk3X3fbOLtRq4jX8Ebp3rfjr75YgupvNksQb0WbaGEVr5l1b6woPH/LaXF2v9U9DP83wmpZJXJ8vclB5JfL/w==} engines: {node: '>=16.0.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -2679,6 +2772,19 @@ packages: '@rstack-dev/doc-ui@1.10.6': resolution: {integrity: sha512-lO5zRhQsLfiDuoIw0DnI/xLdG17N4RKcBO3MIW2H1R1XFGxcpdIfFVQI56/J4LaTMgVj7S2D00xnXMikwKm42w==} + '@rstest/core@0.0.6': + resolution: {integrity: sha512-OEtLpuPG398rETru/ZX6q7bORYLYwk+pu65cZgDwmB1cZTWixN3WggzUkq7tC9PD/Z9ldaZo/HlM7guedoTqqA==} + engines: {node: '>=18.0.0'} + hasBin: true + peerDependencies: + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + happy-dom: + optional: true + jsdom: + optional: true + '@rushstack/node-core-library@5.13.1': resolution: {integrity: sha512-5yXhzPFGEkVc9Fu92wsNJ9jlvdwz4RNb2bMso+/+TH0nMm1jDDDsOIf4l8GAkPxGuwPw5DH24RliWVfSPhlW/Q==} peerDependencies: @@ -2744,6 +2850,12 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + '@storybook/addon-backgrounds@9.0.0-alpha.12': resolution: {integrity: sha512-oiQL8GIs2jNhN1cfbWa6iJIdey/WC+TFlmIeoWzYsJ79EQCxpL5JgmzCMGIkZ+p7L4MUR/5S5b5fh6ApyWcUKw==} peerDependencies: @@ -3134,53 +3246,27 @@ packages: '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - '@vitest/expect@3.1.4': - resolution: {integrity: sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==} - '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/mocker@3.2.4': - resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - '@vitest/pretty-format@3.1.4': - resolution: {integrity: sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==} - '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/snapshot@3.2.4': resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/spy@3.1.4': - resolution: {integrity: sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==} - '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@vitest/utils@3.1.4': - resolution: {integrity: sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==} - '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} @@ -3486,6 +3572,9 @@ 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==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -4302,10 +4391,6 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} - expect-type@1.2.1: - resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} - engines: {node: '>=12.0.0'} - express@5.1.0: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} @@ -4785,6 +4870,9 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + immutable@5.0.2: resolution: {integrity: sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==} @@ -5017,9 +5105,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -6204,6 +6289,14 @@ packages: reduce-configs@1.1.0: resolution: {integrity: sha512-DQxy6liNadHfrLahZR7lMdc227NYVaQZhY5FMsxLEjX8X0SCuH+ESHSLCoz2yDZFq1/CLMDOAHdsEHwOEXKtvg==} + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -6270,6 +6363,9 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} @@ -6692,9 +6788,6 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -6799,9 +6892,6 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -6944,9 +7034,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@3.0.0: - resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} - style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} @@ -7062,12 +7149,6 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} @@ -7374,11 +7455,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - vite@6.3.5: resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7419,34 +7495,6 @@ packages: yaml: optional: true - vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.4 - '@vitest/ui': 3.2.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -7512,11 +7560,6 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8248,11 +8291,10 @@ snapshots: transitivePeerDependencies: - debug - '@codspeed/vitest-plugin@4.0.1(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': + '@codspeed/vitest-plugin@4.0.1(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': dependencies: '@codspeed/core': 4.0.1 vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) transitivePeerDependencies: - debug @@ -8602,6 +8644,12 @@ snapshots: '@types/semver': 7.5.8 semver: 7.6.3 + '@module-federation/bridge-react-webpack-plugin@0.16.0': + dependencies: + '@module-federation/sdk': 0.16.0 + '@types/semver': 7.5.8 + semver: 7.6.3 + '@module-federation/cli@0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': dependencies: '@modern-js/node-bundle-require': 2.67.6 @@ -8617,6 +8665,21 @@ snapshots: - utf-8-validate - vue-tsc + '@module-federation/cli@0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + dependencies: + '@modern-js/node-bundle-require': 2.67.6 + '@module-federation/dts-plugin': 0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/sdk': 0.16.0 + chalk: 3.0.0 + commander: 11.1.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + '@module-federation/data-prefetch@0.15.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@module-federation/runtime': 0.15.0 @@ -8625,6 +8688,14 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) + '@module-federation/data-prefetch@0.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@module-federation/runtime': 0.16.0 + '@module-federation/sdk': 0.16.0 + fs-extra: 9.1.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + '@module-federation/dts-plugin@0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': dependencies: '@module-federation/error-codes': 0.15.0 @@ -8652,7 +8723,34 @@ snapshots: - supports-color - utf-8-validate - '@module-federation/enhanced@0.15.0(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + '@module-federation/dts-plugin@0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + dependencies: + '@module-federation/error-codes': 0.16.0 + '@module-federation/managers': 0.16.0 + '@module-federation/sdk': 0.16.0 + '@module-federation/third-party-dts-extractor': 0.16.0 + adm-zip: 0.5.16 + ansi-colors: 4.1.3 + axios: 1.8.3 + chalk: 3.0.0 + fs-extra: 9.1.0 + isomorphic-ws: 5.0.0(ws@8.18.0) + koa: 2.16.1 + lodash.clonedeepwith: 4.5.0 + log4js: 6.9.1 + node-schedule: 2.1.1 + rambda: 9.3.0 + typescript: 5.8.3 + ws: 8.18.0 + optionalDependencies: + vue-tsc: 3.0.1(typescript@5.8.3) + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@module-federation/enhanced@0.15.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.15.0 '@module-federation/cli': 0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) @@ -8662,7 +8760,7 @@ snapshots: '@module-federation/inject-external-runtime-core-plugin': 0.15.0(@module-federation/runtime-tools@0.15.0) '@module-federation/managers': 0.15.0 '@module-federation/manifest': 0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) - '@module-federation/rspack': 0.15.0(@rspack/core@1.4.1(@swc/helpers@0.5.17))(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/rspack': 0.15.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@module-federation/runtime-tools': 0.15.0 '@module-federation/sdk': 0.15.0 btoa: 1.2.1 @@ -8680,18 +8778,58 @@ snapshots: - supports-color - utf-8-validate + '@module-federation/enhanced@0.16.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.16.0 + '@module-federation/cli': 0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/data-prefetch': 0.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@module-federation/dts-plugin': 0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/error-codes': 0.16.0 + '@module-federation/inject-external-runtime-core-plugin': 0.16.0(@module-federation/runtime-tools@0.16.0) + '@module-federation/managers': 0.16.0 + '@module-federation/manifest': 0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/rspack': 0.16.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/runtime-tools': 0.16.0 + '@module-federation/sdk': 0.16.0 + btoa: 1.2.1 + schema-utils: 4.3.2 + upath: 2.0.1 + optionalDependencies: + typescript: 5.8.3 + vue-tsc: 3.0.1(typescript@5.8.3) + transitivePeerDependencies: + - '@rspack/core' + - bufferutil + - debug + - react + - react-dom + - supports-color + - utf-8-validate + '@module-federation/error-codes@0.15.0': {} + '@module-federation/error-codes@0.16.0': {} + '@module-federation/inject-external-runtime-core-plugin@0.15.0(@module-federation/runtime-tools@0.15.0)': dependencies: '@module-federation/runtime-tools': 0.15.0 + '@module-federation/inject-external-runtime-core-plugin@0.16.0(@module-federation/runtime-tools@0.16.0)': + dependencies: + '@module-federation/runtime-tools': 0.16.0 + '@module-federation/managers@0.15.0': dependencies: '@module-federation/sdk': 0.15.0 find-pkg: 2.0.0 fs-extra: 9.1.0 + '@module-federation/managers@0.16.0': + dependencies: + '@module-federation/sdk': 0.16.0 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + '@module-federation/manifest@0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': dependencies: '@module-federation/dts-plugin': 0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) @@ -8707,11 +8845,26 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/node@2.7.7(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + '@module-federation/manifest@0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': dependencies: - '@module-federation/enhanced': 0.15.0(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) - '@module-federation/runtime': 0.15.0 - '@module-federation/sdk': 0.15.0 + '@module-federation/dts-plugin': 0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/managers': 0.16.0 + '@module-federation/sdk': 0.16.0 + chalk: 3.0.0 + find-pkg: 2.0.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - typescript + - utf-8-validate + - vue-tsc + + '@module-federation/node@2.7.8(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + dependencies: + '@module-federation/enhanced': 0.16.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/runtime': 0.16.0 + '@module-federation/sdk': 0.16.0 btoa: 1.2.1 encoding: 0.1.13 node-fetch: 2.7.0(encoding@0.1.13) @@ -8727,14 +8880,14 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/rsbuild-plugin@0.15.0(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + '@module-federation/rsbuild-plugin@0.16.0(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': dependencies: - '@module-federation/enhanced': 0.15.0(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) - '@module-federation/node': 2.7.7(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) - '@module-federation/sdk': 0.15.0 + '@module-federation/enhanced': 0.16.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/node': 2.7.8(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/sdk': 0.16.0 fs-extra: 11.3.0 optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 transitivePeerDependencies: - '@rspack/core' - bufferutil @@ -8748,7 +8901,7 @@ snapshots: - vue-tsc - webpack - '@module-federation/rspack@0.15.0(@rspack/core@1.4.1(@swc/helpers@0.5.17))(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + '@module-federation/rspack@0.15.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.15.0 '@module-federation/dts-plugin': 0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) @@ -8757,7 +8910,27 @@ snapshots: '@module-federation/manifest': 0.15.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@module-federation/runtime-tools': 0.15.0 '@module-federation/sdk': 0.15.0 - '@rspack/core': 1.4.1(@swc/helpers@0.5.17) + '@rspack/core': 1.4.2(@swc/helpers@0.5.17) + btoa: 1.2.1 + optionalDependencies: + typescript: 5.8.3 + vue-tsc: 3.0.1(typescript@5.8.3) + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@module-federation/rspack@0.16.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.16.0 + '@module-federation/dts-plugin': 0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/inject-external-runtime-core-plugin': 0.16.0(@module-federation/runtime-tools@0.16.0) + '@module-federation/managers': 0.16.0 + '@module-federation/manifest': 0.16.0(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/runtime-tools': 0.16.0 + '@module-federation/sdk': 0.16.0 + '@rspack/core': 1.4.2(@swc/helpers@0.5.17) btoa: 1.2.1 optionalDependencies: typescript: 5.8.3 @@ -8773,25 +8946,43 @@ snapshots: '@module-federation/error-codes': 0.15.0 '@module-federation/sdk': 0.15.0 + '@module-federation/runtime-core@0.16.0': + dependencies: + '@module-federation/error-codes': 0.16.0 + '@module-federation/sdk': 0.16.0 + '@module-federation/runtime-tools@0.15.0': dependencies: '@module-federation/runtime': 0.15.0 '@module-federation/webpack-bundler-runtime': 0.15.0 + '@module-federation/runtime-tools@0.16.0': + dependencies: + '@module-federation/runtime': 0.16.0 + '@module-federation/webpack-bundler-runtime': 0.16.0 + '@module-federation/runtime@0.15.0': dependencies: '@module-federation/error-codes': 0.15.0 '@module-federation/runtime-core': 0.15.0 '@module-federation/sdk': 0.15.0 + '@module-federation/runtime@0.16.0': + dependencies: + '@module-federation/error-codes': 0.16.0 + '@module-federation/runtime-core': 0.16.0 + '@module-federation/sdk': 0.16.0 + '@module-federation/sdk@0.15.0': {} - '@module-federation/storybook-addon@4.0.20(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))(webpack-virtual-modules@0.6.2)': + '@module-federation/sdk@0.16.0': {} + + '@module-federation/storybook-addon@4.0.20(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3))(webpack-virtual-modules@0.6.2)': dependencies: - '@module-federation/enhanced': 0.15.0(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) + '@module-federation/enhanced': 0.15.0(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(vue-tsc@3.0.1(typescript@5.8.3)) '@module-federation/sdk': 0.15.0 optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 webpack-virtual-modules: 0.6.2 transitivePeerDependencies: - '@rspack/core' @@ -8810,11 +9001,22 @@ snapshots: fs-extra: 9.1.0 resolve: 1.22.8 + '@module-federation/third-party-dts-extractor@0.16.0': + dependencies: + find-pkg: 2.0.0 + fs-extra: 9.1.0 + resolve: 1.22.8 + '@module-federation/webpack-bundler-runtime@0.15.0': dependencies: '@module-federation/runtime': 0.15.0 '@module-federation/sdk': 0.15.0 + '@module-federation/webpack-bundler-runtime@0.16.0': + dependencies: + '@module-federation/runtime': 0.16.0 + '@module-federation/sdk': 0.16.0 + '@napi-rs/wasm-runtime@0.2.11': dependencies: '@emnapi/core': 1.4.3 @@ -8889,6 +9091,17 @@ snapshots: '@publint/pack@0.1.2': {} + '@reduxjs/toolkit@2.8.2(react@19.1.0)': + dependencies: + '@standard-schema/spec': 1.0.0 + '@standard-schema/utils': 0.3.0 + immer: 10.1.1 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 19.1.0 + '@remix-run/router@1.22.0': {} '@rollup/pluginutils@5.1.4(rollup@4.44.1)': @@ -8959,21 +9172,21 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.44.1': optional: true - '@rsbuild/core@1.4.2': + '@rsbuild/core@1.4.3': dependencies: - '@rspack/core': 1.4.1(@swc/helpers@0.5.17) + '@rspack/core': 1.4.2(@swc/helpers@0.5.17) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.17 core-js: 3.43.0 jiti: 2.4.2 - '@rsbuild/plugin-babel@1.0.4(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-babel@1.0.4(@rsbuild/core@1.4.3)': dependencies: '@babel/core': 7.26.10 '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) '@babel/preset-typescript': 7.27.0(@babel/core@7.26.10) - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@types/babel__core': 7.20.5 deepmerge: 4.3.1 reduce-configs: 1.1.0 @@ -8981,13 +9194,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@rsbuild/plugin-babel@1.0.5(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-babel@1.0.5(@rsbuild/core@1.4.3)': dependencies: '@babel/core': 7.26.10 '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) '@babel/preset-typescript': 7.27.0(@babel/core@7.26.10) - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@types/babel__core': 7.20.5 deepmerge: 4.3.1 reduce-configs: 1.1.0 @@ -8995,13 +9208,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@rsbuild/plugin-less@1.2.4(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-less@1.2.4(@rsbuild/core@1.4.3)': dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 deepmerge: 4.3.1 reduce-configs: 1.1.0 - '@rsbuild/plugin-node-polyfill@1.3.0(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-node-polyfill@1.3.0(@rsbuild/core@1.4.3)': dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -9027,39 +9240,39 @@ snapshots: util: 0.12.5 vm-browserify: 1.1.2 optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 - '@rsbuild/plugin-preact@1.5.0(@rsbuild/core@1.4.2)(preact@10.26.9)': + '@rsbuild/plugin-preact@1.5.0(@rsbuild/core@1.4.3)(preact@10.26.9)': dependencies: '@prefresh/core': 1.5.3(preact@10.26.9) '@prefresh/utils': 1.2.0 - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@rspack/plugin-preact-refresh': 1.1.2(@prefresh/core@1.5.3(preact@10.26.9))(@prefresh/utils@1.2.0) '@swc/plugin-prefresh': 8.0.2 transitivePeerDependencies: - preact - '@rsbuild/plugin-react@1.3.2(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-react@1.3.2(@rsbuild/core@1.4.3)': dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@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.2(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-sass@1.3.2(@rsbuild/core@1.4.3)': dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 deepmerge: 4.3.1 loader-utils: 2.0.4 postcss: 8.5.6 reduce-configs: 1.1.0 sass-embedded: 1.89.0 - '@rsbuild/plugin-solid@1.0.5(@babel/core@7.26.10)(@rsbuild/core@1.4.2)(solid-js@1.9.7)': + '@rsbuild/plugin-solid@1.0.5(@babel/core@7.26.10)(@rsbuild/core@1.4.3)(solid-js@1.9.7)': dependencies: - '@rsbuild/core': 1.4.2 - '@rsbuild/plugin-babel': 1.0.4(@rsbuild/core@1.4.2) + '@rsbuild/core': 1.4.3 + '@rsbuild/plugin-babel': 1.0.4(@rsbuild/core@1.4.3) babel-preset-solid: 1.9.5(@babel/core@7.26.10) solid-refresh: 0.6.3(solid-js@1.9.7) transitivePeerDependencies: @@ -9067,22 +9280,22 @@ snapshots: - solid-js - supports-color - '@rsbuild/plugin-stylus@1.1.1(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))': + '@rsbuild/plugin-stylus@1.1.1(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))': dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 deepmerge: 4.3.1 reduce-configs: 1.1.0 stylus: 0.64.0 - stylus-loader: 8.1.1(@rspack/core@1.4.1(@swc/helpers@0.5.17))(stylus@0.64.0) + stylus-loader: 8.1.1(@rspack/core@1.4.2(@swc/helpers@0.5.17))(stylus@0.64.0) transitivePeerDependencies: - '@rspack/core' - supports-color - webpack - '@rsbuild/plugin-svgr@1.2.0(@rsbuild/core@1.4.2)(typescript@5.8.3)': + '@rsbuild/plugin-svgr@1.2.0(@rsbuild/core@1.4.3)(typescript@5.8.3)': dependencies: - '@rsbuild/core': 1.4.2 - '@rsbuild/plugin-react': 1.3.2(@rsbuild/core@1.4.2) + '@rsbuild/core': 1.4.3 + '@rsbuild/plugin-react': 1.3.2(@rsbuild/core@1.4.3) '@svgr/core': 8.1.0(typescript@5.8.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3))(typescript@5.8.3) @@ -9093,90 +9306,90 @@ snapshots: - typescript - webpack-hot-middleware - '@rsbuild/plugin-toml@1.1.0(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-toml@1.1.0(@rsbuild/core@1.4.3)': dependencies: toml: 3.0.0 optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 - '@rsbuild/plugin-type-check@1.2.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(typescript@5.8.3)': + '@rsbuild/plugin-type-check@1.2.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3)': dependencies: deepmerge: 4.3.1 json5: 2.2.3 reduce-configs: 1.1.0 - ts-checker-rspack-plugin: 1.1.3(@rspack/core@1.4.1(@swc/helpers@0.5.17))(typescript@5.8.3) + ts-checker-rspack-plugin: 1.1.3(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3) optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 transitivePeerDependencies: - '@rspack/core' - typescript - '@rsbuild/plugin-typed-css-modules@1.0.2(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-typed-css-modules@1.0.2(@rsbuild/core@1.4.3)': optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 - '@rsbuild/plugin-yaml@1.0.2(@rsbuild/core@1.4.2)': + '@rsbuild/plugin-yaml@1.0.2(@rsbuild/core@1.4.3)': optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@rslib/core@0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(typescript@5.8.3)': dependencies: - '@rsbuild/core': 1.4.2 - rsbuild-plugin-dts: 0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(@rsbuild/core@1.4.2)(typescript@5.8.3) + '@rsbuild/core': 1.4.3 + rsbuild-plugin-dts: 0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(@rsbuild/core@1.4.3)(typescript@5.8.3) tinyglobby: 0.2.14 optionalDependencies: '@microsoft/api-extractor': 7.52.8(@types/node@22.15.34) typescript: 5.8.3 - '@rspack/binding-darwin-arm64@1.4.1': + '@rspack/binding-darwin-arm64@1.4.2': optional: true - '@rspack/binding-darwin-x64@1.4.1': + '@rspack/binding-darwin-x64@1.4.2': optional: true - '@rspack/binding-linux-arm64-gnu@1.4.1': + '@rspack/binding-linux-arm64-gnu@1.4.2': optional: true - '@rspack/binding-linux-arm64-musl@1.4.1': + '@rspack/binding-linux-arm64-musl@1.4.2': optional: true - '@rspack/binding-linux-x64-gnu@1.4.1': + '@rspack/binding-linux-x64-gnu@1.4.2': optional: true - '@rspack/binding-linux-x64-musl@1.4.1': + '@rspack/binding-linux-x64-musl@1.4.2': optional: true - '@rspack/binding-wasm32-wasi@1.4.1': + '@rspack/binding-wasm32-wasi@1.4.2': dependencies: '@napi-rs/wasm-runtime': 0.2.11 optional: true - '@rspack/binding-win32-arm64-msvc@1.4.1': + '@rspack/binding-win32-arm64-msvc@1.4.2': optional: true - '@rspack/binding-win32-ia32-msvc@1.4.1': + '@rspack/binding-win32-ia32-msvc@1.4.2': optional: true - '@rspack/binding-win32-x64-msvc@1.4.1': + '@rspack/binding-win32-x64-msvc@1.4.2': optional: true - '@rspack/binding@1.4.1': + '@rspack/binding@1.4.2': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.4.1 - '@rspack/binding-darwin-x64': 1.4.1 - '@rspack/binding-linux-arm64-gnu': 1.4.1 - '@rspack/binding-linux-arm64-musl': 1.4.1 - '@rspack/binding-linux-x64-gnu': 1.4.1 - '@rspack/binding-linux-x64-musl': 1.4.1 - '@rspack/binding-wasm32-wasi': 1.4.1 - '@rspack/binding-win32-arm64-msvc': 1.4.1 - '@rspack/binding-win32-ia32-msvc': 1.4.1 - '@rspack/binding-win32-x64-msvc': 1.4.1 - - '@rspack/core@1.4.1(@swc/helpers@0.5.17)': + '@rspack/binding-darwin-arm64': 1.4.2 + '@rspack/binding-darwin-x64': 1.4.2 + '@rspack/binding-linux-arm64-gnu': 1.4.2 + '@rspack/binding-linux-arm64-musl': 1.4.2 + '@rspack/binding-linux-x64-gnu': 1.4.2 + '@rspack/binding-linux-x64-musl': 1.4.2 + '@rspack/binding-wasm32-wasi': 1.4.2 + '@rspack/binding-win32-arm64-msvc': 1.4.2 + '@rspack/binding-win32-ia32-msvc': 1.4.2 + '@rspack/binding-win32-x64-msvc': 1.4.2 + + '@rspack/core@1.4.2(@swc/helpers@0.5.17)': dependencies: '@module-federation/runtime-tools': 0.15.0 - '@rspack/binding': 1.4.1 + '@rspack/binding': 1.4.2 '@rspack/lite-tapable': 1.0.1 optionalDependencies: '@swc/helpers': 0.5.17 @@ -9199,8 +9412,8 @@ snapshots: '@mdx-js/loader': 3.1.0(acorn@8.14.1) '@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.2 - '@rsbuild/plugin-react': 1.3.2(@rsbuild/core@1.4.2) + '@rsbuild/core': 1.4.3 + '@rsbuild/plugin-react': 1.3.2(@rsbuild/core@1.4.3) '@rspress/mdx-rs': 0.6.6 '@rspress/plugin-last-updated': 2.0.0-beta.18 '@rspress/plugin-medium-zoom': 2.0.0-beta.18(@rspress/runtime@2.0.0-beta.18) @@ -9324,7 +9537,7 @@ snapshots: '@rspress/shared@2.0.0-beta.18': dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@shikijs/rehype': 3.4.2 gray-matter: 4.0.3 lodash-es: 4.17.21 @@ -9357,6 +9570,18 @@ snapshots: - react - react-dom + '@rstest/core@0.0.6': + dependencies: + '@rsbuild/core': 1.4.3 + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/snapshot': 3.2.4 + birpc: 2.4.0 + chai: 5.2.0 + pathe: 2.0.3 + std-env: 3.9.0 + tinypool: 1.1.1 + '@rushstack/node-core-library@5.13.1(@types/node@22.15.34)': dependencies: ajv: 8.13.0 @@ -9459,6 +9684,10 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} + '@standard-schema/spec@1.0.0': {} + + '@standard-schema/utils@0.3.0': {} + '@storybook/addon-backgrounds@9.0.0-alpha.12(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))': dependencies: '@storybook/global': 5.0.0 @@ -9909,13 +10138,6 @@ snapshots: chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/expect@3.1.4': - dependencies: - '@vitest/spy': 3.1.4 - '@vitest/utils': 3.1.4 - chai: 5.2.0 - tinyrainbow: 2.0.0 - '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.2 @@ -9924,32 +10146,14 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@3.1.4': - dependencies: - tinyrainbow: 2.0.0 - '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.2.4': - dependencies: - '@vitest/utils': 3.2.4 - pathe: 2.0.3 - strip-literal: 3.0.0 - '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 @@ -9960,10 +10164,6 @@ snapshots: dependencies: tinyspy: 3.0.2 - '@vitest/spy@3.1.4': - dependencies: - tinyspy: 3.0.2 - '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.3 @@ -9975,12 +10175,6 @@ snapshots: loupe: 3.1.4 tinyrainbow: 1.2.0 - '@vitest/utils@3.1.4': - dependencies: - '@vitest/pretty-format': 3.1.4 - loupe: 3.1.4 - tinyrainbow: 2.0.0 - '@vitest/utils@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 @@ -10324,6 +10518,8 @@ snapshots: binary-extensions@2.3.0: {} + birpc@2.4.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -11218,8 +11414,6 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 - expect-type@1.2.1: {} - express@5.1.0: dependencies: accepts: 2.0.0 @@ -11881,6 +12075,8 @@ snapshots: ignore@5.3.1: {} + immer@10.1.1: {} + immutable@5.0.2: {} import-fresh@3.3.0: @@ -12063,8 +12259,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@9.0.1: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -13610,6 +13804,12 @@ snapshots: reduce-configs@1.1.0: {} + redux-thunk@3.1.0(redux@5.0.1): + dependencies: + redux: 5.0.1 + + redux@5.0.1: {} + regenerator-runtime@0.14.1: {} regex-not@1.0.2: @@ -13712,6 +13912,8 @@ snapshots: requires-port@1.0.0: {} + reselect@5.1.1: {} + resize-observer-polyfill@1.5.1: {} resolve-dir@1.0.1: @@ -13814,10 +14016,10 @@ snapshots: transitivePeerDependencies: - supports-color - rsbuild-plugin-dts@0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(@rsbuild/core@1.4.2)(typescript@5.8.3): + rsbuild-plugin-dts@0.10.4(@microsoft/api-extractor@7.52.8(@types/node@22.15.34))(@rsbuild/core@1.4.3)(typescript@5.8.3): dependencies: '@ast-grep/napi': 0.37.0 - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 magic-string: 0.30.17 picocolors: 1.1.1 tinyglobby: 0.2.14 @@ -13826,33 +14028,33 @@ snapshots: '@microsoft/api-extractor': 7.52.8(@types/node@22.15.34) typescript: 5.8.3 - rsbuild-plugin-google-analytics@1.0.3(@rsbuild/core@1.4.2): + rsbuild-plugin-google-analytics@1.0.3(@rsbuild/core@1.4.3): optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 - rsbuild-plugin-html-minifier-terser@1.1.1(@rsbuild/core@1.4.2): + rsbuild-plugin-html-minifier-terser@1.1.1(@rsbuild/core@1.4.3): dependencies: '@types/html-minifier-terser': 7.0.2 html-minifier-terser: 7.2.0 optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 - rsbuild-plugin-open-graph@1.0.2(@rsbuild/core@1.4.2): + rsbuild-plugin-open-graph@1.0.2(@rsbuild/core@1.4.3): optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 - rsbuild-plugin-publint@0.3.2(@rsbuild/core@1.4.2): + rsbuild-plugin-publint@0.3.2(@rsbuild/core@1.4.3): dependencies: picocolors: 1.1.1 publint: 0.3.12 optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 - rsbuild-plugin-unplugin-vue@0.1.0(@rsbuild/core@1.4.2)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1): + rsbuild-plugin-unplugin-vue@0.1.0(@rsbuild/core@1.4.3)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1): dependencies: unplugin-vue: 6.2.0(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.6.1) optionalDependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 transitivePeerDependencies: - '@types/node' - jiti @@ -13880,7 +14082,7 @@ snapshots: rspress@2.0.0-beta.18(@types/react@19.1.8)(acorn@8.14.1): dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@rspress/core': 2.0.0-beta.18(@types/react@19.1.8)(acorn@8.14.1) '@rspress/shared': 2.0.0-beta.18 cac: 6.7.14 @@ -14161,8 +14363,6 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 - siginfo@2.0.0: {} - signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -14282,8 +14482,6 @@ snapshots: sprintf-js@1.0.3: {} - stackback@0.0.2: {} - stackframe@1.3.4: {} static-extend@0.1.2: @@ -14299,18 +14497,18 @@ snapshots: stdin-discarder@0.2.2: {} - storybook-addon-rslib@2.0.2(@rsbuild/core@1.4.2)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3))(typescript@5.8.3): + storybook-addon-rslib@2.0.2(@rsbuild/core@1.4.3)(@rslib/core@packages+core)(storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@rslib/core': link:packages/core - storybook-builder-rsbuild: 2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) + storybook-builder-rsbuild: 2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 - storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3): + storybook-builder-rsbuild@2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3): dependencies: - '@rsbuild/core': 1.4.2 - '@rsbuild/plugin-type-check': 1.2.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(typescript@5.8.3) + '@rsbuild/core': 1.4.3 + '@rsbuild/plugin-type-check': 1.2.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3) '@storybook/addon-docs': 9.0.12(@types/react@19.1.8)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2)) '@storybook/core-webpack': 9.0.12(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2)) browser-assert: 1.2.1 @@ -14323,7 +14521,7 @@ snapshots: magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 - rsbuild-plugin-html-minifier-terser: 1.1.1(@rsbuild/core@1.4.2) + rsbuild-plugin-html-minifier-terser: 1.1.1(@rsbuild/core@1.4.3) sirv: 2.0.4 storybook: 9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2) ts-dedent: 2.2.0 @@ -14339,10 +14537,10 @@ snapshots: - '@types/react' - webpack-sources - storybook-react-rsbuild@2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3): + storybook-react-rsbuild@2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3): dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.44.1) - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@storybook/react': 9.0.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) '@storybook/react-docgen-typescript-plugin': 1.0.1(typescript@5.8.3) '@types/node': 18.19.110 @@ -14354,7 +14552,7 @@ snapshots: react-dom: 19.1.0(react@19.1.0) resolve: 1.22.10 storybook: 9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2) - storybook-builder-rsbuild: 2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) + storybook-builder-rsbuild: 2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) tsconfig-paths: 4.2.0 optionalDependencies: typescript: 5.8.3 @@ -14366,12 +14564,12 @@ snapshots: - webpack - webpack-sources - storybook-vue3-rsbuild@2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)): + storybook-vue3-rsbuild@2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)): dependencies: - '@rsbuild/core': 1.4.2 + '@rsbuild/core': 1.4.3 '@storybook/vue3': 9.0.14(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(vue@3.5.17(typescript@5.8.3)) storybook: 9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2) - storybook-builder-rsbuild: 2.0.2(@rsbuild/core@1.4.2)(@rspack/core@1.4.1(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) + storybook-builder-rsbuild: 2.0.2(@rsbuild/core@1.4.3)(@rspack/core@1.4.2(@swc/helpers@0.5.17))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.14(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3) vue-docgen-loader: 1.5.1 transitivePeerDependencies: @@ -14482,10 +14680,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@3.0.0: - dependencies: - js-tokens: 9.0.1 - style-to-js@1.1.16: dependencies: style-to-object: 1.0.8 @@ -14494,13 +14688,13 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - stylus-loader@8.1.1(@rspack/core@1.4.1(@swc/helpers@0.5.17))(stylus@0.64.0): + stylus-loader@8.1.1(@rspack/core@1.4.2(@swc/helpers@0.5.17))(stylus@0.64.0): dependencies: fast-glob: 3.3.2 normalize-path: 3.0.0 stylus: 0.64.0 optionalDependencies: - '@rspack/core': 1.4.1(@swc/helpers@0.5.17) + '@rspack/core': 1.4.2(@swc/helpers@0.5.17) stylus@0.64.0: dependencies: @@ -14634,10 +14828,6 @@ snapshots: tiny-invariant@1.3.3: {} - tinybench@2.9.0: {} - - tinyexec@0.3.2: {} - tinyglobby@0.2.14: dependencies: fdir: 6.4.4(picomatch@4.0.2) @@ -14699,7 +14889,7 @@ snapshots: trough@2.2.0: {} - ts-checker-rspack-plugin@1.1.3(@rspack/core@1.4.1(@swc/helpers@0.5.17))(typescript@5.8.3): + ts-checker-rspack-plugin@1.1.3(@rspack/core@1.4.2(@swc/helpers@0.5.17))(typescript@5.8.3): dependencies: '@babel/code-frame': 7.26.2 '@rspack/lite-tapable': 1.0.1 @@ -14710,7 +14900,7 @@ snapshots: picocolors: 1.1.1 typescript: 5.8.3 optionalDependencies: - '@rspack/core': 1.4.1(@swc/helpers@0.5.17) + '@rspack/core': 1.4.2(@swc/helpers@0.5.17) ts-dedent@2.2.0: {} @@ -14928,27 +15118,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.2.4(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1): - dependencies: - cac: 6.7.14 - debug: 4.4.1 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1): dependencies: esbuild: 0.25.0 @@ -14967,48 +15136,6 @@ snapshots: tsx: 4.20.3 yaml: 2.6.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1): - dependencies: - '@types/chai': 5.2.2 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.2.0 - debug: 4.4.1 - expect-type: 1.2.1 - magic-string: 0.30.17 - pathe: 2.0.3 - picomatch: 4.0.2 - std-env: 3.9.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - vite-node: 3.2.4(@types/node@22.15.34)(jiti@2.4.2)(sass-embedded@1.89.0)(stylus@0.64.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 22.15.34 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vm-browserify@1.1.2: {} vscode-uri@3.0.8: {} @@ -15078,11 +15205,6 @@ snapshots: dependencies: isexe: 2.0.0 - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 diff --git a/rstest.workspace.ts b/rstest.workspace.ts new file mode 100644 index 000000000..bc595e983 --- /dev/null +++ b/rstest.workspace.ts @@ -0,0 +1,14 @@ +// TODO: projects is not supported in Rstest yet, so we use a single config file for now. + +// import type { ProjectConfig } from '@rstest/core'; +import type { RstestConfig } from '@rstest/core'; + +export const shared: RstestConfig = { + globals: true, + testEnvironment: 'node', + testTimeout: 60_000, + restoreMocks: true, + exclude: ['**/node_modules/**'], +}; + +// export default defineWorkspace(['packages/*', 'tests']); diff --git a/tests/benchmark/index.bench.ts b/tests/benchmark/index.bench.ts index 3b6d1a807..e4757917f 100644 --- a/tests/benchmark/index.bench.ts +++ b/tests/benchmark/index.bench.ts @@ -1,6 +1,7 @@ +// @ts-expect-error: placeholder for now. +import { bench, describe } from '@rsbuild/core'; import type { RslibConfig } from '@rslib/core'; import { getCwdByExample, rslibBuild } from 'test-helper'; -import { bench, describe } from 'vitest'; // Remove dts emitting before isolated declaration landed as it's out of our performance scope. const disableDts = (rslibConfig: RslibConfig) => { diff --git a/tests/integration/alias/__snapshots__/index.test.ts.snap b/tests/integration/alias/__snapshots__/index.test.ts.snap index 7cfcf5a8a..ea6be01f7 100644 --- a/tests/integration/alias/__snapshots__/index.test.ts.snap +++ b/tests/integration/alias/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`source.alias 1`] = ` "const a = 'hello world'; diff --git a/tests/integration/alias/index.test.ts b/tests/integration/alias/index.test.ts index 6ed711dd5..528504f1b 100644 --- a/tests/integration/alias/index.test.ts +++ b/tests/integration/alias/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { expect, test } from 'vitest'; test('source.alias', async () => { const fixturePath = __dirname; diff --git a/tests/integration/asset/__snapshots__/index.test.ts.snap b/tests/integration/asset/__snapshots__/index.test.ts.snap index 847679fb7..bf38b912a 100644 --- a/tests/integration/asset/__snapshots__/index.test.ts.snap +++ b/tests/integration/asset/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`use asset/source 1`] = ` "const draft_namespaceObject = "this is a txt file\\nthis is a txt file\\n"; diff --git a/tests/integration/asset/index.test.ts b/tests/integration/asset/index.test.ts index f6bfb3fca..b355edfc9 100644 --- a/tests/integration/asset/index.test.ts +++ b/tests/integration/asset/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { expect, test } from 'vitest'; test('set the size threshold to inline static assets', async () => { const fixturePath = join(__dirname, 'limit'); diff --git a/tests/integration/async-chunks/index.test.ts b/tests/integration/async-chunks/index.test.ts index 574180377..e0904cf2a 100644 --- a/tests/integration/async-chunks/index.test.ts +++ b/tests/integration/async-chunks/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('should get correct value from async chunks', async () => { const fixturePath = join(__dirname, 'default'); diff --git a/tests/integration/auto-extension/index.test.ts b/tests/integration/auto-extension/index.test.ts index ad9ac1577..40a1d5f67 100644 --- a/tests/integration/auto-extension/index.test.ts +++ b/tests/integration/auto-extension/index.test.ts @@ -1,10 +1,10 @@ import { extname, join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults, generateFileTree, queryContent, } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('autoExtension: true', () => { test('generate .mjs in build artifacts with esm format when type is commonjs', async () => { diff --git a/tests/integration/auto-external/index.test.ts b/tests/integration/auto-external/index.test.ts index c16909c22..5feb41789 100644 --- a/tests/integration/auto-external/index.test.ts +++ b/tests/integration/auto-external/index.test.ts @@ -1,7 +1,8 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import stripAnsi from 'strip-ansi'; import { buildAndGetResults, proxyConsole } from 'test-helper'; -import { expect, test } from 'vitest'; + import { composeModuleImportWarn } from '../../../packages/core/src/config'; test('auto external default should works', async () => { diff --git a/tests/integration/banner-footer/index.test.ts b/tests/integration/banner-footer/index.test.ts index 4c9f7cd07..1f00a9ee7 100644 --- a/tests/integration/banner-footer/index.test.ts +++ b/tests/integration/banner-footer/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; enum BannerFooter { JS_BANNER = '/*! hello banner js */', diff --git a/tests/integration/bundle-false/__snapshots__/index.test.ts.snap b/tests/integration/bundle-false/__snapshots__/index.test.ts.snap index 07bd0088a..ddc0fba42 100644 --- a/tests/integration/bundle-false/__snapshots__/index.test.ts.snap +++ b/tests/integration/bundle-false/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`svgr in bundleless 1`] = ` "import __rslib_svgr_url__0__ from "../static/svg/logo.svg"; diff --git a/tests/integration/bundle-false/basic/src/dep.ts b/tests/integration/bundle-false/basic/src/dep.ts index afc100e86..a88c419ec 100644 --- a/tests/integration/bundle-false/basic/src/dep.ts +++ b/tests/integration/bundle-false/basic/src/dep.ts @@ -1,3 +1,3 @@ -import { add } from 'dep_add'; +import depAdd from 'dep_add'; -export const added = add(1, 2); +export const added = depAdd.add(1, 2); diff --git a/tests/integration/bundle-false/index.test.ts b/tests/integration/bundle-false/index.test.ts index eb302881a..af76d31dc 100644 --- a/tests/integration/bundle-false/index.test.ts +++ b/tests/integration/bundle-false/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { expect, test } from 'vitest'; test('basic', async () => { const fixturePath = join(__dirname, 'basic'); @@ -59,8 +59,8 @@ test('basic', async () => { " `); expect(depContent).toMatchInlineSnapshot(` - "import { add } from "dep_add"; - const added = add(1, 2); + "import dep_add from "dep_add"; + const added = dep_add.add(1, 2); export { added }; " `); diff --git a/tests/integration/cli/build-watch/build.test.ts b/tests/integration/cli/build-watch/build.test.ts index 82655b26f..df6e8f30d 100644 --- a/tests/integration/cli/build-watch/build.test.ts +++ b/tests/integration/cli/build-watch/build.test.ts @@ -1,9 +1,9 @@ import { exec, spawn } from 'node:child_process'; import path from 'node:path'; import { after } from 'node:test'; +import { describe, expect, test } from '@rstest/core'; import fse from 'fs-extra'; import { awaitFileChanges, awaitFileExists } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('build --watch command', async () => { test('basic', async () => { diff --git a/tests/integration/cli/build/build.test.ts b/tests/integration/cli/build/build.test.ts index 4ffc2dc42..badd0104c 100644 --- a/tests/integration/cli/build/build.test.ts +++ b/tests/integration/cli/build/build.test.ts @@ -1,8 +1,8 @@ import { execSync } from 'node:child_process'; import path from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import fse from 'fs-extra'; import { buildAndGetResults, globContentJSON } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('build command', async () => { test('basic', async () => { diff --git a/tests/integration/cli/env/env.test.ts b/tests/integration/cli/env/env.test.ts index 44b9f1a1e..cf2d5eb0f 100644 --- a/tests/integration/cli/env/env.test.ts +++ b/tests/integration/cli/env/env.test.ts @@ -1,7 +1,7 @@ import { execSync } from 'node:child_process'; import fs from 'node:fs'; import path from 'node:path'; -import { beforeEach, describe, expect, test } from 'vitest'; +import { beforeEach, describe, expect, test } from '@rstest/core'; const localFile = path.join(__dirname, '.env.local'); const prodLocalFile = path.join(__dirname, '.env.production.local'); diff --git a/tests/integration/cli/inspect/inspect.test.ts b/tests/integration/cli/inspect/inspect.test.ts index 610707935..17d761a12 100644 --- a/tests/integration/cli/inspect/inspect.test.ts +++ b/tests/integration/cli/inspect/inspect.test.ts @@ -1,9 +1,9 @@ import { execSync } from 'node:child_process'; import path from 'node:path'; import { describe } from 'node:test'; +import { expect, test } from '@rstest/core'; import fse from 'fs-extra'; import { globContentJSON } from 'test-helper'; -import { expect, test } from 'vitest'; describe('inspect command', async () => { test('basic', async () => { diff --git a/tests/integration/cli/mf/mf.test.ts b/tests/integration/cli/mf/mf.test.ts index bf925da0d..7160e9152 100644 --- a/tests/integration/cli/mf/mf.test.ts +++ b/tests/integration/cli/mf/mf.test.ts @@ -3,9 +3,11 @@ import { join } from 'node:path'; import { describe } from 'node:test'; import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; import { startMFDevServer } from '@rslib/core'; -import fse, { existsSync } from 'fs-extra'; +import { expect, test } from '@rstest/core'; +import fse from 'fs-extra'; import { awaitFileExists } from 'test-helper'; -import { expect, test } from 'vitest'; + +const { existsSync } = fse; describe('mf-dev', () => { test('mf-dev --lib', async () => { @@ -67,7 +69,7 @@ describe('mf-dev', () => { lib: [ { format: 'mf', - plugins: [pluginModuleFederation({ name: 'test-not-exist' })], + plugins: [pluginModuleFederation({ name: 'test-not-exist' }, {})], }, ], }, diff --git a/tests/integration/config-check/index.test.ts b/tests/integration/config-check/index.test.ts index 4364cd0e4..c1b58a2d1 100644 --- a/tests/integration/config-check/index.test.ts +++ b/tests/integration/config-check/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import stripAnsi from 'strip-ansi'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('should throw error when lib array not exists or empty', async () => { const fixturePath = join(__dirname, 'lib-array'); diff --git a/tests/integration/copy/index.test.ts b/tests/integration/copy/index.test.ts index a69390a2c..f22892ca6 100644 --- a/tests/integration/copy/index.test.ts +++ b/tests/integration/copy/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults, generateFileTree } from 'test-helper'; -import { expect, test } from 'vitest'; test('copy', async () => { const fixturePath = __dirname; diff --git a/tests/integration/decorators/__snapshots__/index.test.ts.snap b/tests/integration/decorators/__snapshots__/index.test.ts.snap index 65c1afdba..194954ee6 100644 --- a/tests/integration/decorators/__snapshots__/index.test.ts.snap +++ b/tests/integration/decorators/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`decorators default to 2022-03 1`] = ` "function applyDecs2203RFactory() { diff --git a/tests/integration/decorators/index.test.ts b/tests/integration/decorators/index.test.ts index c325e2513..b2670186d 100644 --- a/tests/integration/decorators/index.test.ts +++ b/tests/integration/decorators/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('decorators default to 2022-03', async () => { const fixturePath = join(__dirname, 'default'); diff --git a/tests/integration/define/index.test.ts b/tests/integration/define/index.test.ts index 5a2daa54c..cc52c31d2 100644 --- a/tests/integration/define/index.test.ts +++ b/tests/integration/define/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('source.define', async () => { const fixturePath = __dirname; diff --git a/tests/integration/directive/index.test.ts b/tests/integration/directive/index.test.ts index 5273589c3..31525fc71 100644 --- a/tests/integration/directive/index.test.ts +++ b/tests/integration/directive/index.test.ts @@ -1,8 +1,8 @@ import fs from 'node:fs'; import os from 'node:os'; import { join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { describe, expect, test } from 'vitest'; const onlyStartsWith = (str: string, target: string) => { return str.split(target).length === 2 && str.startsWith(target); diff --git a/tests/integration/dts/__snapshots__/index.test.ts.snap b/tests/integration/dts/__snapshots__/index.test.ts.snap index 24fe65583..e2d89ceba 100644 --- a/tests/integration/dts/__snapshots__/index.test.ts.snap +++ b/tests/integration/dts/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`dts when bundle: false > basic 3`] = ` { diff --git a/tests/integration/dts/bundle/bundled-packages/package.json b/tests/integration/dts/bundle/bundled-packages/package.json index f0923c790..03501538b 100644 --- a/tests/integration/dts/bundle/bundled-packages/package.json +++ b/tests/integration/dts/bundle/bundled-packages/package.json @@ -4,6 +4,6 @@ "private": true, "type": "module", "devDependencies": { - "@vitest/expect": "3.1.4" + "@reduxjs/toolkit": "^2.8.2" } } diff --git a/tests/integration/dts/bundle/bundled-packages/rslib.config.ts b/tests/integration/dts/bundle/bundled-packages/rslib.config.ts index 4b5ad9d12..091e086af 100644 --- a/tests/integration/dts/bundle/bundled-packages/rslib.config.ts +++ b/tests/integration/dts/bundle/bundled-packages/rslib.config.ts @@ -28,7 +28,15 @@ export default defineConfig({ generateBundleEsmConfig({ dts: { bundle: { - bundledPackages: ['@vitest/expect', '@vitest/utils'], + bundledPackages: [ + '@reduxjs/toolkit', + '@standard-schema/spec', + '@standard-schema/utils', + 'immer', + 'redux', + 'redux-thunk', + 'reselect', + ], }, }, output: { diff --git a/tests/integration/dts/bundle/bundled-packages/src/index.ts b/tests/integration/dts/bundle/bundled-packages/src/index.ts index ec47f5be9..a9c1fbbda 100644 --- a/tests/integration/dts/bundle/bundled-packages/src/index.ts +++ b/tests/integration/dts/bundle/bundled-packages/src/index.ts @@ -1 +1 @@ -export * from '@vitest/expect'; +export * from '@reduxjs/toolkit'; diff --git a/tests/integration/dts/index.test.ts b/tests/integration/dts/index.test.ts index 669b57152..b5b7ce15b 100644 --- a/tests/integration/dts/index.test.ts +++ b/tests/integration/dts/index.test.ts @@ -1,6 +1,7 @@ import { spawnSync } from 'node:child_process'; import { existsSync } from 'node:fs'; import { join, normalize } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import stripAnsi from 'strip-ansi'; import { buildAndGetResults, @@ -9,7 +10,6 @@ import { proxyConsole, queryContent, } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('dts when bundle: false', () => { test('basic', async () => { @@ -410,23 +410,19 @@ describe('dts when bundle: true', () => { }); // default - expect(entries.esm0).toContain( - `import { Constructable } from '@vitest/utils';`, - ); + expect(entries.esm0).toContain(`import { Action } from 'redux';`); // override empty array expect(entries.esm1).toMatchInlineSnapshot(` " - export * from "@vitest/expect"; + export * from "@reduxjs/toolkit"; export { } " `); // override with bundledPackages - expect(entries.esm2).not.toContain( - `import { Constructable } from '@vitest/utils';`, - ); + expect(entries.esm2).not.toContain(`import { Action } from 'redux';`); }); }); diff --git a/tests/integration/entry/index.test.ts b/tests/integration/entry/index.test.ts index 241fb9178..47d88e998 100644 --- a/tests/integration/entry/index.test.ts +++ b/tests/integration/entry/index.test.ts @@ -1,7 +1,7 @@ import path, { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import stripAnsi from 'strip-ansi'; import { buildAndGetResults, proxyConsole, queryContent } from 'test-helper'; -import { expect, test } from 'vitest'; test('default entry', async () => { const fixturePath = join(__dirname, 'default'); diff --git a/tests/integration/extension-alias/__snapshots__/index.test.ts.snap b/tests/integration/extension-alias/__snapshots__/index.test.ts.snap index 72a43c986..736ef9209 100644 --- a/tests/integration/extension-alias/__snapshots__/index.test.ts.snap +++ b/tests/integration/extension-alias/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`resolve.extensionAlias should work 1`] = ` ""use strict"; diff --git a/tests/integration/extension-alias/index.test.ts b/tests/integration/extension-alias/index.test.ts index b628ca8f3..ef4379cf1 100644 --- a/tests/integration/extension-alias/index.test.ts +++ b/tests/integration/extension-alias/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('resolve.extensionAlias should work', async () => { const fixturePath = __dirname; diff --git a/tests/integration/external-helpers/__snapshots__/index.test.ts.snap b/tests/integration/external-helpers/__snapshots__/index.test.ts.snap index a440233aa..f40b7393f 100644 --- a/tests/integration/external-helpers/__snapshots__/index.test.ts.snap +++ b/tests/integration/external-helpers/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`should external @swc/helpers when externalHelpers is true 1`] = ` "import { _ } from "@swc/helpers/_/_class_call_check"; diff --git a/tests/integration/external-helpers/index.test.ts b/tests/integration/external-helpers/index.test.ts index 2a18a45bd..575068bff 100644 --- a/tests/integration/external-helpers/index.test.ts +++ b/tests/integration/external-helpers/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import stripAnsi from 'strip-ansi'; import { buildAndGetResults, proxyConsole } from 'test-helper'; -import { expect, test } from 'vitest'; test('should not external @swc/helpers by default', async () => { const fixturePath = join(__dirname, 'default'); diff --git a/tests/integration/externals/index.test.ts b/tests/integration/externals/index.test.ts index 32e9e681f..4af833e31 100644 --- a/tests/integration/externals/index.test.ts +++ b/tests/integration/externals/index.test.ts @@ -1,7 +1,8 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import stripAnsi from 'strip-ansi'; import { buildAndGetResults, proxyConsole, queryContent } from 'test-helper'; -import { expect, test } from 'vitest'; + import { composeModuleImportWarn } from '../../../packages/core/src/config'; test('should fail to build when `output.target` is not "node"', async () => { diff --git a/tests/integration/format/index.test.ts b/tests/integration/format/index.test.ts index 4092bf1ba..b345b3e1f 100644 --- a/tests/integration/format/index.test.ts +++ b/tests/integration/format/index.test.ts @@ -1,6 +1,6 @@ import path from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('format default to esm', async () => { const fixturePath = path.resolve(__dirname, 'default'); diff --git a/tests/integration/iife/index.test.ts b/tests/integration/iife/index.test.ts index bc4c86cc7..d3b1c7a3e 100644 --- a/tests/integration/iife/index.test.ts +++ b/tests/integration/iife/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; declare global { var globalHelper: any; diff --git a/tests/integration/json/index.test.ts b/tests/integration/json/index.test.ts index 32a612300..df129d2f6 100644 --- a/tests/integration/json/index.test.ts +++ b/tests/integration/json/index.test.ts @@ -1,7 +1,7 @@ import { readFileSync } from 'node:fs'; import { join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('JSON', async () => { const fixturePath = join(__dirname, '.'); diff --git a/tests/integration/minify/index.test.ts b/tests/integration/minify/index.test.ts index 553de785b..81da51971 100644 --- a/tests/integration/minify/index.test.ts +++ b/tests/integration/minify/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('minify config', () => { test('tree shaking is enabled by default, bar and baz should be shaken, some comments and annotations are preserved', async () => { diff --git a/tests/integration/node-polyfill/index.test.ts b/tests/integration/node-polyfill/index.test.ts index c526d56ba..84f5b9071 100644 --- a/tests/integration/node-polyfill/index.test.ts +++ b/tests/integration/node-polyfill/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('`Buffer` should be imported from polyfill when bundled', async () => { const fixturePath = join(__dirname, './bundle'); diff --git a/tests/integration/outBase/index.test.ts b/tests/integration/outBase/index.test.ts index 5a4e25440..126e6368e 100644 --- a/tests/integration/outBase/index.test.ts +++ b/tests/integration/outBase/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('outBase', async () => { test('base', async () => { diff --git a/tests/integration/plugins/index.test.ts b/tests/integration/plugins/index.test.ts index 1881aaa56..f0cd24fce 100644 --- a/tests/integration/plugins/index.test.ts +++ b/tests/integration/plugins/index.test.ts @@ -1,8 +1,9 @@ import { exec } from 'node:child_process'; import fs from 'node:fs'; import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { awaitFileExists, buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; + import { distIndex } from './basic/rslib.config'; import { plugin1Path, plugin2Path } from './mf-dev/rslib.config'; diff --git a/tests/integration/polyfill/index.test.ts b/tests/integration/polyfill/index.test.ts index f1638fd3e..3d6c1c24b 100644 --- a/tests/integration/polyfill/index.test.ts +++ b/tests/integration/polyfill/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { describe, expect, test } from 'vitest'; const globalPolyfillResult = `const value = [ '1' diff --git a/tests/integration/redirect/asset.test.ts b/tests/integration/redirect/asset.test.ts index 54cf57aa5..aae5eeffc 100644 --- a/tests/integration/redirect/asset.test.ts +++ b/tests/integration/redirect/asset.test.ts @@ -1,6 +1,6 @@ import path from 'node:path'; +import { beforeAll, expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { beforeAll, expect, test } from 'vitest'; let contents: Awaited>['contents']; diff --git a/tests/integration/redirect/dts.test.ts b/tests/integration/redirect/dts.test.ts index 31d4d5c08..359ac0933 100644 --- a/tests/integration/redirect/dts.test.ts +++ b/tests/integration/redirect/dts.test.ts @@ -1,6 +1,6 @@ import path from 'node:path'; +import { beforeAll, expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { beforeAll, expect, test } from 'vitest'; let contents: Awaited>['contents']; diff --git a/tests/integration/redirect/js.test.ts b/tests/integration/redirect/js.test.ts index 9c2768038..5d3f72cee 100644 --- a/tests/integration/redirect/js.test.ts +++ b/tests/integration/redirect/js.test.ts @@ -1,6 +1,6 @@ import path from 'node:path'; +import { beforeAll, expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { beforeAll, expect, test } from 'vitest'; let contents: Awaited>['contents']; diff --git a/tests/integration/redirect/jsNotResolved.test.ts b/tests/integration/redirect/jsNotResolved.test.ts index cb6f348c8..9df841757 100644 --- a/tests/integration/redirect/jsNotResolved.test.ts +++ b/tests/integration/redirect/jsNotResolved.test.ts @@ -1,6 +1,6 @@ import path from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { expect, test } from 'vitest'; test('redirect.js default', async () => { const fixturePath = path.resolve(__dirname, './js-not-resolve'); diff --git a/tests/integration/redirect/style.test.ts b/tests/integration/redirect/style.test.ts index f94c25471..beb1feb3d 100644 --- a/tests/integration/redirect/style.test.ts +++ b/tests/integration/redirect/style.test.ts @@ -1,6 +1,6 @@ import path from 'node:path'; +import { beforeAll, expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { beforeAll, expect, test } from 'vitest'; let contents: Awaited>['contents']; diff --git a/tests/integration/require/index.test.ts b/tests/integration/require/index.test.ts index 2349548a0..efdba5d89 100644 --- a/tests/integration/require/index.test.ts +++ b/tests/integration/require/index.test.ts @@ -1,7 +1,7 @@ /** biome-ignore-all lint/suspicious/noTemplateCurlyInString: test statements */ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('require.resolve', async () => { const fixturePath = join(__dirname, 'require-resolve'); diff --git a/tests/integration/resolve/index.test.ts b/tests/integration/resolve/index.test.ts index 7040f2ac3..83acc67ed 100644 --- a/tests/integration/resolve/index.test.ts +++ b/tests/integration/resolve/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('resolve data url', async () => { const fixturePath = join(__dirname, 'data-url'); diff --git a/tests/integration/server/index.test.ts b/tests/integration/server/index.test.ts index d22dfa900..b138cd6cc 100644 --- a/tests/integration/server/index.test.ts +++ b/tests/integration/server/index.test.ts @@ -1,9 +1,9 @@ import { exec } from 'node:child_process'; import { existsSync } from 'node:fs'; import { join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import fse from 'fs-extra'; import { awaitFileExists, buildAndGetResults } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('server config', async () => { test('basic config', async () => { diff --git a/tests/integration/shims/index.test.ts b/tests/integration/shims/index.test.ts index c93f61cfa..01046321a 100644 --- a/tests/integration/shims/index.test.ts +++ b/tests/integration/shims/index.test.ts @@ -2,8 +2,8 @@ import fs from 'node:fs'; import path, { join } from 'node:path'; import { pathToFileURL } from 'node:url'; import vm from 'node:vm'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { describe, expect, test } from 'vitest'; describe('ESM shims', async () => { const fixturePath = join(__dirname, 'esm'); @@ -87,7 +87,7 @@ describe('CJS shims', () => { test('import.meta.url', async () => { const fixturePath = join(__dirname, 'cjs'); const { entryFiles, entries } = await buildAndGetResults({ fixturePath }); - // `module.require` is not available in Vitest runner context. Manually create a context to run the CJS code. + // `module.require` is not available in Rstest runner context. Manually create a context to run the CJS code. // As a temporary solution, we use `module.require` to avoid potential collision with module scope variable `require`. const cjsCode = entries.cjs; const context = vm.createContext({ diff --git a/tests/integration/sourcemap/index.test.ts b/tests/integration/sourcemap/index.test.ts index bc4e348a4..fccb3d81e 100644 --- a/tests/integration/sourcemap/index.test.ts +++ b/tests/integration/sourcemap/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('should not generate js sourcemap by default', async () => { const fixturePath = join(__dirname, 'default'); diff --git a/tests/integration/style/asset/index.test.ts b/tests/integration/style/asset/index.test.ts index 9772c164e..a5ba51c41 100644 --- a/tests/integration/style/asset/index.test.ts +++ b/tests/integration/style/asset/index.test.ts @@ -1,6 +1,6 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expectFileContainContent } from 'test-helper/vitest'; -import { expect, test } from 'vitest'; +import { expectFileContainContent } from 'test-helper/rstest'; test('should output css asset', async () => { const fixturePath = __dirname; diff --git a/tests/integration/style/css-modules/index.test.ts b/tests/integration/style/css-modules/index.test.ts index e95f35e9f..63ca4a607 100644 --- a/tests/integration/style/css-modules/index.test.ts +++ b/tests/integration/style/css-modules/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expectFileContainContent } from 'test-helper/vitest'; -import { expect, test } from 'vitest'; +import { expectFileContainContent } from 'test-helper/rstest'; test('should extract css-modules successfully in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/style/css/index.test.ts b/tests/integration/style/css/index.test.ts index 81f21281a..096b03d94 100644 --- a/tests/integration/style/css/index.test.ts +++ b/tests/integration/style/css/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('should extract css successfully in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/style/less/index.test.ts b/tests/integration/style/less/index.test.ts index 6d989092e..234c49b29 100644 --- a/tests/integration/style/less/index.test.ts +++ b/tests/integration/style/less/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expectFileContainContent } from 'test-helper/vitest'; -import { expect, test } from 'vitest'; +import { expectFileContainContent } from 'test-helper/rstest'; test('should extract with pluginLess successfully in bundle-false', async () => { const fixturePath = join(__dirname, 'bundle-false'); diff --git a/tests/integration/style/lightningcss/index.test.ts b/tests/integration/style/lightningcss/index.test.ts index 05450d349..9207a3494 100644 --- a/tests/integration/style/lightningcss/index.test.ts +++ b/tests/integration/style/lightningcss/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expectFileContainContent } from 'test-helper/vitest'; -import { expect, test } from 'vitest'; +import { expectFileContainContent } from 'test-helper/rstest'; test('should extract css with lightningcss-loader successfully in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/style/postcss/index.test.ts b/tests/integration/style/postcss/index.test.ts index c987a3899..3a59a3f2a 100644 --- a/tests/integration/style/postcss/index.test.ts +++ b/tests/integration/style/postcss/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expectFileContainContent } from 'test-helper/vitest'; -import { expect, test } from 'vitest'; +import { expectFileContainContent } from 'test-helper/rstest'; test('should extract css with postcss-loader successfully in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/style/sass/__snapshots__/index.test.ts.snap b/tests/integration/style/sass/__snapshots__/index.test.ts.snap index 8c725cd8e..3c57a0108 100644 --- a/tests/integration/style/sass/__snapshots__/index.test.ts.snap +++ b/tests/integration/style/sass/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`should extract css with pluginSass in bundle 2`] = ` [ diff --git a/tests/integration/style/sass/index.test.ts b/tests/integration/style/sass/index.test.ts index c024e457d..2915b1d8e 100644 --- a/tests/integration/style/sass/index.test.ts +++ b/tests/integration/style/sass/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('should extract css with pluginSass in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/style/style-inject/index.test.ts b/tests/integration/style/style-inject/index.test.ts index 21a2448ea..290ce3d37 100644 --- a/tests/integration/style/style-inject/index.test.ts +++ b/tests/integration/style/style-inject/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('should extract css successfully with `output.injectStyles = true` in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/style/stylus/index.test.ts b/tests/integration/style/stylus/index.test.ts index 8a303acbf..3aefba440 100644 --- a/tests/integration/style/stylus/index.test.ts +++ b/tests/integration/style/stylus/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expectFileContainContent } from 'test-helper/vitest'; -import { expect, test } from 'vitest'; +import { expectFileContainContent } from 'test-helper/rstest'; test('should extract css with pluginStylus in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/style/tailwindcss/index.test.ts b/tests/integration/style/tailwindcss/index.test.ts index ed4cc1be5..a0ba2522b 100644 --- a/tests/integration/style/tailwindcss/index.test.ts +++ b/tests/integration/style/tailwindcss/index.test.ts @@ -1,7 +1,7 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expectFileContainContent } from 'test-helper/vitest'; -import { expect, test } from 'vitest'; +import { expectFileContainContent } from 'test-helper/rstest'; test('should extract css when using tailwindcss successfully in bundle', async () => { const fixturePath = join(__dirname, 'bundle'); diff --git a/tests/integration/syntax/__snapshots__/index.test.ts.snap b/tests/integration/syntax/__snapshots__/index.test.ts.snap index 6d8475a66..298819e2e 100644 --- a/tests/integration/syntax/__snapshots__/index.test.ts.snap +++ b/tests/integration/syntax/__snapshots__/index.test.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +// Rstest Snapshot v1 exports[`should downgrade class private method by default 1`] = ` "class Foo { diff --git a/tests/integration/syntax/index.test.ts b/tests/integration/syntax/index.test.ts index 462a8bc56..ac37c35ae 100644 --- a/tests/integration/syntax/index.test.ts +++ b/tests/integration/syntax/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('should downgrade class private method by default', async () => { const fixturePath = join(__dirname, 'default'); diff --git a/tests/integration/transform-import/index.test.ts b/tests/integration/transform-import/index.test.ts index 0a324cb19..5c0d84e2e 100644 --- a/tests/integration/transform-import/index.test.ts +++ b/tests/integration/transform-import/index.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults, type FormatType } from 'test-helper'; -import { expect, test } from 'vitest'; test('transformImport with arco-design', async () => { const fixturePath = join(__dirname, 'arco-design'); diff --git a/tests/integration/tsconfig/index.test.ts b/tests/integration/tsconfig/index.test.ts index 3db59acc8..3a8960dd1 100644 --- a/tests/integration/tsconfig/index.test.ts +++ b/tests/integration/tsconfig/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('tsconfig path', async () => { const fixturePath = __dirname; diff --git a/tests/integration/umd-globals/index.test.ts b/tests/integration/umd-globals/index.test.ts index ef943a39c..284099e67 100644 --- a/tests/integration/umd-globals/index.test.ts +++ b/tests/integration/umd-globals/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('correct read globals from CommonJS', async () => { const fixturePath = __dirname; diff --git a/tests/integration/umd-library-name/index.test.ts b/tests/integration/umd-library-name/index.test.ts index 822a191bd..c600309a6 100644 --- a/tests/integration/umd-library-name/index.test.ts +++ b/tests/integration/umd-library-name/index.test.ts @@ -1,6 +1,6 @@ import vm from 'node:vm'; +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('correct read UMD name from CommonJS', async () => { const fixturePath = __dirname; diff --git a/tests/integration/umd/index.test.ts b/tests/integration/umd/index.test.ts index ee1800c80..ad35a3c90 100644 --- a/tests/integration/umd/index.test.ts +++ b/tests/integration/umd/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { expect, test } from 'vitest'; test('read UMD value in CommonJS', async () => { process.env.NODE_ENV = 'production'; diff --git a/tests/integration/vue/index.test.ts b/tests/integration/vue/index.test.ts index b40e4cf7b..e29fc4ce3 100644 --- a/tests/integration/vue/index.test.ts +++ b/tests/integration/vue/index.test.ts @@ -1,7 +1,7 @@ import { platform } from 'node:os'; import { join } from 'node:path'; +import { describe, expect, test } from '@rstest/core'; import { buildAndGetResults } from 'test-helper'; -import { describe, expect, test } from 'vitest'; // '__file' path can't be normalized on win32. describe.runIf(platform() !== 'win32')('ESM', async () => { diff --git a/tests/integration/worker/index.test.ts b/tests/integration/worker/index.test.ts index 5969aa967..144781436 100644 --- a/tests/integration/worker/index.test.ts +++ b/tests/integration/worker/index.test.ts @@ -1,5 +1,5 @@ +import { expect, test } from '@rstest/core'; import { buildAndGetResults, queryContent } from 'test-helper'; -import { expect, test } from 'vitest'; test('new Worker(new URL(...)) should be preserved', async () => { process.env.NODE_ENV = 'production'; diff --git a/tests/package.json b/tests/package.json index 783cf821f..044152af3 100644 --- a/tests/package.json +++ b/tests/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "scripts": { - "test:benchmark": "vitest bench", + "test": "rstest run", + "test:benchmark": "rstest bench", "test:e2e": "playwright test --pass-with-no-tests", "type-check": "tsc --noEmit" }, @@ -13,7 +14,7 @@ }, "devDependencies": { "@codspeed/vitest-plugin": "^4.0.1", - "@module-federation/rsbuild-plugin": "^0.15.0", + "@module-federation/rsbuild-plugin": "^0.16.0", "@playwright/test": "1.53.1", "@rsbuild/core": "~1.4.2", "@rsbuild/plugin-less": "^1.2.4", diff --git a/tests/playwright.config.ts b/tests/playwright.config.ts index 758464e4c..b5cdfac23 100644 --- a/tests/playwright.config.ts +++ b/tests/playwright.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from '@playwright/test'; export default defineConfig({ - // Playwright test files with `.pw.` to distinguish from Vitest test files + // Playwright test files with `.pw.` to distinguish from Rstest test files testMatch: /.*pw.(test|spec).(js|ts|mjs)/, // Retry on CI retries: process.env.CI ? 3 : 0, diff --git a/tests/rstest.config.ts b/tests/rstest.config.ts new file mode 100644 index 000000000..3f899bebf --- /dev/null +++ b/tests/rstest.config.ts @@ -0,0 +1,18 @@ +// import codspeedPlugin from '@codspeed/vitest-plugin'; +import { defineConfig } from '@rstest/core'; +import { shared } from '../rstest.workspace'; + +export default defineConfig({ + ...shared, + name: 'integration', + setupFiles: ['./setupRstestTests.ts'], + include: ['./integration/**/*.test.ts'], + exclude: ['**/node_modules/**'], + // TODO: Support benchmark in Rstest. + // benchmark: { + // include: ['./benchmark/**/*.bench.ts'], + // }, + // }, + // Don't run CodSpeed locally as no instruments are setup. + // plugins: [!!process.env.CI && codspeedPlugin()].filter(Boolean), +}); diff --git a/tests/scripts/package.json b/tests/scripts/package.json index 852b2edfa..b5ce679db 100644 --- a/tests/scripts/package.json +++ b/tests/scripts/package.json @@ -9,7 +9,7 @@ "./index": "./index.ts", "./rsbuild": "./rsbuild.ts", "./shared": "./shared.ts", - "./vitest": "./vitest.ts" + "./rstest": "./rstest.ts" }, "main": "index.ts", "types": "index.ts" diff --git a/tests/scripts/vitest.ts b/tests/scripts/rstest.ts similarity index 78% rename from tests/scripts/vitest.ts rename to tests/scripts/rstest.ts index a4480cffe..781a6f0e4 100644 --- a/tests/scripts/vitest.ts +++ b/tests/scripts/rstest.ts @@ -1,5 +1,5 @@ -// This file can only be imported by vitest test files -import { expect } from 'vitest'; +// This file can only be imported by @rstest/core test files +import { expect } from '@rstest/core'; import { getFileBySuffix } from './shared'; export function expectFileContainContent( diff --git a/tests/scripts/shared.ts b/tests/scripts/shared.ts index 98820b59c..4dc5cfc96 100644 --- a/tests/scripts/shared.ts +++ b/tests/scripts/shared.ts @@ -54,7 +54,7 @@ export function generateBundleMFConfig( root: './dist/mf', }, }, - plugins: [pluginModuleFederation(options)], + plugins: [pluginModuleFederation(options, {})], }; return mergeConfig(mfBasicConfig, config)!; @@ -304,7 +304,6 @@ export async function buildAndGetResults({ }, }; } - const results = await getResults(rslibConfig, type); return { contents: results.contents, diff --git a/tests/setupVitestTests.ts b/tests/setupRstestTests.ts similarity index 93% rename from tests/setupVitestTests.ts rename to tests/setupRstestTests.ts index b6d4bb4ab..295c365db 100644 --- a/tests/setupVitestTests.ts +++ b/tests/setupRstestTests.ts @@ -1,7 +1,7 @@ import path from 'node:path'; import process from 'node:process'; +import { beforeEach, expect } from '@rstest/core'; import { createSnapshotSerializer } from 'path-serializer'; -import { beforeEach, expect } from 'vitest'; beforeEach(() => { // since our NODE_ENV injection logic is via cli, we need to diff --git a/tests/vitest.config.ts b/tests/vitest.config.ts deleted file mode 100644 index 5dbbe9211..000000000 --- a/tests/vitest.config.ts +++ /dev/null @@ -1,18 +0,0 @@ -import codspeedPlugin from '@codspeed/vitest-plugin'; -import { defineConfig } from 'vitest/config'; -import { shared } from '../vitest.workspace'; - -export default defineConfig({ - test: { - ...shared, - name: 'integration', - setupFiles: ['./setupVitestTests.ts'], - include: ['./integration/**/*.test.ts'], - exclude: ['**/node_modules/**'], - benchmark: { - include: ['./benchmark/**/*.bench.ts'], - }, - }, - // Don't run CodSpeed locally as no instruments are setup. - plugins: [!!process.env.CI && codspeedPlugin()].filter(Boolean), -}); diff --git a/vitest.workspace.ts b/vitest.workspace.ts deleted file mode 100644 index d5cb251d4..000000000 --- a/vitest.workspace.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineWorkspace } from 'vitest/config'; -import type { ProjectConfig } from 'vitest/node'; - -export const shared: ProjectConfig = { - globals: true, - environment: 'node', - testTimeout: 60000, - restoreMocks: true, - exclude: ['**/node_modules/**'], -}; - -export default defineWorkspace(['packages/*', 'tests']); diff --git a/website/docs/en/guide/advanced/module-federation.mdx b/website/docs/en/guide/advanced/module-federation.mdx index 09150ff9e..55a878cb1 100644 --- a/website/docs/en/guide/advanced/module-federation.mdx +++ b/website/docs/en/guide/advanced/module-federation.mdx @@ -53,22 +53,25 @@ export default defineConfig({ assetPrefix: 'http://localhost:3001/mf', }, plugins: [ - pluginModuleFederation({ - name: 'rslib_provider', - exposes: { - // add expose here - }, - // can not add 'remote' here, because you may build 'esm' or 'cjs' assets in one build. - // if you want the Rslib package use remote module, please see below. - shared: { - react: { - singleton: true, + pluginModuleFederation( + { + name: 'rslib_provider', + exposes: { + // add expose here }, - 'react-dom': { - singleton: true, + // can not add 'remote' here, because you may build 'esm' or 'cjs' assets in one build. + // if you want the Rslib package use remote module, please see below. + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, }, }, - }), + {}, + ), ], }, ], @@ -127,23 +130,26 @@ export default defineConfig({ plugins: [ pluginReact(), // [!code highlight:17] - pluginModuleFederation({ - name: 'rsbuild_host', - remotes: { - rslib: 'rslib@http://localhost:3001/mf/mf-manifest.json', - }, - shared: { - react: { - singleton: true, + pluginModuleFederation( + { + name: 'rsbuild_host', + remotes: { + rslib: 'rslib@http://localhost:3001/mf/mf-manifest.json', }, - 'react-dom': { - singleton: true, + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, }, + // Enable this when the output of Rslib is build under 'production' mode, while the host app is 'development'. + // Reference: https://rslib.rs/guide/advanced/module-federation#faqs + shareStrategy: 'loaded-first', }, - // Enable this when the output of Rslib is build under 'production' mode, while the host app is 'development'. - // Reference: https://rslib.rs/guide/advanced/module-federation#faqs - shareStrategy: 'loaded-first', - }), + {}, + ), ], }); ``` @@ -322,7 +328,7 @@ You can set up [shareStrategy](https://module-federation.io/configure/sharestrat pluginModuleFederation({ // ... shareStrategy: 'loaded-first', -}), +}, {}), ``` ### How to make module federated outputs generate export of ES modules diff --git a/website/docs/zh/guide/advanced/module-federation.mdx b/website/docs/zh/guide/advanced/module-federation.mdx index 2e1a23daa..467daee46 100644 --- a/website/docs/zh/guide/advanced/module-federation.mdx +++ b/website/docs/zh/guide/advanced/module-federation.mdx @@ -53,22 +53,25 @@ export default defineConfig({ assetPrefix: 'http://localhost:3001/mf', }, plugins: [ - pluginModuleFederation({ - name: 'rslib_provider', - exposes: { - // 这里添加 expose - }, - // 此处无法添加 "remote",因为你可能会在一次构建中构建 "esm" 或 "cjs" 产物。 - // 如果你希望 Rslib 包使用远程模块,请参考下面。 - shared: { - react: { - singleton: true, + pluginModuleFederation( + { + name: 'rslib_provider', + exposes: { + // 这里添加 expose }, - 'react-dom': { - singleton: true, + // 此处无法添加 "remote",因为你可能会在一次构建中构建 "esm" 或 "cjs" 产物。 + // 如果你希望 Rslib 包使用远程模块,请参考下面。 + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, }, }, - }), + {}, + ), ], }, ], @@ -126,23 +129,26 @@ export default defineConfig({ plugins: [ pluginReact(), // [!code highlight:17] - pluginModuleFederation({ - name: 'rsbuild_host', - remotes: { - rslib: 'rslib@http://localhost:3001/mf/mf-manifest.json', - }, - shared: { - react: { - singleton: true, + pluginModuleFederation( + { + name: 'rsbuild_host', + remotes: { + rslib: 'rslib@http://localhost:3001/mf/mf-manifest.json', }, - 'react-dom': { - singleton: true, + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, }, + // 开启这个当 Rslib 产物为 'production' 模式, 但是宿主应用是 'development' 模式。 + // 参考链接: https://rslib.rs/guide/advanced/module-federation#faqs + shareStrategy: 'loaded-first', }, - // 开启这个当 Rslib 产物为 'production' 模式, 但是宿主应用是 'development' 模式。 - // 参考链接: https://rslib.rs/guide/advanced/module-federation#faqs - shareStrategy: 'loaded-first', - }), + {}, + ), ], }); ``` @@ -321,7 +327,7 @@ export const Counter: React.FC = () => { pluginModuleFederation({ // ... shareStrategy: 'loaded-first', -}), +}, {}), ``` ### 如何让模块联邦产物生成 ES modules 的导出