diff --git a/.vscode/settings.example.json b/.vscode/settings.example.json
index 9e24a249c8e..433ee7eb11a 100644
--- a/.vscode/settings.example.json
+++ b/.vscode/settings.example.json
@@ -4,7 +4,6 @@
"tailwindCSS.experimental.configFile": "web/app/styles/globals.css",
- // Format
"[javascript]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
"[javascriptreact]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
"[typescript]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
@@ -25,9 +24,9 @@
"[handlebars]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
- "oxc.fmt.configPath": "./vite.config.ts",
+ "oxc.disableNestedConfig": true,
+ "oxc.fmt.disableNestedConfig": true,
- // Lint fix
"eslint.useFlatConfig": true,
"eslint.validate": ["json", "jsonc", "markdown", "yaml", "toml"],
"editor.codeActionsOnSave": {
diff --git a/cli/scripts/generate-command-tree.test.ts b/cli/scripts/generate-command-tree.test.ts
index bf672b46aca..217fab98bc1 100644
--- a/cli/scripts/generate-command-tree.test.ts
+++ b/cli/scripts/generate-command-tree.test.ts
@@ -2,7 +2,7 @@ import type { CommandEntry } from './generate-command-tree.js'
import { existsSync, mkdirSync, mkdtempSync, readFileSync, writeFileSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
buildTree,
discoverCommands,
diff --git a/cli/scripts/install-cli.test.ts b/cli/scripts/install-cli.test.ts
index 3ab80203df1..c07e2b431d2 100644
--- a/cli/scripts/install-cli.test.ts
+++ b/cli/scripts/install-cli.test.ts
@@ -3,7 +3,7 @@ import { chmodSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'nod
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
const SCRIPT = fileURLToPath(new URL('./install-cli.sh', import.meta.url))
diff --git a/cli/scripts/install-r2.ps1.test.ts b/cli/scripts/install-r2.ps1.test.ts
index 2de1b31eddb..b7b983a26e0 100644
--- a/cli/scripts/install-r2.ps1.test.ts
+++ b/cli/scripts/install-r2.ps1.test.ts
@@ -1,6 +1,6 @@
import { spawnSync } from 'node:child_process'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
const SCRIPT = fileURLToPath(new URL('./install-r2.ps1', import.meta.url))
const hasPwsh = spawnSync('pwsh', ['-v'], { encoding: 'utf8' }).status === 0
diff --git a/cli/scripts/install-r2.test.ts b/cli/scripts/install-r2.test.ts
index 81ac63c91ce..a43f046b86a 100644
--- a/cli/scripts/install-r2.test.ts
+++ b/cli/scripts/install-r2.test.ts
@@ -1,6 +1,6 @@
import { spawnSync } from 'node:child_process'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
const SCRIPT = fileURLToPath(new URL('./install-r2.sh', import.meta.url))
diff --git a/cli/scripts/install.ps1.test.ts b/cli/scripts/install.ps1.test.ts
index 0a5ea8e5bb6..a75f4defbea 100644
--- a/cli/scripts/install.ps1.test.ts
+++ b/cli/scripts/install.ps1.test.ts
@@ -1,6 +1,6 @@
import { spawnSync } from 'node:child_process'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
const SCRIPT = fileURLToPath(new URL('./install.ps1', import.meta.url))
diff --git a/cli/scripts/release-naming.test.ts b/cli/scripts/release-naming.test.ts
index e6f36391801..3494f54f1ef 100644
--- a/cli/scripts/release-naming.test.ts
+++ b/cli/scripts/release-naming.test.ts
@@ -1,6 +1,6 @@
import { execFileSync } from 'node:child_process'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { FIXTURE_COMPAT, pkgManifestEnv } from '../test/fixtures/pkg-manifest'
const SCRIPT = fileURLToPath(new URL('./release-naming.mjs', import.meta.url))
diff --git a/cli/scripts/release-r2-edge.test.ts b/cli/scripts/release-r2-edge.test.ts
index 3054a8793b6..0ddd6f36dd9 100644
--- a/cli/scripts/release-r2-edge.test.ts
+++ b/cli/scripts/release-r2-edge.test.ts
@@ -3,7 +3,7 @@ import { mkdtempSync, writeFileSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { FIXTURE_COMPAT, pkgManifestEnv } from '../test/fixtures/pkg-manifest'
const SCRIPT = fileURLToPath(new URL('./release-r2-edge.mjs', import.meta.url))
diff --git a/cli/scripts/release-r2-publish.test.ts b/cli/scripts/release-r2-publish.test.ts
index 9559e45c03e..a20b851511d 100644
--- a/cli/scripts/release-r2-publish.test.ts
+++ b/cli/scripts/release-r2-publish.test.ts
@@ -1,6 +1,6 @@
import { spawnSync } from 'node:child_process'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
const SCRIPT = fileURLToPath(new URL('./release-r2-publish.sh', import.meta.url))
diff --git a/cli/src/api/account-sessions.test.ts b/cli/src/api/account-sessions.test.ts
index 3d9938caf6b..b58ef4b82ea 100644
--- a/cli/src/api/account-sessions.test.ts
+++ b/cli/src/api/account-sessions.test.ts
@@ -1,7 +1,7 @@
import type { StubServer } from '@test/fixtures/stub-server'
import { testHttpClient } from '@test/fixtures/http-client'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { AccountSessionsClient } from './account-sessions.js'
diff --git a/cli/src/api/account.test.ts b/cli/src/api/account.test.ts
index 54209317852..f629bdcf5f8 100644
--- a/cli/src/api/account.test.ts
+++ b/cli/src/api/account.test.ts
@@ -1,7 +1,7 @@
import type { StubServer } from '@test/fixtures/stub-server'
import { testHttpClient } from '@test/fixtures/http-client'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { AccountClient } from './account.js'
diff --git a/cli/src/api/app-dsl.test.ts b/cli/src/api/app-dsl.test.ts
index 624b4988857..6f30af6ce5b 100644
--- a/cli/src/api/app-dsl.test.ts
+++ b/cli/src/api/app-dsl.test.ts
@@ -1,7 +1,7 @@
import type { StubServer } from '@test/fixtures/stub-server'
import { testHttpClient } from '@test/fixtures/http-client'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { AppDslClient } from './app-dsl.js'
diff --git a/cli/src/api/app-meta.test.ts b/cli/src/api/app-meta.test.ts
index 073ec169259..57e65d7776a 100644
--- a/cli/src/api/app-meta.test.ts
+++ b/cli/src/api/app-meta.test.ts
@@ -5,7 +5,7 @@ import { join } from 'node:path'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
import { dump, load } from 'js-yaml'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { loadAppInfoCache } from '@/cache/app-info'
import { ENV_CACHE_DIR } from '@/store/dir'
import { CACHE_APP_INFO, cachePath, getCache } from '@/store/manager'
diff --git a/cli/src/api/app-reader.test.ts b/cli/src/api/app-reader.test.ts
index ff584c85c49..1a5568860b6 100644
--- a/cli/src/api/app-reader.test.ts
+++ b/cli/src/api/app-reader.test.ts
@@ -1,6 +1,6 @@
import type { ActiveContext } from '@/auth/hosts'
import type { HttpClient } from '@/http/types'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { selectAppReader, SubjectKind, subjectOf } from './app-reader'
import { AppsClient } from './apps'
import { PermittedExternalAppsClient } from './permitted-external-apps'
diff --git a/cli/src/api/app-run.test.ts b/cli/src/api/app-run.test.ts
index 53b7d149cd4..9c6c9d7064d 100644
--- a/cli/src/api/app-run.test.ts
+++ b/cli/src/api/app-run.test.ts
@@ -1,7 +1,7 @@
import type { DifyMock } from '@test/fixtures/dify-mock/server'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { AppRunClient, buildRunBody } from './app-run.js'
describe('buildRunBody', () => {
diff --git a/cli/src/api/apps.test.ts b/cli/src/api/apps.test.ts
index b5ac0fb8e11..8d5facca3d5 100644
--- a/cli/src/api/apps.test.ts
+++ b/cli/src/api/apps.test.ts
@@ -1,7 +1,7 @@
import type { StubServer } from '@test/fixtures/stub-server'
import { testHttpClient } from '@test/fixtures/http-client'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { AppsClient } from './apps.js'
diff --git a/cli/src/api/device-flow.test.ts b/cli/src/api/device-flow.test.ts
index 0ecf8f3505c..f7bc6042edf 100644
--- a/cli/src/api/device-flow.test.ts
+++ b/cli/src/api/device-flow.test.ts
@@ -5,7 +5,7 @@ import { Buffer } from 'node:buffer'
import * as http from 'node:http'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { isBaseError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import { DEFAULT_CLIENT_ID, DeviceFlowApi } from './oauth-device.js'
diff --git a/cli/src/api/file-upload.test.ts b/cli/src/api/file-upload.test.ts
index 0a24b7fb163..d27d6701782 100644
--- a/cli/src/api/file-upload.test.ts
+++ b/cli/src/api/file-upload.test.ts
@@ -4,7 +4,7 @@ import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { testHttpClient } from '@test/fixtures/http-client'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { FileUploadClient } from './file-upload.js'
diff --git a/cli/src/api/members.test.ts b/cli/src/api/members.test.ts
index 99c7316f322..deeb9636821 100644
--- a/cli/src/api/members.test.ts
+++ b/cli/src/api/members.test.ts
@@ -1,7 +1,7 @@
import type { StubServer } from '@test/fixtures/stub-server'
import { testHttpClient } from '@test/fixtures/http-client'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { MembersClient } from './members.js'
import { WorkspacesClient } from './workspaces.js'
diff --git a/cli/src/api/meta.test.ts b/cli/src/api/meta.test.ts
index a73ca6ecf2c..fc4ab25c7a3 100644
--- a/cli/src/api/meta.test.ts
+++ b/cli/src/api/meta.test.ts
@@ -1,7 +1,7 @@
import type { DifyMock } from '@test/fixtures/dify-mock/server'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { MetaClient } from './meta.js'
describe('MetaClient', () => {
diff --git a/cli/src/api/permitted-external-apps.test.ts b/cli/src/api/permitted-external-apps.test.ts
index c6cc06b4559..16ad260d40e 100644
--- a/cli/src/api/permitted-external-apps.test.ts
+++ b/cli/src/api/permitted-external-apps.test.ts
@@ -1,5 +1,5 @@
import type { HttpClient } from '@/http/types'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { PermittedExternalAppsClient } from './permitted-external-apps'
function fakeHttp() {
diff --git a/cli/src/api/workspaces.test.ts b/cli/src/api/workspaces.test.ts
index 16f7453c378..4ad4b3d64d5 100644
--- a/cli/src/api/workspaces.test.ts
+++ b/cli/src/api/workspaces.test.ts
@@ -1,7 +1,7 @@
import type { StubServer } from '@test/fixtures/stub-server'
import { testHttpClient } from '@test/fixtures/http-client'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { WorkspacesClient } from './workspaces.js'
diff --git a/cli/src/auth/hosts.test.ts b/cli/src/auth/hosts.test.ts
index 11f63a3814a..a46c5740d31 100644
--- a/cli/src/auth/hosts.test.ts
+++ b/cli/src/auth/hosts.test.ts
@@ -1,7 +1,7 @@
import type { AccountContext } from './hosts'
import { useTempConfigDir } from '@test/fixtures/config-dir'
import { MemStore } from '@test/fixtures/mem-store'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { AccountContextSchema, notLoggedInError, Registry, RegistrySchema } from './hosts'
describe('RegistrySchema', () => {
diff --git a/cli/src/cache/app-info.test.ts b/cli/src/cache/app-info.test.ts
index 3b74044587f..589df109fdc 100644
--- a/cli/src/cache/app-info.test.ts
+++ b/cli/src/cache/app-info.test.ts
@@ -3,7 +3,7 @@ import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { dump, load } from 'js-yaml'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { ENV_CACHE_DIR } from '@/store/dir'
import { CACHE_APP_INFO, cachePath, getCache } from '@/store/manager'
import { platform } from '@/sys/index'
diff --git a/cli/src/cache/compat-store.test.ts b/cli/src/cache/compat-store.test.ts
index d6dfd3a9118..ef163fe90f4 100644
--- a/cli/src/cache/compat-store.test.ts
+++ b/cli/src/cache/compat-store.test.ts
@@ -1,7 +1,7 @@
import { mkdtemp, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { ENV_CACHE_DIR } from '@/store/dir'
import { CACHE_COMPAT, getCache } from '@/store/manager'
import { loadCompatStore } from './compat-store'
diff --git a/cli/src/cache/nudge-store.test.ts b/cli/src/cache/nudge-store.test.ts
index 8e038852c03..893a4cbab0a 100644
--- a/cli/src/cache/nudge-store.test.ts
+++ b/cli/src/cache/nudge-store.test.ts
@@ -2,7 +2,7 @@ import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { dirname, join } from 'node:path'
import { load } from 'js-yaml'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { ENV_CACHE_DIR } from '@/store/dir'
import { CACHE_NUDGE, cachePath, getCache } from '@/store/manager'
import { loadNudgeStore, WARN_INTERVAL_MS } from './nudge-store'
diff --git a/cli/src/commands/_shared/global-flags.test.ts b/cli/src/commands/_shared/global-flags.test.ts
index 22e2dec77e3..8e8c68f8346 100644
--- a/cli/src/commands/_shared/global-flags.test.ts
+++ b/cli/src/commands/_shared/global-flags.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { resolveRetryAttempts } from './global-flags'
describe('resolveRetryAttempts', () => {
diff --git a/cli/src/commands/agent-guides.test.ts b/cli/src/commands/agent-guides.test.ts
index 3ad18f540f1..db918765ca7 100644
--- a/cli/src/commands/agent-guides.test.ts
+++ b/cli/src/commands/agent-guides.test.ts
@@ -1,5 +1,5 @@
import type { CommandConstructor } from '@/framework/command'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import Login from '@/commands/auth/login/index'
import DescribeApp from '@/commands/describe/app/index'
import ExportStudioApp from '@/commands/export/studio-app/index'
diff --git a/cli/src/commands/auth/devices/_shared/devices.test.ts b/cli/src/commands/auth/devices/_shared/devices.test.ts
index 648d29b985c..9d68c4e9c64 100644
--- a/cli/src/commands/auth/devices/_shared/devices.test.ts
+++ b/cli/src/commands/auth/devices/_shared/devices.test.ts
@@ -6,7 +6,7 @@ import { useTempConfigDir } from '@test/fixtures/config-dir'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
import { MemStore } from '@test/fixtures/mem-store'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { bufferStreams } from '@/sys/io/streams'
import { listAllSessions, runDevicesList, runDevicesRevoke } from './devices.js'
diff --git a/cli/src/commands/auth/list/list.test.ts b/cli/src/commands/auth/list/list.test.ts
index 5139009b29f..0a9477800c0 100644
--- a/cli/src/commands/auth/list/list.test.ts
+++ b/cli/src/commands/auth/list/list.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { stringifyOutput, table } from '@/framework/output'
import { runAuthList } from './list'
diff --git a/cli/src/commands/auth/login/device-flow.test.ts b/cli/src/commands/auth/login/device-flow.test.ts
index 249c1f38875..616e4f9695e 100644
--- a/cli/src/commands/auth/login/device-flow.test.ts
+++ b/cli/src/commands/auth/login/device-flow.test.ts
@@ -1,6 +1,6 @@
import type { Clock } from './device-flow'
import type { CodeResponse, PollRequest, PollResult, PollSuccess } from '@/api/oauth-device'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { BaseError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import {
diff --git a/cli/src/commands/auth/login/login.test.ts b/cli/src/commands/auth/login/login.test.ts
index 1b42536a412..bc224cc4082 100644
--- a/cli/src/commands/auth/login/login.test.ts
+++ b/cli/src/commands/auth/login/login.test.ts
@@ -6,7 +6,7 @@ import { useTempConfigDir } from '@test/fixtures/config-dir'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
import { MemStore } from '@test/fixtures/mem-store'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { DeviceFlowApi } from '@/api/oauth-device'
import { createHttpClient } from '@/http/client'
import { bufferStreams } from '@/sys/io/streams'
diff --git a/cli/src/commands/auth/logout/logout.test.ts b/cli/src/commands/auth/logout/logout.test.ts
index 33fd0904ccc..fd17b77259f 100644
--- a/cli/src/commands/auth/logout/logout.test.ts
+++ b/cli/src/commands/auth/logout/logout.test.ts
@@ -2,7 +2,7 @@ import { readFile } from 'node:fs/promises'
import { join } from 'node:path'
import { useTempConfigDir } from '@test/fixtures/config-dir'
import { MemStore } from '@test/fixtures/mem-store'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { bufferStreams } from '@/sys/io/streams'
import { runLogout } from './logout.js'
diff --git a/cli/src/commands/auth/whoami/whoami.test.ts b/cli/src/commands/auth/whoami/whoami.test.ts
index d662b5999fb..0de85e6e483 100644
--- a/cli/src/commands/auth/whoami/whoami.test.ts
+++ b/cli/src/commands/auth/whoami/whoami.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { bufferStreams } from '@/sys/io/streams'
import { runWhoami } from './whoami'
diff --git a/cli/src/commands/config/get/run.test.ts b/cli/src/commands/config/get/run.test.ts
index 00e1d616071..37a7300140b 100644
--- a/cli/src/commands/config/get/run.test.ts
+++ b/cli/src/commands/config/get/run.test.ts
@@ -1,5 +1,5 @@
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { isBaseError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import { getConfigurationStore } from '@/store/manager'
diff --git a/cli/src/commands/config/set/run.test.ts b/cli/src/commands/config/set/run.test.ts
index 7d7994a2c27..8c7f65266ba 100644
--- a/cli/src/commands/config/set/run.test.ts
+++ b/cli/src/commands/config/set/run.test.ts
@@ -1,5 +1,5 @@
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { loadConfig } from '@/config/config-loader'
import { isBaseError } from '@/errors/base'
import { ErrorCode, ExitCode } from '@/errors/codes'
diff --git a/cli/src/commands/config/unset/run.test.ts b/cli/src/commands/config/unset/run.test.ts
index 21ee48a3cdd..77ff1ef24d1 100644
--- a/cli/src/commands/config/unset/run.test.ts
+++ b/cli/src/commands/config/unset/run.test.ts
@@ -1,5 +1,5 @@
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { loadConfig } from '@/config/config-loader'
import { isBaseError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
diff --git a/cli/src/commands/config/view/run.test.ts b/cli/src/commands/config/view/run.test.ts
index cb3ac6c8c1b..7019106b7f6 100644
--- a/cli/src/commands/config/view/run.test.ts
+++ b/cli/src/commands/config/view/run.test.ts
@@ -1,5 +1,5 @@
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { getConfigurationStore } from '@/store/manager'
import { runConfigView } from './run'
diff --git a/cli/src/commands/coverage.test.ts b/cli/src/commands/coverage.test.ts
index e959b30b427..e18656061e9 100644
--- a/cli/src/commands/coverage.test.ts
+++ b/cli/src/commands/coverage.test.ts
@@ -1,5 +1,5 @@
///
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { isExcludedCommandPath } from '@/framework/command-fs'
const INDEX_MODULES = import.meta.glob<{ default?: unknown }>('./**/index.ts', { eager: true })
diff --git a/cli/src/commands/create/member/run.test.ts b/cli/src/commands/create/member/run.test.ts
index 16f007133b1..f1fb60adc0b 100644
--- a/cli/src/commands/create/member/run.test.ts
+++ b/cli/src/commands/create/member/run.test.ts
@@ -1,6 +1,6 @@
import type { ActiveContext } from '@/auth/hosts'
import type { HttpClient } from '@/http/types'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { bufferStreams } from '@/sys/io/streams'
import { runCreateMember } from './run.js'
diff --git a/cli/src/commands/delete/member/run.test.ts b/cli/src/commands/delete/member/run.test.ts
index ee460d53d52..95fdb35871a 100644
--- a/cli/src/commands/delete/member/run.test.ts
+++ b/cli/src/commands/delete/member/run.test.ts
@@ -1,6 +1,6 @@
import type { ActiveContext } from '@/auth/hosts'
import type { HttpClient } from '@/http/types'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { bufferStreams } from '@/sys/io/streams'
import { runDeleteMember } from './run.js'
diff --git a/cli/src/commands/describe/app/run.test.ts b/cli/src/commands/describe/app/run.test.ts
index 1ff067d8722..24ed79238a3 100644
--- a/cli/src/commands/describe/app/run.test.ts
+++ b/cli/src/commands/describe/app/run.test.ts
@@ -5,7 +5,7 @@ import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { loadAppInfoCache } from '@/cache/app-info'
import { formatted, stringifyOutput } from '@/framework/output'
import { ENV_CACHE_DIR } from '@/store/dir'
diff --git a/cli/src/commands/env/list/run-list.test.ts b/cli/src/commands/env/list/run-list.test.ts
index 9cd70653f92..407764ebe9d 100644
--- a/cli/src/commands/env/list/run-list.test.ts
+++ b/cli/src/commands/env/list/run-list.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { runEnvList } from './run-list'
const stub =
diff --git a/cli/src/commands/export/studio-app/run.test.ts b/cli/src/commands/export/studio-app/run.test.ts
index d3c1a9a83d9..ddf6a3c9553 100644
--- a/cli/src/commands/export/studio-app/run.test.ts
+++ b/cli/src/commands/export/studio-app/run.test.ts
@@ -5,7 +5,7 @@ import { join } from 'node:path'
import { DSL_YAML } from '@test/fixtures/dify-mock/scenarios'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { bufferStreams } from '@/sys/io/streams'
import { runExportApp } from './run.js'
diff --git a/cli/src/commands/get/app/mode-whitelist.test.ts b/cli/src/commands/get/app/mode-whitelist.test.ts
index d058a811917..944820967a0 100644
--- a/cli/src/commands/get/app/mode-whitelist.test.ts
+++ b/cli/src/commands/get/app/mode-whitelist.test.ts
@@ -1,5 +1,5 @@
import { zSupportedAppType } from '@dify/contracts/api/openapi/zod.gen'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
// The `get app --mode` whitelist is derived from this generated enum (see index.ts).
// These pins guard the original bug: the CLI must not advertise modes the backend
diff --git a/cli/src/commands/get/app/run.test.ts b/cli/src/commands/get/app/run.test.ts
index 469f8eb0c73..42e0b0a5925 100644
--- a/cli/src/commands/get/app/run.test.ts
+++ b/cli/src/commands/get/app/run.test.ts
@@ -3,7 +3,7 @@ import type { ActiveContext } from '@/auth/hosts'
import type { HttpClient } from '@/http/types'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { stringifyOutput, table } from '@/framework/output'
import { AppListOutput } from './handlers.js'
import { runGetApp } from './run.js'
diff --git a/cli/src/commands/get/member/run.test.ts b/cli/src/commands/get/member/run.test.ts
index c0744bc2ed9..f3670b69c7b 100644
--- a/cli/src/commands/get/member/run.test.ts
+++ b/cli/src/commands/get/member/run.test.ts
@@ -1,7 +1,7 @@
import type { MemberListResponse } from '@dify/contracts/api/openapi/types.gen'
import type { ActiveContext } from '@/auth/hosts'
import type { HttpClient } from '@/http/types'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { bufferStreams } from '@/sys/io/streams'
import { runGetMember } from './run.js'
diff --git a/cli/src/commands/get/workspace/handlers.test.ts b/cli/src/commands/get/workspace/handlers.test.ts
index 2e744c8ce9d..ccc7904d624 100644
--- a/cli/src/commands/get/workspace/handlers.test.ts
+++ b/cli/src/commands/get/workspace/handlers.test.ts
@@ -1,5 +1,5 @@
import type { WorkspaceListResponse } from '@dify/contracts/api/openapi/types.gen'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { WorkspaceListOutput, WorkspaceRow } from './handlers'
function env(): WorkspaceListResponse {
diff --git a/cli/src/commands/get/workspace/run.test.ts b/cli/src/commands/get/workspace/run.test.ts
index a2902d6f2db..b9eae4be270 100644
--- a/cli/src/commands/get/workspace/run.test.ts
+++ b/cli/src/commands/get/workspace/run.test.ts
@@ -2,7 +2,7 @@ import type { DifyMock } from '@test/fixtures/dify-mock/server'
import type { ActiveContext } from '@/auth/hosts'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { stringifyOutput, table } from '@/framework/output'
import { WorkspaceListOutput } from './handlers.js'
import { EMPTY_WORKSPACES_MESSAGE, runGetWorkspace } from './run.js'
diff --git a/cli/src/commands/import/studio-app/run.test.ts b/cli/src/commands/import/studio-app/run.test.ts
index 85c2f750060..bf29959401c 100644
--- a/cli/src/commands/import/studio-app/run.test.ts
+++ b/cli/src/commands/import/studio-app/run.test.ts
@@ -7,7 +7,7 @@ import { join } from 'node:path'
import { DSL_YAML } from '@test/fixtures/dify-mock/scenarios'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { AppDslClient } from '@/api/app-dsl'
import { bufferStreams } from '@/sys/io/streams'
import { ZERO } from '@/util/uuid.js'
diff --git a/cli/src/commands/resume/app/run.test.ts b/cli/src/commands/resume/app/run.test.ts
index 5c044636fb9..5907ce9025f 100644
--- a/cli/src/commands/resume/app/run.test.ts
+++ b/cli/src/commands/resume/app/run.test.ts
@@ -1,5 +1,5 @@
import type { ActiveContext } from '@/auth/hosts'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import { AppRunClient } from '@/api/app-run'
import { AppsClient } from '@/api/apps'
import { PermittedExternalAppsClient } from '@/api/permitted-external-apps'
diff --git a/cli/src/commands/run/app/agent-guide.test.ts b/cli/src/commands/run/app/agent-guide.test.ts
index 82ee99c6716..5d4534adf76 100644
--- a/cli/src/commands/run/app/agent-guide.test.ts
+++ b/cli/src/commands/run/app/agent-guide.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import RunApp from './index'
describe('run app agentGuide', () => {
diff --git a/cli/src/commands/run/app/file-flags.test.ts b/cli/src/commands/run/app/file-flags.test.ts
index 6d7df99f5e1..7515e82002b 100644
--- a/cli/src/commands/run/app/file-flags.test.ts
+++ b/cli/src/commands/run/app/file-flags.test.ts
@@ -1,5 +1,5 @@
import type { ParsedFileFlag } from './file-flags'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { difyFileType, parseFileFlag, resolveFileInputs } from './file-flags'
describe('parseFileFlag', () => {
diff --git a/cli/src/commands/run/app/hitl-render.test.ts b/cli/src/commands/run/app/hitl-render.test.ts
index bfd6c3fc62b..b8ef44287bd 100644
--- a/cli/src/commands/run/app/hitl-render.test.ts
+++ b/cli/src/commands/run/app/hitl-render.test.ts
@@ -1,5 +1,5 @@
import type { HitlPauseData, HitlPausePayload } from './sse-collector'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { buildHitlExitObject, renderHitlHint } from './hitl-render'
function payload(overrides: Partial = {}): HitlPausePayload {
diff --git a/cli/src/commands/run/app/run.test.ts b/cli/src/commands/run/app/run.test.ts
index 749a87f7e6c..2ca7ffe06f3 100644
--- a/cli/src/commands/run/app/run.test.ts
+++ b/cli/src/commands/run/app/run.test.ts
@@ -6,7 +6,7 @@ import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { startMock } from '@test/fixtures/dify-mock/server'
import { testHttpClient } from '@test/fixtures/http-client'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { loadAppInfoCache } from '@/cache/app-info'
import { resumeApp } from '@/commands/resume/app/run'
import { ENV_CACHE_DIR } from '@/store/dir'
diff --git a/cli/src/commands/run/app/sse-collector.test.ts b/cli/src/commands/run/app/sse-collector.test.ts
index ded085ce7d2..514b0e71072 100644
--- a/cli/src/commands/run/app/sse-collector.test.ts
+++ b/cli/src/commands/run/app/sse-collector.test.ts
@@ -1,6 +1,6 @@
import type { HttpClientError } from '@/errors/base'
import type { SseEvent } from '@/http/sse'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { collect, collectorFor, decodeStreamError, HitlPauseError } from './sse-collector'
const enc = new TextEncoder()
diff --git a/cli/src/commands/run/app/stream-handlers.test.ts b/cli/src/commands/run/app/stream-handlers.test.ts
index b1cf35ec324..dab0d9c419b 100644
--- a/cli/src/commands/run/app/stream-handlers.test.ts
+++ b/cli/src/commands/run/app/stream-handlers.test.ts
@@ -1,7 +1,7 @@
import type { SseEvent } from '@/http/sse'
import { Buffer } from 'node:buffer'
import { PassThrough, Writable } from 'node:stream'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { HitlPauseError } from './sse-collector'
import { streamPrinterFor } from './stream-handlers'
diff --git a/cli/src/commands/set/member/run.test.ts b/cli/src/commands/set/member/run.test.ts
index 8fceab755e4..e2c0e2c0ebb 100644
--- a/cli/src/commands/set/member/run.test.ts
+++ b/cli/src/commands/set/member/run.test.ts
@@ -1,6 +1,6 @@
import type { ActiveContext } from '@/auth/hosts'
import type { HttpClient } from '@/http/types'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { bufferStreams } from '@/sys/io/streams'
import { runSetMember } from './run.js'
diff --git a/cli/src/commands/skills/install/index.test.ts b/cli/src/commands/skills/install/index.test.ts
index 7d6945e67cb..bc6fb3a40b1 100644
--- a/cli/src/commands/skills/install/index.test.ts
+++ b/cli/src/commands/skills/install/index.test.ts
@@ -1,5 +1,5 @@
import type { CommandTree } from '@/framework/registry'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { ExitCode } from '@/errors/codes'
import { run } from '@/framework/run'
import { renderSkill } from '@/help/skill'
diff --git a/cli/src/commands/skills/install/registry.test.ts b/cli/src/commands/skills/install/registry.test.ts
index 6860ef9d164..ab10202fc0a 100644
--- a/cli/src/commands/skills/install/registry.test.ts
+++ b/cli/src/commands/skills/install/registry.test.ts
@@ -1,7 +1,7 @@
import { mkdir, mkdtemp, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { AGENTS, detectAgents } from './registry'
describe('detectAgents', () => {
diff --git a/cli/src/commands/skills/install/run.test.ts b/cli/src/commands/skills/install/run.test.ts
index aaa98179f9c..bfa45dcb9ec 100644
--- a/cli/src/commands/skills/install/run.test.ts
+++ b/cli/src/commands/skills/install/run.test.ts
@@ -3,7 +3,7 @@ import { existsSync } from 'node:fs'
import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { renderSkill } from '@/help/skill'
import { runSkillsInstall } from './run'
diff --git a/cli/src/commands/use/account/use-account.test.ts b/cli/src/commands/use/account/use-account.test.ts
index 0fa5a13346f..9f9cbe8b41e 100644
--- a/cli/src/commands/use/account/use-account.test.ts
+++ b/cli/src/commands/use/account/use-account.test.ts
@@ -1,6 +1,6 @@
import { useTempConfigDir } from '@test/fixtures/config-dir'
import { MemStore } from '@test/fixtures/mem-store'
-import { beforeEach, describe, expect, it } from 'vitest'
+import { beforeEach, describe, expect, it } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { bufferStreams } from '@/sys/io/streams'
import { runUseAccount } from './use-account'
diff --git a/cli/src/commands/use/host/use-host.test.ts b/cli/src/commands/use/host/use-host.test.ts
index 9ca2a698301..a23aa9b8efd 100644
--- a/cli/src/commands/use/host/use-host.test.ts
+++ b/cli/src/commands/use/host/use-host.test.ts
@@ -1,5 +1,5 @@
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { beforeEach, describe, expect, it } from 'vitest'
+import { beforeEach, describe, expect, it } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { bufferStreams } from '@/sys/io/streams'
import { runUseHost } from './use-host'
diff --git a/cli/src/commands/use/workspace/use.test.ts b/cli/src/commands/use/workspace/use.test.ts
index 386b2d50f5b..938a74520b8 100644
--- a/cli/src/commands/use/workspace/use.test.ts
+++ b/cli/src/commands/use/workspace/use.test.ts
@@ -5,7 +5,7 @@ import type {
import type { ActiveContext } from '@/auth/hosts'
import type { HttpClient } from '@/http/types'
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { selectFromList } from '@/sys/io/select'
import { bufferStreams } from '@/sys/io/streams'
diff --git a/cli/src/commands/version/version.test.ts b/cli/src/commands/version/version.test.ts
index 8d4a6075216..f491b726397 100644
--- a/cli/src/commands/version/version.test.ts
+++ b/cli/src/commands/version/version.test.ts
@@ -1,4 +1,4 @@
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import * as info from '@/version/info'
import * as probe from '@/version/probe'
import Version, { COMPAT_FAIL_EXIT_CODE } from './index'
diff --git a/cli/src/config/config-loader.test.ts b/cli/src/config/config-loader.test.ts
index d7e7c95e719..732865088c8 100644
--- a/cli/src/config/config-loader.test.ts
+++ b/cli/src/config/config-loader.test.ts
@@ -1,6 +1,6 @@
import type { YamlStore } from '@/store/store'
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { isBaseError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import { getConfigurationStore } from '@/store/manager'
diff --git a/cli/src/config/keys.test.ts b/cli/src/config/keys.test.ts
index 88ded5ac611..14cb4d92d82 100644
--- a/cli/src/config/keys.test.ts
+++ b/cli/src/config/keys.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { isBaseError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import { getKey, knownKeyNames, knownKeys, lookupKey, setKey, unsetKey } from './keys'
diff --git a/cli/src/config/schema.test.ts b/cli/src/config/schema.test.ts
index 6f60efef0a8..a97e0c135f7 100644
--- a/cli/src/config/schema.test.ts
+++ b/cli/src/config/schema.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { CONFIG_FILE_NAME } from '@/store/manager'
import { ALLOWED_FORMATS, ConfigFileSchema, CURRENT_SCHEMA_VERSION, emptyConfig } from './schema'
diff --git a/cli/src/env/registry.test.ts b/cli/src/env/registry.test.ts
index c919f0bce68..a584f69a0a2 100644
--- a/cli/src/env/registry.test.ts
+++ b/cli/src/env/registry.test.ts
@@ -1,4 +1,4 @@
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { ENV_REGISTRY, getEnv, lookupEnv, resolveEnv } from './registry'
describe('env registry', () => {
diff --git a/cli/src/errors/base.test.ts b/cli/src/errors/base.test.ts
index da917275d65..c2b37c99f21 100644
--- a/cli/src/errors/base.test.ts
+++ b/cli/src/errors/base.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { BaseError, HttpClientError, isBaseError, newError, unknownError } from './base'
import { ErrorCode, ExitCode } from './codes'
diff --git a/cli/src/errors/codes.test.ts b/cli/src/errors/codes.test.ts
index 39f0fef5c5f..6634613dbb9 100644
--- a/cli/src/errors/codes.test.ts
+++ b/cli/src/errors/codes.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { ALL_ERROR_CODES, CODE_TO_EXIT_MAP, ErrorCode, ExitCode, exitFor } from './codes'
describe('error codes', () => {
diff --git a/cli/src/errors/format.test.ts b/cli/src/errors/format.test.ts
index 1a834022260..8b14ececa6e 100644
--- a/cli/src/errors/format.test.ts
+++ b/cli/src/errors/format.test.ts
@@ -1,5 +1,5 @@
import type { ErrorBody } from '@dify/contracts/api/openapi/types.gen'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { setVerbose } from '@/framework/context'
import { HttpClientError } from './base'
import { ErrorCode } from './codes'
diff --git a/cli/src/framework/command-fs.test.ts b/cli/src/framework/command-fs.test.ts
index 8c5d6423784..a8ef344cdbe 100644
--- a/cli/src/framework/command-fs.test.ts
+++ b/cli/src/framework/command-fs.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { isCommandIndexPath, isExcludedCommandPath } from './command-fs'
describe('isExcludedCommandPath', () => {
diff --git a/cli/src/framework/errors.test.ts b/cli/src/framework/errors.test.ts
index d38e3aef04b..8256ef04e96 100644
--- a/cli/src/framework/errors.test.ts
+++ b/cli/src/framework/errors.test.ts
@@ -1,5 +1,5 @@
import type { FlagDefinition } from './types'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { OutputFormatNotSupportedError, UnsupportedArgValueError } from './errors'
describe('OutputFormatNotSupportedError', () => {
diff --git a/cli/src/framework/flags.test.ts b/cli/src/framework/flags.test.ts
index 7b0ee519150..25895c1d1ce 100644
--- a/cli/src/framework/flags.test.ts
+++ b/cli/src/framework/flags.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { UnsupportedArgValueError } from './errors'
import { Args, Flags, parseArgv } from './flags'
diff --git a/cli/src/framework/help.test.ts b/cli/src/framework/help.test.ts
index d0f07b00cdf..a85510173d5 100644
--- a/cli/src/framework/help.test.ts
+++ b/cli/src/framework/help.test.ts
@@ -1,6 +1,6 @@
import type { CommandConstructor } from './command'
import type { CommandTree } from './registry'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { Args, Flags } from './flags'
import { formatHelp, formatTopLevelHelp } from './help'
diff --git a/cli/src/framework/output.test.ts b/cli/src/framework/output.test.ts
index 192373e0270..d4c15466db2 100644
--- a/cli/src/framework/output.test.ts
+++ b/cli/src/framework/output.test.ts
@@ -1,5 +1,5 @@
import type { FormattedPrintable, NamePrintable, TablePrintable } from './output'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { OutputFormatNotSupportedError } from './errors'
import { formatted, raw, stringifyOutput, table } from './output'
diff --git a/cli/src/framework/registry.test.ts b/cli/src/framework/registry.test.ts
index 2229f4eb993..49002259d7a 100644
--- a/cli/src/framework/registry.test.ts
+++ b/cli/src/framework/registry.test.ts
@@ -1,5 +1,5 @@
import type { CommandTree } from './registry'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { Command } from './command'
import { findSuggestions, resolveCommand } from './registry'
diff --git a/cli/src/framework/run.test.ts b/cli/src/framework/run.test.ts
index 845cf38f48f..31f0a013117 100644
--- a/cli/src/framework/run.test.ts
+++ b/cli/src/framework/run.test.ts
@@ -1,6 +1,6 @@
import type { CommandConstructor } from './command'
import type { CommandTree } from './registry'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { BaseError, HttpClientError, newError } from '@/errors/base'
import { ErrorCode, ExitCode } from '@/errors/codes'
import { CONTRACT } from '@/help/contract'
diff --git a/cli/src/help/contract.test.ts b/cli/src/help/contract.test.ts
index 272e1ff8d88..a97488c8c29 100644
--- a/cli/src/help/contract.test.ts
+++ b/cli/src/help/contract.test.ts
@@ -1,5 +1,5 @@
import type { ErrorBody } from '@dify/contracts/api/openapi/types.gen'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { HttpClientError, newError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import { CONTRACT } from './contract'
diff --git a/cli/src/help/skill.test.ts b/cli/src/help/skill.test.ts
index ff5a8eeb0a5..8cae781427c 100644
--- a/cli/src/help/skill.test.ts
+++ b/cli/src/help/skill.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { commandTree } from '@/commands/tree.generated'
import { collectCommands } from '@/framework/registry'
import { versionInfo } from '@/version/info'
diff --git a/cli/src/help/topics.test.ts b/cli/src/help/topics.test.ts
index 8a3004aca8c..14ad27f742a 100644
--- a/cli/src/help/topics.test.ts
+++ b/cli/src/help/topics.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { ENV_REGISTRY } from '@/env/registry'
import { findTopic, TOPICS } from './topics'
diff --git a/cli/src/http/body.test.ts b/cli/src/http/body.test.ts
index 31df0e45e0a..5a5fc898473 100644
--- a/cli/src/http/body.test.ts
+++ b/cli/src/http/body.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { buildBody, isJSONSerializable } from './body.js'
describe('isJSONSerializable', () => {
diff --git a/cli/src/http/client-tls.test.ts b/cli/src/http/client-tls.test.ts
index 723736d18ce..befe1894f41 100644
--- a/cli/src/http/client-tls.test.ts
+++ b/cli/src/http/client-tls.test.ts
@@ -5,7 +5,7 @@ import { mkdtempSync, readFileSync, rmSync } from 'node:fs'
import * as https from 'node:https'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterAll, beforeAll, describe, expect, it } from 'vitest'
+import { afterAll, beforeAll, describe, expect, it } from 'vite-plus/test'
import { createHttpClient } from './client.js'
function generateSelfSignedCert(dir: string): { key: Buffer; cert: Buffer } {
diff --git a/cli/src/http/client.test.ts b/cli/src/http/client.test.ts
index f5f9245777e..df817a471cb 100644
--- a/cli/src/http/client.test.ts
+++ b/cli/src/http/client.test.ts
@@ -2,7 +2,7 @@ import type { DifyMock } from '@test/fixtures/dify-mock/server'
import type { AddressInfo } from 'node:net'
import * as http from 'node:http'
import { startMock } from '@test/fixtures/dify-mock/server'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { isBaseError, isHttpClientError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import { openAPIBase } from '@/util/host'
diff --git a/cli/src/http/error-mapper.test.ts b/cli/src/http/error-mapper.test.ts
index d439c789935..362d2e3d91d 100644
--- a/cli/src/http/error-mapper.test.ts
+++ b/cli/src/http/error-mapper.test.ts
@@ -1,5 +1,5 @@
import type { HttpClientError } from '@/errors/base'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { ErrorCode } from '@/errors/codes'
import { classifyResponse } from './error-mapper'
diff --git a/cli/src/http/orpc.test.ts b/cli/src/http/orpc.test.ts
index 77f44646a4b..8e45c57c7c8 100644
--- a/cli/src/http/orpc.test.ts
+++ b/cli/src/http/orpc.test.ts
@@ -1,7 +1,7 @@
import type { StubServer } from '@test/fixtures/stub-server'
import type { HttpClientError } from '@/errors/base'
import { jsonResponder, startStubServer } from '@test/fixtures/stub-server'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { isHttpClientError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
import { openAPIBase } from '@/util/host'
diff --git a/cli/src/http/proxy.test.ts b/cli/src/http/proxy.test.ts
index 8a09b124425..11e86d3c310 100644
--- a/cli/src/http/proxy.test.ts
+++ b/cli/src/http/proxy.test.ts
@@ -1,4 +1,4 @@
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const PROXY_KEYS = [
'HTTP_PROXY',
diff --git a/cli/src/http/rate-limit.test.ts b/cli/src/http/rate-limit.test.ts
index 5c2684e7f66..ea77092ae95 100644
--- a/cli/src/http/rate-limit.test.ts
+++ b/cli/src/http/rate-limit.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
classifyRateLimit,
MAX_HONORED_WAIT_MS,
diff --git a/cli/src/http/retry.test.ts b/cli/src/http/retry.test.ts
index 25d646facf5..82dfdc568cf 100644
--- a/cli/src/http/retry.test.ts
+++ b/cli/src/http/retry.test.ts
@@ -1,5 +1,5 @@
import type { FetchContext, HttpMethod, ResolvedOptions } from './types.js'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { backoffDelay, isIdempotentRetryMethod, shouldRetry } from './retry.js'
function ctxFor(method: HttpMethod): FetchContext {
diff --git a/cli/src/http/sse-dify.test.ts b/cli/src/http/sse-dify.test.ts
index a9b54b0d57e..7c72023174a 100644
--- a/cli/src/http/sse-dify.test.ts
+++ b/cli/src/http/sse-dify.test.ts
@@ -1,5 +1,5 @@
import type { SseEvent } from './sse'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { eventNameFromDifyData, normalizeDifyStream } from './sse-dify'
const enc = new TextEncoder()
diff --git a/cli/src/http/sse.test.ts b/cli/src/http/sse.test.ts
index f6ecca09e7b..4a901c09dd8 100644
--- a/cli/src/http/sse.test.ts
+++ b/cli/src/http/sse.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { parseSSE } from './sse'
function streamOf(...chunks: string[]): ReadableStream {
diff --git a/cli/src/http/url.test.ts b/cli/src/http/url.test.ts
index 6ee55b122e4..c5762281607 100644
--- a/cli/src/http/url.test.ts
+++ b/cli/src/http/url.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { appendSearchParams, joinURL } from './url.js'
describe('joinURL', () => {
diff --git a/cli/src/limit/limit.test.ts b/cli/src/limit/limit.test.ts
index 3bad82d6ddf..e0d4ae2156e 100644
--- a/cli/src/limit/limit.test.ts
+++ b/cli/src/limit/limit.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { isBaseError } from '@/errors/base'
import { ExitCode } from '@/errors/codes'
import { LIMIT_DEFAULT, LIMIT_MAX, LIMIT_MIN, parseLimit } from './limit'
diff --git a/cli/src/store/config-writer.test.ts b/cli/src/store/config-writer.test.ts
index 587b009a68e..c75f7f39258 100644
--- a/cli/src/store/config-writer.test.ts
+++ b/cli/src/store/config-writer.test.ts
@@ -1,5 +1,5 @@
import { useTempConfigDir } from '@test/fixtures/config-dir'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { loadConfig } from '@/config/config-loader'
import { emptyConfig } from '@/config/schema'
import { saveConfig } from './config-writer'
diff --git a/cli/src/store/keychain-token-store.test.ts b/cli/src/store/keychain-token-store.test.ts
index dbae2a95b53..685660b3e9e 100644
--- a/cli/src/store/keychain-token-store.test.ts
+++ b/cli/src/store/keychain-token-store.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BaseError } from '@/errors/base'
import { ErrorCode } from '@/errors/codes'
diff --git a/cli/src/store/keyring-based-store.test.ts b/cli/src/store/keyring-based-store.test.ts
index 3754637fbea..df11d3832e1 100644
--- a/cli/src/store/keyring-based-store.test.ts
+++ b/cli/src/store/keyring-based-store.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const passwords = new Map()
const setPassword = vi.fn()
diff --git a/cli/src/store/manager.test.ts b/cli/src/store/manager.test.ts
index a43e4def0de..f70c3cb0aa6 100644
--- a/cli/src/store/manager.test.ts
+++ b/cli/src/store/manager.test.ts
@@ -1,5 +1,5 @@
import type { TokenStore } from './token-store'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { detectTokenStore, getTokenStore } from './manager'
function memStore(label: string): TokenStore & { _label: string } {
diff --git a/cli/src/store/store.test.ts b/cli/src/store/store.test.ts
index e0e6ebb82b9..060ef44df45 100644
--- a/cli/src/store/store.test.ts
+++ b/cli/src/store/store.test.ts
@@ -2,7 +2,7 @@ import { existsSync, readFileSync, statSync, writeFileSync } from 'node:fs'
import { mkdtemp, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { BadYamlFormatError, ConcurrentAccessError } from './errors'
import { YamlStore } from './store'
diff --git a/cli/src/store/token-store.test.ts b/cli/src/store/token-store.test.ts
index 5771e1c8412..eb609c6929e 100644
--- a/cli/src/store/token-store.test.ts
+++ b/cli/src/store/token-store.test.ts
@@ -1,7 +1,7 @@
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { FileTokenStore } from './token-store'
describe('FileTokenStore', () => {
diff --git a/cli/src/sys/index.test.ts b/cli/src/sys/index.test.ts
index 51c357f8299..5622a8dd87d 100644
--- a/cli/src/sys/index.test.ts
+++ b/cli/src/sys/index.test.ts
@@ -1,6 +1,6 @@
import { homedir } from 'node:os'
import { join } from 'node:path'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { resolvePlatform, SUBDIR } from './index'
describe('resolvePlatform', () => {
diff --git a/cli/src/sys/io/prompt.test.ts b/cli/src/sys/io/prompt.test.ts
index 37470f05d84..a3cb387044f 100644
--- a/cli/src/sys/io/prompt.test.ts
+++ b/cli/src/sys/io/prompt.test.ts
@@ -1,5 +1,5 @@
import { PassThrough } from 'node:stream'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { promptText } from './prompt'
import { bufferStreams } from './streams'
diff --git a/cli/src/sys/io/reasoning.test.ts b/cli/src/sys/io/reasoning.test.ts
index 250e2e60d6c..ed4642bcd60 100644
--- a/cli/src/sys/io/reasoning.test.ts
+++ b/cli/src/sys/io/reasoning.test.ts
@@ -1,6 +1,6 @@
import { Buffer } from 'node:buffer'
import { PassThrough } from 'node:stream'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
accumulateReasoning,
formatReasoningBlocks,
diff --git a/cli/src/sys/io/select.test.ts b/cli/src/sys/io/select.test.ts
index 32d1aa39c0b..888baf79a8c 100644
--- a/cli/src/sys/io/select.test.ts
+++ b/cli/src/sys/io/select.test.ts
@@ -1,5 +1,5 @@
import { PassThrough } from 'node:stream'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { selectFromList } from './select'
import { bufferStreams } from './streams'
diff --git a/cli/src/sys/io/think-filter.test.ts b/cli/src/sys/io/think-filter.test.ts
index a993fd4e4eb..5943e52010b 100644
--- a/cli/src/sys/io/think-filter.test.ts
+++ b/cli/src/sys/io/think-filter.test.ts
@@ -1,6 +1,6 @@
import { Buffer } from 'node:buffer'
import { PassThrough } from 'node:stream'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
extractThinkBlocks,
filterThinkInOutputs,
diff --git a/cli/src/types/app-meta.test.ts b/cli/src/types/app-meta.test.ts
index a838b9b5bb5..d82ebb014bb 100644
--- a/cli/src/types/app-meta.test.ts
+++ b/cli/src/types/app-meta.test.ts
@@ -1,5 +1,5 @@
import type { AppDescribeResponse } from '@dify/contracts/api/openapi/types.gen'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
covers,
FieldInfo,
diff --git a/cli/src/version/compat.test.ts b/cli/src/version/compat.test.ts
index 306b3a36576..33b0b3e6be6 100644
--- a/cli/src/version/compat.test.ts
+++ b/cli/src/version/compat.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { compatString, difyCompat, evaluateCompat } from './compat'
describe('difyCompat', () => {
diff --git a/cli/src/version/enforce.test.ts b/cli/src/version/enforce.test.ts
index cca7b33b6e9..ff86aeabe7e 100644
--- a/cli/src/version/enforce.test.ts
+++ b/cli/src/version/enforce.test.ts
@@ -1,6 +1,6 @@
import type { ServerVersionResponse } from '@dify/contracts/api/openapi/types.gen'
import type { CompatStore } from '@/cache/compat-store'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { ErrorCode } from '@/errors/codes'
import { enforceDifyVersion } from './enforce'
diff --git a/cli/src/version/info.test.ts b/cli/src/version/info.test.ts
index d7e2b1307ed..f3fd064e924 100644
--- a/cli/src/version/info.test.ts
+++ b/cli/src/version/info.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { longVersion, shortVersion, userAgent } from './info'
describe('version info', () => {
diff --git a/cli/src/version/nudge.test.ts b/cli/src/version/nudge.test.ts
index 04816689b0f..14de0020977 100644
--- a/cli/src/version/nudge.test.ts
+++ b/cli/src/version/nudge.test.ts
@@ -3,7 +3,7 @@ import type { NudgeStore } from '@/cache/nudge-store'
import { mkdtemp, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { loadNudgeStore } from '@/cache/nudge-store'
import { ENV_CACHE_DIR } from '@/store/dir'
import { CACHE_NUDGE, getCache } from '@/store/manager'
diff --git a/cli/src/version/probe.test.ts b/cli/src/version/probe.test.ts
index 688c1d1a70c..4468c1ca04d 100644
--- a/cli/src/version/probe.test.ts
+++ b/cli/src/version/probe.test.ts
@@ -4,7 +4,7 @@ import { mkdtemp, rm } from 'node:fs/promises'
import { platform, tmpdir } from 'node:os'
import { join } from 'node:path'
import { startMock } from '@test/fixtures/dify-mock/server'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { Registry } from '@/auth/hosts'
import { ENV_CONFIG_DIR } from '@/store/dir'
import { arch } from '@/sys/index'
diff --git a/cli/src/version/render.test.ts b/cli/src/version/render.test.ts
index 46033c0358c..46361bf85b0 100644
--- a/cli/src/version/render.test.ts
+++ b/cli/src/version/render.test.ts
@@ -1,5 +1,5 @@
import type { VersionReport } from './probe'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderVersionText } from './render'
function baseClient(overrides: Partial = {}): VersionReport['client'] {
diff --git a/cli/src/workspace/resolver.test.ts b/cli/src/workspace/resolver.test.ts
index f971766f4e6..cbb1efd9ac5 100644
--- a/cli/src/workspace/resolver.test.ts
+++ b/cli/src/workspace/resolver.test.ts
@@ -1,5 +1,5 @@
import type { ActiveContext } from '@/auth/hosts'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { resolveWorkspaceId } from './resolver'
function active(workspaceId?: string): ActiveContext {
diff --git a/cli/test/e2e/helpers/assert.ts b/cli/test/e2e/helpers/assert.ts
index 240f99b1926..529491bfabd 100644
--- a/cli/test/e2e/helpers/assert.ts
+++ b/cli/test/e2e/helpers/assert.ts
@@ -6,7 +6,7 @@
*/
import type { RunResult } from './cli.js'
-import { expect } from 'vitest'
+import { expect } from 'vite-plus/test'
import './vitest-context.js'
// ── ANSI ──────────────────────────────────────────────────────────────────
diff --git a/cli/test/e2e/helpers/retry.ts b/cli/test/e2e/helpers/retry.ts
index aa43b4798d6..5eb4d6c5c65 100644
--- a/cli/test/e2e/helpers/retry.ts
+++ b/cli/test/e2e/helpers/retry.ts
@@ -41,7 +41,9 @@ export async function withRetry(fn: () => Promise, opts: RetryOptions = {}
await sleep(delay)
}
}
- throw lastErr
+ throw lastErr instanceof Error
+ ? lastErr
+ : new Error('Retry failed with a non-Error value.', { cause: lastErr })
}
function sleep(ms: number): Promise {
diff --git a/cli/test/e2e/helpers/skip.ts b/cli/test/e2e/helpers/skip.ts
index 95d94e28b38..feda5f4596e 100644
--- a/cli/test/e2e/helpers/skip.ts
+++ b/cli/test/e2e/helpers/skip.ts
@@ -1,6 +1,6 @@
-import type { SuiteAPI, TestAPI } from 'vitest'
+import type { SuiteAPI, TestAPI } from 'vite-plus/test'
import type { DifyEdition, E2ECapabilities } from '../setup/env.js'
-import { describe, it } from 'vitest'
+import { describe, it } from 'vite-plus/test'
// Explicit casts bridge the ChainableFunction vs SuiteAPI/TestAPI
// incompatibility introduced in vite-plus-test@0.1.22 (TS2322 / TS4058).
diff --git a/cli/test/e2e/setup/global-setup.ts b/cli/test/e2e/setup/global-setup.ts
index 70e0242d370..17b7966a3b6 100644
--- a/cli/test/e2e/setup/global-setup.ts
+++ b/cli/test/e2e/setup/global-setup.ts
@@ -24,7 +24,7 @@
* into the secondary workspace. Publish & set access_mode → public.
*/
-import type { TestProject } from 'vitest/node'
+import type { TestProject } from 'vite-plus/test/node'
import type { E2ECapabilities } from './env.js'
import { Buffer } from 'node:buffer'
import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
diff --git a/cli/test/e2e/suites/agent/agent-skill-workflow.e2e.ts b/cli/test/e2e/suites/agent/agent-skill-workflow.e2e.ts
index c143034ea34..8f3702d1b75 100644
--- a/cli/test/e2e/suites/agent/agent-skill-workflow.e2e.ts
+++ b/cli/test/e2e/suites/agent/agent-skill-workflow.e2e.ts
@@ -21,7 +21,7 @@
*/
import type { AuthFixture, RunResult } from '../../helpers/cli.js'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/auth/devices.e2e.ts b/cli/test/e2e/suites/auth/devices.e2e.ts
index 2bd1b9c6442..cb9896defd2 100644
--- a/cli/test/e2e/suites/auth/devices.e2e.ts
+++ b/cli/test/e2e/suites/auth/devices.e2e.ts
@@ -4,7 +4,7 @@
* Test cases sourced from: Dify CLI Enhanced spec — Dify CLI/Auth/Multi-device Session Management (21 wiki cases → 18 automated)
*/
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode, assertJson } from '../../helpers/assert.js'
import { injectAuth, mintFreshToken, run, withTempConfig } from '../../helpers/cli.js'
import { optionalIt } from '../../helpers/skip.js'
diff --git a/cli/test/e2e/suites/auth/login.e2e.ts b/cli/test/e2e/suites/auth/login.e2e.ts
index a7879f9507d..2c4c54f90b2 100644
--- a/cli/test/e2e/suites/auth/login.e2e.ts
+++ b/cli/test/e2e/suites/auth/login.e2e.ts
@@ -23,7 +23,7 @@ import type { Buffer } from 'node:buffer'
import { spawn } from 'node:child_process'
import { stat } from 'node:fs/promises'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { BIN, BUN, injectAuth, run, withTempConfig } from '../../helpers/cli.js'
import { resolveEnv } from '../../setup/env.js'
diff --git a/cli/test/e2e/suites/auth/logout.e2e.ts b/cli/test/e2e/suites/auth/logout.e2e.ts
index f7619e81f56..e78f7569a24 100644
--- a/cli/test/e2e/suites/auth/logout.e2e.ts
+++ b/cli/test/e2e/suites/auth/logout.e2e.ts
@@ -6,7 +6,7 @@
import { access } from 'node:fs/promises'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode } from '../../helpers/assert.js'
import { injectAuth, injectSsoAuth, run, withTempConfig } from '../../helpers/cli.js'
import { resolveEnv } from '../../setup/env.js'
diff --git a/cli/test/e2e/suites/auth/status.e2e.ts b/cli/test/e2e/suites/auth/status.e2e.ts
index 50dccfc3965..e27fdd23b22 100644
--- a/cli/test/e2e/suites/auth/status.e2e.ts
+++ b/cli/test/e2e/suites/auth/status.e2e.ts
@@ -8,7 +8,7 @@
import { readFile } from 'node:fs/promises'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode, assertNoAnsi } from '../../helpers/assert.js'
import { injectAuth, injectSsoAuth, run, withTempConfig } from '../../helpers/cli.js'
import { resolveEnv } from '../../setup/env.js'
diff --git a/cli/test/e2e/suites/auth/use.e2e.ts b/cli/test/e2e/suites/auth/use.e2e.ts
index 680cbfc1b92..5694d7d784f 100644
--- a/cli/test/e2e/suites/auth/use.e2e.ts
+++ b/cli/test/e2e/suites/auth/use.e2e.ts
@@ -6,7 +6,7 @@
import type { RunResult } from '../../helpers/cli.js'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode } from '../../helpers/assert.js'
import { injectAuth, injectSsoAuth, run, withTempConfig } from '../../helpers/cli.js'
import { withRetry } from '../../helpers/retry.js'
diff --git a/cli/test/e2e/suites/auth/whoami.e2e.ts b/cli/test/e2e/suites/auth/whoami.e2e.ts
index ca4e1c52c58..a10c572a034 100644
--- a/cli/test/e2e/suites/auth/whoami.e2e.ts
+++ b/cli/test/e2e/suites/auth/whoami.e2e.ts
@@ -8,7 +8,7 @@
* E2E layer bypasses Device Flow via injectAuth, focusing on session state and CLI behaviour.
*/
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode } from '../../helpers/assert.js'
import { injectAuth, injectSsoAuth, run, withTempConfig } from '../../helpers/cli.js'
import { withRetry } from '../../helpers/retry.js'
diff --git a/cli/test/e2e/suites/discovery/describe-app.e2e.ts b/cli/test/e2e/suites/discovery/describe-app.e2e.ts
index e6822441166..52fae14a746 100644
--- a/cli/test/e2e/suites/discovery/describe-app.e2e.ts
+++ b/cli/test/e2e/suites/discovery/describe-app.e2e.ts
@@ -4,7 +4,7 @@
* Test cases sourced from: Dify CLI Enhanced spec — Dify CLI/Discovery/Describe App (29 cases)
*/
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/discovery/get-app-all-workspaces.e2e.ts b/cli/test/e2e/suites/discovery/get-app-all-workspaces.e2e.ts
index bbf27c45366..136b96e4ab7 100644
--- a/cli/test/e2e/suites/discovery/get-app-all-workspaces.e2e.ts
+++ b/cli/test/e2e/suites/discovery/get-app-all-workspaces.e2e.ts
@@ -8,7 +8,7 @@
* available_workspaces count from auth status.
*/
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/discovery/get-app-list.e2e.ts b/cli/test/e2e/suites/discovery/get-app-list.e2e.ts
index dd3f49b9f41..e7d9540a10e 100644
--- a/cli/test/e2e/suites/discovery/get-app-list.e2e.ts
+++ b/cli/test/e2e/suites/discovery/get-app-list.e2e.ts
@@ -8,7 +8,7 @@
* DIFY_E2E_WORKFLOW_APP_ID — echo-workflow app
*/
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/discovery/get-app-single.e2e.ts b/cli/test/e2e/suites/discovery/get-app-single.e2e.ts
index 3f434fe8500..e264337d1c7 100644
--- a/cli/test/e2e/suites/discovery/get-app-single.e2e.ts
+++ b/cli/test/e2e/suites/discovery/get-app-single.e2e.ts
@@ -7,7 +7,7 @@
* The response is returned in list-envelope format {page,limit,total,data:[...]}.
*/
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/dsl/export-studio-app.e2e.ts b/cli/test/e2e/suites/dsl/export-studio-app.e2e.ts
index 8f479c30ed1..650b0f47e0c 100644
--- a/cli/test/e2e/suites/dsl/export-studio-app.e2e.ts
+++ b/cli/test/e2e/suites/dsl/export-studio-app.e2e.ts
@@ -10,7 +10,7 @@ import type { AuthFixture } from '../../helpers/cli.js'
import { mkdtemp, readFile, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode } from '../../helpers/assert.js'
import { run, withAuthFixture, withTempConfig } from '../../helpers/cli.js'
import { resolveEnv } from '../../setup/env.js'
diff --git a/cli/test/e2e/suites/error-handling/error-messages.e2e.ts b/cli/test/e2e/suites/error-handling/error-messages.e2e.ts
index 3e0cb19d1df..b7860bf786d 100644
--- a/cli/test/e2e/suites/error-handling/error-messages.e2e.ts
+++ b/cli/test/e2e/suites/error-handling/error-messages.e2e.ts
@@ -33,7 +33,7 @@ import type { AuthFixture } from '../../helpers/cli.js'
import { mkdtemp, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { ZERO } from '@/util/uuid.js'
import {
assertErrorEnvelope,
diff --git a/cli/test/e2e/suites/error-handling/exit-codes.e2e.ts b/cli/test/e2e/suites/error-handling/exit-codes.e2e.ts
index 4ed80e902d1..9fb97215064 100644
--- a/cli/test/e2e/suites/error-handling/exit-codes.e2e.ts
+++ b/cli/test/e2e/suites/error-handling/exit-codes.e2e.ts
@@ -37,7 +37,7 @@ import { join } from 'node:path'
import { assertExitCode, assertNonZeroExit } from '@test/e2e/helpers/assert.js'
import { run, withAuthFixture, withTempConfig } from '@test/e2e/helpers/cli.js'
import { resolveEnv } from '@test/e2e/setup/env.js'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { ZERO } from '@/util/uuid.js'
// @ts-expect-error — see test/e2e/helpers/vitest-context.ts for explanation
diff --git a/cli/test/e2e/suites/framework/global-flags.e2e.ts b/cli/test/e2e/suites/framework/global-flags.e2e.ts
index 843f76ba68c..2212cdb1cc5 100644
--- a/cli/test/e2e/suites/framework/global-flags.e2e.ts
+++ b/cli/test/e2e/suites/framework/global-flags.e2e.ts
@@ -32,7 +32,7 @@
*/
import type { AuthFixture } from '../../helpers/cli.js'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode, assertNoAnsi, assertNonZeroExit } from '../../helpers/assert.js'
import { withAuthFixture } from '../../helpers/cli.js'
import { resolveEnv } from '../../setup/env.js'
diff --git a/cli/test/e2e/suites/framework/help.e2e.ts b/cli/test/e2e/suites/framework/help.e2e.ts
index 6794094d166..4152a1187a2 100644
--- a/cli/test/e2e/suites/framework/help.e2e.ts
+++ b/cli/test/e2e/suites/framework/help.e2e.ts
@@ -18,7 +18,7 @@
* - Exit code is always 0 for help commands
*/
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { run } from '../../helpers/cli.js'
// ── 1. Top-level help overview ────────────────────────────────────────────────
diff --git a/cli/test/e2e/suites/output/json-yaml-output.e2e.ts b/cli/test/e2e/suites/output/json-yaml-output.e2e.ts
index 58c54963cfa..1036baafe5a 100644
--- a/cli/test/e2e/suites/output/json-yaml-output.e2e.ts
+++ b/cli/test/e2e/suites/output/json-yaml-output.e2e.ts
@@ -29,7 +29,7 @@
*/
import type { AuthFixture } from '../../helpers/cli.js'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/output/table-output.e2e.ts b/cli/test/e2e/suites/output/table-output.e2e.ts
index 0ddfbc270b5..410e1eee17d 100644
--- a/cli/test/e2e/suites/output/table-output.e2e.ts
+++ b/cli/test/e2e/suites/output/table-output.e2e.ts
@@ -38,7 +38,7 @@
*/
import type { AuthFixture } from '../../helpers/cli.js'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import { assertExitCode, assertNoAnsi } from '../../helpers/assert.js'
import { withAuthFixture } from '../../helpers/cli.js'
import { resolveEnv } from '../../setup/env.js'
diff --git a/cli/test/e2e/suites/run/run-app-basic.e2e.ts b/cli/test/e2e/suites/run/run-app-basic.e2e.ts
index cdae61d55d0..aa549d12977 100644
--- a/cli/test/e2e/suites/run/run-app-basic.e2e.ts
+++ b/cli/test/e2e/suites/run/run-app-basic.e2e.ts
@@ -14,7 +14,7 @@
import type { AuthFixture } from '../../helpers/cli.js'
import { mkdir, rm, writeFile } from 'node:fs/promises'
import { join } from 'node:path'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/run/run-app-conversation.e2e.ts b/cli/test/e2e/suites/run/run-app-conversation.e2e.ts
index f6967d2378c..e639f33aea8 100644
--- a/cli/test/e2e/suites/run/run-app-conversation.e2e.ts
+++ b/cli/test/e2e/suites/run/run-app-conversation.e2e.ts
@@ -9,7 +9,7 @@
*/
import type { AuthFixture } from '../../helpers/cli.js'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/e2e/suites/run/run-app-file.e2e.ts b/cli/test/e2e/suites/run/run-app-file.e2e.ts
index 1aec5656d24..1c96d779cdc 100644
--- a/cli/test/e2e/suites/run/run-app-file.e2e.ts
+++ b/cli/test/e2e/suites/run/run-app-file.e2e.ts
@@ -11,7 +11,7 @@
import { mkdtemp, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, expect, inject, it } from 'vite-plus/test'
import { assertExitCode, assertJson, assertNoAnsi } from '../../helpers/assert.js'
import { injectAuth, run, withTempConfig } from '../../helpers/cli.js'
import { withRetry } from '../../helpers/retry.js'
diff --git a/cli/test/e2e/suites/run/run-app-hitl.e2e.ts b/cli/test/e2e/suites/run/run-app-hitl.e2e.ts
index 28136725fb0..cf5df886039 100644
--- a/cli/test/e2e/suites/run/run-app-hitl.e2e.ts
+++ b/cli/test/e2e/suites/run/run-app-hitl.e2e.ts
@@ -12,7 +12,7 @@ import type { AuthFixture } from '../../helpers/cli.js'
import { writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, expect, inject, it } from 'vite-plus/test'
import {
assertExitCode,
assertJson,
diff --git a/cli/test/e2e/suites/run/run-app-reasoning.e2e.ts b/cli/test/e2e/suites/run/run-app-reasoning.e2e.ts
index a84b6869746..1778289511f 100644
--- a/cli/test/e2e/suites/run/run-app-reasoning.e2e.ts
+++ b/cli/test/e2e/suites/run/run-app-reasoning.e2e.ts
@@ -15,7 +15,7 @@
*/
import type { AuthFixture } from '../../helpers/cli.js'
-import { afterEach, beforeEach, describe, expect, inject } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject } from 'vite-plus/test'
import { assertExitCode, assertJson, assertStderrContains } from '../../helpers/assert.js'
import { registerConversation } from '../../helpers/cleanup-registry.js'
import { withAuthFixture } from '../../helpers/cli.js'
diff --git a/cli/test/e2e/suites/run/run-app-streaming.e2e.ts b/cli/test/e2e/suites/run/run-app-streaming.e2e.ts
index 1579cdcefec..6ed8d2ebe3b 100644
--- a/cli/test/e2e/suites/run/run-app-streaming.e2e.ts
+++ b/cli/test/e2e/suites/run/run-app-streaming.e2e.ts
@@ -13,7 +13,7 @@
import type { Buffer } from 'node:buffer'
import type { AuthFixture } from '../../helpers/cli.js'
import { spawn } from 'node:child_process'
-import { afterEach, beforeEach, describe, expect, inject, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, inject, it } from 'vite-plus/test'
import {
assertErrorEnvelope,
assertExitCode,
diff --git a/cli/test/fixtures/config-dir.ts b/cli/test/fixtures/config-dir.ts
index fa2cf169f95..2f9643cc070 100644
--- a/cli/test/fixtures/config-dir.ts
+++ b/cli/test/fixtures/config-dir.ts
@@ -1,7 +1,7 @@
import { mkdtemp, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
-import { afterEach, beforeEach } from 'vitest'
+import { afterEach, beforeEach } from 'vite-plus/test'
import { ENV_CONFIG_DIR } from '../../src/store/dir.js'
// Points ENV_CONFIG_DIR at a fresh temp dir per test and restores it after.
diff --git a/cli/test/fixtures/dify-mock/server.test.ts b/cli/test/fixtures/dify-mock/server.test.ts
index b7eb3d70c8f..e7a3a12c3dd 100644
--- a/cli/test/fixtures/dify-mock/server.test.ts
+++ b/cli/test/fixtures/dify-mock/server.test.ts
@@ -1,5 +1,5 @@
import type { DifyMock } from './server.js'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { startMock } from './server.js'
describe('dify-mock fixture server', () => {
diff --git a/cli/test/scripts/resolve-buildinfo.test.ts b/cli/test/scripts/resolve-buildinfo.test.ts
index 8af696b2611..17e07a02cca 100644
--- a/cli/test/scripts/resolve-buildinfo.test.ts
+++ b/cli/test/scripts/resolve-buildinfo.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { resolveBuildInfo } from '../../scripts/lib/resolve-buildinfo.js'
const FIXED_DATE = new Date('2026-05-09T12:00:00.000Z')
diff --git a/e2e/package.json b/e2e/package.json
index f936f76f383..871766c9714 100644
--- a/e2e/package.json
+++ b/e2e/package.json
@@ -23,7 +23,7 @@
"e2e:prepared:prepare": "tsx ./scripts/run-cucumber.ts --seed-only --profile prepared",
"e2e:reset": "tsx ./scripts/setup.ts reset",
"seed": "tsx ./scripts/run-cucumber.ts --seed-only",
- "test:unit": "vitest run",
+ "test:unit": "vp test run",
"type-check": "tsc"
},
"devDependencies": {
diff --git a/e2e/support/web-server.ts b/e2e/support/web-server.ts
index ad5d5d916a1..674209e8089 100644
--- a/e2e/support/web-server.ts
+++ b/e2e/support/web-server.ts
@@ -61,7 +61,9 @@ export const startWebServer = async ({
if (startupError) {
await stopManagedProcess(activeProcess)
activeProcess = undefined
- throw startupError
+ throw startupError instanceof Error
+ ? startupError
+ : new Error('Web server startup failed with a non-Error value.', { cause: startupError })
}
try {
diff --git a/e2e/tests/agent-backend-readiness.test.ts b/e2e/tests/agent-backend-readiness.test.ts
index 37fed5b8192..dbd860955a9 100644
--- a/e2e/tests/agent-backend-readiness.test.ts
+++ b/e2e/tests/agent-backend-readiness.test.ts
@@ -1,5 +1,5 @@
import type { DifyWorld } from '../features/support/world'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import { requireAgentBackendRuntime } from '../features/agent-v2/support/fixtures/agent-backend'
describe('requireAgentBackendRuntime', () => {
diff --git a/e2e/tests/agent-v2-seed.test.ts b/e2e/tests/agent-v2-seed.test.ts
index c02600cc592..397a135a498 100644
--- a/e2e/tests/agent-v2-seed.test.ts
+++ b/e2e/tests/agent-v2-seed.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { createAgentV2SeedTasks } from '../features/agent-v2/support/seed'
const baseTaskIds = [
diff --git a/e2e/tests/cleanup.test.ts b/e2e/tests/cleanup.test.ts
index 486cb676f38..cebe3c1133a 100644
--- a/e2e/tests/cleanup.test.ts
+++ b/e2e/tests/cleanup.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { runCleanupTasks, shouldFailForCleanupErrors } from '../support/cleanup'
describe('runCleanupTasks', () => {
diff --git a/e2e/tests/console-client.test.ts b/e2e/tests/console-client.test.ts
index ffd1c42fa7b..f8b634d780c 100644
--- a/e2e/tests/console-client.test.ts
+++ b/e2e/tests/console-client.test.ts
@@ -1,6 +1,6 @@
import type { APIRequestContext, APIResponse } from '@playwright/test'
import { Buffer } from 'node:buffer'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleClient } from '../support/api/console-client'
import { createPlaywrightFetch } from '../support/api/playwright-fetch'
diff --git a/e2e/tests/cucumber-messages.test.ts b/e2e/tests/cucumber-messages.test.ts
index f4cc403ee26..3628648b222 100644
--- a/e2e/tests/cucumber-messages.test.ts
+++ b/e2e/tests/cucumber-messages.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
assertCucumberScenariosStarted,
countStartedCucumberScenarios,
diff --git a/e2e/tests/managed-runtime-environment.test.ts b/e2e/tests/managed-runtime-environment.test.ts
index 88519ef8772..19d3b1ea73b 100644
--- a/e2e/tests/managed-runtime-environment.test.ts
+++ b/e2e/tests/managed-runtime-environment.test.ts
@@ -1,4 +1,4 @@
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import { getAgentBackendEnvironment } from '../scripts/setup'
describe('managed runtime environment', () => {
diff --git a/e2e/tests/marketplace-plugins.test.ts b/e2e/tests/marketplace-plugins.test.ts
index 4722212f657..e55af9ed282 100644
--- a/e2e/tests/marketplace-plugins.test.ts
+++ b/e2e/tests/marketplace-plugins.test.ts
@@ -1,6 +1,6 @@
import type { ConsoleClient } from '../support/api/console-client'
import { ORPCError } from '@orpc/client'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import { bootstrapMarketplacePlugins } from '../support/marketplace-plugins'
const createMarketplaceConsoleClient = (installError: unknown) => {
diff --git a/e2e/tests/run-options.test.ts b/e2e/tests/run-options.test.ts
index 638d0091321..f6404c4ce14 100644
--- a/e2e/tests/run-options.test.ts
+++ b/e2e/tests/run-options.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { parseRunOptions, shouldStartManagedAgentBackend } from '../scripts/run-options'
describe('E2E run options', () => {
diff --git a/e2e/tests/service-api-sse.test.ts b/e2e/tests/service-api-sse.test.ts
index ac57b46d1da..812ac0020a0 100644
--- a/e2e/tests/service-api-sse.test.ts
+++ b/e2e/tests/service-api-sse.test.ts
@@ -1,5 +1,5 @@
import assert from 'node:assert/strict'
-import { describe, it } from 'vitest'
+import { describe, it } from 'vite-plus/test'
import { consumeServiceApiSse } from '../features/agent-v2/support/service-api-sse'
const encodeChunks = (text: string, splitPoints: number[]) => {
diff --git a/e2e/tests/test-env.test.ts b/e2e/tests/test-env.test.ts
index ae3c530d83a..bc6e336213a 100644
--- a/e2e/tests/test-env.test.ts
+++ b/e2e/tests/test-env.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { resolveE2EBrowser } from '../test-env'
describe('resolveE2EBrowser', () => {
diff --git a/oxlint-suppressions.json b/oxlint-suppressions.json
index 924177a84f3..9acd454609f 100644
--- a/oxlint-suppressions.json
+++ b/oxlint-suppressions.json
@@ -73,10 +73,10 @@
"eslint-react/static-components": {
"count": 2
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
},
"typescript/no-explicit-any": {
@@ -119,18 +119,18 @@
}
},
"web/app/(shareLayout)/webapp-signin/normalForm.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/account/(commonLayout)/account-page/email-change-modal.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
},
"no-restricted-imports": {
@@ -149,13 +149,13 @@
"erasable-syntax-only/enums": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"react/only-export-components": {
@@ -188,13 +188,13 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
},
"react/only-export-components": {
@@ -202,10 +202,10 @@
}
},
"web/app/components/app/annotation/edit-annotation-modal/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -239,10 +239,10 @@
"eslint-react/set-state-in-effect": {
"count": 5
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -250,10 +250,10 @@
}
},
"web/app/components/app/configuration/config-prompt/__tests__/index.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -268,15 +268,15 @@
}
},
"web/app/components/app/configuration/config-prompt/message-type-selector.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/app/configuration/config-prompt/prompt-editor-height-resize-wrap.tsx": {
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -296,7 +296,7 @@
}
},
"web/app/components/app/configuration/config-var/config-modal/form-fields.tsx": {
- "jsx_a11y/anchor-has-content": {
+ "jsx-a11y/anchor-has-content": {
"count": 1
},
"no-restricted-imports": {
@@ -309,10 +309,10 @@
}
},
"web/app/components/app/configuration/config-var/config-select/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -327,12 +327,12 @@
}
},
"web/app/components/app/configuration/config-var/var-item.tsx": {
- "jsx_a11y/mouse-events-have-key-events": {
+ "jsx-a11y/mouse-events-have-key-events": {
"count": 1
}
},
"web/app/components/app/configuration/config/agent/agent-tools/index.tsx": {
- "jsx_a11y/mouse-events-have-key-events": {
+ "jsx-a11y/mouse-events-have-key-events": {
"count": 2
},
"typescript/no-explicit-any": {
@@ -343,10 +343,10 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -354,10 +354,10 @@
}
},
"web/app/components/app/configuration/config/automatic/idea-output.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -382,10 +382,10 @@
}
},
"web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -395,10 +395,10 @@
}
},
"web/app/components/app/configuration/dataset-config/params-config/config-content.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -411,10 +411,10 @@
"eslint-react/set-state-in-effect": {
"count": 2
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"no-restricted-imports": {
@@ -425,7 +425,7 @@
}
},
"web/app/components/app/configuration/debug/chat-user-input.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 2
},
"no-restricted-imports": {
@@ -471,7 +471,7 @@
}
},
"web/app/components/app/configuration/prompt-value-panel/index.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 2
},
"no-restricted-imports": {
@@ -513,18 +513,18 @@
}
},
"web/app/components/app/log/var-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/app/overview/apikey-info-panel/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -544,10 +544,10 @@
}
},
"web/app/components/app/text-generate/item/workflow-body.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -570,10 +570,10 @@
}
},
"web/app/components/apps/import-from-marketplace-template-modal.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -601,10 +601,10 @@
}
},
"web/app/components/base/agent-log-modal/tool-call.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -622,7 +622,7 @@
}
},
"web/app/components/base/audio-gallery/AudioPlayer.tsx": {
- "jsx_a11y/media-has-caption": {
+ "jsx-a11y/media-has-caption": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -638,7 +638,7 @@
}
},
"web/app/components/base/auto-height-textarea/index.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
@@ -663,10 +663,10 @@
}
},
"web/app/components/base/chat/chat-with-history/header-in-mobile.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 4
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 4
},
"typescript/no-explicit-any": {
@@ -689,13 +689,13 @@
}
},
"web/app/components/base/chat/chat-with-history/inputs-form/__tests__/content.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/interactive-supports-focus": {
+ "jsx-a11y/interactive-supports-focus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -708,10 +708,10 @@
}
},
"web/app/components/base/chat/chat-with-history/sidebar/item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -757,15 +757,15 @@
}
},
"web/app/components/base/chat/chat/log/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/base/chat/chat/question.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
@@ -813,10 +813,10 @@
}
},
"web/app/components/base/date-and-time-picker/date-picker/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -826,10 +826,10 @@
}
},
"web/app/components/base/date-and-time-picker/time-picker/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -895,21 +895,21 @@
}
},
"web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/base/features/new-feature-panel/feature-bar.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -952,7 +952,7 @@
}
},
"web/app/components/base/file-uploader/audio-preview.tsx": {
- "jsx_a11y/media-has-caption": {
+ "jsx-a11y/media-has-caption": {
"count": 1
}
},
@@ -967,18 +967,18 @@
}
},
"web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -1016,7 +1016,7 @@
}
},
"web/app/components/base/file-uploader/video-preview.tsx": {
- "jsx_a11y/media-has-caption": {
+ "jsx-a11y/media-has-caption": {
"count": 1
}
},
@@ -1320,10 +1320,10 @@
}
},
"web/app/components/base/image-gallery/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-noninteractive-element-interactions": {
+ "jsx-a11y/no-noninteractive-element-interactions": {
"count": 1
}
},
@@ -1351,15 +1351,15 @@
}
},
"web/app/components/base/image-uploader/image-list.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-noninteractive-element-interactions": {
+ "jsx-a11y/no-noninteractive-element-interactions": {
"count": 1
}
},
"web/app/components/base/image-uploader/image-preview.tsx": {
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -1380,7 +1380,7 @@
}
},
"web/app/components/base/input/index.stories.tsx": {
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 9
},
"no-console": {
@@ -1391,7 +1391,7 @@
}
},
"web/app/components/base/markdown-blocks/__tests__/paragraph.spec.tsx": {
- "jsx_a11y/anchor-is-valid": {
+ "jsx-a11y/anchor-is-valid": {
"count": 1
}
},
@@ -1419,10 +1419,10 @@
}
},
"web/app/components/base/markdown-blocks/link.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-noninteractive-element-interactions": {
+ "jsx-a11y/no-noninteractive-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -1455,7 +1455,7 @@
}
},
"web/app/components/base/markdown/__tests__/streamdown-wrapper.spec.tsx": {
- "jsx_a11y/anchor-is-valid": {
+ "jsx-a11y/anchor-is-valid": {
"count": 1
}
},
@@ -1473,13 +1473,13 @@
"eslint-react/set-state-in-effect": {
"count": 4
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
},
"regexp/no-super-linear-backtracking": {
@@ -1529,15 +1529,15 @@
}
},
"web/app/components/base/notion-page-selector/page-selector/page-row.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/base/prompt-editor/index.stories.tsx": {
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 4
},
"no-console": {
@@ -1558,18 +1558,18 @@
}
},
"web/app/components/base/prompt-editor/plugins/component-picker-block/prompt-option.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/base/prompt-editor/plugins/component-picker-block/variable-option.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -1582,10 +1582,10 @@
}
},
"web/app/components/base/prompt-editor/plugins/current-block/component.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -1603,10 +1603,10 @@
}
},
"web/app/components/base/prompt-editor/plugins/error-message-block/component.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -1619,10 +1619,10 @@
}
},
"web/app/components/base/prompt-editor/plugins/history-block/component.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -1643,28 +1643,28 @@
}
},
"web/app/components/base/prompt-editor/plugins/hitl-input-block/input-field.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
"web/app/components/base/prompt-editor/plugins/hitl-input-block/pre-populate.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
"web/app/components/base/prompt-editor/plugins/hitl-input-block/tag-label.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/base/prompt-editor/plugins/last-run-block/component.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -1731,7 +1731,7 @@
}
},
"web/app/components/base/search-input/index.stories.tsx": {
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 3
},
"no-console": {
@@ -1744,15 +1744,15 @@
}
},
"web/app/components/base/tab-slider-plain/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/base/tag-input/index.stories.tsx": {
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 12
},
"no-console": {
@@ -1781,24 +1781,24 @@
}
},
"web/app/components/base/video-gallery/VideoPlayer.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/media-has-caption": {
+ "jsx-a11y/media-has-caption": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/base/voice-input/index.stories.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
},
"no-console": {
@@ -1837,7 +1837,7 @@
}
},
"web/app/components/datasets/chunk.tsx": {
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 2
}
},
@@ -1857,34 +1857,34 @@
}
},
"web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/image-input.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/image-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -1894,10 +1894,10 @@
}
},
"web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/header.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -1915,18 +1915,18 @@
}
},
"web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/tab/item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/create-from-pipeline/list/create-card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -1941,10 +1941,10 @@
}
},
"web/app/components/datasets/create-from-pipeline/list/template-card/operations.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
}
},
@@ -1959,18 +1959,18 @@
}
},
"web/app/components/datasets/create/file-uploader/components/file-list-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/datasets/create/file-uploader/components/upload-dropzone.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-noninteractive-element-interactions": {
+ "jsx-a11y/no-noninteractive-element-interactions": {
"count": 1
}
},
@@ -1985,10 +1985,10 @@
}
},
"web/app/components/datasets/create/step-one/components/data-source-type-selector.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2003,10 +2003,10 @@
}
},
"web/app/components/datasets/create/step-one/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2021,10 +2021,10 @@
}
},
"web/app/components/datasets/create/step-two/components/option-card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2042,15 +2042,15 @@
}
},
"web/app/components/datasets/create/website/base/crawled-result-item.tsx": {
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 1
}
},
"web/app/components/datasets/create/website/base/options-wrap.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2109,10 +2109,10 @@
}
},
"web/app/components/datasets/documents/components/list.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2122,34 +2122,34 @@
}
},
"web/app/components/datasets/documents/create-from-pipeline/data-source-options/option-card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/file-list-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/upload-dropzone.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-noninteractive-element-interactions": {
+ "jsx-a11y/no-noninteractive-element-interactions": {
"count": 1
}
},
@@ -2167,10 +2167,10 @@
}
},
"web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
}
},
@@ -2198,7 +2198,7 @@
}
},
"web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/crawled-result-item.tsx": {
- "jsx_a11y/label-has-associated-control": {
+ "jsx-a11y/label-has-associated-control": {
"count": 2
}
},
@@ -2206,10 +2206,10 @@
"eslint-react/static-components": {
"count": 2
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -2263,10 +2263,10 @@
}
},
"web/app/components/datasets/documents/detail/completed/child-segment-list.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"no-restricted-imports": {
@@ -2277,7 +2277,7 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 2
}
},
@@ -2305,10 +2305,10 @@
}
},
"web/app/components/datasets/documents/detail/completed/segment-card/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -2361,10 +2361,10 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
}
},
@@ -2382,10 +2382,10 @@
}
},
"web/app/components/datasets/formatted-text/flavours/__tests__/edit-slice.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2405,34 +2405,34 @@
}
},
"web/app/components/datasets/hit-testing/components/query-input/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/hit-testing/components/records.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/hit-testing/components/result-item-external.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/hit-testing/components/result-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -2442,26 +2442,26 @@
}
},
"web/app/components/datasets/list/dataset-card/components/operations-dropdown.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/metadata/edit-metadata-batch/add-row.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/datasets/metadata/edit-metadata-batch/edit-row.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2522,10 +2522,10 @@
}
},
"web/app/components/datasets/settings/option-card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2545,18 +2545,18 @@
}
},
"web/app/components/explore/item-operation/__tests__/index.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/explore/try-app/app/text-generation.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2571,18 +2571,18 @@
}
},
"web/app/components/header/account-setting/data-source-page-new/__tests__/item.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/header/account-setting/data-source-page-new/card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -2597,10 +2597,10 @@
}
},
"web/app/components/header/account-setting/data-source-page-new/plugin-actions.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2623,34 +2623,34 @@
}
},
"web/app/components/header/account-setting/model-provider-page/model-auth/add-custom-model.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/header/account-setting/model-provider-page/model-auth/authorized/credential-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/header/account-setting/model-provider-page/model-auth/authorized/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/header/account-setting/model-provider-page/model-auth/credential-selector.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2700,10 +2700,10 @@
}
},
"web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-configs.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
},
"typescript/no-explicit-any": {
@@ -2714,10 +2714,10 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -2730,15 +2730,15 @@
}
},
"web/app/components/header/account-setting/permission-group-list.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/main-nav/components/workspace-switcher.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
@@ -2779,15 +2779,15 @@
}
},
"web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install-multi.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
}
},
"web/app/components/plugins/install-plugin/install-from-github/index.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -2810,10 +2810,10 @@
}
},
"web/app/components/plugins/marketplace/list/list-with-collection.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2823,10 +2823,10 @@
}
},
"web/app/components/plugins/plugin-auth/authorized/item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"no-restricted-imports": {
@@ -2908,10 +2908,10 @@
}
},
"web/app/components/plugins/plugin-detail-panel/strategy-detail.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -2919,10 +2919,10 @@
}
},
"web/app/components/plugins/plugin-detail-panel/strategy-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2940,10 +2940,10 @@
}
},
"web/app/components/plugins/plugin-detail-panel/subscription-list/create/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -2976,10 +2976,10 @@
}
},
"web/app/components/plugins/plugin-detail-panel/trigger/event-detail-drawer.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -2987,18 +2987,18 @@
}
},
"web/app/components/plugins/plugin-detail-panel/trigger/event-list.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/plugins/plugin-item/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
},
"typescript/no-explicit-any": {
@@ -3021,10 +3021,10 @@
}
},
"web/app/components/plugins/reference-setting-modal/auto-update-setting/tool-picker.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3042,10 +3042,10 @@
}
},
"web/app/components/rag-pipeline/components/__tests__/publish-as-knowledge-pipeline-modal.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3106,10 +3106,10 @@
}
},
"web/app/components/rag-pipeline/components/panel/test-run/preparation/data-source-options/option-card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3152,10 +3152,10 @@
}
},
"web/app/components/rag-pipeline/components/publish-toast.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3280,10 +3280,10 @@
}
},
"web/app/components/share/text-generation/text-generation-result-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3293,18 +3293,18 @@
}
},
"web/app/components/snippets/components/snippet-run-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 5
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 6
}
},
"web/app/components/snippets/create-snippet-dialog.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
@@ -3322,10 +3322,10 @@
"eslint-react/set-state-in-effect": {
"count": 4
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -3333,10 +3333,10 @@
}
},
"web/app/components/tools/edit-custom-collection-modal/test-api.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"no-restricted-imports": {
@@ -3435,31 +3435,31 @@
}
},
"web/app/components/workflow/comment/comment-input.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
"web/app/components/workflow/comment/comment-preview.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/comment/mention-input.spec.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
"web/app/components/workflow/comment/mention-input.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3474,10 +3474,10 @@
}
},
"web/app/components/workflow/header/online-users.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -3490,10 +3490,10 @@
}
},
"web/app/components/workflow/header/view-history.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3569,10 +3569,10 @@
}
},
"web/app/components/workflow/nodes/_base/components/__tests__/node-handle.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3590,7 +3590,7 @@
}
},
"web/app/components/workflow/nodes/_base/components/before-run-form/form-item.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 3
},
"no-restricted-imports": {
@@ -3614,18 +3614,18 @@
}
},
"web/app/components/workflow/nodes/_base/components/before-run-form/panel-wrap.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/_base/components/editor/base.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3667,26 +3667,26 @@
}
},
"web/app/components/workflow/nodes/_base/components/field.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/_base/components/file-type-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/workflow/nodes/_base/components/form-input-boolean.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -3709,10 +3709,10 @@
}
},
"web/app/components/workflow/nodes/_base/components/layout/field-title.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3738,26 +3738,26 @@
}
},
"web/app/components/workflow/nodes/_base/components/next-step/operator.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/workflow/nodes/_base/components/node-control.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/_base/components/option-card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3777,10 +3777,10 @@
}
},
"web/app/components/workflow/nodes/_base/components/selector.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
},
"typescript/no-explicit-any": {
@@ -3793,18 +3793,18 @@
}
},
"web/app/components/workflow/nodes/_base/components/switch-plugin-version.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/_base/components/variable/manage-input-field.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -3814,7 +3814,7 @@
}
},
"web/app/components/workflow/nodes/_base/components/variable/object-child-tree-panel/picker/field.tsx": {
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -3837,10 +3837,10 @@
}
},
"web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.trigger.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
}
},
@@ -3848,13 +3848,13 @@
"import/no-duplicates": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
},
"no-restricted-imports": {
@@ -3867,10 +3867,10 @@
}
},
"web/app/components/workflow/nodes/_base/components/variable/variable-label/base/variable-label.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4085,10 +4085,10 @@
}
},
"web/app/components/workflow/nodes/http/components/authorization/radio-group.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4098,10 +4098,10 @@
}
},
"web/app/components/workflow/nodes/http/components/key-value/key-value-edit/item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -4114,10 +4114,10 @@
}
},
"web/app/components/workflow/nodes/http/panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -4140,10 +4140,10 @@
}
},
"web/app/components/workflow/nodes/human-input/components/button-style-dropdown.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 4
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 4
}
},
@@ -4153,39 +4153,39 @@
}
},
"web/app/components/workflow/nodes/human-input/components/delivery-method/method-selector.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/workflow/nodes/human-input/components/delivery-method/recipient/__tests__/email-input.spec.tsx": {
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/human-input/components/delivery-method/recipient/email-input.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/human-input/components/delivery-method/recipient/email-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/human-input/components/delivery-method/recipient/member-list.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"no-restricted-imports": {
@@ -4193,7 +4193,7 @@
}
},
"web/app/components/workflow/nodes/human-input/components/delivery-method/test-email-sender.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
@@ -4213,18 +4213,18 @@
}
},
"web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/if-else/components/condition-list/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4264,10 +4264,10 @@
}
},
"web/app/components/workflow/nodes/knowledge-base/components/option-card.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4300,10 +4300,10 @@
}
},
"web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/add-condition.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"no-restricted-imports": {
@@ -4311,18 +4311,18 @@
}
},
"web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-common-variable-selector.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -4335,10 +4335,10 @@
}
},
"web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-operator.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4348,26 +4348,26 @@
}
},
"web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-value-method.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/metadata-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4458,18 +4458,18 @@
}
},
"web/app/components/workflow/nodes/loop/components/condition-list/condition-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/nodes/loop/components/condition-list/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4482,7 +4482,7 @@
}
},
"web/app/components/workflow/nodes/loop/components/loop-variables/item.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
"no-restricted-imports": {
@@ -4493,10 +4493,10 @@
}
},
"web/app/components/workflow/nodes/loop/panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4519,10 +4519,10 @@
}
},
"web/app/components/workflow/nodes/parameter-extractor/components/extract-parameter/item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -4553,7 +4553,7 @@
}
},
"web/app/components/workflow/nodes/question-classifier/components/class-item.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
@@ -4593,10 +4593,10 @@
}
},
"web/app/components/workflow/nodes/tool/components/mixed-variable-text-input/placeholder.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
},
"typescript/no-explicit-any": {
@@ -4700,13 +4700,13 @@
}
},
"web/app/components/workflow/nodes/variable-assigner/components/var-group-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
},
"typescript/no-explicit-any": {
@@ -4732,13 +4732,13 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
},
"no-restricted-imports": {
@@ -4746,34 +4746,34 @@
}
},
"web/app/components/workflow/note-node/note-editor/toolbar/color-picker.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/note-node/note-editor/toolbar/font-size-selector.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/note-node/note-editor/toolbar/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/note-node/note-editor/toolbar/operator.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4793,10 +4793,10 @@
}
},
"web/app/components/workflow/panel/chat-record/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -4804,10 +4804,10 @@
}
},
"web/app/components/workflow/panel/chat-record/user-input.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -4841,7 +4841,7 @@
}
},
"web/app/components/workflow/panel/chat-variable-panel/components/variable-item.tsx": {
- "jsx_a11y/mouse-events-have-key-events": {
+ "jsx-a11y/mouse-events-have-key-events": {
"count": 2
}
},
@@ -4851,10 +4851,10 @@
}
},
"web/app/components/workflow/panel/chat-variable-panel/components/variable-modal.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4864,10 +4864,10 @@
}
},
"web/app/components/workflow/panel/comments-panel/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
}
},
@@ -4895,12 +4895,12 @@
}
},
"web/app/components/workflow/panel/debug-and-preview/user-input.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
"web/app/components/workflow/panel/env-panel/env-item.tsx": {
- "jsx_a11y/mouse-events-have-key-events": {
+ "jsx-a11y/mouse-events-have-key-events": {
"count": 2
}
},
@@ -4908,10 +4908,10 @@
"eslint-react/set-state-in-effect": {
"count": 4
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"no-restricted-imports": {
@@ -4919,15 +4919,15 @@
}
},
"web/app/components/workflow/panel/global-variable-panel/index.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/panel/inputs-panel.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -4935,10 +4935,10 @@
}
},
"web/app/components/workflow/panel/workflow-preview.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 4
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 5
},
"typescript/no-explicit-any": {
@@ -4946,26 +4946,26 @@
}
},
"web/app/components/workflow/run/__tests__/special-result-panel.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/run/__tests__/tracing-panel.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/run/agent-log/agent-log-item.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -4978,10 +4978,10 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 3
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 3
}
},
@@ -4996,18 +4996,18 @@
}
},
"web/app/components/workflow/run/iteration-log/iteration-result-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
"web/app/components/workflow/run/loop-log/__tests__/loop-log-trigger.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -5025,10 +5025,10 @@
}
},
"web/app/components/workflow/run/loop-log/loop-result-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 2
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 2
}
},
@@ -5036,10 +5036,10 @@
"eslint-react/set-state-in-effect": {
"count": 1
},
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -5059,10 +5059,10 @@
}
},
"web/app/components/workflow/run/retry-log/__tests__/retry-log-trigger.spec.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -5072,23 +5072,23 @@
}
},
"web/app/components/workflow/run/special-result-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
"web/app/components/workflow/run/status.tsx": {
- "jsx_a11y/anchor-has-content": {
+ "jsx-a11y/anchor-has-content": {
"count": 1
}
},
"web/app/components/workflow/run/tracing-panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
}
},
@@ -5189,10 +5189,10 @@
}
},
"web/app/components/workflow/variable-inspect/panel.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -5200,10 +5200,10 @@
}
},
"web/app/components/workflow/variable-inspect/right.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 1
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 1
},
"typescript/no-explicit-any": {
@@ -5211,10 +5211,10 @@
}
},
"web/app/components/workflow/variable-inspect/trigger.tsx": {
- "jsx_a11y/click-events-have-key-events": {
+ "jsx-a11y/click-events-have-key-events": {
"count": 5
},
- "jsx_a11y/no-static-element-interactions": {
+ "jsx-a11y/no-static-element-interactions": {
"count": 5
},
"typescript/no-explicit-any": {
@@ -5251,12 +5251,12 @@
}
},
"web/app/device/components/code-input.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
"web/app/device/page.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
@@ -5354,7 +5354,7 @@
}
},
"web/features/tag-management/components/tag-item-editor.tsx": {
- "jsx_a11y/no-autofocus": {
+ "jsx-a11y/no-autofocus": {
"count": 1
}
},
diff --git a/packages/contracts/binary-zod.test.ts b/packages/contracts/binary-zod.test.ts
index 35a6a96b290..dab37626fae 100644
--- a/packages/contracts/binary-zod.test.ts
+++ b/packages/contracts/binary-zod.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { zPostFilesUploadBody } from './generated/api/console/files/zod.gen'
import { zPostWorkspacesCurrentPluginUploadPkgBody } from './generated/api/console/workspaces/zod.gen'
diff --git a/packages/contracts/knowledge-fs-contract.test.mjs b/packages/contracts/knowledge-fs-contract.test.mjs
index f88da6b1eb8..e6db7c0bf4e 100644
--- a/packages/contracts/knowledge-fs-contract.test.mjs
+++ b/packages/contracts/knowledge-fs-contract.test.mjs
@@ -2,7 +2,7 @@ import { createHash } from 'node:crypto'
import { readFile } from 'node:fs/promises'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
knowledgeFsGeneratedArtifactSha256,
knowledgeFsSourceOpenapiSha256,
diff --git a/packages/contracts/openapi-ts.api.config.ts b/packages/contracts/openapi-ts.api.config.ts
index d1251df3657..f77057b1028 100644
--- a/packages/contracts/openapi-ts.api.config.ts
+++ b/packages/contracts/openapi-ts.api.config.ts
@@ -443,12 +443,10 @@ const splitConsoleDocument = (document: SwaggerDocument) => {
}
const segments = [...pathsBySegment.keys()].sort((left, right) => left.localeCompare(right))
- const jobs = segments.map(
- (segment): ApiJob => ({
- document: cloneDocumentWithPaths(document, pathsBySegment.get(segment) ?? {}),
- outputPath: `generated/api/console/${toKebabCase(segment)}`,
- }),
- )
+ const jobs = segments.map((segment): ApiJob => ({
+ document: cloneDocumentWithPaths(document, pathsBySegment.get(segment) ?? {}),
+ outputPath: `generated/api/console/${toKebabCase(segment)}`,
+ }))
return [...jobs, createConsoleContractEntryJob(document, segments)]
}
diff --git a/packages/contracts/openapi-yaml.test.ts b/packages/contracts/openapi-yaml.test.ts
index 572f39da840..26127e1128f 100644
--- a/packages/contracts/openapi-yaml.test.ts
+++ b/packages/contracts/openapi-yaml.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { loadOpenApiYaml } from './openapi-yaml'
describe('loadOpenApiYaml', () => {
diff --git a/packages/contracts/package.json b/packages/contracts/package.json
index b7af1f88ad3..c8e5916c6a6 100644
--- a/packages/contracts/package.json
+++ b/packages/contracts/package.json
@@ -48,6 +48,7 @@
"@typescript/native": "catalog:",
"js-yaml": "catalog:",
"typescript": "catalog:",
+ "vite": "catalog:",
"vite-plus": "catalog:",
"vitest": "catalog:"
}
diff --git a/packages/contracts/sandbox-contract.smoke.test.ts b/packages/contracts/sandbox-contract.smoke.test.ts
index b7f272b1ded..12041d4d9d9 100644
--- a/packages/contracts/sandbox-contract.smoke.test.ts
+++ b/packages/contracts/sandbox-contract.smoke.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { sandbox as agentSandbox } from './generated/api/console/agent/orpc.gen'
import { sandbox as appSandbox } from './generated/api/console/apps/orpc.gen'
diff --git a/packages/dev-proxy/src/cli.spec.ts b/packages/dev-proxy/src/cli.spec.ts
index 0911bd1a872..a47c58654aa 100644
--- a/packages/dev-proxy/src/cli.spec.ts
+++ b/packages/dev-proxy/src/cli.spec.ts
@@ -12,7 +12,7 @@ import net from 'node:net'
import os from 'node:os'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
const tempDirs: string[] = []
type DevProxyCliProcess = ChildProcessByStdio
@@ -99,7 +99,9 @@ const fetchTextWithRetry = async (url: string) => {
}
}
- throw lastError
+ throw lastError instanceof Error
+ ? lastError
+ : new Error('Fetching the proxy response failed with a non-Error value.', { cause: lastError })
}
const spawnCli = (args: readonly string[], cwd: string) => {
diff --git a/packages/dev-proxy/src/config.spec.ts b/packages/dev-proxy/src/config.spec.ts
index 3f24538102b..401a9d6b41c 100644
--- a/packages/dev-proxy/src/config.spec.ts
+++ b/packages/dev-proxy/src/config.spec.ts
@@ -4,7 +4,7 @@
import fs from 'node:fs/promises'
import os from 'node:os'
import path from 'node:path'
-import { afterEach, describe, expect, it } from 'vitest'
+import { afterEach, describe, expect, it } from 'vite-plus/test'
import { loadDevProxyConfig, parseDevProxyCliArgs, resolveDevProxyServerOptions } from './config'
const tempDirs: string[] = []
diff --git a/packages/dev-proxy/src/cookies.spec.ts b/packages/dev-proxy/src/cookies.spec.ts
index 9c3802ede4c..c52b971b9d1 100644
--- a/packages/dev-proxy/src/cookies.spec.ts
+++ b/packages/dev-proxy/src/cookies.spec.ts
@@ -1,7 +1,7 @@
/**
* @vitest-environment node
*/
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
getCookieHeaderValue,
rewriteCookieHeaderForUpstream,
diff --git a/packages/dev-proxy/src/server.spec.ts b/packages/dev-proxy/src/server.spec.ts
index 840fb0462bd..1348e4866b2 100644
--- a/packages/dev-proxy/src/server.spec.ts
+++ b/packages/dev-proxy/src/server.spec.ts
@@ -5,7 +5,7 @@ import { Buffer } from 'node:buffer'
import http from 'node:http'
import net from 'node:net'
import { PassThrough } from 'node:stream'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { resolveCookieRewriteLocalScopeKey, toScopedLocalCookieName } from './cookies'
import {
buildUpstreamUrl,
diff --git a/packages/dify-ui/package.json b/packages/dify-ui/package.json
index 2bac3fc93a8..10682bb455f 100644
--- a/packages/dify-ui/package.json
+++ b/packages/dify-ui/package.json
@@ -189,7 +189,6 @@
"@types/react-dom": "catalog:",
"@typescript/native": "catalog:",
"@vitejs/plugin-react": "catalog:",
- "@vitest/browser": "catalog:",
"@vitest/browser-playwright": "catalog:",
"@vitest/coverage-v8": "catalog:",
"class-variance-authority": "catalog:",
diff --git a/packages/jotai-tanstack-form/src/index.spec.ts b/packages/jotai-tanstack-form/src/index.spec.ts
index 87ecd8a6519..52a89fd6068 100644
--- a/packages/jotai-tanstack-form/src/index.spec.ts
+++ b/packages/jotai-tanstack-form/src/index.spec.ts
@@ -1,5 +1,5 @@
import { createStore } from 'jotai'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { atomWithForm, createFormAtoms } from './index'
type TestFormValues = {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0296daa46b5..d10be138d1c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -249,9 +249,6 @@ catalogs:
'@vitejs/plugin-rsc':
specifier: 0.5.33
version: 0.5.33
- '@vitest/browser':
- specifier: 4.1.10
- version: 4.1.10
'@vitest/browser-playwright':
specifier: 4.1.10
version: 4.1.10
@@ -610,11 +607,8 @@ catalogs:
specifier: 12.0.2
version: 12.0.2
vite-plus:
- specifier: 0.2.8
- version: 0.2.8
- vitest:
- specifier: 4.1.10
- version: 4.1.10
+ specifier: 0.2.9
+ version: 0.2.9
vitest-browser-react:
specifier: 2.2.0
version: 2.2.0
@@ -650,10 +644,11 @@ overrides:
solid-js: 1.9.14
string-width: ~8.2.2
tar@<=7.5.15: ^7.5.16
- vite: npm:@voidzero-dev/vite-plus-core@0.2.8
+ vite: npm:@voidzero-dev/vite-plus-core@0.2.9
ws@>=8.0.0 <8.20.1: ^8.21.2
yaml@>=2.0.0 <2.8.3: 2.9.0
yauzl@<3.2.1: 3.2.1
+ vitest: 4.1.10
importers:
@@ -700,7 +695,7 @@ importers:
version: 3.2.3(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))
eslint-plugin-better-tailwindcss:
specifier: 'catalog:'
- version: 4.7.0(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(oxlint@1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(tailwindcss@4.3.3)
+ version: 4.7.0(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(oxlint@1.77.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(tailwindcss@4.3.3)
eslint-plugin-command:
specifier: 'catalog:'
version: 3.5.3(@typescript-eslint/typescript-estree@8.66.0(@typescript/typescript6@6.0.2)(supports-color@11.0.0))(@typescript-eslint/utils@8.65.0(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@11.0.0))(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))
@@ -736,7 +731,7 @@ importers:
version: 3.1.1(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))
eslint-plugin-storybook:
specifier: 'catalog:'
- version: 10.5.6(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ version: 10.5.6(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
eslint-plugin-toml:
specifier: 'catalog:'
version: 1.5.0(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)
@@ -756,11 +751,11 @@ importers:
specifier: 'catalog:'
version: '@typescript/typescript6@6.0.2'
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
cli:
dependencies:
@@ -835,14 +830,14 @@ importers:
specifier: 'catalog:'
version: '@typescript/typescript6@6.0.2'
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
e2e:
devDependencies:
@@ -889,14 +884,14 @@ importers:
specifier: 'catalog:'
version: '@typescript/typescript6@6.0.2'
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
zod:
specifier: 'catalog:'
version: 4.4.3
@@ -928,12 +923,15 @@ importers:
typescript:
specifier: 'catalog:'
version: '@typescript/typescript6@6.0.2'
+ vite:
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
packages/dev-proxy:
dependencies:
@@ -960,14 +958,14 @@ importers:
specifier: 'catalog:'
version: typescript@7.0.2
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
packages/dify-ui:
dependencies:
@@ -983,7 +981,7 @@ importers:
version: 1.7.0(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@chromatic-com/storybook':
specifier: 'catalog:'
- version: 5.2.1(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 5.2.1(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@dify/tsconfig':
specifier: workspace:*
version: link:../tsconfig
@@ -995,25 +993,25 @@ importers:
version: 1.2.10
'@storybook/addon-a11y':
specifier: 'catalog:'
- version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/addon-docs':
specifier: 'catalog:'
- version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/addon-links':
specifier: 'catalog:'
- version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/addon-themes':
specifier: 'catalog:'
- version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/addon-vitest':
specifier: 'catalog:'
- version: 10.5.6(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10)(@vitest/runner@4.1.10)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(vitest@4.1.10)
+ version: 10.5.6(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10))(@vitest/runner@4.1.10)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(vitest@4.1.10)
'@storybook/react-vite':
specifier: 'catalog:'
- version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
'@tailwindcss/vite':
specifier: 'catalog:'
- version: 4.3.3(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ version: 4.3.3(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@tanstack/react-hotkeys':
specifier: 'catalog:'
version: 0.10.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
@@ -1031,13 +1029,10 @@ importers:
version: typescript@7.0.2
'@vitejs/plugin-react':
specifier: 'catalog:'
- version: 6.0.5(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- '@vitest/browser':
- specifier: 'catalog:'
- version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ version: 6.0.5(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@vitest/browser-playwright':
specifier: 'catalog:'
- version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
+ version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
'@vitest/coverage-v8':
specifier: 'catalog:'
version: 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10)
@@ -1055,7 +1050,7 @@ importers:
version: 19.2.8(react@19.2.8)
storybook:
specifier: 'catalog:'
- version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
tailwindcss:
specifier: 'catalog:'
version: 4.3.3
@@ -1063,14 +1058,14 @@ importers:
specifier: 'catalog:'
version: '@typescript/typescript6@6.0.2'
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
vitest-browser-react:
specifier: 'catalog:'
version: 2.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10)
@@ -1102,14 +1097,14 @@ importers:
specifier: 'catalog:'
version: '@typescript/typescript6@6.0.2'
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
packages/migrate-no-unchecked-indexed-access:
dependencies:
@@ -1127,11 +1122,11 @@ importers:
specifier: 'catalog:'
version: 25.9.5
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
packages/tsconfig: {}
@@ -1153,14 +1148,14 @@ importers:
specifier: 'catalog:'
version: '@typescript/typescript6@6.0.2'
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
web:
dependencies:
@@ -1479,7 +1474,7 @@ importers:
devDependencies:
'@chromatic-com/storybook':
specifier: 'catalog:'
- version: 5.2.1(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 5.2.1(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@dify/contracts':
specifier: workspace:*
version: link:../packages/contracts
@@ -1521,28 +1516,28 @@ importers:
version: 4.2.3
'@storybook/addon-docs':
specifier: 'catalog:'
- version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/addon-links':
specifier: 'catalog:'
- version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/addon-onboarding':
specifier: 'catalog:'
- version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/addon-themes':
specifier: 'catalog:'
- version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ version: 10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/nextjs-vite':
specifier: 'catalog:'
- version: 10.5.6(@babel/core@7.29.7(supports-color@11.0.0))(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ version: 10.5.6(@babel/core@7.29.7(supports-color@11.0.0))(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
'@storybook/react':
specifier: 'catalog:'
- version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ version: 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
'@tailwindcss/postcss':
specifier: 'catalog:'
version: 4.3.3
'@tailwindcss/vite':
specifier: 'catalog:'
- version: 4.3.3(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ version: 4.3.3(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@testing-library/dom':
specifier: 'catalog:'
version: 10.4.1
@@ -1590,16 +1585,13 @@ importers:
version: typescript@7.0.2
'@vitejs/plugin-react':
specifier: 'catalog:'
- version: 6.0.5(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ version: 6.0.5(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@vitejs/plugin-rsc':
specifier: 'catalog:'
- version: 0.5.33(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
- '@vitest/browser':
- specifier: 'catalog:'
- version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ version: 0.5.33(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
'@vitest/browser-playwright':
specifier: 'catalog:'
- version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
+ version: 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
'@vitest/coverage-v8':
specifier: 'catalog:'
version: 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10)
@@ -1623,7 +1615,7 @@ importers:
version: 19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
storybook:
specifier: 'catalog:'
- version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ version: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
tailwindcss:
specifier: 'catalog:'
version: 4.3.3
@@ -1638,19 +1630,19 @@ importers:
version: 3.19.3
vinext:
specifier: 'catalog:'
- version: 1.0.0-beta.4(@mdx-js/rollup@3.1.1(supports-color@11.0.0))(@vitejs/plugin-react@6.0.5(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(@vitejs/plugin-rsc@0.5.33(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
+ version: 1.0.0-beta.4(@mdx-js/rollup@3.1.1(supports-color@11.0.0))(@vitejs/plugin-react@6.0.5(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(@vitejs/plugin-rsc@0.5.33(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
vite:
- specifier: npm:@voidzero-dev/vite-plus-core@0.2.8
- version: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ specifier: npm:@voidzero-dev/vite-plus-core@0.2.9
+ version: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plugin-inspect:
specifier: 'catalog:'
- version: 12.0.2(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5)
+ version: 12.0.2(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5)
vite-plus:
specifier: 'catalog:'
- version: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ version: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
vitest:
- specifier: 'catalog:'
- version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ specifier: 4.1.10
+ version: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
vitest-browser-react:
specifier: 'catalog:'
version: 2.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10)
@@ -3278,8 +3270,8 @@ packages:
cpu: [x64]
os: [win32]
- '@oxc-project/runtime@0.142.0':
- resolution: {integrity: sha512-Dv3jRrcXFdvUBUEljUu9kusrEo9G0iiqZFZNg3yCg+mkET4DD4S2Ow6Q6shFWDJwPidSa980d6YVXBlErUGADw==}
+ '@oxc-project/runtime@0.143.0':
+ resolution: {integrity: sha512-zIuXUf+YGIgsPk0xlQmzTY8NCSc8jE/pSfDodlQ9H3EGZABmr+AtIjXRrnpQAXuXzhDSNqZz9cuhud8hDDLvpg==}
engines: {node: ^20.19.0 || >=22.12.0}
'@oxc-project/types@0.127.0':
@@ -3288,6 +3280,9 @@ packages:
'@oxc-project/types@0.142.0':
resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==}
+ '@oxc-project/types@0.143.0':
+ resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==}
+
'@oxc-resolver/binding-android-arm-eabi@11.24.2':
resolution: {integrity: sha512-y09e0L0SRI2OA2tUIrjBgoV3eH5hvUKXNkJqXmNo5V2WxIjyC7I7aJfRLMEVpA8yi95f90gFDvO0VMgrDw+vwA==}
cpu: [arm]
@@ -3391,124 +3386,124 @@ packages:
cpu: [x64]
os: [win32]
- '@oxfmt/binding-android-arm-eabi@0.61.0':
- resolution: {integrity: sha512-BaS+1OVvg9sr+Xav0+KdWedQRcAzrdoEcwMZeqoc2F6ieC1s/t5eM35YQoRPQ7vAqkZ+p3tbQb1r9I9mrV5oGA==}
+ '@oxfmt/binding-android-arm-eabi@0.62.0':
+ resolution: {integrity: sha512-pdsv0C4gPjJ8H1+sd8u0BDx+yLACTL+rgeMIOL1ln4ihSnhw8CWXtYWgvcSkyTfgGBIzFKab+d8rx9Xl4en/Kw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
- '@oxfmt/binding-android-arm64@0.61.0':
- resolution: {integrity: sha512-of8atAV0M1egGcVOMbgZCvc10sFOP3ayQBNQV5h5G3fNq8gACdEswfFk9bzGrdbM23rtg0Coxi7np7oPLcueNw==}
+ '@oxfmt/binding-android-arm64@0.62.0':
+ resolution: {integrity: sha512-WC3YQ7uS/KtDrjmqwBviwFKe9qeoi+eXx8aX1z/ffG23Md75myjrJaQqTuJvdOLPoa4EYTjDWH0dHXfwulCVog==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@oxfmt/binding-darwin-arm64@0.61.0':
- resolution: {integrity: sha512-7l8+5ov4BGwtAcmpzvEik/TG3bciwyw/S3e6j5GKH7pcQqcgCVxD3AuJeP6upto+SOTBKQ4wrrdbMt0gq8fHSQ==}
+ '@oxfmt/binding-darwin-arm64@0.62.0':
+ resolution: {integrity: sha512-GM8Yf3LjjaR1I8PD0SfeoIlwhsh9GvSF+cQ8sf624Yxnjsyumn95aFzYfKJVefblfDIiOAnZ7QVm2sa21Er/0Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@oxfmt/binding-darwin-x64@0.61.0':
- resolution: {integrity: sha512-Fnz4dDDXBb7udk+DmwelNjxbD6yptyxwCqwCH2ebo4RVLxVsRfFsn/AHJC49KIltPrVokamGv4SSOsiV50DTxQ==}
+ '@oxfmt/binding-darwin-x64@0.62.0':
+ resolution: {integrity: sha512-d5THp7F8bCxLqNogEXDORRsQD6dosf3EyFtnXfBer6v+8tGdcWIjoDX9WaXrrF/26zOmL8qHpPTKCEvpBDmZkQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@oxfmt/binding-freebsd-x64@0.61.0':
- resolution: {integrity: sha512-mddOebKNCP+AucmzfNsk3jgbr681qAUvgMqi865GW5gWLJ/AnzXbvjQRrny0e++NAN8aphav/aRSrfFxNsNjpA==}
+ '@oxfmt/binding-freebsd-x64@0.62.0':
+ resolution: {integrity: sha512-1DnrtXGZooOZ0fHgAXZUaDQzBVh1CM2MNW4oBXyQ2aWKvCHjyljvT9fgBkOM0fEOb96X5eqtcfJ0YUVt9jj66g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@oxfmt/binding-linux-arm-gnueabihf@0.61.0':
- resolution: {integrity: sha512-svx59iYL+DbaZGZUIoice4W0CjRXGExnbz7Re+awIb60rVxBS2KrU7Hnlx+nZYanLGLpjneUEgo/VFEKkSZAyQ==}
+ '@oxfmt/binding-linux-arm-gnueabihf@0.62.0':
+ resolution: {integrity: sha512-4pQDHOYRH+Huqe0StIaWyvk2CVl/aTaqSrbZpA3/pLS2xH24ME7lBgYprhQF2fRkHBzhGGGKliwxFsDdHwx59g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxfmt/binding-linux-arm-musleabihf@0.61.0':
- resolution: {integrity: sha512-BYK9MPJPCf6d+fLKMTruThmEyCtHzQ1zLcsrTlUVkmnoXIaHAbfpeLYQwX1tkjs7W11dyzoi6HFvKcdnvX1zNg==}
+ '@oxfmt/binding-linux-arm-musleabihf@0.62.0':
+ resolution: {integrity: sha512-X0jAaZJFMCVKhB6YyWVTQ/wN2DLsBcZKSMqTS76bF6riT+XZdtg2FPEdjDvdVbunO9cG+tWiVaEs4Zs38lxYog==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxfmt/binding-linux-arm64-gnu@0.61.0':
- resolution: {integrity: sha512-QUaCNLq2/EC6G5ljOuFanl9Lgw6ZWp4co7rs4+KOMUzbGfA4Lq58FHRjjF9sVIG+93XSbo343MxFATrOU1qctA==}
+ '@oxfmt/binding-linux-arm64-gnu@0.62.0':
+ resolution: {integrity: sha512-682Z8T5s8T5ATArYtsejKvbIfd8LEAXyyDkKkoZVq8HND7Vx8TYLlrDjDSeYfodMeVwHOgkj13lJYR8cj6vUSg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-arm64-musl@0.61.0':
- resolution: {integrity: sha512-S6uvJ6MXnRXl+zTs0CARNDvkE+cymj0EVWEKKsyKnlLlqTyQJBjw5s4D2pSIOZc+S46cy4STefzcr/sm0VzVPA==}
+ '@oxfmt/binding-linux-arm64-musl@0.62.0':
+ resolution: {integrity: sha512-lk25fAl7KWaLWVJcW0CHEXB7QlQZtx5eDkjpaGMK0hzXTjUe0Wmlu8IKuFHoviSOcEJedRTs4VE/506VqGxGew==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@oxfmt/binding-linux-ppc64-gnu@0.61.0':
- resolution: {integrity: sha512-6VDlRcytvZG6UlSIdAFKDLbppo9tvPxrWzle6vHldYFMeuDPQEfMKrkwezp7FaBq1wik9ra554ZZeRPsyIkFpg==}
+ '@oxfmt/binding-linux-ppc64-gnu@0.62.0':
+ resolution: {integrity: sha512-SFyNqHQLwySceWNLhiSldx7wPXRAzP0L0WcW9GegP3uWrpZGJiZlQO85NbHAFPEfxR9PhZ9qSnZryEh7+v+4Gw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-riscv64-gnu@0.61.0':
- resolution: {integrity: sha512-KkBTYbzExpbmn15XjKPLu2fRV2PVlq+KWt+brad5rwIa03vdYoaDRWiS7raHII/dCTR6Ro4UpYUCH4t6lif4WQ==}
+ '@oxfmt/binding-linux-riscv64-gnu@0.62.0':
+ resolution: {integrity: sha512-KYj55C1ywJfHo6+aKDuEmUtVEdJALsC5GwayDGsI6FGz2GxFqNr/mA8nxVsNbJzm7sE5MRqTQ9ziImSzhYXysA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-riscv64-musl@0.61.0':
- resolution: {integrity: sha512-69tzIq7sJLVB9dxYYtvMzcSSsnZHSO+U2U19O2RqDqgj6+Q4O7HjSXdaszbcgqzhsUwzSH7z5kWvk8nmf6BHTg==}
+ '@oxfmt/binding-linux-riscv64-musl@0.62.0':
+ resolution: {integrity: sha512-BhZDNo5GOU5nC378RhD0/XpvaEBHsH3HLgJp8YZX3A0InC7oivzA63HsRmiXFLtLSHAstEVrDf6fbC7Rs8Jh/A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@oxfmt/binding-linux-s390x-gnu@0.61.0':
- resolution: {integrity: sha512-Oqi/N0OvtOVXsPKAOOhKgGH3msRYF8BLJaNBbWiupRiKoKVyc8JRKPCfarkQJC+RgP9U8raUKLe+bNwd0HUMiA==}
+ '@oxfmt/binding-linux-s390x-gnu@0.62.0':
+ resolution: {integrity: sha512-UyAFmyHkgSgUJ/wOM4p3U8AC2yAFvRH5PNBs7TnK0fObTT/XSWcdr/lAzPSWaekHaZFaMeFZyk9n93Joq3J93A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-x64-gnu@0.61.0':
- resolution: {integrity: sha512-3TKwv/ed4uwJSemAA8P9XcoqETpjQI4waquF9UilhA9Mn/dhr1PdUEXWlL74mtc6ZNfmKPA9+NEJm01nRF8CVA==}
+ '@oxfmt/binding-linux-x64-gnu@0.62.0':
+ resolution: {integrity: sha512-1iYMP0leytWazFubD/WnINJuIrzRPuoL1aWEJdlGezEzDbTxcd29R4r8IUzP2oWeKst5V02uMJgR2NILlPlG6w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@oxfmt/binding-linux-x64-musl@0.61.0':
- resolution: {integrity: sha512-uFso4u4nLkVSlMCpgjyvWV60Gt7GvDQHnk1mmRxHIkZTMB0ljpUKwCD9FYGgN9H97x2wYl0UwEjgRZaPIuhEhw==}
+ '@oxfmt/binding-linux-x64-musl@0.62.0':
+ resolution: {integrity: sha512-4rA/URtJSTVNVAQz6Q8wf7SaRvOXVy+TizriT9hs/Y1XhLR/R+92uWKRQG8yFWRAIEBbFHJ6WevQcl/G9SXEfw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@oxfmt/binding-openharmony-arm64@0.61.0':
- resolution: {integrity: sha512-keGLkzeOvkMpNmPp4hffXWpfoSsY6e1K8++KXD4mSSfxdvM8q9QUDsYY689TB1k6Co832DZn1MnaaVx6cIBMWQ==}
+ '@oxfmt/binding-openharmony-arm64@0.62.0':
+ resolution: {integrity: sha512-mSZuFHU2ar1KLUjXpI2QBQcJ1VsOB3mOCgQXuXCpKs19dgh4u+OaovNfrWDfiJb+ihJ2+f7YFcaO9bS2dlTCXA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@oxfmt/binding-win32-arm64-msvc@0.61.0':
- resolution: {integrity: sha512-VzsAISkFxmNhJ5LBDEL9VuH6tJsVJMtqYit2LyIUf/HLnsCe4Pg9SMOjjVQzGWt0bnpyfJ94CrqTqcpNZzK+ug==}
+ '@oxfmt/binding-win32-arm64-msvc@0.62.0':
+ resolution: {integrity: sha512-OfwuhkcjDlqC4EgDojtiV9mzpLqeB9KqTOWPOjLEYBVdDCVSxqW3qzp/xcIxsbtI0UgGCnKvAqYKyY25kf5JZw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@oxfmt/binding-win32-ia32-msvc@0.61.0':
- resolution: {integrity: sha512-xv4t7yzwJoYaLB6Zv28B3W+j7brEjsyv50rLTAQgmxJzddce9fAMCxed8dSAkbWES0zz2J29nYK5FaTuD2YBHg==}
+ '@oxfmt/binding-win32-ia32-msvc@0.62.0':
+ resolution: {integrity: sha512-P9uDDNFRzghO3X8QAzhkjKhK7JvtABsVn8UYtFX7uor12IAnwNt8nNIctvfWj1JkQU/kE+fmLRPiw7XlrIHsZw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
- '@oxfmt/binding-win32-x64-msvc@0.61.0':
- resolution: {integrity: sha512-6EZXFkqOwxdDYjIn3TSNnPk3ST5E5GiYd4FiM6UF/mCL/LZSfr6D6UygTfW3R1PCQP2quCKpCEGRlij8E3VYbg==}
+ '@oxfmt/binding-win32-x64-msvc@0.62.0':
+ resolution: {integrity: sha512-dlI5SY7XYQCiCBafntWagCR6HcAJB/NpsLtdlPx8x08+Osz8Ok1HHz1GZuusegCe/VoJ6pAnF5a4pd5OZAq7qQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -3543,124 +3538,124 @@ packages:
cpu: [x64]
os: [win32]
- '@oxlint/binding-android-arm-eabi@1.76.0':
- resolution: {integrity: sha512-ZHIE5Zt9AsPDcY4nOlofXt0YfneEeo+QrKMPcPzLf2Z6Q8VtV2W73d7SFJ920WUwyik783u/doKCs3KXdwG+7w==}
+ '@oxlint/binding-android-arm-eabi@1.77.0':
+ resolution: {integrity: sha512-E06sKWS6PiI6HRxS1wyQg22HvApt01hI7fV+T3wUk3OSbaaP4a3hYGY/MIQDmASqCiRjBdpRQYkgMkqH82cWmQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
- '@oxlint/binding-android-arm64@1.76.0':
- resolution: {integrity: sha512-shm/ngQilHK6bs+ElJWa4oHfNj5vL1Gl/iVEJldTQjpr0/67oSgr0KUpbmcnLig5Fo0v/l6j2567A7TOL89ONA==}
+ '@oxlint/binding-android-arm64@1.77.0':
+ resolution: {integrity: sha512-NvsKz0KZxTp9cYWPLf+FXaSZwB3oO3peAjtukpOMBgse2vhQSoIIVqeO1yR0lEo/UcdZIDL18uq+kL0LzQ0ytA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@oxlint/binding-darwin-arm64@1.76.0':
- resolution: {integrity: sha512-rvJmrAPKSQ9aWJ6wIS6CK2tJjwzfW0ApQH9qokq6sfDvmHwoyIHxHFMq7z7i7GiV6fdE6s8qvBqWKPTu8RmT6Q==}
+ '@oxlint/binding-darwin-arm64@1.77.0':
+ resolution: {integrity: sha512-bgjTn6nW4bQCFBvSvuHCpDD+sONvmpo4lGI4PxzMt1quBA+xYxhczk6RiCn3GZ9gY8uhaBbwhj9MdKGfu6T9DA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@oxlint/binding-darwin-x64@1.76.0':
- resolution: {integrity: sha512-U/zYdb7VYKGY6pA9Vd2rYl9O/HlCylcOlb5PGPvVLtg+oLGsk6H3XGKEMHKyqD3nmmtmlmwb/8SwU2vfSAtvMw==}
+ '@oxlint/binding-darwin-x64@1.77.0':
+ resolution: {integrity: sha512-aotaIttH1R6j1Rwhx0M0htgeZyGtVQqYNTVEYMN/UcgHPquGA6kmk9OyuDc3a2GKUQBC+3C3GVQCcrRPMYqAFA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@oxlint/binding-freebsd-x64@1.76.0':
- resolution: {integrity: sha512-WvKG9CAriuo0XNiFzpXjDngUZcRGFNpaK2kLyMUsnJlShxkT96u+BpJQ3KqdQwGOrvI14L6V8bAwXwAYNNY6Jg==}
+ '@oxlint/binding-freebsd-x64@1.77.0':
+ resolution: {integrity: sha512-nNx/wta7ksRAdYvq+l4AWjXkLxEXHALhENxjj2cYbQAIR4ybaA5L+hCbE63HOmft5czQ6ks+hb8vmEAnn7YGPg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@oxlint/binding-linux-arm-gnueabihf@1.76.0':
- resolution: {integrity: sha512-qJ5+RH99TqFRq3UCDxkW0zJJu9c+OAHFY72vGlxZLEpuO+MpKo3POgqb8sYipL9KYm8XY6ofb0HsOuvY6hQNqQ==}
+ '@oxlint/binding-linux-arm-gnueabihf@1.77.0':
+ resolution: {integrity: sha512-tMLLjM7xXtzXisVCzkOTXNCy9bZVId2wteNwjohlFDR/jY6WagpEDA1c1wu4xRc20Hojaxj+V6DSR7gbKxijWA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxlint/binding-linux-arm-musleabihf@1.76.0':
- resolution: {integrity: sha512-PvPCVptkgVARsucgIqFQQcSmJ6xc6GtnVB5bRBekRahTc9eObMtjHfMjy5M+C2tHt5UCMttWM9RuSk/H9NqYeg==}
+ '@oxlint/binding-linux-arm-musleabihf@1.77.0':
+ resolution: {integrity: sha512-MiAFDFaqR0tmHTAyo0YDcZ5hyLREdYw/RQhc2R3cbT+8O3tB+zqPM2th9TTQ+Uo3jn/embS+DO+HyX9ztCPkOQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@oxlint/binding-linux-arm64-gnu@1.76.0':
- resolution: {integrity: sha512-3KeFDx8Bu4HPAXbuHZOr/oHvN+QT+JQhMw/NYPz7Z071xLSsG27Jfh9PIQVEY7hk1I+jr43ExqRIeJ6VKk2yLw==}
+ '@oxlint/binding-linux-arm64-gnu@1.77.0':
+ resolution: {integrity: sha512-/xqQ3B16i1T4cyt/9Mn+4CpzhUXoBXp7kVpIwzOXNFLj5JmK1bIjsbSnX296Gg8A/o7oDtKWikFgBx0SLwztkw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-arm64-musl@1.76.0':
- resolution: {integrity: sha512-oPFkkKTgl0K/EIg9fQ8oA3IGcI05/Mq1en04iFa41mmNPT+6KEiByVazTOZZJiHMBBrbsns1YJ2e1Scqwzesjw==}
+ '@oxlint/binding-linux-arm64-musl@1.77.0':
+ resolution: {integrity: sha512-LSbwuRKiNCenPDcbARqAZ5RfBy7gmj7vOvfJRLeCDU3gFtSxWbhv/+VTlaUqzUhNj1gFLHB8h7ALnxa/Az6z6g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@oxlint/binding-linux-ppc64-gnu@1.76.0':
- resolution: {integrity: sha512-gN7yZ0eqflA5Fhf1wvHxGUltIV3FsvmB1zhNMDEK9vSHhc7E6qg9CuPeBgPZab66Tjzq6w6kHAtNEvnTHf4cyw==}
+ '@oxlint/binding-linux-ppc64-gnu@1.77.0':
+ resolution: {integrity: sha512-QWdcH31mXEUe5Nq1s0CfCpceaKjIo9uZtwDjAuL681g1axf+5x8xrg/eXWaw//4NCxYZ4V4e5Hu5tvdR+pTBlg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-riscv64-gnu@1.76.0':
- resolution: {integrity: sha512-S/HqMbn22mQrjtErUxEoS/a55u8kIeXvreIxiJu5G7Le3UecEd6SQZxrDIpuhtgaFnsY/nVra3ytP+pRljDilA==}
+ '@oxlint/binding-linux-riscv64-gnu@1.77.0':
+ resolution: {integrity: sha512-GnOfYgJxbcElOiPZaDFDl406ONddwvOWk2jvAAAEjwAl4GofNoHF+/HHUIBYa6bFCArlcGPi0XjC4cU1pkgF/Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-riscv64-musl@1.76.0':
- resolution: {integrity: sha512-ZIga3097VJZolGZk6SrIAUokIGfRkxRlhiHDUznZptGBfwrhD7pNfD1rzEzsCwvk/1DX0A1bLz+liuNh5QKIVQ==}
+ '@oxlint/binding-linux-riscv64-musl@1.77.0':
+ resolution: {integrity: sha512-AyEMTUCf0xY+hHF+IxqXFQIX0yQOIR8ykpY0lJNOw9xYqOzUX8dyZfRvlG0RfXwuQn2eonf/8NrMmDSZJjdqsA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@oxlint/binding-linux-s390x-gnu@1.76.0':
- resolution: {integrity: sha512-ZGiiA7pFzMJSyMWYZTVlPgbTsx+Vl8ihLGMIujPwaslUF7kIPPWAbVmAlTc+9lWDV+DCiB8Ikixu+lSHeOIIWQ==}
+ '@oxlint/binding-linux-s390x-gnu@1.77.0':
+ resolution: {integrity: sha512-sPLzEcNvxd/oyVQ5oZo92CiHkFkpBeRop13E/P3TPY+hZfXHKCOWKI70TE2RYwMKFJDc20EMjH16L7NZICtKTw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-x64-gnu@1.76.0':
- resolution: {integrity: sha512-JLiy5WuvEBFTT6ErIFV35SLzi0R7Iri6MKU6dZbTxfIx8pndbbPs3Mj780nMipBFcPkti+okAPOJ9POKkHFEgg==}
+ '@oxlint/binding-linux-x64-gnu@1.77.0':
+ resolution: {integrity: sha512-1Oh2ssH2L7lwyvkdSqaMUfsGfwU2Wfvew+obBUYjRVqhpBcUpwnsPSEr1IzVi9XqkuY10geiLsNKecqaZC34Dw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@oxlint/binding-linux-x64-musl@1.76.0':
- resolution: {integrity: sha512-z7lgKQtbo/I1NIe8G5NHLesxJDv0tRSUWTpXKb9Pm3E9nKFKfO4IOSDtFroKgXtOYb0jQbcdH+0wzTyMXVes+A==}
+ '@oxlint/binding-linux-x64-musl@1.77.0':
+ resolution: {integrity: sha512-0j/2wRgNGO+Qj/M1uu/p57h/hFTTWWcfie0ufkbabeus2s5+/QqkCflnMOwLLN5m2GsNeWp4xdl4cPa4n7QCOQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@oxlint/binding-openharmony-arm64@1.76.0':
- resolution: {integrity: sha512-JOjKymIpb9QcYfEhZsN6h4V9Ivd474W38cNIBRv6bg2TbIvogbMTH0Mg6YWW9TiRDqfcX+/Hyfsbo5vcSE5guQ==}
+ '@oxlint/binding-openharmony-arm64@1.77.0':
+ resolution: {integrity: sha512-BJ/j54qS0usEnyDkLYURMj2iiD9h5Cyy+ppzeMSXBGRXaGRNWnj1Mw14NqWMR5E/PzdgB30OOCCzLzbRoduafw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@oxlint/binding-win32-arm64-msvc@1.76.0':
- resolution: {integrity: sha512-pqDWZiwcmByWUEm1NFUBNiT6aentCcaoMWJv0HbXEmuYermJ4sg8ppVrshubYP2MZ6SHccJJcpr6x469PuDFIw==}
+ '@oxlint/binding-win32-arm64-msvc@1.77.0':
+ resolution: {integrity: sha512-Yh8w+g2Lpx7StrvtYkoz9JJvXjB9wxgFChFNb85nrXm/wj/XTwGWS1hve9+900HL7llrntYB3YP+y32E3tRqzA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@oxlint/binding-win32-ia32-msvc@1.76.0':
- resolution: {integrity: sha512-Ba0O659kgMv6pwO3z9PdO+K3aMxQRaw9HnG+e6AtOfgwcKFvYilciQYBoUBmxfQvOCKZe1SwjMkuB542NkuDMQ==}
+ '@oxlint/binding-win32-ia32-msvc@1.77.0':
+ resolution: {integrity: sha512-zja5b7+6a7UsRFgAQSrnax5vrzliEyNPLCjfXONu/vTWswaIVZGFajJZptaeRvPE4LghtFdAzVFlexTm7MVTGA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
- '@oxlint/binding-win32-x64-msvc@1.76.0':
- resolution: {integrity: sha512-5qcirPHO8nKfkoowEVWtpAoVTcYDy6g0UT0NGic450Qv8J2NrOqg4uQ8QppRP4MDTC7Xx47lbZnmadTH03CGGA==}
+ '@oxlint/binding-win32-x64-msvc@1.77.0':
+ resolution: {integrity: sha512-+teyvPDZ2RjUvo+SuCqS/UhaJl1QtdW5fWT5NJTV61V5MIuIS90Db9LixmtEGvXixyttiK62P96MSu3UlpviBw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -3877,7 +3872,7 @@ packages:
'@vitest/browser-playwright': ^4.0.0
'@vitest/runner': ^3.0.0 || ^4.0.0
storybook: ^10.5.6
- vitest: ^3.0.0 || ^4.0.0
+ vitest: 4.1.10
peerDependenciesMeta:
'@vitest/browser':
optional: true
@@ -4890,8 +4885,8 @@ packages:
'@vitest/utils@4.1.10':
resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==}
- '@voidzero-dev/vite-plus-core@0.2.8':
- resolution: {integrity: sha512-hqUJyozjE4HtJ3wwf2pOw6LnH/EF9W4+ys2s8arr/3fUdw64vzp/SfPFBVCxsGRv2UfjkIieOeZrQ1FH6Oa5Tw==}
+ '@voidzero-dev/vite-plus-core@0.2.9':
+ resolution: {integrity: sha512-dWqScAAwa8h/i9jCiGAMs7YarzQWInHZ5gCJNbQkHXA6Zp6A2T2anN9YMFVPpb7CwVFwkI2iPF5yl/DXtq+zUA==}
engines: {node: ^20.19.0 || ^22.18.0 || >=24.11.0}
peerDependencies:
'@arethetypeswrong/core': ^0.18.1
@@ -4947,54 +4942,54 @@ packages:
yaml:
optional: true
- '@voidzero-dev/vite-plus-darwin-arm64@0.2.8':
- resolution: {integrity: sha512-zcGNhemAhux0/sGDZBK5sHvv5bPm9kj+NhDKs8MYfZMjc51kpzMOV3PWhtTOXjJYDiSxv+Ss4AFj2y2wvQDgWg==}
+ '@voidzero-dev/vite-plus-darwin-arm64@0.2.9':
+ resolution: {integrity: sha512-/qJHqMfyy/LiCJk4UYZfFW6Comsfm8zDuy4P8UFWnFqRjmefYvZbMK4ThYNM87tKNWYWjsnClzssjJOmDTAc8w==}
engines: {node: '>=20.0.0'}
cpu: [arm64]
os: [darwin]
- '@voidzero-dev/vite-plus-darwin-x64@0.2.8':
- resolution: {integrity: sha512-56vcDhYuHg1HSqQlFIEexs9WbDtvT2Z8QXq2pEUYVplmP55ekDGx8+Ibu69jBhk+lNwmLAonCW1alffQxMKirQ==}
+ '@voidzero-dev/vite-plus-darwin-x64@0.2.9':
+ resolution: {integrity: sha512-3MGnNeazgYAqQTaC7JIbZyrTHmxSXTWFr9G1yAdeItKasB1R8HKIkCS1Qnr49Ge4S/cyOODivdbcpqFkrT93ng==}
engines: {node: '>=20.0.0'}
cpu: [x64]
os: [darwin]
- '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.8':
- resolution: {integrity: sha512-EU9zlSieuouJlnLEkVNw9guig5rTQ5hfMeNH0AlRjb1C1xVpUQdf0uRjXg1PHP3os/WspyCPB46Q80lEaeRb0w==}
+ '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.9':
+ resolution: {integrity: sha512-6LmukER8qD4UBIRqMNv4Ilq7CxfRhngLUXlMv8vbTupeLRWPJSKvKEHyRxCwr6JP57Gxfr8KrX1ye42WzcZF0g==}
engines: {node: '>=20.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.8':
- resolution: {integrity: sha512-VbWUwaSAw0Ndql5uYy/Gfqt7duSy1sxTacLngD5M5kF4ZK7yoKKcx8iFiA0il1Gf3J7OGojPonKi5b3NSn3K7A==}
+ '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.9':
+ resolution: {integrity: sha512-cBs626GWkyJlwKP0nsdHlMWpuTl9xOWRxAUoqtxXPtw80bVy4WM5eNS4SXPC5pX10jR7DRIkRpzNAsy7fv8Faw==}
engines: {node: '>=20.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.8':
- resolution: {integrity: sha512-gZfnd3l9vNiP7QXQIEN9r2M9ZKCh8sg2vhBv04sZjMNAeQ05IXJMkWYkcfTUO7jhf8pdVt3VHQ4x6ULm0OnELg==}
+ '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.9':
+ resolution: {integrity: sha512-2Iy8x4PCPMNzXeu3pREevlggoeK8PwtdUiCpoSybAZBtR/aqMxsJREyt/eKv45F8lsiNlA8PbIWEvPxLSgzFLQ==}
engines: {node: '>=20.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@voidzero-dev/vite-plus-linux-x64-musl@0.2.8':
- resolution: {integrity: sha512-5NtDUvjzF/HcjQraebpiVUgjX2CMKv2Jdmi5YpzHlt4g86sFA9M5a+OqBlgUctdzTeolnjxRsfurKiefG/hILA==}
+ '@voidzero-dev/vite-plus-linux-x64-musl@0.2.9':
+ resolution: {integrity: sha512-zuGx+eRotWPd9cmh1X9AfsC2tN/Ad9Hk6LAzlxoKJUjEkTsY3WjVJ6Da0z48SAUFuenI0JkdqXnMCrePtGvWHg==}
engines: {node: '>=20.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.8':
- resolution: {integrity: sha512-Atjz6KsG42ntfQkM6Ks09Ifxm+ZIca2DnA31tO2FcPlHetBxYEGZwSNCOHAnoNnLrh2qNm+7aOC329a2ijhxLg==}
+ '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.9':
+ resolution: {integrity: sha512-kaKb5Q8ReYTBfvLgUhdpLJG3aoNF8HOVJpf8qBm+THsd4WRrkRwsBHp2ITsU8oXl2gnDjFGhPDaURegd/z6Wxw==}
engines: {node: '>=20.0.0'}
cpu: [arm64]
os: [win32]
- '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.8':
- resolution: {integrity: sha512-VSpa+gK1MjOH7GeO6H5xtJLqisQOWVeRQIDQs9XKizXFX0R4NCrioYO6Rc31QLXfL0lPCkwsKhp/9M9gllImRg==}
+ '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.9':
+ resolution: {integrity: sha512-/fEk3gbQTJknCiYM/GTL/L++Azsav8rCAjmtKrjmCbqEif5IMzqTfvM68n+PiLB3JVoQJGF/mg2niODr0IE/2w==}
engines: {node: '>=20.0.0'}
cpu: [x64]
os: [win32]
@@ -7725,8 +7720,8 @@ packages:
oxc-resolver@11.24.2:
resolution: {integrity: sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==}
- oxfmt@0.61.0:
- resolution: {integrity: sha512-DxdHBEMYpcEnHoUHjjOigUqV2TYKsvxLwUPXnVYBjgFdqrcQ/91OtwubtZ2PUodCs3sStI8R5Qw3fKNGK4e8wQ==}
+ oxfmt@0.62.0:
+ resolution: {integrity: sha512-vxgGHTmnDU9j4CX7dDBLzxgmHxfda/yPcgJkGCMUSCwRmz+euo/V08xXLNgXTeqAB9Fhf3Pe2nO1RNKLCVgphQ==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
@@ -7742,8 +7737,8 @@ packages:
resolution: {integrity: sha512-KjK/XLcXr1DSyonKhsuFqJRiuKqcyG9j3LJ8nkOsrLzGvodBPqzHOKauy10asLMDI0sUpvb+1sxlzff3udZvfg==}
hasBin: true
- oxlint@1.76.0:
- resolution: {integrity: sha512-6QoFioEU4fNdiUx/2Eo6TRd6NG7H7njnRCz8rhB66cZmMHDTqcm1Rjvl8Wry+ZTQMBAmyb4Mlf62Mk5X+eHSOw==}
+ oxlint@1.77.0:
+ resolution: {integrity: sha512-qnGh8XJHaQ0dprrDXNQZgS0FgjI6v+V3+X8DwmaV++5Aamy6jGKfDdQ1TUvhUxtmKFAbEf4/WeO5QZX+5WSngg==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
@@ -8924,8 +8919,8 @@ packages:
storybook: ^0.0.0-0 || ^9.0.0 || ^10.0.0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0 || ^10.5.0-0 || ^10.6.0-0
vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
- vite-plus@0.2.8:
- resolution: {integrity: sha512-JULDOsy7gxG0o2FuvnsWnzRjzD1x9WM9mya3MNMOJUqTsL2pqiN2nq+dzoQMw+FGCytRw7yG1/p5qNcmYMM5Fw==}
+ vite-plus@0.2.9:
+ resolution: {integrity: sha512-8uRNqAxh9no3AU4Lep8BEYhkim07+3NO+mhuxTWiN0k30syGT/2+ue/DtWYhtzQ7yi2f2WKpjOhoI4/QkWWbUg==}
engines: {node: ^20.19.0 || ^22.18.0 || >=24.11.0}
hasBin: true
peerDependencies:
@@ -8960,7 +8955,7 @@ packages:
'@types/react-dom': ^18.0.0 || ^19.0.0
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- vitest: ^4.0.0
+ vitest: 4.1.10
peerDependenciesMeta:
'@types/react':
optional: true
@@ -8970,7 +8965,7 @@ packages:
vitest-canvas-mock@1.1.4:
resolution: {integrity: sha512-4boWHY+STwAxGl1+uwakNNoQky5EjPLC8HuponXNoAscYyT1h/F7RUvTkl4IyF/MiWr3V8Q626je3Iel3eArqA==}
peerDependencies:
- vitest: ^3.0.0 || ^4.0.0
+ vitest: 4.1.10
vitest@4.1.10:
resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==}
@@ -9060,6 +9055,7 @@ packages:
why-is-node-running@2.3.0:
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
engines: {node: '>=8'}
+ hasBin: true
word-wrap@1.2.5:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
@@ -9527,24 +9523,12 @@ snapshots:
'@chevrotain/types@11.1.2': {}
- '@chromatic-com/storybook@5.2.1(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@chromatic-com/storybook@5.2.1(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
'@neoconfetti/react': 1.0.0
chromatic: 16.10.0
jsonfile: 6.2.1
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- strip-ansi: 7.2.0
- transitivePeerDependencies:
- - '@chromatic-com/cypress'
- - '@chromatic-com/playwright'
- - '@chromatic-com/vitest'
-
- '@chromatic-com/storybook@5.2.1(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
- dependencies:
- '@neoconfetti/react': 1.0.0
- chromatic: 16.10.0
- jsonfile: 6.2.1
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
strip-ansi: 7.2.0
transitivePeerDependencies:
- '@chromatic-com/cypress'
@@ -10285,19 +10269,11 @@ snapshots:
dependencies:
minipass: 7.1.3
- '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
dependencies:
glob: 13.0.6
react-docgen-typescript: 2.4.0(@typescript/typescript6@6.0.2)
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- optionalDependencies:
- typescript: '@typescript/typescript6@6.0.2'
-
- '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
- dependencies:
- glob: 13.0.6
- react-docgen-typescript: 2.4.0(@typescript/typescript6@6.0.2)
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
optionalDependencies:
typescript: '@typescript/typescript6@6.0.2'
@@ -10932,12 +10908,14 @@ snapshots:
'@oxc-parser/binding-win32-x64-msvc@0.142.0':
optional: true
- '@oxc-project/runtime@0.142.0': {}
+ '@oxc-project/runtime@0.143.0': {}
'@oxc-project/types@0.127.0': {}
'@oxc-project/types@0.142.0': {}
+ '@oxc-project/types@0.143.0': {}
+
'@oxc-resolver/binding-android-arm-eabi@11.24.2':
optional: true
@@ -10999,61 +10977,61 @@ snapshots:
'@oxc-resolver/binding-win32-x64-msvc@11.24.2':
optional: true
- '@oxfmt/binding-android-arm-eabi@0.61.0':
+ '@oxfmt/binding-android-arm-eabi@0.62.0':
optional: true
- '@oxfmt/binding-android-arm64@0.61.0':
+ '@oxfmt/binding-android-arm64@0.62.0':
optional: true
- '@oxfmt/binding-darwin-arm64@0.61.0':
+ '@oxfmt/binding-darwin-arm64@0.62.0':
optional: true
- '@oxfmt/binding-darwin-x64@0.61.0':
+ '@oxfmt/binding-darwin-x64@0.62.0':
optional: true
- '@oxfmt/binding-freebsd-x64@0.61.0':
+ '@oxfmt/binding-freebsd-x64@0.62.0':
optional: true
- '@oxfmt/binding-linux-arm-gnueabihf@0.61.0':
+ '@oxfmt/binding-linux-arm-gnueabihf@0.62.0':
optional: true
- '@oxfmt/binding-linux-arm-musleabihf@0.61.0':
+ '@oxfmt/binding-linux-arm-musleabihf@0.62.0':
optional: true
- '@oxfmt/binding-linux-arm64-gnu@0.61.0':
+ '@oxfmt/binding-linux-arm64-gnu@0.62.0':
optional: true
- '@oxfmt/binding-linux-arm64-musl@0.61.0':
+ '@oxfmt/binding-linux-arm64-musl@0.62.0':
optional: true
- '@oxfmt/binding-linux-ppc64-gnu@0.61.0':
+ '@oxfmt/binding-linux-ppc64-gnu@0.62.0':
optional: true
- '@oxfmt/binding-linux-riscv64-gnu@0.61.0':
+ '@oxfmt/binding-linux-riscv64-gnu@0.62.0':
optional: true
- '@oxfmt/binding-linux-riscv64-musl@0.61.0':
+ '@oxfmt/binding-linux-riscv64-musl@0.62.0':
optional: true
- '@oxfmt/binding-linux-s390x-gnu@0.61.0':
+ '@oxfmt/binding-linux-s390x-gnu@0.62.0':
optional: true
- '@oxfmt/binding-linux-x64-gnu@0.61.0':
+ '@oxfmt/binding-linux-x64-gnu@0.62.0':
optional: true
- '@oxfmt/binding-linux-x64-musl@0.61.0':
+ '@oxfmt/binding-linux-x64-musl@0.62.0':
optional: true
- '@oxfmt/binding-openharmony-arm64@0.61.0':
+ '@oxfmt/binding-openharmony-arm64@0.62.0':
optional: true
- '@oxfmt/binding-win32-arm64-msvc@0.61.0':
+ '@oxfmt/binding-win32-arm64-msvc@0.62.0':
optional: true
- '@oxfmt/binding-win32-ia32-msvc@0.61.0':
+ '@oxfmt/binding-win32-ia32-msvc@0.62.0':
optional: true
- '@oxfmt/binding-win32-x64-msvc@0.61.0':
+ '@oxfmt/binding-win32-x64-msvc@0.62.0':
optional: true
'@oxlint-tsgolint/darwin-arm64@7.0.2001':
@@ -11074,61 +11052,61 @@ snapshots:
'@oxlint-tsgolint/win32-x64@7.0.2001':
optional: true
- '@oxlint/binding-android-arm-eabi@1.76.0':
+ '@oxlint/binding-android-arm-eabi@1.77.0':
optional: true
- '@oxlint/binding-android-arm64@1.76.0':
+ '@oxlint/binding-android-arm64@1.77.0':
optional: true
- '@oxlint/binding-darwin-arm64@1.76.0':
+ '@oxlint/binding-darwin-arm64@1.77.0':
optional: true
- '@oxlint/binding-darwin-x64@1.76.0':
+ '@oxlint/binding-darwin-x64@1.77.0':
optional: true
- '@oxlint/binding-freebsd-x64@1.76.0':
+ '@oxlint/binding-freebsd-x64@1.77.0':
optional: true
- '@oxlint/binding-linux-arm-gnueabihf@1.76.0':
+ '@oxlint/binding-linux-arm-gnueabihf@1.77.0':
optional: true
- '@oxlint/binding-linux-arm-musleabihf@1.76.0':
+ '@oxlint/binding-linux-arm-musleabihf@1.77.0':
optional: true
- '@oxlint/binding-linux-arm64-gnu@1.76.0':
+ '@oxlint/binding-linux-arm64-gnu@1.77.0':
optional: true
- '@oxlint/binding-linux-arm64-musl@1.76.0':
+ '@oxlint/binding-linux-arm64-musl@1.77.0':
optional: true
- '@oxlint/binding-linux-ppc64-gnu@1.76.0':
+ '@oxlint/binding-linux-ppc64-gnu@1.77.0':
optional: true
- '@oxlint/binding-linux-riscv64-gnu@1.76.0':
+ '@oxlint/binding-linux-riscv64-gnu@1.77.0':
optional: true
- '@oxlint/binding-linux-riscv64-musl@1.76.0':
+ '@oxlint/binding-linux-riscv64-musl@1.77.0':
optional: true
- '@oxlint/binding-linux-s390x-gnu@1.76.0':
+ '@oxlint/binding-linux-s390x-gnu@1.77.0':
optional: true
- '@oxlint/binding-linux-x64-gnu@1.76.0':
+ '@oxlint/binding-linux-x64-gnu@1.77.0':
optional: true
- '@oxlint/binding-linux-x64-musl@1.76.0':
+ '@oxlint/binding-linux-x64-musl@1.77.0':
optional: true
- '@oxlint/binding-openharmony-arm64@1.76.0':
+ '@oxlint/binding-openharmony-arm64@1.77.0':
optional: true
- '@oxlint/binding-win32-arm64-msvc@1.76.0':
+ '@oxlint/binding-win32-arm64-msvc@1.77.0':
optional: true
- '@oxlint/binding-win32-ia32-msvc@1.76.0':
+ '@oxlint/binding-win32-ia32-msvc@1.77.0':
optional: true
- '@oxlint/binding-win32-x64-msvc@1.76.0':
+ '@oxlint/binding-win32-x64-msvc@1.77.0':
optional: true
'@oxlint/plugins@1.73.0': {}
@@ -11334,21 +11312,21 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
- '@storybook/addon-a11y@10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/addon-a11y@10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
'@storybook/global': 5.0.0
axe-core: 4.12.1
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- '@storybook/addon-docs@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/addon-docs@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
'@mdx-js/react': 3.1.1(@types/react@19.2.18)(react@19.2.8)
- '@storybook/csf-plugin': 10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ '@storybook/csf-plugin': 10.5.6(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
'@storybook/icons': 2.1.0(react@19.2.8)
- '@storybook/react-dom-shim': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ '@storybook/react-dom-shim': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
react: 19.2.8
react-dom: 19.2.8(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
ts-dedent: 2.3.0
optionalDependencies:
'@types/react': 19.2.18
@@ -11359,105 +11337,54 @@ snapshots:
- vite
- webpack
- '@storybook/addon-docs@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
- dependencies:
- '@mdx-js/react': 3.1.1(@types/react@19.2.18)(react@19.2.8)
- '@storybook/csf-plugin': 10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- '@storybook/icons': 2.1.0(react@19.2.8)
- '@storybook/react-dom-shim': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- ts-dedent: 2.3.0
- optionalDependencies:
- '@types/react': 19.2.18
- transitivePeerDependencies:
- - '@types/react-dom'
- - esbuild
- - rollup
- - vite
- - webpack
-
- '@storybook/addon-links@10.5.6(@types/react@19.2.18)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/addon-links@10.5.6(@types/react@19.2.18)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
'@storybook/global': 5.0.0
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
optionalDependencies:
'@types/react': 19.2.18
react: 19.2.8
- '@storybook/addon-links@10.5.6(@types/react@19.2.18)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/addon-onboarding@10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
- '@storybook/global': 5.0.0
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- optionalDependencies:
- '@types/react': 19.2.18
- react: 19.2.8
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- '@storybook/addon-onboarding@10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/addon-themes@10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
-
- '@storybook/addon-themes@10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
- dependencies:
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
ts-dedent: 2.3.0
- '@storybook/addon-themes@10.5.6(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
- dependencies:
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- ts-dedent: 2.3.0
-
- '@storybook/addon-vitest@10.5.6(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10)(@vitest/runner@4.1.10)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(vitest@4.1.10)':
+ '@storybook/addon-vitest@10.5.6(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10))(@vitest/runner@4.1.10)(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(vitest@4.1.10)':
dependencies:
'@storybook/global': 5.0.0
'@storybook/icons': 2.1.0(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
optionalDependencies:
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
'@vitest/runner': 4.1.10
- vitest: 4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
transitivePeerDependencies:
- react
- '@storybook/builder-vite@10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/builder-vite@10.5.6(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
- '@storybook/csf-plugin': 10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@storybook/csf-plugin': 10.5.6(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
ts-dedent: 2.3.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
transitivePeerDependencies:
- esbuild
- rollup
- webpack
- '@storybook/builder-vite@10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/csf-plugin@10.5.6(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
- '@storybook/csf-plugin': 10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- ts-dedent: 2.3.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- transitivePeerDependencies:
- - esbuild
- - rollup
- - webpack
-
- '@storybook/csf-plugin@10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
- dependencies:
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
unplugin: 2.3.11
optionalDependencies:
esbuild: 0.28.1
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
-
- '@storybook/csf-plugin@10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
- dependencies:
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- unplugin: 2.3.11
- optionalDependencies:
- esbuild: 0.28.1
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
'@storybook/global@5.0.0': {}
@@ -11465,18 +11392,18 @@ snapshots:
dependencies:
react: 19.2.8
- '@storybook/nextjs-vite@10.5.6(@babel/core@7.29.7(supports-color@11.0.0))(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
+ '@storybook/nextjs-vite@10.5.6(@babel/core@7.29.7(supports-color@11.0.0))(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
dependencies:
- '@storybook/builder-vite': 10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- '@storybook/react': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
- '@storybook/react-vite': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ '@storybook/builder-vite': 10.5.6(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ '@storybook/react': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ '@storybook/react-vite': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
next: 16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
react: 19.2.8
react-dom: 19.2.8(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
styled-jsx: 5.1.6(@babel/core@7.29.7(supports-color@11.0.0))(react@19.2.8)
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- vite-plugin-storybook-nextjs: 3.3.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite-plugin-storybook-nextjs: 3.3.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
optionalDependencies:
'@types/react': 19.2.18
'@types/react-dom': 19.2.4(@types/react@19.2.18)
@@ -11489,39 +11416,30 @@ snapshots:
- supports-color
- webpack
- '@storybook/react-dom-shim@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/react-dom-shim@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
dependencies:
react: 19.2.8
react-dom: 19.2.8(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
optionalDependencies:
'@types/react': 19.2.18
'@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@storybook/react-dom-shim@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))':
+ '@storybook/react-vite@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
dependencies:
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
-
- '@storybook/react-vite@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
- dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@rollup/pluginutils': 5.4.0
- '@storybook/builder-vite': 10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- '@storybook/react': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
+ '@storybook/builder-vite': 10.5.6(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ '@storybook/react': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
empathic: 2.0.1
magic-string: 0.30.21
react: 19.2.8
react-docgen: 8.0.3(supports-color@11.0.0)
react-dom: 19.2.8(react@19.2.8)
resolve: 1.22.12
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
tsconfig-paths: 4.2.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
optionalDependencies:
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
@@ -11532,56 +11450,15 @@ snapshots:
- supports-color
- webpack
- '@storybook/react-vite@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
- dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- '@rollup/pluginutils': 5.4.0
- '@storybook/builder-vite': 10.5.6(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- '@storybook/react': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)
- empathic: 2.0.1
- magic-string: 0.30.21
- react: 19.2.8
- react-docgen: 8.0.3(supports-color@11.0.0)
- react-dom: 19.2.8(react@19.2.8)
- resolve: 1.22.12
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- tsconfig-paths: 4.2.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- optionalDependencies:
- typescript: '@typescript/typescript6@6.0.2'
- transitivePeerDependencies:
- - '@types/react'
- - '@types/react-dom'
- - esbuild
- - rollup
- - supports-color
- - webpack
-
- '@storybook/react@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
+ '@storybook/react@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/react-dom-shim': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
+ '@storybook/react-dom-shim': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
react: 19.2.8
react-docgen: 8.0.3(supports-color@11.0.0)
react-docgen-typescript: 2.4.0(@typescript/typescript6@6.0.2)
react-dom: 19.2.8(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
- typescript: '@typescript/typescript6@6.0.2'
- transitivePeerDependencies:
- - supports-color
-
- '@storybook/react@10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(@typescript/typescript6@6.0.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0)':
- dependencies:
- '@storybook/global': 5.0.0
- '@storybook/react-dom-shim': 10.5.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))
- react: 19.2.8
- react-docgen: 8.0.3(supports-color@11.0.0)
- react-docgen-typescript: 2.4.0(@typescript/typescript6@6.0.2)
- react-dom: 19.2.8(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
optionalDependencies:
'@types/react': 19.2.18
'@types/react-dom': 19.2.4(@types/react@19.2.18)
@@ -11692,19 +11569,12 @@ snapshots:
postcss-selector-parser: 6.1.4
tailwindcss: 4.3.3
- '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
+ '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
dependencies:
'@tailwindcss/node': 4.3.3
'@tailwindcss/oxide': 4.3.3
tailwindcss: 4.3.3
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
-
- '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
- dependencies:
- '@tailwindcss/node': 4.3.3
- '@tailwindcss/oxide': 4.3.3
- tailwindcss: 4.3.3
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
'@tanstack/devtools-event-client@0.4.4': {}
@@ -12433,29 +12303,24 @@ snapshots:
'@vinext/types@1.0.0-beta.2': {}
- '@vitejs/devtools-kit@0.4.1(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5)':
+ '@vitejs/devtools-kit@0.4.1(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5)':
dependencies:
'@devframes/hub': 0.6.2(devframe@0.6.2(@typescript/typescript6@6.0.2)(srvx@0.12.5))
devframe: 0.6.2(@typescript/typescript6@6.0.2)(srvx@0.12.5)
mlly: 1.8.2
nostics: 1.2.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
transitivePeerDependencies:
- '@modelcontextprotocol/sdk'
- srvx
- typescript
- '@vitejs/plugin-react@6.0.5(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
+ '@vitejs/plugin-react@6.0.5(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
dependencies:
'@rolldown/pluginutils': 1.0.1
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- '@vitejs/plugin-react@6.0.5(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
- dependencies:
- '@rolldown/pluginutils': 1.0.1
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
-
- '@vitejs/plugin-rsc@0.5.33(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
+ '@vitejs/plugin-rsc@0.5.33(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
dependencies:
'@rolldown/pluginutils': 1.0.1
es-module-lexer: 2.3.1
@@ -12466,18 +12331,31 @@ snapshots:
srvx: 0.12.5
strip-literal: 3.1.0
turbo-stream: 3.2.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
optionalDependencies:
react-server-dom-webpack: 19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)':
+ '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)':
dependencies:
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
playwright: 1.62.1
tinyrainbow: 3.1.0
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ transitivePeerDependencies:
+ - bufferutil
+ - msw
+ - utf-8-validate
+ - vite
+
+ '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)':
+ dependencies:
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
+ playwright: 1.62.1
+ tinyrainbow: 3.1.0
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
transitivePeerDependencies:
- bufferutil
- msw
@@ -12485,79 +12363,40 @@ snapshots:
- vite
optional: true
- '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)':
- dependencies:
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
- playwright: 1.62.1
- tinyrainbow: 3.1.0
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
- transitivePeerDependencies:
- - bufferutil
- - msw
- - utf-8-validate
- - vite
- optional: true
-
- '@vitest/browser-playwright@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)':
- dependencies:
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- playwright: 1.62.1
- tinyrainbow: 3.1.0
- vitest: 4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
- transitivePeerDependencies:
- - bufferutil
- - msw
- - utf-8-validate
- - vite
-
- '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)':
+ '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)':
dependencies:
'@testing-library/dom': 10.4.1
'@testing-library/user-event': 14.6.3(@testing-library/dom@10.4.1)
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
transitivePeerDependencies:
- bufferutil
- msw
- utf-8-validate
- vite
- '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)':
+ '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)':
dependencies:
'@testing-library/dom': 10.4.1
'@testing-library/user-event': 14.6.3(@testing-library/dom@10.4.1)
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
transitivePeerDependencies:
- bufferutil
- msw
- utf-8-validate
- vite
- '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)':
- dependencies:
- '@testing-library/dom': 10.4.1
- '@testing-library/user-event': 14.6.3(@testing-library/dom@10.4.1)
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- vitest: 4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
- transitivePeerDependencies:
- - bufferutil
- - msw
- - utf-8-validate
- - vite
-
- '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)':
+ '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)':
dependencies:
'@blazediff/core': 1.9.1
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@vitest/utils': 4.1.10
magic-string: 0.30.21
pngjs: 7.0.0
sirv: 3.0.2
tinyrainbow: 3.1.0
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
ws: 8.21.2
transitivePeerDependencies:
- bufferutil
@@ -12565,33 +12404,16 @@ snapshots:
- utf-8-validate
- vite
- '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)':
+ '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)':
dependencies:
'@blazediff/core': 1.9.1
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
'@vitest/utils': 4.1.10
magic-string: 0.30.21
pngjs: 7.0.0
sirv: 3.0.2
tinyrainbow: 3.1.0
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
- ws: 8.21.2
- transitivePeerDependencies:
- - bufferutil
- - msw
- - utf-8-validate
- - vite
-
- '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)':
- dependencies:
- '@blazediff/core': 1.9.1
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- '@vitest/utils': 4.1.10
- magic-string: 0.30.21
- pngjs: 7.0.0
- sirv: 3.0.2
- tinyrainbow: 3.1.0
- vitest: 4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
ws: 8.21.2
transitivePeerDependencies:
- bufferutil
@@ -12611,9 +12433,9 @@ snapshots:
obug: 2.1.3
std-env: 4.1.0
tinyrainbow: 3.1.0
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
optionalDependencies:
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
'@vitest/expect@3.2.4':
dependencies:
@@ -12632,29 +12454,21 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))':
+ '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)'
-
- '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))':
- dependencies:
- '@vitest/spy': 4.1.10
- estree-walker: 3.0.3
- magic-string: 0.30.21
- optionalDependencies:
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)'
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -12694,24 +12508,24 @@ snapshots:
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
- '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)':
+ '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)':
dependencies:
- '@oxc-project/runtime': 0.142.0
- '@oxc-project/types': 0.142.0
+ '@oxc-project/runtime': 0.143.0
+ '@oxc-project/types': 0.143.0
lightningcss: 1.33.0
- postcss: 8.5.23
+ postcss: 8.5.25
yuku-codegen: 0.5.48
yuku-parser: 0.5.48
optionalDependencies:
'@types/node': 25.9.5
- '@voidzero-dev/vite-plus-darwin-arm64': 0.2.8
- '@voidzero-dev/vite-plus-darwin-x64': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.8
- '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.8
- '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.8
+ '@voidzero-dev/vite-plus-darwin-arm64': 0.2.9
+ '@voidzero-dev/vite-plus-darwin-x64': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.9
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.9
esbuild: 0.28.1
fsevents: 2.3.3
jiti: 2.7.0
@@ -12719,24 +12533,24 @@ snapshots:
typescript: '@typescript/typescript6@6.0.2'
yaml: 2.9.0
- '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)':
+ '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)':
dependencies:
- '@oxc-project/runtime': 0.142.0
- '@oxc-project/types': 0.142.0
+ '@oxc-project/runtime': 0.143.0
+ '@oxc-project/types': 0.143.0
lightningcss: 1.33.0
- postcss: 8.5.23
+ postcss: 8.5.25
yuku-codegen: 0.5.48
yuku-parser: 0.5.48
optionalDependencies:
'@types/node': 25.9.5
- '@voidzero-dev/vite-plus-darwin-arm64': 0.2.8
- '@voidzero-dev/vite-plus-darwin-x64': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.8
- '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.8
- '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.8
+ '@voidzero-dev/vite-plus-darwin-arm64': 0.2.9
+ '@voidzero-dev/vite-plus-darwin-x64': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.9
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.9
esbuild: 0.28.1
fsevents: 2.3.3
jiti: 2.7.0
@@ -12744,53 +12558,28 @@ snapshots:
typescript: 7.0.2
yaml: 2.9.0
- '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)':
- dependencies:
- '@oxc-project/runtime': 0.142.0
- '@oxc-project/types': 0.142.0
- lightningcss: 1.33.0
- postcss: 8.5.23
- yuku-codegen: 0.5.48
- yuku-parser: 0.5.48
- optionalDependencies:
- '@types/node': 26.0.1
- '@voidzero-dev/vite-plus-darwin-arm64': 0.2.8
- '@voidzero-dev/vite-plus-darwin-x64': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.8
- '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.8
- '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.8
- esbuild: 0.28.1
- fsevents: 2.3.3
- jiti: 2.7.0
- tsx: 4.23.8
- typescript: '@typescript/typescript6@6.0.2'
- yaml: 2.9.0
-
- '@voidzero-dev/vite-plus-darwin-arm64@0.2.8':
+ '@voidzero-dev/vite-plus-darwin-arm64@0.2.9':
optional: true
- '@voidzero-dev/vite-plus-darwin-x64@0.2.8':
+ '@voidzero-dev/vite-plus-darwin-x64@0.2.9':
optional: true
- '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.8':
+ '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.9':
optional: true
- '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.8':
+ '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.9':
optional: true
- '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.8':
+ '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.9':
optional: true
- '@voidzero-dev/vite-plus-linux-x64-musl@0.2.8':
+ '@voidzero-dev/vite-plus-linux-x64-musl@0.2.9':
optional: true
- '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.8':
+ '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.9':
optional: true
- '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.8':
+ '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.9':
optional: true
'@volar/language-core@2.4.28':
@@ -13794,7 +13583,7 @@ snapshots:
dependencies:
eslint: 10.8.0(jiti@2.7.0)(supports-color@10.2.2)
- eslint-plugin-better-tailwindcss@4.7.0(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(oxlint@1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(tailwindcss@4.3.3):
+ eslint-plugin-better-tailwindcss@4.7.0(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(oxlint@1.77.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(tailwindcss@4.3.3):
dependencies:
'@eslint/css-tree': 4.0.5
'@valibot/to-json-schema': 1.7.1(valibot@1.4.2(@typescript/typescript6@6.0.2))
@@ -13807,7 +13596,7 @@ snapshots:
valibot: 1.4.2(@typescript/typescript6@6.0.2)
optionalDependencies:
eslint: 10.8.0(jiti@2.7.0)(supports-color@10.2.2)
- oxlint: 1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ oxlint: 1.77.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
transitivePeerDependencies:
- '@eslint/css'
- typescript
@@ -14043,12 +13832,12 @@ snapshots:
regexp-ast-analysis: 0.7.1
scslre: 0.3.0
- eslint-plugin-storybook@10.5.6(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0):
+ eslint-plugin-storybook@10.5.6(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0):
dependencies:
'@typescript-eslint/types': 8.65.0
'@typescript-eslint/utils': 8.65.0(@typescript/typescript6@6.0.2)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@11.0.0)
eslint: 10.8.0(jiti@2.7.0)(supports-color@10.2.2)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
transitivePeerDependencies:
- supports-color
- typescript
@@ -15822,80 +15611,55 @@ snapshots:
'@oxc-resolver/binding-win32-arm64-msvc': 11.24.2
'@oxc-resolver/binding-win32-x64-msvc': 11.24.2
- oxfmt@0.61.0(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
+ oxfmt@0.62.0(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
dependencies:
tinypool: 2.1.0
optionalDependencies:
- '@oxfmt/binding-android-arm-eabi': 0.61.0
- '@oxfmt/binding-android-arm64': 0.61.0
- '@oxfmt/binding-darwin-arm64': 0.61.0
- '@oxfmt/binding-darwin-x64': 0.61.0
- '@oxfmt/binding-freebsd-x64': 0.61.0
- '@oxfmt/binding-linux-arm-gnueabihf': 0.61.0
- '@oxfmt/binding-linux-arm-musleabihf': 0.61.0
- '@oxfmt/binding-linux-arm64-gnu': 0.61.0
- '@oxfmt/binding-linux-arm64-musl': 0.61.0
- '@oxfmt/binding-linux-ppc64-gnu': 0.61.0
- '@oxfmt/binding-linux-riscv64-gnu': 0.61.0
- '@oxfmt/binding-linux-riscv64-musl': 0.61.0
- '@oxfmt/binding-linux-s390x-gnu': 0.61.0
- '@oxfmt/binding-linux-x64-gnu': 0.61.0
- '@oxfmt/binding-linux-x64-musl': 0.61.0
- '@oxfmt/binding-openharmony-arm64': 0.61.0
- '@oxfmt/binding-win32-arm64-msvc': 0.61.0
- '@oxfmt/binding-win32-ia32-msvc': 0.61.0
- '@oxfmt/binding-win32-x64-msvc': 0.61.0
- vite-plus: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ '@oxfmt/binding-android-arm-eabi': 0.62.0
+ '@oxfmt/binding-android-arm64': 0.62.0
+ '@oxfmt/binding-darwin-arm64': 0.62.0
+ '@oxfmt/binding-darwin-x64': 0.62.0
+ '@oxfmt/binding-freebsd-x64': 0.62.0
+ '@oxfmt/binding-linux-arm-gnueabihf': 0.62.0
+ '@oxfmt/binding-linux-arm-musleabihf': 0.62.0
+ '@oxfmt/binding-linux-arm64-gnu': 0.62.0
+ '@oxfmt/binding-linux-arm64-musl': 0.62.0
+ '@oxfmt/binding-linux-ppc64-gnu': 0.62.0
+ '@oxfmt/binding-linux-riscv64-gnu': 0.62.0
+ '@oxfmt/binding-linux-riscv64-musl': 0.62.0
+ '@oxfmt/binding-linux-s390x-gnu': 0.62.0
+ '@oxfmt/binding-linux-x64-gnu': 0.62.0
+ '@oxfmt/binding-linux-x64-musl': 0.62.0
+ '@oxfmt/binding-openharmony-arm64': 0.62.0
+ '@oxfmt/binding-win32-arm64-msvc': 0.62.0
+ '@oxfmt/binding-win32-ia32-msvc': 0.62.0
+ '@oxfmt/binding-win32-x64-msvc': 0.62.0
+ vite-plus: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
- oxfmt@0.61.0(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
+ oxfmt@0.62.0(vite-plus@0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)):
dependencies:
tinypool: 2.1.0
optionalDependencies:
- '@oxfmt/binding-android-arm-eabi': 0.61.0
- '@oxfmt/binding-android-arm64': 0.61.0
- '@oxfmt/binding-darwin-arm64': 0.61.0
- '@oxfmt/binding-darwin-x64': 0.61.0
- '@oxfmt/binding-freebsd-x64': 0.61.0
- '@oxfmt/binding-linux-arm-gnueabihf': 0.61.0
- '@oxfmt/binding-linux-arm-musleabihf': 0.61.0
- '@oxfmt/binding-linux-arm64-gnu': 0.61.0
- '@oxfmt/binding-linux-arm64-musl': 0.61.0
- '@oxfmt/binding-linux-ppc64-gnu': 0.61.0
- '@oxfmt/binding-linux-riscv64-gnu': 0.61.0
- '@oxfmt/binding-linux-riscv64-musl': 0.61.0
- '@oxfmt/binding-linux-s390x-gnu': 0.61.0
- '@oxfmt/binding-linux-x64-gnu': 0.61.0
- '@oxfmt/binding-linux-x64-musl': 0.61.0
- '@oxfmt/binding-openharmony-arm64': 0.61.0
- '@oxfmt/binding-win32-arm64-msvc': 0.61.0
- '@oxfmt/binding-win32-ia32-msvc': 0.61.0
- '@oxfmt/binding-win32-x64-msvc': 0.61.0
- vite-plus: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
-
- oxfmt@0.61.0(vite-plus@0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)):
- dependencies:
- tinypool: 2.1.0
- optionalDependencies:
- '@oxfmt/binding-android-arm-eabi': 0.61.0
- '@oxfmt/binding-android-arm64': 0.61.0
- '@oxfmt/binding-darwin-arm64': 0.61.0
- '@oxfmt/binding-darwin-x64': 0.61.0
- '@oxfmt/binding-freebsd-x64': 0.61.0
- '@oxfmt/binding-linux-arm-gnueabihf': 0.61.0
- '@oxfmt/binding-linux-arm-musleabihf': 0.61.0
- '@oxfmt/binding-linux-arm64-gnu': 0.61.0
- '@oxfmt/binding-linux-arm64-musl': 0.61.0
- '@oxfmt/binding-linux-ppc64-gnu': 0.61.0
- '@oxfmt/binding-linux-riscv64-gnu': 0.61.0
- '@oxfmt/binding-linux-riscv64-musl': 0.61.0
- '@oxfmt/binding-linux-s390x-gnu': 0.61.0
- '@oxfmt/binding-linux-x64-gnu': 0.61.0
- '@oxfmt/binding-linux-x64-musl': 0.61.0
- '@oxfmt/binding-openharmony-arm64': 0.61.0
- '@oxfmt/binding-win32-arm64-msvc': 0.61.0
- '@oxfmt/binding-win32-ia32-msvc': 0.61.0
- '@oxfmt/binding-win32-x64-msvc': 0.61.0
- vite-plus: 0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
+ '@oxfmt/binding-android-arm-eabi': 0.62.0
+ '@oxfmt/binding-android-arm64': 0.62.0
+ '@oxfmt/binding-darwin-arm64': 0.62.0
+ '@oxfmt/binding-darwin-x64': 0.62.0
+ '@oxfmt/binding-freebsd-x64': 0.62.0
+ '@oxfmt/binding-linux-arm-gnueabihf': 0.62.0
+ '@oxfmt/binding-linux-arm-musleabihf': 0.62.0
+ '@oxfmt/binding-linux-arm64-gnu': 0.62.0
+ '@oxfmt/binding-linux-arm64-musl': 0.62.0
+ '@oxfmt/binding-linux-ppc64-gnu': 0.62.0
+ '@oxfmt/binding-linux-riscv64-gnu': 0.62.0
+ '@oxfmt/binding-linux-riscv64-musl': 0.62.0
+ '@oxfmt/binding-linux-s390x-gnu': 0.62.0
+ '@oxfmt/binding-linux-x64-gnu': 0.62.0
+ '@oxfmt/binding-linux-x64-musl': 0.62.0
+ '@oxfmt/binding-openharmony-arm64': 0.62.0
+ '@oxfmt/binding-win32-arm64-msvc': 0.62.0
+ '@oxfmt/binding-win32-ia32-msvc': 0.62.0
+ '@oxfmt/binding-win32-x64-msvc': 0.62.0
+ vite-plus: 0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
oxlint-tsgolint@7.0.2001:
optionalDependencies:
@@ -15906,77 +15670,53 @@ snapshots:
'@oxlint-tsgolint/win32-arm64': 7.0.2001
'@oxlint-tsgolint/win32-x64': 7.0.2001
- oxlint@1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
+ oxlint@1.77.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
optionalDependencies:
- '@oxlint/binding-android-arm-eabi': 1.76.0
- '@oxlint/binding-android-arm64': 1.76.0
- '@oxlint/binding-darwin-arm64': 1.76.0
- '@oxlint/binding-darwin-x64': 1.76.0
- '@oxlint/binding-freebsd-x64': 1.76.0
- '@oxlint/binding-linux-arm-gnueabihf': 1.76.0
- '@oxlint/binding-linux-arm-musleabihf': 1.76.0
- '@oxlint/binding-linux-arm64-gnu': 1.76.0
- '@oxlint/binding-linux-arm64-musl': 1.76.0
- '@oxlint/binding-linux-ppc64-gnu': 1.76.0
- '@oxlint/binding-linux-riscv64-gnu': 1.76.0
- '@oxlint/binding-linux-riscv64-musl': 1.76.0
- '@oxlint/binding-linux-s390x-gnu': 1.76.0
- '@oxlint/binding-linux-x64-gnu': 1.76.0
- '@oxlint/binding-linux-x64-musl': 1.76.0
- '@oxlint/binding-openharmony-arm64': 1.76.0
- '@oxlint/binding-win32-arm64-msvc': 1.76.0
- '@oxlint/binding-win32-ia32-msvc': 1.76.0
- '@oxlint/binding-win32-x64-msvc': 1.76.0
+ '@oxlint/binding-android-arm-eabi': 1.77.0
+ '@oxlint/binding-android-arm64': 1.77.0
+ '@oxlint/binding-darwin-arm64': 1.77.0
+ '@oxlint/binding-darwin-x64': 1.77.0
+ '@oxlint/binding-freebsd-x64': 1.77.0
+ '@oxlint/binding-linux-arm-gnueabihf': 1.77.0
+ '@oxlint/binding-linux-arm-musleabihf': 1.77.0
+ '@oxlint/binding-linux-arm64-gnu': 1.77.0
+ '@oxlint/binding-linux-arm64-musl': 1.77.0
+ '@oxlint/binding-linux-ppc64-gnu': 1.77.0
+ '@oxlint/binding-linux-riscv64-gnu': 1.77.0
+ '@oxlint/binding-linux-riscv64-musl': 1.77.0
+ '@oxlint/binding-linux-s390x-gnu': 1.77.0
+ '@oxlint/binding-linux-x64-gnu': 1.77.0
+ '@oxlint/binding-linux-x64-musl': 1.77.0
+ '@oxlint/binding-openharmony-arm64': 1.77.0
+ '@oxlint/binding-win32-arm64-msvc': 1.77.0
+ '@oxlint/binding-win32-ia32-msvc': 1.77.0
+ '@oxlint/binding-win32-x64-msvc': 1.77.0
oxlint-tsgolint: 7.0.2001
- vite-plus: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ vite-plus: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
- oxlint@1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
+ oxlint@1.77.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)):
optionalDependencies:
- '@oxlint/binding-android-arm-eabi': 1.76.0
- '@oxlint/binding-android-arm64': 1.76.0
- '@oxlint/binding-darwin-arm64': 1.76.0
- '@oxlint/binding-darwin-x64': 1.76.0
- '@oxlint/binding-freebsd-x64': 1.76.0
- '@oxlint/binding-linux-arm-gnueabihf': 1.76.0
- '@oxlint/binding-linux-arm-musleabihf': 1.76.0
- '@oxlint/binding-linux-arm64-gnu': 1.76.0
- '@oxlint/binding-linux-arm64-musl': 1.76.0
- '@oxlint/binding-linux-ppc64-gnu': 1.76.0
- '@oxlint/binding-linux-riscv64-gnu': 1.76.0
- '@oxlint/binding-linux-riscv64-musl': 1.76.0
- '@oxlint/binding-linux-s390x-gnu': 1.76.0
- '@oxlint/binding-linux-x64-gnu': 1.76.0
- '@oxlint/binding-linux-x64-musl': 1.76.0
- '@oxlint/binding-openharmony-arm64': 1.76.0
- '@oxlint/binding-win32-arm64-msvc': 1.76.0
- '@oxlint/binding-win32-ia32-msvc': 1.76.0
- '@oxlint/binding-win32-x64-msvc': 1.76.0
+ '@oxlint/binding-android-arm-eabi': 1.77.0
+ '@oxlint/binding-android-arm64': 1.77.0
+ '@oxlint/binding-darwin-arm64': 1.77.0
+ '@oxlint/binding-darwin-x64': 1.77.0
+ '@oxlint/binding-freebsd-x64': 1.77.0
+ '@oxlint/binding-linux-arm-gnueabihf': 1.77.0
+ '@oxlint/binding-linux-arm-musleabihf': 1.77.0
+ '@oxlint/binding-linux-arm64-gnu': 1.77.0
+ '@oxlint/binding-linux-arm64-musl': 1.77.0
+ '@oxlint/binding-linux-ppc64-gnu': 1.77.0
+ '@oxlint/binding-linux-riscv64-gnu': 1.77.0
+ '@oxlint/binding-linux-riscv64-musl': 1.77.0
+ '@oxlint/binding-linux-s390x-gnu': 1.77.0
+ '@oxlint/binding-linux-x64-gnu': 1.77.0
+ '@oxlint/binding-linux-x64-musl': 1.77.0
+ '@oxlint/binding-openharmony-arm64': 1.77.0
+ '@oxlint/binding-win32-arm64-msvc': 1.77.0
+ '@oxlint/binding-win32-ia32-msvc': 1.77.0
+ '@oxlint/binding-win32-x64-msvc': 1.77.0
oxlint-tsgolint: 7.0.2001
- vite-plus: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
-
- oxlint@1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)):
- optionalDependencies:
- '@oxlint/binding-android-arm-eabi': 1.76.0
- '@oxlint/binding-android-arm64': 1.76.0
- '@oxlint/binding-darwin-arm64': 1.76.0
- '@oxlint/binding-darwin-x64': 1.76.0
- '@oxlint/binding-freebsd-x64': 1.76.0
- '@oxlint/binding-linux-arm-gnueabihf': 1.76.0
- '@oxlint/binding-linux-arm-musleabihf': 1.76.0
- '@oxlint/binding-linux-arm64-gnu': 1.76.0
- '@oxlint/binding-linux-arm64-musl': 1.76.0
- '@oxlint/binding-linux-ppc64-gnu': 1.76.0
- '@oxlint/binding-linux-riscv64-gnu': 1.76.0
- '@oxlint/binding-linux-riscv64-musl': 1.76.0
- '@oxlint/binding-linux-s390x-gnu': 1.76.0
- '@oxlint/binding-linux-x64-gnu': 1.76.0
- '@oxlint/binding-linux-x64-musl': 1.76.0
- '@oxlint/binding-openharmony-arm64': 1.76.0
- '@oxlint/binding-win32-arm64-msvc': 1.76.0
- '@oxlint/binding-win32-ia32-msvc': 1.76.0
- '@oxlint/binding-win32-x64-msvc': 1.76.0
- oxlint-tsgolint: 7.0.2001
- vite-plus: 0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
+ vite-plus: 0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
p-event@6.0.1:
dependencies:
@@ -16777,7 +16517,7 @@ snapshots:
stdin-discarder@0.3.2: {}
- storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
+ storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
dependencies:
'@storybook/global': 5.0.0
'@storybook/icons': 2.1.0(react@19.2.8)
@@ -16798,34 +16538,7 @@ snapshots:
ws: 8.21.2
optionalDependencies:
'@types/react': 19.2.18
- vite-plus: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
- transitivePeerDependencies:
- - bufferutil
- - react
- - utf-8-validate
-
- storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
- dependencies:
- '@storybook/global': 5.0.0
- '@storybook/icons': 2.1.0(react@19.2.8)
- '@testing-library/dom': 10.4.1
- '@testing-library/jest-dom': 6.9.1
- '@testing-library/user-event': 14.6.3(@testing-library/dom@10.4.1)
- '@vitest/expect': 3.2.4
- '@vitest/spy': 3.2.4
- '@webcontainer/env': 1.1.1
- esbuild: 0.28.1
- jsonc-parser: 3.3.1
- open: 10.2.0
- oxc-parser: 0.127.0
- oxc-resolver: 11.24.2
- recast: 0.23.12
- semver: 7.8.5
- use-sync-external-store: 1.6.0(react@19.2.8)
- ws: 8.21.2
- optionalDependencies:
- '@types/react': 19.2.18
- vite-plus: 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ vite-plus: 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
transitivePeerDependencies:
- bufferutil
- react
@@ -17273,23 +16986,23 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vinext@1.0.0-beta.4(@mdx-js/rollup@3.1.1(supports-color@11.0.0))(@vitejs/plugin-react@6.0.5(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(@vitejs/plugin-rsc@0.5.33(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8):
+ vinext@1.0.0-beta.4(@mdx-js/rollup@3.1.1(supports-color@11.0.0))(@vitejs/plugin-react@6.0.5(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(@vitejs/plugin-rsc@0.5.33(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8):
dependencies:
'@unpic/react': 1.0.2(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
'@vercel/og': 0.8.6
'@vinext/types': 1.0.0-beta.2
- '@vitejs/plugin-react': 6.0.5(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@vitejs/plugin-react': 6.0.5(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
image-size: 2.0.2
ipaddr.js: 2.4.0
magic-string: 0.30.21
react: 19.2.8
react-dom: 19.2.8(react@19.2.8)
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vite-plugin-commonjs: 0.10.4
web-vitals: 4.2.4
optionalDependencies:
'@mdx-js/rollup': 3.1.1(supports-color@11.0.0)
- '@vitejs/plugin-rsc': 0.5.33(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
+ '@vitejs/plugin-rsc': 0.5.33(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react-server-dom-webpack@19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
react-server-dom-webpack: 19.2.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
transitivePeerDependencies:
- next
@@ -17307,9 +17020,9 @@ snapshots:
fast-glob: 3.3.3
magic-string: 0.30.21
- vite-plugin-inspect@12.0.2(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5):
+ vite-plugin-inspect@12.0.2(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5):
dependencies:
- '@vitejs/devtools-kit': 0.4.1(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5)
+ '@vitejs/devtools-kit': 0.4.1(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(srvx@0.12.5)
ansis: 4.3.1
error-stack-parser-es: 2.0.1
obug: 2.1.3
@@ -17318,55 +17031,55 @@ snapshots:
perfect-debounce: 2.1.0
sirv: 3.0.2
unplugin-utils: 0.3.2
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
transitivePeerDependencies:
- '@modelcontextprotocol/sdk'
- srvx
- typescript
- vite-plugin-storybook-nextjs@3.3.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0):
+ vite-plugin-storybook-nextjs@3.3.0(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(next@16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(storybook@10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)))(supports-color@11.0.0):
dependencies:
'@next/env': 16.0.0
image-size: 2.0.2
magic-string: 0.30.21
module-alias: 2.3.4
next: 16.3.0(@babel/core@7.29.7(supports-color@11.0.0))(@playwright/test@1.62.1)(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ storybook: 10.5.6(@types/react@19.2.18)(react@19.2.8)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
ts-dedent: 2.3.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- vite-tsconfig-paths: 5.1.4(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(supports-color@11.0.0)
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite-tsconfig-paths: 5.1.4(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(supports-color@11.0.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0):
+ vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0):
dependencies:
- '@oxc-project/types': 0.142.0
+ '@oxc-project/types': 0.143.0
'@oxlint/plugins': 1.73.0
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
'@vitest/spy': 4.1.10
'@vitest/utils': 4.1.10
- '@voidzero-dev/vite-plus-core': 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
- oxfmt: 0.61.0(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- oxlint: 1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@voidzero-dev/vite-plus-core': 0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
+ oxfmt: 0.62.0(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ oxlint: 1.77.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
oxlint-tsgolint: 7.0.2001
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
optionalDependencies:
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
- '@voidzero-dev/vite-plus-darwin-arm64': 0.2.8
- '@voidzero-dev/vite-plus-darwin-x64': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.8
- '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.8
- '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.8
+ '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
+ '@voidzero-dev/vite-plus-darwin-arm64': 0.2.9
+ '@voidzero-dev/vite-plus-darwin-x64': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.9
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.9
transitivePeerDependencies:
- '@arethetypeswrong/core'
- '@edge-runtime/vm'
@@ -17398,34 +17111,34 @@ snapshots:
- vite
- yaml
- vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0):
+ vite-plus@0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0):
dependencies:
- '@oxc-project/types': 0.142.0
+ '@oxc-project/types': 0.143.0
'@oxlint/plugins': 1.73.0
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
'@vitest/spy': 4.1.10
'@vitest/utils': 4.1.10
- '@voidzero-dev/vite-plus-core': 0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)
- oxfmt: 0.61.0(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- oxlint: 1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@voidzero-dev/vite-plus-core': 0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
+ oxfmt: 0.62.0(vite-plus@0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
+ oxlint: 1.77.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.9(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
oxlint-tsgolint: 7.0.2001
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
optionalDependencies:
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
- '@voidzero-dev/vite-plus-darwin-arm64': 0.2.8
- '@voidzero-dev/vite-plus-darwin-x64': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.8
- '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.8
- '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.8
+ '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
+ '@voidzero-dev/vite-plus-darwin-arm64': 0.2.9
+ '@voidzero-dev/vite-plus-darwin-x64': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.9
+ '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.9
+ '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.9
+ '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.9
transitivePeerDependencies:
- '@arethetypeswrong/core'
- '@edge-runtime/vm'
@@ -17457,85 +17170,26 @@ snapshots:
- vite
- yaml
- vite-plus@0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0):
- dependencies:
- '@oxc-project/types': 0.142.0
- '@oxlint/plugins': 1.73.0
- '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
- '@vitest/pretty-format': 4.1.10
- '@vitest/runner': 4.1.10
- '@vitest/snapshot': 4.1.10
- '@vitest/spy': 4.1.10
- '@vitest/utils': 4.1.10
- '@voidzero-dev/vite-plus-core': 0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)
- oxfmt: 0.61.0(vite-plus@0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
- oxlint: 1.76.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.8(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(esbuild@0.28.1)(happy-dom@20.11.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
- oxlint-tsgolint: 7.0.2001
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1)
- optionalDependencies:
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
- '@voidzero-dev/vite-plus-darwin-arm64': 0.2.8
- '@voidzero-dev/vite-plus-darwin-x64': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.8
- '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.8
- '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.8
- '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.8
- transitivePeerDependencies:
- - '@arethetypeswrong/core'
- - '@edge-runtime/vm'
- - '@opentelemetry/api'
- - '@types/node'
- - '@vitejs/devtools'
- - '@vitest/coverage-istanbul'
- - '@vitest/coverage-v8'
- - '@vitest/ui'
- - bufferutil
- - esbuild
- - happy-dom
- - jiti
- - jsdom
- - less
- - msw
- - publint
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - svelte
- - terser
- - tsx
- - typescript
- - unplugin-unused
- - unrun
- - utf-8-validate
- - vite
- - yaml
-
- vite-tsconfig-paths@5.1.4(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(supports-color@11.0.0):
+ vite-tsconfig-paths@5.1.4(@typescript/typescript6@6.0.2)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(supports-color@11.0.0):
dependencies:
debug: 4.4.3(supports-color@11.0.0)
globrex: 0.1.2
tsconfck: 3.1.6(@typescript/typescript6@6.0.2)
optionalDependencies:
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
transitivePeerDependencies:
- supports-color
- typescript
- vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
+ vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)):
optionalDependencies:
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
vitest-browser-react@2.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10):
dependencies:
react: 19.2.8
react-dom: 19.2.8(react@19.2.8)
- vitest: 4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
optionalDependencies:
'@types/react': 19.2.18
'@types/react-dom': 19.2.4(@types/react@19.2.18)
@@ -17544,12 +17198,12 @@ snapshots:
dependencies:
cssfontparser: 1.2.1
moo-color: 1.0.3
- vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
+ vitest: 4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1)
- vitest@4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1):
+ vitest@4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -17566,21 +17220,21 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.9.5
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
- '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
+ '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
'@vitest/coverage-v8': 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10)
happy-dom: 20.11.1
transitivePeerDependencies:
- msw
- vitest@4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1):
+ vitest@4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(happy-dom@20.11.1):
dependencies:
'@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
+ '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10
@@ -17597,74 +17251,12 @@ snapshots:
tinyexec: 1.2.4
tinyglobby: 0.2.17
tinyrainbow: 3.1.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)'
+ vite: '@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0)'
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.9.5
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
- '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/coverage-v8': 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10)
- happy-dom: 20.11.1
- transitivePeerDependencies:
- - msw
-
- vitest@4.1.10(@types/node@25.9.5)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1):
- dependencies:
- '@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- '@vitest/pretty-format': 4.1.10
- '@vitest/runner': 4.1.10
- '@vitest/snapshot': 4.1.10
- '@vitest/spy': 4.1.10
- '@vitest/utils': 4.1.10
- es-module-lexer: 2.3.1
- expect-type: 1.4.0
- magic-string: 0.30.21
- obug: 2.1.3
- pathe: 2.0.3
- picomatch: 4.0.5
- std-env: 4.1.0
- tinybench: 2.9.0
- tinyexec: 1.2.4
- tinyglobby: 0.2.17
- tinyrainbow: 3.1.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- why-is-node-running: 2.3.0
- optionalDependencies:
- '@types/node': 25.9.5
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
- '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
- '@vitest/coverage-v8': 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10)
- happy-dom: 20.11.1
- transitivePeerDependencies:
- - msw
-
- vitest@4.1.10(@types/node@26.0.1)(@vitest/browser-playwright@4.1.10)(@vitest/browser-preview@4.1.10)(@vitest/coverage-v8@4.1.10)(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(happy-dom@20.11.1):
- dependencies:
- '@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))
- '@vitest/pretty-format': 4.1.10
- '@vitest/runner': 4.1.10
- '@vitest/snapshot': 4.1.10
- '@vitest/spy': 4.1.10
- '@vitest/utils': 4.1.10
- es-module-lexer: 2.3.1
- expect-type: 1.4.0
- magic-string: 0.30.21
- obug: 2.1.3
- pathe: 2.0.3
- picomatch: 4.0.5
- std-env: 4.1.0
- tinybench: 2.9.0
- tinyexec: 1.2.4
- tinyglobby: 0.2.17
- tinyrainbow: 3.1.0
- vite: '@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0)'
- why-is-node-running: 2.3.0
- optionalDependencies:
- '@types/node': 26.0.1
- '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
- '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.8(@types/node@26.0.1)(@typescript/typescript6@6.0.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(yaml@2.9.0))(vitest@4.1.10)
+ '@vitest/browser-playwright': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(playwright@1.62.1)(vitest@4.1.10)
+ '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.9(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.8)(typescript@7.0.2)(yaml@2.9.0))(vitest@4.1.10)
'@vitest/coverage-v8': 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10)
happy-dom: 20.11.1
transitivePeerDependencies:
@@ -17918,9 +17510,8 @@ time:
'@vitejs/plugin-react@6.0.5': '2026-07-30T10:12:02.149Z'
'@vitejs/plugin-rsc@0.5.33': '2026-08-06T03:18:45.128Z'
'@vitest/browser-playwright@4.1.10': '2026-07-06T06:44:37.071Z'
- '@vitest/browser@4.1.10': '2026-07-06T06:44:48.558Z'
'@vitest/coverage-v8@4.1.10': '2026-07-06T06:44:13.365Z'
- '@voidzero-dev/vite-plus-core@0.2.8': '2026-08-05T06:15:32.646Z'
+ '@voidzero-dev/vite-plus-core@0.2.9': '2026-08-12T03:03:49.378Z'
abcjs@6.6.4: '2026-07-10T20:54:47.768Z'
agentation@3.0.2: '2026-03-25T16:24:19.682Z'
ahooks@3.9.7: '2026-03-23T15:49:13.605Z'
@@ -18039,7 +17630,7 @@ time:
uuid@14.0.1: '2026-06-20T11:56:02.499Z'
vinext@1.0.0-beta.4: '2026-07-24T15:24:28.709Z'
vite-plugin-inspect@12.0.2: '2026-07-13T05:34:12.173Z'
- vite-plus@0.2.8: '2026-08-05T06:15:38.271Z'
+ vite-plus@0.2.9: '2026-08-12T03:03:54.271Z'
vitest-browser-react@2.2.0: '2026-04-05T06:56:34.635Z'
vitest-canvas-mock@1.1.4: '2026-03-24T14:42:39.285Z'
vitest@4.1.10: '2026-07-06T06:44:42.684Z'
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 3517b184dcb..c66263f30e0 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -3,9 +3,19 @@ catalogMode: prefer
dedupeDirectDeps: true
engineStrict: true
minimumReleaseAge: 0
-optimisticRepeatInstall: true
+minimumReleaseAgeExclude:
+ - vite-plus
+ - '@voidzero-dev/*'
+ - oxlint
+ - '@oxlint/*'
+ - oxlint-tsgolint
+ - '@oxlint-tsgolint/*'
+ - oxfmt
+ - '@oxfmt/*'
+ - vitest
+ - '@vitest/*'
verifyDepsBeforeRun: install
-resolutionMode: time-based
+optimisticRepeatInstall: true
allowBuilds:
'@parcel/watcher': false
canvas: false
@@ -13,6 +23,7 @@ allowBuilds:
sharp: false
autoInstallPeers: false
blockExoticSubdeps: true
+resolutionMode: time-based
shellEmulator: true
strictDepBuilds: true
trustPolicy: no-downgrade
@@ -45,7 +56,8 @@ overrides:
solid-js: 1.9.14
string-width: ~8.2.2
tar@<=7.5.15: ^7.5.16
- vite: npm:@voidzero-dev/vite-plus-core@0.2.8
+ vite: 'catalog:'
+ vitest: 'catalog:'
ws@>=8.0.0 <8.20.1: ^8.21.2
yaml@>=2.0.0 <2.8.3: 2.9.0
yauzl@<3.2.1: 3.2.1
@@ -132,7 +144,6 @@ catalog:
'@typescript/native': npm:typescript@7.0.2
'@vitejs/plugin-react': 6.0.5
'@vitejs/plugin-rsc': 0.5.33
- '@vitest/browser': 4.1.10
'@vitest/browser-playwright': 4.1.10
'@vitest/coverage-v8': 4.1.10
abcjs: 6.6.4
@@ -251,12 +262,19 @@ catalog:
use-context-selector: 2.0.0
uuid: 14.0.1
vinext: 1.0.0-beta.4
- vite: npm:@voidzero-dev/vite-plus-core@0.2.8
+ vite: npm:@voidzero-dev/vite-plus-core@0.2.9
vite-plugin-inspect: 12.0.2
- vite-plus: 0.2.8
+ vite-plus: 0.2.9
vitest: 4.1.10
vitest-browser-react: 2.2.0
vitest-canvas-mock: 1.1.4
zod: 4.4.3
zundo: 2.3.0
zustand: 5.0.14
+peerDependencyRules:
+ allowAny:
+ - vite
+ - vitest
+ allowedVersions:
+ vite: '*'
+ vitest: '*'
diff --git a/sdks/nodejs-client/src/client/base.test.ts b/sdks/nodejs-client/src/client/base.test.ts
index 0b8f679a0a7..1bf1c115280 100644
--- a/sdks/nodejs-client/src/client/base.test.ts
+++ b/sdks/nodejs-client/src/client/base.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createHttpClientWithSpies } from '../../tests/test-utils'
import { ValidationError } from '../errors/dify-error'
import { DifyClient } from './base'
diff --git a/sdks/nodejs-client/src/client/chat.test.ts b/sdks/nodejs-client/src/client/chat.test.ts
index 35a6da9f138..fe29b3d5ba8 100644
--- a/sdks/nodejs-client/src/client/chat.test.ts
+++ b/sdks/nodejs-client/src/client/chat.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createHttpClientWithSpies } from '../../tests/test-utils'
import { ValidationError } from '../errors/dify-error'
import { ChatClient } from './chat'
diff --git a/sdks/nodejs-client/src/client/completion.test.ts b/sdks/nodejs-client/src/client/completion.test.ts
index 37116baf886..6fbccc134a1 100644
--- a/sdks/nodejs-client/src/client/completion.test.ts
+++ b/sdks/nodejs-client/src/client/completion.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createHttpClientWithSpies } from '../../tests/test-utils'
import { CompletionClient } from './completion'
diff --git a/sdks/nodejs-client/src/client/knowledge-base.test.ts b/sdks/nodejs-client/src/client/knowledge-base.test.ts
index 60fd82285d2..a8a8bcb8c16 100644
--- a/sdks/nodejs-client/src/client/knowledge-base.test.ts
+++ b/sdks/nodejs-client/src/client/knowledge-base.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createHttpClientWithSpies } from '../../tests/test-utils'
import { FileUploadError, ValidationError } from '../errors/dify-error'
import { KnowledgeBaseClient } from './knowledge-base'
diff --git a/sdks/nodejs-client/src/client/validation.test.ts b/sdks/nodejs-client/src/client/validation.test.ts
index 49f4b2c532f..b85e2ca7180 100644
--- a/sdks/nodejs-client/src/client/validation.test.ts
+++ b/sdks/nodejs-client/src/client/validation.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
ensureNonEmptyString,
ensureOptionalBoolean,
diff --git a/sdks/nodejs-client/src/client/workflow.test.ts b/sdks/nodejs-client/src/client/workflow.test.ts
index c09f359c48e..227507ae26f 100644
--- a/sdks/nodejs-client/src/client/workflow.test.ts
+++ b/sdks/nodejs-client/src/client/workflow.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createHttpClientWithSpies } from '../../tests/test-utils'
import { WorkflowClient } from './workflow'
diff --git a/sdks/nodejs-client/src/client/workspace.test.ts b/sdks/nodejs-client/src/client/workspace.test.ts
index 15e32e1427e..598a16ec1c6 100644
--- a/sdks/nodejs-client/src/client/workspace.test.ts
+++ b/sdks/nodejs-client/src/client/workspace.test.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createHttpClientWithSpies } from '../../tests/test-utils'
import { WorkspaceClient } from './workspace'
diff --git a/sdks/nodejs-client/src/errors/dify-error.test.ts b/sdks/nodejs-client/src/errors/dify-error.test.ts
index 77981176a7d..60726606a9a 100644
--- a/sdks/nodejs-client/src/errors/dify-error.test.ts
+++ b/sdks/nodejs-client/src/errors/dify-error.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
APIError,
AuthenticationError,
diff --git a/sdks/nodejs-client/src/http/client.test.ts b/sdks/nodejs-client/src/http/client.test.ts
index 55d9b8b05da..d17562c6c0a 100644
--- a/sdks/nodejs-client/src/http/client.test.ts
+++ b/sdks/nodejs-client/src/http/client.test.ts
@@ -1,5 +1,5 @@
import { Readable, Stream } from 'node:stream'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import {
APIError,
AuthenticationError,
diff --git a/sdks/nodejs-client/src/http/form-data.test.ts b/sdks/nodejs-client/src/http/form-data.test.ts
index 0578a146ce7..4408a7dd34f 100644
--- a/sdks/nodejs-client/src/http/form-data.test.ts
+++ b/sdks/nodejs-client/src/http/form-data.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { getFormDataHeaders, isFormData } from './form-data'
describe('form-data helpers', () => {
diff --git a/sdks/nodejs-client/src/http/retry.test.ts b/sdks/nodejs-client/src/http/retry.test.ts
index 35ff9330791..3b7dec0a20d 100644
--- a/sdks/nodejs-client/src/http/retry.test.ts
+++ b/sdks/nodejs-client/src/http/retry.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { NetworkError, RateLimitError, TimeoutError } from '../errors/dify-error'
import { getRetryDelayMs, shouldRetry } from './retry'
diff --git a/sdks/nodejs-client/src/http/sse.test.ts b/sdks/nodejs-client/src/http/sse.test.ts
index dd62d67850d..bce014d30b9 100644
--- a/sdks/nodejs-client/src/http/sse.test.ts
+++ b/sdks/nodejs-client/src/http/sse.test.ts
@@ -1,5 +1,5 @@
import { Readable } from 'node:stream'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { createBinaryStream, createSseStream, parseSseStream } from './sse'
describe('sse parsing', () => {
diff --git a/sdks/nodejs-client/src/index.test.ts b/sdks/nodejs-client/src/index.test.ts
index e13db378947..a7e464409cc 100644
--- a/sdks/nodejs-client/src/index.test.ts
+++ b/sdks/nodejs-client/src/index.test.ts
@@ -1,5 +1,5 @@
import { Readable } from 'node:stream'
-import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BASE_URL, ChatClient, DifyClient, WorkflowClient, routes } from './index'
const stubFetch = (): ReturnType => {
diff --git a/sdks/nodejs-client/tests/http.integration.test.ts b/sdks/nodejs-client/tests/http.integration.test.ts
index 5d22afe168b..188f908e4e8 100644
--- a/sdks/nodejs-client/tests/http.integration.test.ts
+++ b/sdks/nodejs-client/tests/http.integration.test.ts
@@ -1,7 +1,7 @@
import type { AddressInfo } from 'node:net'
import { createServer } from 'node:http'
import { Readable } from 'node:stream'
-import { afterAll, beforeAll, describe, expect, it } from 'vitest'
+import { afterAll, beforeAll, describe, expect, it } from 'vite-plus/test'
import { HttpClient } from '../src/http/client'
const readBody = async (stream: NodeJS.ReadableStream): Promise => {
diff --git a/sdks/nodejs-client/tests/test-utils.ts b/sdks/nodejs-client/tests/test-utils.ts
index d59fa173ed2..eef57456b70 100644
--- a/sdks/nodejs-client/tests/test-utils.ts
+++ b/sdks/nodejs-client/tests/test-utils.ts
@@ -1,5 +1,5 @@
import type { DifyClientConfig } from '../src/types/common'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { HttpClient } from '../src/http/client'
type FetchMock = ReturnType
diff --git a/web/__mocks__/@tanstack/react-virtual.ts b/web/__mocks__/@tanstack/react-virtual.ts
index 14018c6d38a..00abeed0227 100644
--- a/web/__mocks__/@tanstack/react-virtual.ts
+++ b/web/__mocks__/@tanstack/react-virtual.ts
@@ -1,4 +1,4 @@
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
const mockVirtualizer = ({
count,
diff --git a/web/__tests__/base/chat-flow.test.tsx b/web/__tests__/base/chat-flow.test.tsx
index 5c1e8b62cc2..f82ffdad606 100644
--- a/web/__tests__/base/chat-flow.test.tsx
+++ b/web/__tests__/base/chat-flow.test.tsx
@@ -2,7 +2,7 @@ import type { RefObject } from 'react'
import type { ChatConfig } from '@/app/components/base/chat/types'
import type { AppConversationData, AppData, AppMeta, ConversationItem } from '@/models/share'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ChatWithHistory from '@/app/components/base/chat/chat-with-history'
import { useChatWithHistoryContext } from '@/app/components/base/chat/chat-with-history/context'
import { useChatWithHistory } from '@/app/components/base/chat/chat-with-history/hooks'
diff --git a/web/__tests__/base/file-uploader-flow.test.tsx b/web/__tests__/base/file-uploader-flow.test.tsx
index ba1d8232399..7c572ea4ca8 100644
--- a/web/__tests__/base/file-uploader-flow.test.tsx
+++ b/web/__tests__/base/file-uploader-flow.test.tsx
@@ -1,7 +1,7 @@
import type { FileUpload } from '@/app/components/base/features/types'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import FileUploaderInAttachmentWrapper from '@/app/components/base/file-uploader/file-uploader-in-attachment'
import FileUploaderInChatInput from '@/app/components/base/file-uploader/file-uploader-in-chat-input'
import { FileContextProvider } from '@/app/components/base/file-uploader/store'
diff --git a/web/__tests__/base/notion-page-selector-flow.test.tsx b/web/__tests__/base/notion-page-selector-flow.test.tsx
index 14a7ae9535d..02f0fdbdd0e 100644
--- a/web/__tests__/base/notion-page-selector-flow.test.tsx
+++ b/web/__tests__/base/notion-page-selector-flow.test.tsx
@@ -2,7 +2,7 @@ import type { DataSourceCredential } from '@/app/components/header/account-setti
import type { DataSourceNotionWorkspace } from '@/models/common'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import NotionPageSelector from '@/app/components/base/notion-page-selector/base'
import { CredentialTypeEnum } from '@/app/components/plugins/plugin-auth/types'
diff --git a/web/__tests__/proxy-frame-options.spec.ts b/web/__tests__/proxy-frame-options.spec.ts
index 83fec8f6002..ff65fe8eb68 100644
--- a/web/__tests__/proxy-frame-options.spec.ts
+++ b/web/__tests__/proxy-frame-options.spec.ts
@@ -1,4 +1,4 @@
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import { canEmbedPath, proxy } from '@/proxy'
const mockEnv = vi.hoisted(() => ({
diff --git a/web/app/(commonLayout)/__tests__/hydration-boundary.spec.tsx b/web/app/(commonLayout)/__tests__/hydration-boundary.spec.tsx
index 171068e32f9..1b0d8bb7335 100644
--- a/web/app/(commonLayout)/__tests__/hydration-boundary.spec.tsx
+++ b/web/app/(commonLayout)/__tests__/hydration-boundary.spec.tsx
@@ -2,7 +2,7 @@ import type { DehydratedState } from '@tanstack/react-query'
import type { ReactElement } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const mocks = vi.hoisted(() => ({
queryClient: undefined as QueryClient | undefined,
diff --git a/web/app/(commonLayout)/agents/__tests__/agents-access-guard.spec.tsx b/web/app/(commonLayout)/agents/__tests__/agents-access-guard.spec.tsx
index 62e844a2146..14feed6124e 100644
--- a/web/app/(commonLayout)/agents/__tests__/agents-access-guard.spec.tsx
+++ b/web/app/(commonLayout)/agents/__tests__/agents-access-guard.spec.tsx
@@ -1,5 +1,5 @@
import { screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import { AgentsAccessGuard } from '../agents-access-guard'
diff --git a/web/app/(commonLayout)/datasets/__tests__/document-title.spec.tsx b/web/app/(commonLayout)/datasets/__tests__/document-title.spec.tsx
index 48f932c5788..c410961fc21 100644
--- a/web/app/(commonLayout)/datasets/__tests__/document-title.spec.tsx
+++ b/web/app/(commonLayout)/datasets/__tests__/document-title.spec.tsx
@@ -1,4 +1,4 @@
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { generateMetadata as generateConnectMetadata } from '../connect/page'
import { generateMetadata as generatePipelineMetadata } from '../create-from-pipeline/page'
import { generateMetadata as generateCreateMetadata } from '../create/page'
diff --git a/web/app/(commonLayout)/datasets/layout.spec.tsx b/web/app/(commonLayout)/datasets/layout.spec.tsx
index a99a99f7fe8..4dc7bb758d9 100644
--- a/web/app/(commonLayout)/datasets/layout.spec.tsx
+++ b/web/app/(commonLayout)/datasets/layout.spec.tsx
@@ -1,5 +1,5 @@
import { screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import DatasetsLayout from './layout'
diff --git a/web/app/(commonLayout)/explore/installed/[appId]/__tests__/page.spec.tsx b/web/app/(commonLayout)/explore/installed/[appId]/__tests__/page.spec.tsx
index 575d302e414..c6499900211 100644
--- a/web/app/(commonLayout)/explore/installed/[appId]/__tests__/page.spec.tsx
+++ b/web/app/(commonLayout)/explore/installed/[appId]/__tests__/page.spec.tsx
@@ -1,4 +1,4 @@
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { redirect } from '@/next/navigation'
import InstalledApp from '../page'
diff --git a/web/app/(commonLayout)/plugins/page.spec.tsx b/web/app/(commonLayout)/plugins/page.spec.tsx
index 7db7b32af5c..cd56e8680d3 100644
--- a/web/app/(commonLayout)/plugins/page.spec.tsx
+++ b/web/app/(commonLayout)/plugins/page.spec.tsx
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const mocks = vi.hoisted(() => ({
fetch: vi.fn(),
diff --git a/web/app/__tests__/error.spec.tsx b/web/app/__tests__/error.spec.tsx
index 02f70aba22a..c4695ca3f86 100644
--- a/web/app/__tests__/error.spec.tsx
+++ b/web/app/__tests__/error.spec.tsx
@@ -1,7 +1,7 @@
import { QueryErrorResetBoundary } from '@tanstack/react-query'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import CommonLayoutError from '@/app/(commonLayout)/error'
import AppError from '@/app/error'
diff --git a/web/app/account/oauth/authorize/__tests__/page.spec.tsx b/web/app/account/oauth/authorize/__tests__/page.spec.tsx
index 9a461f4336b..e5d1194330c 100644
--- a/web/app/account/oauth/authorize/__tests__/page.spec.tsx
+++ b/web/app/account/oauth/authorize/__tests__/page.spec.tsx
@@ -1,7 +1,7 @@
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { seedSystemFeatures } from '@/test/console/query-data'
import OAuthAuthorize from '../page'
diff --git a/web/app/auth/refresh/__tests__/route.spec.ts b/web/app/auth/refresh/__tests__/route.spec.ts
index c7142936b51..1ab22451961 100644
--- a/web/app/auth/refresh/__tests__/route.spec.ts
+++ b/web/app/auth/refresh/__tests__/route.spec.ts
@@ -1,6 +1,6 @@
// @vitest-environment node
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const mocks = vi.hoisted(() => ({
basePath: '',
diff --git a/web/app/components/__tests__/external-attribution-recorder.spec.tsx b/web/app/components/__tests__/external-attribution-recorder.spec.tsx
index b035f70d91e..dc788282baf 100644
--- a/web/app/components/__tests__/external-attribution-recorder.spec.tsx
+++ b/web/app/components/__tests__/external-attribution-recorder.spec.tsx
@@ -1,7 +1,7 @@
import type { AnalyticsConsent } from '@/app/components/base/analytics-consent/consent-store'
import { act, render, waitFor } from '@testing-library/react'
import Cookies from 'js-cookie'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { setAnalyticsConsent } from '@/app/components/base/analytics-consent/consent-store'
import { useSearchParams } from '@/next/navigation'
import ExternalAttributionRecorder from '../external-attribution-recorder'
diff --git a/web/app/components/__tests__/oauth-registration-analytics.spec.tsx b/web/app/components/__tests__/oauth-registration-analytics.spec.tsx
index d0ffff7279a..eb8f7deacdf 100644
--- a/web/app/components/__tests__/oauth-registration-analytics.spec.tsx
+++ b/web/app/components/__tests__/oauth-registration-analytics.spec.tsx
@@ -1,6 +1,6 @@
import { render, waitFor } from '@testing-library/react'
import Cookies from 'js-cookie'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useSearchParams } from '@/next/navigation'
import { OAuthRegistrationAnalytics } from '../oauth-registration-analytics'
diff --git a/web/app/components/app/annotation/__tests__/filter.spec.tsx b/web/app/components/app/annotation/__tests__/filter.spec.tsx
index 46d391d429d..e23d18238a3 100644
--- a/web/app/components/app/annotation/__tests__/filter.spec.tsx
+++ b/web/app/components/app/annotation/__tests__/filter.spec.tsx
@@ -1,6 +1,6 @@
import type { AnnotationCountResponse } from '@dify/contracts/api/console/apps/types.gen'
import type { UseQueryResult } from '@tanstack/react-query'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { QueryParam } from '../filter'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen } from '@testing-library/react'
diff --git a/web/app/components/app/annotation/__tests__/index.spec.tsx b/web/app/components/app/annotation/__tests__/index.spec.tsx
index 951a76431ac..54b3dda2075 100644
--- a/web/app/components/app/annotation/__tests__/index.spec.tsx
+++ b/web/app/components/app/annotation/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
/* oxlint-disable typescript/no-explicit-any */
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { AnnotationItem } from '../type'
import type { App } from '@/types/app'
import { toast } from '@langgenius/dify-ui/toast'
diff --git a/web/app/components/app/annotation/add-annotation-modal/__tests__/index.spec.tsx b/web/app/components/app/annotation/add-annotation-modal/__tests__/index.spec.tsx
index 4976a4d36ed..7129cfcf885 100644
--- a/web/app/components/app/annotation/add-annotation-modal/__tests__/index.spec.tsx
+++ b/web/app/components/app/annotation/add-annotation-modal/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
import { useProviderContext } from '@/context/provider-context'
diff --git a/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/csv-downloader.spec.tsx b/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/csv-downloader.spec.tsx
index 1833965f2c6..a98a54e3c8a 100644
--- a/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/csv-downloader.spec.tsx
+++ b/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/csv-downloader.spec.tsx
@@ -1,5 +1,5 @@
/* oxlint-disable typescript/no-explicit-any */
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { Locale } from '@/i18n-config'
import { render, screen } from '@testing-library/react'
import * as React from 'react'
diff --git a/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/index.spec.tsx b/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/index.spec.tsx
index ae47856662e..521e54a1ed2 100644
--- a/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/index.spec.tsx
+++ b/web/app/components/app/annotation/batch-add-annotation-modal/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { IBatchModalProps } from '../index'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
diff --git a/web/app/components/app/annotation/edit-annotation-modal/edit-item/__tests__/index.spec.tsx b/web/app/components/app/annotation/edit-annotation-modal/edit-item/__tests__/index.spec.tsx
index 093fe367a1c..49a9fd2608f 100644
--- a/web/app/components/app/annotation/edit-annotation-modal/edit-item/__tests__/index.spec.tsx
+++ b/web/app/components/app/annotation/edit-annotation-modal/edit-item/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import EditItem, { EditItemType, EditTitle } from '../index'
const defaultProps = {
diff --git a/web/app/components/app/annotation/header-opts/__tests__/index.spec.tsx b/web/app/components/app/annotation/header-opts/__tests__/index.spec.tsx
index 7359be4e760..723399f2177 100644
--- a/web/app/components/app/annotation/header-opts/__tests__/index.spec.tsx
+++ b/web/app/components/app/annotation/header-opts/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
/* oxlint-disable typescript/no-explicit-any */
import type { ComponentProps } from 'react'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { AnnotationItemBasic } from '../../type'
import type { Locale } from '@/i18n-config'
import { act, render, screen, waitFor } from '@testing-library/react'
diff --git a/web/app/components/app/annotation/view-annotation-modal/__tests__/index.spec.tsx b/web/app/components/app/annotation/view-annotation-modal/__tests__/index.spec.tsx
index 4244b856d11..9b496487ffe 100644
--- a/web/app/components/app/annotation/view-annotation-modal/__tests__/index.spec.tsx
+++ b/web/app/components/app/annotation/view-annotation-modal/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { AnnotationItem, HitHistoryItem } from '../../type'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
diff --git a/web/app/components/app/configuration/config-var/__tests__/index.spec.tsx b/web/app/components/app/configuration/config-var/__tests__/index.spec.tsx
index 4fe7b3c9ee9..a6e3fdb3d0d 100644
--- a/web/app/components/app/configuration/config-var/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/config-var/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import type { ExternalDataTool } from '@/models/common'
import type { PromptVariable } from '@/models/debug'
import { act, fireEvent, screen, waitFor, within } from '@testing-library/react'
import * as React from 'react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { toast } from '@/app/components/app/configuration/toast'
import DebugConfigurationContext from '@/context/debug-configuration'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
diff --git a/web/app/components/app/configuration/config-vision/__tests__/index.spec.tsx b/web/app/components/app/configuration/config-vision/__tests__/index.spec.tsx
index 737b42212e0..3e74f8ade1e 100644
--- a/web/app/components/app/configuration/config-vision/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/config-vision/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
/* oxlint-disable typescript/no-explicit-any */
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { FeatureStoreState } from '@/app/components/base/features/store'
import type { FileUpload } from '@/app/components/base/features/types'
import { fireEvent, render, screen } from '@testing-library/react'
diff --git a/web/app/components/app/configuration/config/agent/agent-tools/__tests__/index.spec.tsx b/web/app/components/app/configuration/config/agent/agent-tools/__tests__/index.spec.tsx
index 757800df08f..1865f4c3288 100644
--- a/web/app/components/app/configuration/config/agent/agent-tools/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/config/agent/agent-tools/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
/* oxlint-disable typescript/no-explicit-any */
import type { PropsWithChildren } from 'react'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type SettingBuiltInToolType from '../setting-built-in-tool'
import type { Tool, ToolParameter } from '@/app/components/tools/types'
import type ToolPickerType from '@/app/components/workflow/block-selector/tool-picker'
diff --git a/web/app/components/app/configuration/config/automatic/__tests__/use-gen-data.spec.ts b/web/app/components/app/configuration/config/automatic/__tests__/use-gen-data.spec.ts
index 374a75cd7bd..877c663645e 100644
--- a/web/app/components/app/configuration/config/automatic/__tests__/use-gen-data.spec.ts
+++ b/web/app/components/app/configuration/config/automatic/__tests__/use-gen-data.spec.ts
@@ -1,6 +1,6 @@
import type { GenRes } from '@/service/debug'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it } from 'vitest'
+import { beforeEach, describe, expect, it } from 'vite-plus/test'
import useGenData from '../use-gen-data'
describe('useGenData', () => {
diff --git a/web/app/components/app/configuration/dataset-config/card-item/__tests__/index.spec.tsx b/web/app/components/app/configuration/dataset-config/card-item/__tests__/index.spec.tsx
index c49e88fb620..acb21be3f6a 100644
--- a/web/app/components/app/configuration/dataset-config/card-item/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/dataset-config/card-item/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import type * as React from 'react'
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import type { IndexingType } from '@/app/components/datasets/create/step-two'
import type { DataSet } from '@/models/datasets'
import type { RetrievalConfig } from '@/types/app'
diff --git a/web/app/components/app/configuration/dataset-config/params-config/__tests__/config-content.spec.tsx b/web/app/components/app/configuration/dataset-config/params-config/__tests__/config-content.spec.tsx
index dbfeda05ca4..a264c61a5c2 100644
--- a/web/app/components/app/configuration/dataset-config/params-config/__tests__/config-content.spec.tsx
+++ b/web/app/components/app/configuration/dataset-config/params-config/__tests__/config-content.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction, MockInstance } from 'vitest'
+import type { MockedFunction, MockInstance } from 'vite-plus/test'
import type { IndexingType } from '@/app/components/datasets/create/step-two'
import type { DataSet } from '@/models/datasets'
import type { DatasetConfigs } from '@/models/debug'
diff --git a/web/app/components/app/configuration/dataset-config/params-config/__tests__/index.spec.tsx b/web/app/components/app/configuration/dataset-config/params-config/__tests__/index.spec.tsx
index c7dfea71013..38209b8fd53 100644
--- a/web/app/components/app/configuration/dataset-config/params-config/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/dataset-config/params-config/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction, MockInstance } from 'vitest'
+import type { MockedFunction, MockInstance } from 'vite-plus/test'
import type { DatasetConfigs } from '@/models/debug'
import { render, screen, waitFor, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
diff --git a/web/app/components/app/configuration/dataset-config/select-dataset/__tests__/index.spec.tsx b/web/app/components/app/configuration/dataset-config/select-dataset/__tests__/index.spec.tsx
index c4b627ab9cb..0122aea460c 100644
--- a/web/app/components/app/configuration/dataset-config/select-dataset/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/dataset-config/select-dataset/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@
import type { DataSet } from '@/models/datasets'
import { act, fireEvent, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { IndexingType } from '@/app/components/datasets/create/step-two'
import { DatasetPermission } from '@/models/datasets'
import { render } from '@/test/console/render'
diff --git a/web/app/components/app/configuration/dataset-config/settings-modal/__tests__/index.spec.tsx b/web/app/components/app/configuration/dataset-config/settings-modal/__tests__/index.spec.tsx
index 348a961d71e..6b3363366eb 100644
--- a/web/app/components/app/configuration/dataset-config/settings-modal/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/dataset-config/settings-modal/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import type { DataSet } from '@/models/datasets'
import type { RetrievalConfig } from '@/types/app'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
diff --git a/web/app/components/app/configuration/prompt-value-panel/__tests__/index.spec.tsx b/web/app/components/app/configuration/prompt-value-panel/__tests__/index.spec.tsx
index 303781a233d..f515d3d3e0e 100644
--- a/web/app/components/app/configuration/prompt-value-panel/__tests__/index.spec.tsx
+++ b/web/app/components/app/configuration/prompt-value-panel/__tests__/index.spec.tsx
@@ -3,7 +3,7 @@ import type { IPromptValuePanelProps } from '../index'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ConfigContext from '@/context/debug-configuration'
import { AppModeEnum, ModelModeType, Resolution } from '@/types/app'
import PromptValuePanel from '../index'
diff --git a/web/app/components/app/create-app-modal/__tests__/index.spec.tsx b/web/app/components/app/create-app-modal/__tests__/index.spec.tsx
index ab61f576990..b8beadb4232 100644
--- a/web/app/components/app/create-app-modal/__tests__/index.spec.tsx
+++ b/web/app/components/app/create-app-modal/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { App } from '@/types/app'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useProviderContext } from '@/context/provider-context'
import { useRouter } from '@/next/navigation'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
diff --git a/web/app/components/app/deploy/hooks/__tests__/use-infinite-scroll.spec.ts b/web/app/components/app/deploy/hooks/__tests__/use-infinite-scroll.spec.ts
index 6618d17d748..c0a06a34d25 100644
--- a/web/app/components/app/deploy/hooks/__tests__/use-infinite-scroll.spec.ts
+++ b/web/app/components/app/deploy/hooks/__tests__/use-infinite-scroll.spec.ts
@@ -1,7 +1,7 @@
import type { InfiniteScrollQuery } from '../use-infinite-scroll'
import { act, render } from '@testing-library/react'
import { createElement } from 'react'
-import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterAll, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useInfiniteScroll } from '../use-infinite-scroll'
let intersectionCallback: IntersectionObserverCallback | undefined
diff --git a/web/app/components/app/in-site-message/__tests__/index.spec.tsx b/web/app/components/app/in-site-message/__tests__/index.spec.tsx
index 983f62aeb0a..b823c389fb5 100644
--- a/web/app/components/app/in-site-message/__tests__/index.spec.tsx
+++ b/web/app/components/app/in-site-message/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { ComponentProps } from 'react'
import type { InSiteMessageActionItem } from '../index'
import { fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import InSiteMessage from '../index'
vi.mock('@/app/components/base/amplitude', () => ({
diff --git a/web/app/components/app/overview/apikey-info-panel/__tests__/test-utils.tsx b/web/app/components/app/overview/apikey-info-panel/__tests__/test-utils.tsx
index 5b6156a642c..04b2cb7b1eb 100644
--- a/web/app/components/app/overview/apikey-info-panel/__tests__/test-utils.tsx
+++ b/web/app/components/app/overview/apikey-info-panel/__tests__/test-utils.tsx
@@ -1,6 +1,6 @@
import type { DeploymentEdition } from '@dify/contracts/api/console/system-features/types.gen'
import type { RenderOptions } from '@testing-library/react'
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import { fireEvent, screen } from '@testing-library/react'
import { noop } from 'es-toolkit/function'
import { defaultPlan } from '@/app/components/billing/config'
diff --git a/web/app/components/app/overview/embedded/__tests__/index.spec.tsx b/web/app/components/app/overview/embedded/__tests__/index.spec.tsx
index 4e9e2a9e2b5..ccdb4dccd59 100644
--- a/web/app/components/app/overview/embedded/__tests__/index.spec.tsx
+++ b/web/app/components/app/overview/embedded/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import userEvent from '@testing-library/user-event'
import copy from 'copy-to-clipboard'
import * as React from 'react'
import { act } from 'react'
-import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from 'vitest'
+import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import Embedded from '../index'
diff --git a/web/app/components/app/text-generate/saved-items/__tests__/index.spec.tsx b/web/app/components/app/text-generate/saved-items/__tests__/index.spec.tsx
index c878d6aa533..d48f2ea8905 100644
--- a/web/app/components/app/text-generate/saved-items/__tests__/index.spec.tsx
+++ b/web/app/components/app/text-generate/saved-items/__tests__/index.spec.tsx
@@ -3,7 +3,7 @@ import { toast } from '@langgenius/dify-ui/toast'
import { fireEvent, render, screen } from '@testing-library/react'
import copy from 'copy-to-clipboard'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import SavedItems from '../index'
vi.mock('copy-to-clipboard', () => ({
diff --git a/web/app/components/app/text-generate/saved-items/no-data/__tests__/index.spec.tsx b/web/app/components/app/text-generate/saved-items/no-data/__tests__/index.spec.tsx
index 02a6f3775fb..b97b2d28772 100644
--- a/web/app/components/app/text-generate/saved-items/no-data/__tests__/index.spec.tsx
+++ b/web/app/components/app/text-generate/saved-items/no-data/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import NoData from '../index'
describe('NoData', () => {
diff --git a/web/app/components/app/workflow-log/__tests__/index.spec.tsx b/web/app/components/app/workflow-log/__tests__/index.spec.tsx
index 7d94eb713ca..748937e571e 100644
--- a/web/app/components/app/workflow-log/__tests__/index.spec.tsx
+++ b/web/app/components/app/workflow-log/__tests__/index.spec.tsx
@@ -14,7 +14,7 @@ import type { UseQueryResult } from '@tanstack/react-query'
* - detail.spec.tsx
* - trigger-by-display.spec.tsx
*/
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import type { CloudSandboxPlanState } from '../../log/cloud-sandbox-retention'
import type { ILogsProps } from '../index'
import type { WorkflowAppLogDetail, WorkflowLogsResponse, WorkflowRunDetail } from '@/models/log'
diff --git a/web/app/components/app/workflow-log/__tests__/trigger-by-display.spec.tsx b/web/app/components/app/workflow-log/__tests__/trigger-by-display.spec.tsx
index c69967dca49..8b64d798b33 100644
--- a/web/app/components/app/workflow-log/__tests__/trigger-by-display.spec.tsx
+++ b/web/app/components/app/workflow-log/__tests__/trigger-by-display.spec.tsx
@@ -1,6 +1,6 @@
import type { TriggerMetadata } from '@/models/log'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { WorkflowRunTriggeredFrom } from '@/models/log'
import { Theme } from '@/types/app'
import TriggerByDisplay from '../trigger-by-display'
diff --git a/web/app/components/apps/__tests__/app-card.spec.tsx b/web/app/components/apps/__tests__/app-card.spec.tsx
index b3ed64d22bc..af53580c464 100644
--- a/web/app/components/apps/__tests__/app-card.spec.tsx
+++ b/web/app/components/apps/__tests__/app-card.spec.tsx
@@ -26,14 +26,13 @@ const mockWorkflowAppDslExport = vi.hoisted(() => ({
isExporting: false,
}))
const mockCopyApp = vi.hoisted(() =>
- vi.fn(
- (_variables: unknown): Promise =>
- Promise.resolve({
- id: 'new-app-id',
- mode: 'chat',
- maintainer: 'user-1',
- permission_keys: [],
- }),
+ vi.fn((_variables: unknown): Promise =>
+ Promise.resolve({
+ id: 'new-app-id',
+ mode: 'chat',
+ maintainer: 'user-1',
+ permission_keys: [],
+ }),
),
)
const mockUpdateAppMutation = vi.hoisted(() =>
diff --git a/web/app/components/base/agent-log-modal/__tests__/tool-call.spec.tsx b/web/app/components/base/agent-log-modal/__tests__/tool-call.spec.tsx
index 1485513f883..4dc0d91ce60 100644
--- a/web/app/components/base/agent-log-modal/__tests__/tool-call.spec.tsx
+++ b/web/app/components/base/agent-log-modal/__tests__/tool-call.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen } from '@testing-library/react'
import * as React from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import { useLocale } from '@/context/i18n'
import ToolCallItem from '../tool-call'
diff --git a/web/app/components/base/agent-log-modal/__tests__/tracing.spec.tsx b/web/app/components/base/agent-log-modal/__tests__/tracing.spec.tsx
index bdf8d8cb2d0..488d702be3f 100644
--- a/web/app/components/base/agent-log-modal/__tests__/tracing.spec.tsx
+++ b/web/app/components/base/agent-log-modal/__tests__/tracing.spec.tsx
@@ -1,6 +1,6 @@
import type { AgentIteration } from '@/models/log'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import TracingPanel from '../tracing'
vi.mock('@/app/components/workflow/block-icon', () => ({
diff --git a/web/app/components/base/amplitude/__tests__/AmplitudeProvider.spec.tsx b/web/app/components/base/amplitude/__tests__/AmplitudeProvider.spec.tsx
index 67a2cdaa6db..42043d14b64 100644
--- a/web/app/components/base/amplitude/__tests__/AmplitudeProvider.spec.tsx
+++ b/web/app/components/base/amplitude/__tests__/AmplitudeProvider.spec.tsx
@@ -1,7 +1,7 @@
import * as amplitude from '@amplitude/analytics-browser'
import { sessionReplayPlugin } from '@amplitude/plugin-session-replay-browser'
import { render } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const mockConfig = vi.hoisted(() => ({
AMPLITUDE_API_KEY: 'test-api-key',
diff --git a/web/app/components/base/amplitude/__tests__/init.spec.ts b/web/app/components/base/amplitude/__tests__/init.spec.ts
index 4912cadb1ad..879497059e8 100644
--- a/web/app/components/base/amplitude/__tests__/init.spec.ts
+++ b/web/app/components/base/amplitude/__tests__/init.spec.ts
@@ -1,6 +1,6 @@
import * as amplitude from '@amplitude/analytics-browser'
import { sessionReplayPlugin } from '@amplitude/plugin-session-replay-browser'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const mockConfig = vi.hoisted(() => ({
AMPLITUDE_API_KEY: 'test-api-key',
diff --git a/web/app/components/base/carousel/__tests__/index.spec.tsx b/web/app/components/base/carousel/__tests__/index.spec.tsx
index bebbb9e80c4..ac3a3b77f2d 100644
--- a/web/app/components/base/carousel/__tests__/index.spec.tsx
+++ b/web/app/components/base/carousel/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { act, fireEvent, render, screen } from '@testing-library/react'
import useEmblaCarousel from 'embla-carousel-react'
import { Carousel, useCarousel } from '../index'
diff --git a/web/app/components/base/chat/chat-with-history/header/__tests__/index.spec.tsx b/web/app/components/base/chat/chat-with-history/header/__tests__/index.spec.tsx
index 752b0dead51..ee1253144ff 100644
--- a/web/app/components/base/chat/chat-with-history/header/__tests__/index.spec.tsx
+++ b/web/app/components/base/chat/chat-with-history/header/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { ChatWithHistoryContextValue } from '../../context'
import type { AppData, ConversationItem } from '@/models/share'
import { act, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useChatWithHistoryContext } from '../../context'
import Header from '../index'
diff --git a/web/app/components/base/chat/chat-with-history/header/__tests__/mobile-operation-dropdown.spec.tsx b/web/app/components/base/chat/chat-with-history/header/__tests__/mobile-operation-dropdown.spec.tsx
index d55e07b6b16..e8db8ed92cf 100644
--- a/web/app/components/base/chat/chat-with-history/header/__tests__/mobile-operation-dropdown.spec.tsx
+++ b/web/app/components/base/chat/chat-with-history/header/__tests__/mobile-operation-dropdown.spec.tsx
@@ -1,7 +1,7 @@
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import MobileOperationDropdown from '../mobile-operation-dropdown'
describe('MobileOperationDropdown Component', () => {
diff --git a/web/app/components/base/chat/chat-with-history/header/__tests__/operation.spec.tsx b/web/app/components/base/chat/chat-with-history/header/__tests__/operation.spec.tsx
index fa89be3fd07..935ee4bd9a6 100644
--- a/web/app/components/base/chat/chat-with-history/header/__tests__/operation.spec.tsx
+++ b/web/app/components/base/chat/chat-with-history/header/__tests__/operation.spec.tsx
@@ -1,7 +1,7 @@
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Operation from '../operation'
describe('Operation Component', () => {
diff --git a/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/content.spec.tsx b/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/content.spec.tsx
index 5d13bc08b0c..3ed4ed8b1f2 100644
--- a/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/content.spec.tsx
+++ b/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/content.spec.tsx
@@ -2,7 +2,7 @@ import type { ChatWithHistoryContextValue } from '../../context'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import InputsFormContent from '../content'
diff --git a/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/index.spec.tsx b/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/index.spec.tsx
index 2c2c000043a..4666145f1dd 100644
--- a/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/index.spec.tsx
+++ b/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { ChatWithHistoryContextValue } from '../../context'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import { useChatWithHistoryContext } from '../../context'
import InputsFormNode from '../index'
diff --git a/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/view-form-dropdown.spec.tsx b/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/view-form-dropdown.spec.tsx
index eb99b4af5dc..f610c4b8717 100644
--- a/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/view-form-dropdown.spec.tsx
+++ b/web/app/components/base/chat/chat-with-history/inputs-form/__tests__/view-form-dropdown.spec.tsx
@@ -2,7 +2,7 @@ import type { ChatWithHistoryContextValue } from '../../context'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import { useChatWithHistoryContext } from '../../context'
import ViewFormDropdown from '../view-form-dropdown'
diff --git a/web/app/components/base/chat/chat-with-history/sidebar/__tests__/operation.spec.tsx b/web/app/components/base/chat/chat-with-history/sidebar/__tests__/operation.spec.tsx
index 7e46c9fab03..fe4f65c031f 100644
--- a/web/app/components/base/chat/chat-with-history/sidebar/__tests__/operation.spec.tsx
+++ b/web/app/components/base/chat/chat-with-history/sidebar/__tests__/operation.spec.tsx
@@ -1,7 +1,7 @@
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Operation from '../operation'
describe('Operation', () => {
diff --git a/web/app/components/base/chat/chat/__tests__/context.spec.tsx b/web/app/components/base/chat/chat/__tests__/context.spec.tsx
index 0d4ff025a12..9076e80ec82 100644
--- a/web/app/components/base/chat/chat/__tests__/context.spec.tsx
+++ b/web/app/components/base/chat/chat/__tests__/context.spec.tsx
@@ -2,7 +2,7 @@ import type { ChatItem } from '../../types'
import type { ChatContextValue } from '../context'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useChatContext } from '../context'
import { ChatContextProvider } from '../context-provider'
diff --git a/web/app/components/base/chat/chat/__tests__/use-chat-layout.spec.tsx b/web/app/components/base/chat/chat/__tests__/use-chat-layout.spec.tsx
index e4b896b2572..566a12e0813 100644
--- a/web/app/components/base/chat/chat/__tests__/use-chat-layout.spec.tsx
+++ b/web/app/components/base/chat/chat/__tests__/use-chat-layout.spec.tsx
@@ -1,6 +1,6 @@
import type { ChatItem } from '../../types'
import { act, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useChatLayout } from '../use-chat-layout'
type ResizeCallback = (entries: ResizeObserverEntry[], observer: ResizeObserver) => void
diff --git a/web/app/components/base/chat/chat/answer/__tests__/agent-roster-response-content.spec.tsx b/web/app/components/base/chat/chat/answer/__tests__/agent-roster-response-content.spec.tsx
index 681516520b5..f78804b1013 100644
--- a/web/app/components/base/chat/chat/answer/__tests__/agent-roster-response-content.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/__tests__/agent-roster-response-content.spec.tsx
@@ -1,7 +1,7 @@
import type { ChatItem } from '../../../types'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { AgentRosterResponseContent } from '../agent-roster-response-content'
vi.mock('react-i18next', async () => {
diff --git a/web/app/components/base/chat/chat/answer/__tests__/reasoning-panel.spec.tsx b/web/app/components/base/chat/chat/answer/__tests__/reasoning-panel.spec.tsx
index 1f47d479090..b900671aa3e 100644
--- a/web/app/components/base/chat/chat/answer/__tests__/reasoning-panel.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/__tests__/reasoning-panel.spec.tsx
@@ -1,5 +1,5 @@
import { act, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ReasoningPanel from '../reasoning-panel'
// Mock react-i18next so the reused chat.thinking/chat.thought labels resolve.
diff --git a/web/app/components/base/chat/chat/answer/__tests__/suggested-questions.spec.tsx b/web/app/components/base/chat/chat/answer/__tests__/suggested-questions.spec.tsx
index 67adf772652..d94b758d002 100644
--- a/web/app/components/base/chat/chat/answer/__tests__/suggested-questions.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/__tests__/suggested-questions.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { IChatItem } from '../../type'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx
index 51e5e7d8143..3ee3b3d4cfe 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx
@@ -2,7 +2,7 @@ import type { FileEntity } from '@/app/components/base/file-uploader/types'
import type { FormInputItem } from '@/app/components/workflow/nodes/human-input/types'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { TransferMethod } from '@/types/app'
import ContentItem from '../content-item'
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-wrapper.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-wrapper.spec.tsx
index 34e1df25447..8741e8c5401 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-wrapper.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-wrapper.spec.tsx
@@ -1,7 +1,7 @@
import type { ComponentProps } from 'react'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import ContentWrapper from '../content-wrapper'
describe('ContentWrapper', () => {
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/expiration-time.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/expiration-time.spec.tsx
index 7ddc828eb3e..7a32edae918 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/expiration-time.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/expiration-time.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ExpirationTime from '../expiration-time'
import * as utils from '../utils'
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/human-input-form.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/human-input-form.spec.tsx
index b25e8e39838..4022ce33bcb 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/human-input-form.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/human-input-form.spec.tsx
@@ -2,7 +2,7 @@ import type { FormInputItem } from '@/app/components/workflow/nodes/human-input/
import type { HumanInputFormData } from '@/types/workflow'
import { act, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { UserActionButtonType } from '@/app/components/workflow/nodes/human-input/types'
import { InputVarType, SupportUploadFileTypes } from '@/app/components/workflow/types'
import { TransferMethod } from '@/types/app'
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted-field-values.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted-field-values.spec.tsx
index f9156216854..8e48cd393f9 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted-field-values.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted-field-values.spec.tsx
@@ -1,7 +1,7 @@
import type { FormInputItem } from '@/app/components/workflow/nodes/human-input/types'
import type { FileResponse, HumanInputFormValue } from '@/types/workflow'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import { TransferMethod } from '@/types/app'
import SubmittedFieldValues from '../submitted-field-values'
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted.spec.tsx
index da225577430..af8e7055d06 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/submitted.spec.tsx
@@ -1,6 +1,6 @@
import type { HumanInputFilledFormData } from '@/types/workflow'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import { TransferMethod } from '@/types/app'
import { SubmittedHumanInputContent } from '../submitted'
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/tips.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/tips.spec.tsx
index 30116606f03..ca60462d974 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/tips.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/tips.spec.tsx
@@ -1,5 +1,5 @@
import { screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { renderWithAccountProfile } from '@/test/console/account-profile'
import { render } from '@/test/console/render'
import Tips from '../tips'
diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/unsubmitted.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/unsubmitted.spec.tsx
index eefd01262d8..4756cbf1882 100644
--- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/unsubmitted.spec.tsx
+++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/unsubmitted.spec.tsx
@@ -2,7 +2,7 @@ import type { InputVarType } from '@/app/components/workflow/types'
import type { HumanInputFormData } from '@/types/workflow'
import { screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { UserActionButtonType } from '@/app/components/workflow/nodes/human-input/types'
import { renderWithAccountProfile as render } from '@/test/console/account-profile'
import { UnsubmittedHumanInputContent } from '../unsubmitted'
diff --git a/web/app/components/base/chat/chat/citation/__tests__/index.spec.tsx b/web/app/components/base/chat/chat/citation/__tests__/index.spec.tsx
index 1d5349124f6..5e4a39cb1b5 100644
--- a/web/app/components/base/chat/chat/citation/__tests__/index.spec.tsx
+++ b/web/app/components/base/chat/chat/citation/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { CitationItem } from '../../type'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterAll, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Citation from '../index'
vi.mock('../popup', () => ({
diff --git a/web/app/components/base/chat/chat/citation/__tests__/progress-tooltip.spec.tsx b/web/app/components/base/chat/chat/citation/__tests__/progress-tooltip.spec.tsx
index 1fe23ab02a9..59604750512 100644
--- a/web/app/components/base/chat/chat/citation/__tests__/progress-tooltip.spec.tsx
+++ b/web/app/components/base/chat/chat/citation/__tests__/progress-tooltip.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ProgressTooltip from '../progress-tooltip'
describe('ProgressTooltip', () => {
diff --git a/web/app/components/base/chat/chat/citation/__tests__/tooltip.spec.tsx b/web/app/components/base/chat/chat/citation/__tests__/tooltip.spec.tsx
index e1613dfefa7..d65c36e4070 100644
--- a/web/app/components/base/chat/chat/citation/__tests__/tooltip.spec.tsx
+++ b/web/app/components/base/chat/chat/citation/__tests__/tooltip.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import Tooltip from '../tooltip'
const renderTooltip = (
diff --git a/web/app/components/base/chat/chat/log/__tests__/index.spec.tsx b/web/app/components/base/chat/chat/log/__tests__/index.spec.tsx
index ac1906f111a..13c7eb3693b 100644
--- a/web/app/components/base/chat/chat/log/__tests__/index.spec.tsx
+++ b/web/app/components/base/chat/chat/log/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { IChatItem, ThoughtItem } from '@/app/components/base/chat/chat/type'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useStore as useAppStore } from '@/app/components/app/store'
import Log from '../index'
diff --git a/web/app/components/base/chat/embedded-chatbot/__tests__/index.spec.tsx b/web/app/components/base/chat/embedded-chatbot/__tests__/index.spec.tsx
index ba36785f98e..9fc5477e506 100644
--- a/web/app/components/base/chat/embedded-chatbot/__tests__/index.spec.tsx
+++ b/web/app/components/base/chat/embedded-chatbot/__tests__/index.spec.tsx
@@ -3,7 +3,7 @@ import type { ChatConfig } from '../../types'
import type { Theme } from '../theme/theme'
import type { AppData, AppMeta, ConversationItem } from '@/models/share'
import { screen } from '@testing-library/react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import { useEmbeddedChatbot } from '../hooks'
diff --git a/web/app/components/base/error-boundary/__tests__/index.spec.tsx b/web/app/components/base/error-boundary/__tests__/index.spec.tsx
index c6bda0a1c2f..af68a39bc95 100644
--- a/web/app/components/base/error-boundary/__tests__/index.spec.tsx
+++ b/web/app/components/base/error-boundary/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createReactI18nextMock } from '@/test/i18n-mock'
import ErrorBoundary, { withErrorBoundary } from '../index'
diff --git a/web/app/components/base/form/components/form/__tests__/actions.spec.tsx b/web/app/components/base/form/components/form/__tests__/actions.spec.tsx
index 1254c852128..2141bc4b050 100644
--- a/web/app/components/base/form/components/form/__tests__/actions.spec.tsx
+++ b/web/app/components/base/form/components/form/__tests__/actions.spec.tsx
@@ -1,7 +1,7 @@
import type { FormType } from '../../..'
import type { CustomActionsProps } from '../actions'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { formContext } from '../../..'
import Actions from '../actions'
diff --git a/web/app/components/base/linked-apps-panel/__tests__/index.spec.tsx b/web/app/components/base/linked-apps-panel/__tests__/index.spec.tsx
index 116128941f3..ea92cc5ea66 100644
--- a/web/app/components/base/linked-apps-panel/__tests__/index.spec.tsx
+++ b/web/app/components/base/linked-apps-panel/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import * as React from 'react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { AppModeEnum } from '@/types/app'
import LinkedAppsPanel from '../index'
diff --git a/web/app/components/base/markdown-blocks/__tests__/audio-block.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/audio-block.spec.tsx
index 57d5202da40..a065600d876 100644
--- a/web/app/components/base/markdown-blocks/__tests__/audio-block.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/audio-block.spec.tsx
@@ -1,7 +1,7 @@
import { render, screen } from '@testing-library/react'
import * as React from 'react'
// AudioBlock.integration.spec.tsx
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import AudioBlock from '../audio-block'
// Mock the nested AudioPlayer used by AudioGallery (do not mock AudioGallery itself)
diff --git a/web/app/components/base/markdown-blocks/__tests__/button.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/button.spec.tsx
index b7f805cb32b..c45d560380f 100644
--- a/web/app/components/base/markdown-blocks/__tests__/button.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/button.spec.tsx
@@ -4,7 +4,7 @@ import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
// markdown-button.spec.tsx
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChatContextProvider } from '@/app/components/base/chat/chat/context-provider'
import MarkdownButton from '../button'
diff --git a/web/app/components/base/markdown-blocks/__tests__/link.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/link.spec.tsx
index fb73fc38704..ca5e3af6c01 100644
--- a/web/app/components/base/markdown-blocks/__tests__/link.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/link.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Link from '../link'
// ---- mocks ----
diff --git a/web/app/components/base/markdown-blocks/__tests__/music.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/music.spec.tsx
index 498f3511b95..e9e19f39d31 100644
--- a/web/app/components/base/markdown-blocks/__tests__/music.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/music.spec.tsx
@@ -1,5 +1,5 @@
import { render } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const mockSetTune = vi.fn()
const mockLoad = vi.fn()
diff --git a/web/app/components/base/markdown-blocks/__tests__/paragraph.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/paragraph.spec.tsx
index a6499dd1963..a49d3461237 100644
--- a/web/app/components/base/markdown-blocks/__tests__/paragraph.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/paragraph.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import Paragraph from '../paragraph'
vi.mock('@/app/components/base/image-gallery', () => ({
diff --git a/web/app/components/base/markdown-blocks/__tests__/plugin-img.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/plugin-img.spec.tsx
index 0db40f4c8d8..032fd9e171e 100644
--- a/web/app/components/base/markdown-blocks/__tests__/plugin-img.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/plugin-img.spec.tsx
@@ -1,6 +1,6 @@
import { cleanup, render, screen } from '@testing-library/react'
import * as React from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginImg } from '../plugin-img'
/* -------------------- Mocks -------------------- */
diff --git a/web/app/components/base/markdown-blocks/__tests__/plugin-paragraph.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/plugin-paragraph.spec.tsx
index c3dbffeee03..48479f9d4c1 100644
--- a/web/app/components/base/markdown-blocks/__tests__/plugin-paragraph.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/plugin-paragraph.spec.tsx
@@ -1,7 +1,7 @@
import type { ExtraProps } from 'streamdown'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { usePluginReadmeAsset } from '@/service/use-plugins'
import { PluginParagraph } from '../plugin-paragraph'
import { getMarkdownImageURL, hasImageChild } from '../utils'
diff --git a/web/app/components/base/markdown-blocks/__tests__/think-block.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/think-block.spec.tsx
index df52b40f62b..fa8262e3c6f 100644
--- a/web/app/components/base/markdown-blocks/__tests__/think-block.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/think-block.spec.tsx
@@ -1,5 +1,5 @@
import { act, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChatContextProvider } from '@/app/components/base/chat/chat/context-provider'
import ThinkBlock from '../think-block'
diff --git a/web/app/components/base/markdown-blocks/__tests__/video-block.spec.tsx b/web/app/components/base/markdown-blocks/__tests__/video-block.spec.tsx
index bbfd68e8aee..7c1074687cb 100644
--- a/web/app/components/base/markdown-blocks/__tests__/video-block.spec.tsx
+++ b/web/app/components/base/markdown-blocks/__tests__/video-block.spec.tsx
@@ -1,6 +1,6 @@
import { render } from '@testing-library/react'
import * as React from 'react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import VideoGallery from '../../video-gallery'
import VideoBlock from '../video-block'
diff --git a/web/app/components/base/markdown/__tests__/error-boundary.spec.tsx b/web/app/components/base/markdown/__tests__/error-boundary.spec.tsx
index eaaecbaae96..afad8ffa2ab 100644
--- a/web/app/components/base/markdown/__tests__/error-boundary.spec.tsx
+++ b/web/app/components/base/markdown/__tests__/error-boundary.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import * as React from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ErrorBoundary from '../error-boundary'
import '@testing-library/jest-dom'
diff --git a/web/app/components/base/new-audio-button/__tests__/index.spec.tsx b/web/app/components/base/new-audio-button/__tests__/index.spec.tsx
index 0f94406ff98..9b6fcc3496f 100644
--- a/web/app/components/base/new-audio-button/__tests__/index.spec.tsx
+++ b/web/app/components/base/new-audio-button/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import { act, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import i18next from 'i18next'
-import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeAll, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useParams, usePathname } from '@/next/navigation'
import AudioBtn from '../index'
diff --git a/web/app/components/base/notion-connector/__tests__/index.spec.tsx b/web/app/components/base/notion-connector/__tests__/index.spec.tsx
index dc6e0db1cd1..a68a88b3ba9 100644
--- a/web/app/components/base/notion-connector/__tests__/index.spec.tsx
+++ b/web/app/components/base/notion-connector/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import NotionConnector from '../index'
describe('NotionConnector', () => {
diff --git a/web/app/components/base/notion-page-selector/__tests__/base.spec.tsx b/web/app/components/base/notion-page-selector/__tests__/base.spec.tsx
index 429e5e68ff8..4995e87fc40 100644
--- a/web/app/components/base/notion-page-selector/__tests__/base.spec.tsx
+++ b/web/app/components/base/notion-page-selector/__tests__/base.spec.tsx
@@ -2,7 +2,7 @@ import type { DataSourceCredential } from '../../../header/account-setting/data-
import type { DataSourceNotionWorkspace } from '@/models/common'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CredentialTypeEnum } from '@/app/components/plugins/plugin-auth/types'
import {
useInvalidPreImportNotionPages,
diff --git a/web/app/components/base/notion-page-selector/credential-selector/__tests__/index.spec.tsx b/web/app/components/base/notion-page-selector/credential-selector/__tests__/index.spec.tsx
index 65bbb83e068..df6db2360f5 100644
--- a/web/app/components/base/notion-page-selector/credential-selector/__tests__/index.spec.tsx
+++ b/web/app/components/base/notion-page-selector/credential-selector/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import CredentialSelector from '../index'
// Mock CredentialIcon since it's likely a complex component.
diff --git a/web/app/components/base/notion-page-selector/search-input/__tests__/index.spec.tsx b/web/app/components/base/notion-page-selector/search-input/__tests__/index.spec.tsx
index 4ec55171006..4e98f8f791d 100644
--- a/web/app/components/base/notion-page-selector/search-input/__tests__/index.spec.tsx
+++ b/web/app/components/base/notion-page-selector/search-input/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import SearchInput from '../index'
describe('SearchInput', () => {
diff --git a/web/app/components/base/prompt-editor/plugins/__tests__/test-helpers.ts b/web/app/components/base/prompt-editor/plugins/__tests__/test-helpers.ts
index fe789f3d1db..6b0c1e4c555 100644
--- a/web/app/components/base/prompt-editor/plugins/__tests__/test-helpers.ts
+++ b/web/app/components/base/prompt-editor/plugins/__tests__/test-helpers.ts
@@ -4,7 +4,7 @@ import { LexicalComposer } from '@lexical/react/LexicalComposer'
import { act, render, waitFor } from '@testing-library/react'
import { $createParagraphNode, $getRoot, $nodesOfType, createEditor } from 'lexical'
import { createElement } from 'react'
-import { expect } from 'vitest'
+import { expect } from 'vite-plus/test'
import { CaptureEditorPlugin } from './test-utils'
type RenderLexicalEditorProps = {
diff --git a/web/app/components/base/prompt-editor/plugins/__tests__/utils.spec.ts b/web/app/components/base/prompt-editor/plugins/__tests__/utils.spec.ts
index f99b354adc8..0cdf6a88008 100644
--- a/web/app/components/base/prompt-editor/plugins/__tests__/utils.spec.ts
+++ b/web/app/components/base/prompt-editor/plugins/__tests__/utils.spec.ts
@@ -1,6 +1,6 @@
import type { RootNode } from 'lexical'
import { $createParagraphNode, $createTextNode, $getRoot, ParagraphNode, TextNode } from 'lexical'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { createTestEditor, withEditorUpdate } from './utils'
describe('Prompt Editor Test Utils', () => {
diff --git a/web/app/components/base/radio-card/__tests__/index.spec.tsx b/web/app/components/base/radio-card/__tests__/index.spec.tsx
index c0a7fc140fc..1785353d4c9 100644
--- a/web/app/components/base/radio-card/__tests__/index.spec.tsx
+++ b/web/app/components/base/radio-card/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import { RadioGroup } from '@langgenius/dify-ui/radio'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import RadioCard from '../index'
type ExampleMode = 'standard' | 'advanced'
diff --git a/web/app/components/base/search-input/__tests__/search-state.spec.ts b/web/app/components/base/search-input/__tests__/search-state.spec.ts
index 2e7dcb440e3..a50a948800f 100644
--- a/web/app/components/base/search-input/__tests__/search-state.spec.ts
+++ b/web/app/components/base/search-input/__tests__/search-state.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { hasSearchText, isSearchResultEmpty } from '../search-state'
describe('search-state', () => {
diff --git a/web/app/components/base/sort/__tests__/index.spec.tsx b/web/app/components/base/sort/__tests__/index.spec.tsx
index 12036af0e55..06d8998e4e5 100644
--- a/web/app/components/base/sort/__tests__/index.spec.tsx
+++ b/web/app/components/base/sort/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import { render, screen, waitFor, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import Sort from '../index'
const mockItems = [
diff --git a/web/app/components/base/video-gallery/__tests__/VideoPlayer.spec.tsx b/web/app/components/base/video-gallery/__tests__/VideoPlayer.spec.tsx
index f3ad24700b4..6954f44d617 100644
--- a/web/app/components/base/video-gallery/__tests__/VideoPlayer.spec.tsx
+++ b/web/app/components/base/video-gallery/__tests__/VideoPlayer.spec.tsx
@@ -1,6 +1,6 @@
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import VideoPlayer from '../VideoPlayer'
describe('VideoPlayer', () => {
diff --git a/web/app/components/base/voice-input/recorder.ts b/web/app/components/base/voice-input/recorder.ts
index 0ee414b6070..933a55bbe0b 100644
--- a/web/app/components/base/voice-input/recorder.ts
+++ b/web/app/components/base/voice-input/recorder.ts
@@ -198,7 +198,9 @@ export async function startVoiceRecorder(signal?: AbortSignal): Promise {
diff --git a/web/app/components/custom/custom-web-app-brand/hooks/__tests__/use-web-app-brand.spec.tsx b/web/app/components/custom/custom-web-app-brand/hooks/__tests__/use-web-app-brand.spec.tsx
index 9b5c2b87aa2..b2e664b3ff0 100644
--- a/web/app/components/custom/custom-web-app-brand/hooks/__tests__/use-web-app-brand.spec.tsx
+++ b/web/app/components/custom/custom-web-app-brand/hooks/__tests__/use-web-app-brand.spec.tsx
@@ -3,7 +3,7 @@ import type { GetSystemFeaturesResponse } from '@dify/contracts/api/console/syst
import type { ChangeEvent } from 'react'
import type { ConsoleStateFixture } from '@/test/console/state-fixture'
import { act, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createMockProviderContextValue } from '@/__mocks__/provider-context'
import { getImageUploadErrorMessage, imageUpload } from '@/app/components/base/image-uploader/utils'
import { defaultPlan } from '@/app/components/billing/config'
diff --git a/web/app/components/datasets/common/__tests__/check-rerank-model.spec.ts b/web/app/components/datasets/common/__tests__/check-rerank-model.spec.ts
index 44bc5e0cf49..21bee3a24d1 100644
--- a/web/app/components/datasets/common/__tests__/check-rerank-model.spec.ts
+++ b/web/app/components/datasets/common/__tests__/check-rerank-model.spec.ts
@@ -3,7 +3,7 @@ import type {
ModelItem,
} from '@/app/components/header/account-setting/model-provider-page/declarations'
import type { RetrievalConfig } from '@/types/app'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
ConfigurationMethodEnum,
ModelStatusEnum,
diff --git a/web/app/components/datasets/common/document-status-with-action/__tests__/auto-disabled-document.spec.tsx b/web/app/components/datasets/common/document-status-with-action/__tests__/auto-disabled-document.spec.tsx
index 8e23731e58f..780d2fb6ec8 100644
--- a/web/app/components/datasets/common/document-status-with-action/__tests__/auto-disabled-document.spec.tsx
+++ b/web/app/components/datasets/common/document-status-with-action/__tests__/auto-disabled-document.spec.tsx
@@ -1,6 +1,6 @@
import { toast } from '@langgenius/dify-ui/toast'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useAutoDisabledDocuments } from '@/service/knowledge/use-document'
import AutoDisabledDocument from '../auto-disabled-document'
diff --git a/web/app/components/datasets/common/document-status-with-action/__tests__/index-failed.spec.tsx b/web/app/components/datasets/common/document-status-with-action/__tests__/index-failed.spec.tsx
index 012532b5d67..db259177763 100644
--- a/web/app/components/datasets/common/document-status-with-action/__tests__/index-failed.spec.tsx
+++ b/web/app/components/datasets/common/document-status-with-action/__tests__/index-failed.spec.tsx
@@ -1,6 +1,6 @@
import type { ErrorDocsResponse } from '@/models/datasets'
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { retryErrorDocs } from '@/service/datasets'
import { useDatasetErrorDocs } from '@/service/knowledge/use-dataset'
import RetryButton from '../index-failed'
diff --git a/web/app/components/datasets/common/image-list/__tests__/index.spec.tsx b/web/app/components/datasets/common/image-list/__tests__/index.spec.tsx
index bd644904d5e..01594af9574 100644
--- a/web/app/components/datasets/common/image-list/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/common/image-list/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ImageList from '../index'
// Track handleImageClick calls for testing
diff --git a/web/app/components/datasets/common/image-previewer/__tests__/index.spec.tsx b/web/app/components/datasets/common/image-previewer/__tests__/index.spec.tsx
index 29fdb2a9cfa..16941c77053 100644
--- a/web/app/components/datasets/common/image-previewer/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/common/image-previewer/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ImagePreviewer from '../index'
const mockFetch = vi.fn()
diff --git a/web/app/components/datasets/common/image-uploader/__tests__/store.spec.tsx b/web/app/components/datasets/common/image-uploader/__tests__/store.spec.tsx
index a7293df4d1f..59616fb2d61 100644
--- a/web/app/components/datasets/common/image-uploader/__tests__/store.spec.tsx
+++ b/web/app/components/datasets/common/image-uploader/__tests__/store.spec.tsx
@@ -1,6 +1,6 @@
import type { FileEntity } from '../types'
import { act, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import {
createFileStore,
FileContextProvider,
diff --git a/web/app/components/datasets/common/image-uploader/__tests__/utils.spec.ts b/web/app/components/datasets/common/image-uploader/__tests__/utils.spec.ts
index 00fb3244f1e..bc782e5b627 100644
--- a/web/app/components/datasets/common/image-uploader/__tests__/utils.spec.ts
+++ b/web/app/components/datasets/common/image-uploader/__tests__/utils.spec.ts
@@ -1,6 +1,6 @@
import type { FileEntity } from '../types'
import type { FileUploadConfigResponse } from '@/models/common'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
DEFAULT_IMAGE_FILE_BATCH_LIMIT,
DEFAULT_IMAGE_FILE_SIZE_LIMIT,
diff --git a/web/app/components/datasets/common/image-uploader/hooks/__tests__/use-upload.spec.tsx b/web/app/components/datasets/common/image-uploader/hooks/__tests__/use-upload.spec.tsx
index 1c57e5f7a14..d2d92d0e190 100644
--- a/web/app/components/datasets/common/image-uploader/hooks/__tests__/use-upload.spec.tsx
+++ b/web/app/components/datasets/common/image-uploader/hooks/__tests__/use-upload.spec.tsx
@@ -3,7 +3,7 @@ import type { FileEntity } from '../../types'
import { toast } from '@langgenius/dify-ui/toast'
import { act, fireEvent, render, renderHook, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { FileContextProvider } from '../../store'
import { useUpload } from '../use-upload'
diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/image-item.spec.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/image-item.spec.tsx
index ae499195116..c619ec4e43f 100644
--- a/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/image-item.spec.tsx
+++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/image-item.spec.tsx
@@ -1,6 +1,6 @@
import type { FileEntity } from '../../types'
import { fireEvent, render } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ImageItem from '../image-item'
const createMockFile = (overrides: Partial = {}): FileEntity =>
diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/index.spec.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/index.spec.tsx
index 515c586cdd5..96619e874ef 100644
--- a/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { FileEntity } from '../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ImageUploaderInChunkWrapper from '../index'
vi.mock('@/service/use-common', () => ({
diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/image-item.spec.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/image-item.spec.tsx
index db2a89ef308..750c8fa4c8b 100644
--- a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/image-item.spec.tsx
+++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/image-item.spec.tsx
@@ -1,6 +1,6 @@
import type { FileEntity } from '../../types'
import { fireEvent, render } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ImageItem from '../image-item'
const createMockFile = (overrides: Partial = {}): FileEntity =>
diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/index.spec.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/index.spec.tsx
index 3d48681aa55..0daf4e9086e 100644
--- a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { FileEntity } from '../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ImageUploaderInRetrievalTestingWrapper from '../index'
vi.mock('@/service/use-common', () => ({
diff --git a/web/app/components/datasets/create-from-pipeline/__tests__/footer.spec.tsx b/web/app/components/datasets/create-from-pipeline/__tests__/footer.spec.tsx
index 8ced87ecedf..66422db74a9 100644
--- a/web/app/components/datasets/create-from-pipeline/__tests__/footer.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/__tests__/footer.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Footer from '../footer'
// Configurable mock for search params
diff --git a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/__tests__/uploader.spec.tsx b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/__tests__/uploader.spec.tsx
index b11cf80669f..d38576ebecf 100644
--- a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/__tests__/uploader.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/__tests__/uploader.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Uploader from '../uploader'
const { mockToast } = vi.hoisted(() => {
diff --git a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/hooks/__tests__/use-dsl-import.spec.tsx b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/hooks/__tests__/use-dsl-import.spec.tsx
index 8f039a22322..40163a3c226 100644
--- a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/hooks/__tests__/use-dsl-import.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/hooks/__tests__/use-dsl-import.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CreateFromDSLModalTab, useDSLImport } from '../use-dsl-import'
const mockPush = vi.fn()
diff --git a/web/app/components/datasets/create-from-pipeline/list/__tests__/built-in-pipeline-list.spec.tsx b/web/app/components/datasets/create-from-pipeline/list/__tests__/built-in-pipeline-list.spec.tsx
index 61a86eb6f35..aedcd265810 100644
--- a/web/app/components/datasets/create-from-pipeline/list/__tests__/built-in-pipeline-list.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/__tests__/built-in-pipeline-list.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactElement } from 'react'
import { screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import BuiltInPipelineList from '../built-in-pipeline-list'
diff --git a/web/app/components/datasets/create-from-pipeline/list/__tests__/create-card.spec.tsx b/web/app/components/datasets/create-from-pipeline/list/__tests__/create-card.spec.tsx
index e0ec166d8c5..badb3274000 100644
--- a/web/app/components/datasets/create-from-pipeline/list/__tests__/create-card.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/__tests__/create-card.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import CreateCard from '../create-card'
const mockPush = vi.fn()
diff --git a/web/app/components/datasets/create-from-pipeline/list/__tests__/customized-list.spec.tsx b/web/app/components/datasets/create-from-pipeline/list/__tests__/customized-list.spec.tsx
index a0b4c096b83..620b690a94c 100644
--- a/web/app/components/datasets/create-from-pipeline/list/__tests__/customized-list.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/__tests__/customized-list.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import CustomizedList from '../customized-list'
// Mock TemplateCard
diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/edit-pipeline-info.spec.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/edit-pipeline-info.spec.tsx
index a2136144acb..4d5a0a563e5 100644
--- a/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/edit-pipeline-info.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/edit-pipeline-info.spec.tsx
@@ -1,6 +1,6 @@
import type { PipelineTemplate } from '@/models/pipeline'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import EditPipelineInfo from '../edit-pipeline-info'
diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/index.spec.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/index.spec.tsx
index e59ca63aa8d..858c82cc788 100644
--- a/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/template-card/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { PipelineTemplate } from '@/models/pipeline'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import TemplateCard from '../index'
diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/hooks.spec.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/hooks.spec.tsx
index 2b170ad94c0..dd5ca7787b7 100644
--- a/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/hooks.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/hooks.spec.tsx
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import { useChunkStructureConfig } from '../hooks'
import { EffectColor } from '../types'
diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/index.spec.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/index.spec.tsx
index 3706db3d62c..5949fc63478 100644
--- a/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/template-card/details/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Details from '../index'
// Mock WorkflowPreview
diff --git a/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx b/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx
index c893046bd04..fa85e99a23c 100644
--- a/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx
+++ b/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx
@@ -1,6 +1,6 @@
import type { IndexingStatusResponse } from '@/models/datasets'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataSourceType } from '@/models/datasets'
import IndexingProgressItem from '../indexing-progress-item'
diff --git a/web/app/components/datasets/create/embedding-process/__tests__/rule-detail.spec.tsx b/web/app/components/datasets/create/embedding-process/__tests__/rule-detail.spec.tsx
index 0af3a828687..646653611a5 100644
--- a/web/app/components/datasets/create/embedding-process/__tests__/rule-detail.spec.tsx
+++ b/web/app/components/datasets/create/embedding-process/__tests__/rule-detail.spec.tsx
@@ -1,6 +1,6 @@
import type { ProcessRuleResponse } from '@/models/datasets'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ProcessMode } from '@/models/datasets'
import { RETRIEVE_METHOD } from '@/types/app'
import RuleDetail from '../rule-detail'
diff --git a/web/app/components/datasets/create/embedding-process/__tests__/use-indexing-status-polling.spec.ts b/web/app/components/datasets/create/embedding-process/__tests__/use-indexing-status-polling.spec.ts
index 66650d3ce99..79ba8af5dfa 100644
--- a/web/app/components/datasets/create/embedding-process/__tests__/use-indexing-status-polling.spec.ts
+++ b/web/app/components/datasets/create/embedding-process/__tests__/use-indexing-status-polling.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useIndexingStatusPolling } from '../use-indexing-status-polling'
const mockFetchIndexingStatusBatch = vi.fn()
diff --git a/web/app/components/datasets/create/embedding-process/__tests__/utils.spec.ts b/web/app/components/datasets/create/embedding-process/__tests__/utils.spec.ts
index f82382774a9..5fc81ccc70a 100644
--- a/web/app/components/datasets/create/embedding-process/__tests__/utils.spec.ts
+++ b/web/app/components/datasets/create/embedding-process/__tests__/utils.spec.ts
@@ -1,5 +1,5 @@
import type { DataSourceInfo, FullDocumentDetail, IndexingStatusResponse } from '@/models/datasets'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
createDocumentLookup,
getFileType,
diff --git a/web/app/components/datasets/create/empty-dataset-creation-modal/__tests__/index.spec.tsx b/web/app/components/datasets/create/empty-dataset-creation-modal/__tests__/index.spec.tsx
index 291ba7c32d5..912ee8a52d1 100644
--- a/web/app/components/datasets/create/empty-dataset-creation-modal/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/empty-dataset-creation-modal/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import { createEmptyDataset } from '@/service/datasets'
import { useInvalidDatasetList } from '@/service/knowledge/use-dataset'
diff --git a/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx b/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx
index d649ec56034..3a74efb077f 100644
--- a/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import type { CustomFile as File } from '@/models/datasets'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import { fetchFilePreview } from '@/service/common'
diff --git a/web/app/components/datasets/create/file-uploader/__tests__/index.spec.tsx b/web/app/components/datasets/create/file-uploader/__tests__/index.spec.tsx
index 22a476b5502..e2b41f00cb8 100644
--- a/web/app/components/datasets/create/file-uploader/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/file-uploader/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { CustomFile as File, FileItem } from '@/models/datasets'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import { PROGRESS_NOT_STARTED } from '../constants'
import FileUploader from '../index'
diff --git a/web/app/components/datasets/create/file-uploader/components/__tests__/file-list-item.spec.tsx b/web/app/components/datasets/create/file-uploader/components/__tests__/file-list-item.spec.tsx
index 267d68e39e0..09469a09178 100644
--- a/web/app/components/datasets/create/file-uploader/components/__tests__/file-list-item.spec.tsx
+++ b/web/app/components/datasets/create/file-uploader/components/__tests__/file-list-item.spec.tsx
@@ -1,7 +1,7 @@
import type { FileListItemProps } from '../file-list-item'
import type { CustomFile as File, FileItem } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PROGRESS_COMPLETE, PROGRESS_ERROR, PROGRESS_NOT_STARTED } from '../../constants'
import FileListItem from '../file-list-item'
diff --git a/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx b/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx
index df7b0705bf0..1de0d4c0bba 100644
--- a/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx
+++ b/web/app/components/datasets/create/file-uploader/components/__tests__/upload-dropzone.spec.tsx
@@ -2,7 +2,7 @@ import type { RefObject } from 'react'
import type { UploadDropzoneProps } from '../upload-dropzone'
import type { ProviderContextState } from '@/context/provider-context'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import UploadDropzone from '../upload-dropzone'
let mockEnableBilling = false
diff --git a/web/app/components/datasets/create/file-uploader/hooks/__tests__/use-file-upload.spec.tsx b/web/app/components/datasets/create/file-uploader/hooks/__tests__/use-file-upload.spec.tsx
index 8c0ebf193c9..3d82ed33950 100644
--- a/web/app/components/datasets/create/file-uploader/hooks/__tests__/use-file-upload.spec.tsx
+++ b/web/app/components/datasets/create/file-uploader/hooks/__tests__/use-file-upload.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import type { CustomFile, FileItem } from '@/models/datasets'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper, renderWithConsoleQuery } from '@/test/console/query-data'
import { PROGRESS_COMPLETE, PROGRESS_ERROR, PROGRESS_NOT_STARTED } from '../../constants'
// Import after mocks
diff --git a/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx b/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx
index 852d76ec30e..d9a3e9ac13b 100644
--- a/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import type { NotionPage } from '@/models/common'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import { fetchNotionPagePreview } from '@/service/datasets'
diff --git a/web/app/components/datasets/create/step-one/hooks/__tests__/use-preview-state.spec.ts b/web/app/components/datasets/create/step-one/hooks/__tests__/use-preview-state.spec.ts
index 499a4519aa5..8fd9924482a 100644
--- a/web/app/components/datasets/create/step-one/hooks/__tests__/use-preview-state.spec.ts
+++ b/web/app/components/datasets/create/step-one/hooks/__tests__/use-preview-state.spec.ts
@@ -1,7 +1,7 @@
import type { NotionPage } from '@/models/common'
import type { CrawlResultItem } from '@/models/datasets'
import { act, renderHook } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import usePreviewState from '../use-preview-state'
describe('usePreviewState', () => {
diff --git a/web/app/components/datasets/create/step-two/components/__tests__/general-chunking-options.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/general-chunking-options.spec.tsx
index 1d5ca3de6e4..f3d829ac014 100644
--- a/web/app/components/datasets/create/step-two/components/__tests__/general-chunking-options.spec.tsx
+++ b/web/app/components/datasets/create/step-two/components/__tests__/general-chunking-options.spec.tsx
@@ -1,6 +1,6 @@
import type { PreProcessingRule } from '@/models/datasets'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import { GeneralChunkingOptions } from '../general-chunking-options'
diff --git a/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx
index 32d20b4c5a2..199f8b2baed 100644
--- a/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx
+++ b/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx
@@ -1,7 +1,7 @@
import type { DefaultModel } from '@/app/components/header/account-setting/model-provider-page/declarations'
import type { RetrievalConfig } from '@/types/app'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import { IndexingType } from '../../hooks'
diff --git a/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx
index 7bb0fdd7068..feeb7d1bb93 100644
--- a/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx
+++ b/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DelimiterInput, MaxLengthInput, OverlapInput } from '../inputs'
// i18n mock returns namespaced keys like "datasetCreation.stepTwo.separator"
diff --git a/web/app/components/datasets/create/step-two/components/__tests__/parent-child-options.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/parent-child-options.spec.tsx
index 92d4dd5a1ff..76fd02cd29b 100644
--- a/web/app/components/datasets/create/step-two/components/__tests__/parent-child-options.spec.tsx
+++ b/web/app/components/datasets/create/step-two/components/__tests__/parent-child-options.spec.tsx
@@ -1,7 +1,7 @@
import type { ParentChildConfig } from '../../hooks'
import type { PreProcessingRule } from '@/models/datasets'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import { ParentChildOptions } from '../parent-child-options'
diff --git a/web/app/components/datasets/create/step-two/components/__tests__/preview-panel.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/preview-panel.spec.tsx
index 704eb88bdcf..0944a78bfe8 100644
--- a/web/app/components/datasets/create/step-two/components/__tests__/preview-panel.spec.tsx
+++ b/web/app/components/datasets/create/step-two/components/__tests__/preview-panel.spec.tsx
@@ -1,7 +1,7 @@
import type { ParentChildConfig } from '../../hooks'
import type { FileIndexingEstimateResponse } from '@/models/datasets'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode, DataSourceType } from '@/models/datasets'
import { PreviewPanel } from '../preview-panel'
diff --git a/web/app/components/datasets/create/step-two/components/__tests__/step-two-footer.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/step-two-footer.spec.tsx
index ace92d3f649..a3ef0ba0b2d 100644
--- a/web/app/components/datasets/create/step-two/components/__tests__/step-two-footer.spec.tsx
+++ b/web/app/components/datasets/create/step-two/components/__tests__/step-two-footer.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { StepTwoFooter } from '../step-two-footer'
describe('StepTwoFooter', () => {
diff --git a/web/app/components/datasets/create/step-two/hooks/__tests__/escape.spec.ts b/web/app/components/datasets/create/step-two/hooks/__tests__/escape.spec.ts
index e05d626eb9a..b3726edb1ed 100644
--- a/web/app/components/datasets/create/step-two/hooks/__tests__/escape.spec.ts
+++ b/web/app/components/datasets/create/step-two/hooks/__tests__/escape.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import escape from '../escape'
describe('escape', () => {
diff --git a/web/app/components/datasets/create/step-two/hooks/__tests__/unescape.spec.ts b/web/app/components/datasets/create/step-two/hooks/__tests__/unescape.spec.ts
index f05608fd59d..565176d4650 100644
--- a/web/app/components/datasets/create/step-two/hooks/__tests__/unescape.spec.ts
+++ b/web/app/components/datasets/create/step-two/hooks/__tests__/unescape.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import unescape from '../unescape'
describe('unescape', () => {
diff --git a/web/app/components/datasets/create/step-two/hooks/__tests__/use-document-creation.spec.ts b/web/app/components/datasets/create/step-two/hooks/__tests__/use-document-creation.spec.ts
index 99e23f01fac..04f1c2ebd5b 100644
--- a/web/app/components/datasets/create/step-two/hooks/__tests__/use-document-creation.spec.ts
+++ b/web/app/components/datasets/create/step-two/hooks/__tests__/use-document-creation.spec.ts
@@ -6,7 +6,7 @@ import type {
} from '@/models/datasets'
import type { RetrievalConfig } from '@/types/app'
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode, DataSourceType } from '@/models/datasets'
import { RETRIEVE_METHOD } from '@/types/app'
diff --git a/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-config.spec.ts b/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-config.spec.ts
index 0fe797c27ab..94c7c28a6fa 100644
--- a/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-config.spec.ts
+++ b/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-config.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { RETRIEVE_METHOD } from '@/types/app'
// Hoisted mock state
diff --git a/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-estimate.spec.ts b/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-estimate.spec.ts
index d207a689a63..a59d9297c19 100644
--- a/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-estimate.spec.ts
+++ b/web/app/components/datasets/create/step-two/hooks/__tests__/use-indexing-estimate.spec.ts
@@ -2,7 +2,7 @@ import type { IndexingType } from '../use-indexing-config'
import type { NotionPage } from '@/models/common'
import type { ChunkingMode, CrawlResultItem, CustomFile, ProcessRule } from '@/models/datasets'
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataSourceType } from '@/models/datasets'
// Hoisted mocks
diff --git a/web/app/components/datasets/create/step-two/hooks/__tests__/use-preview-state.spec.ts b/web/app/components/datasets/create/step-two/hooks/__tests__/use-preview-state.spec.ts
index 2587319aa9d..ba322945ac2 100644
--- a/web/app/components/datasets/create/step-two/hooks/__tests__/use-preview-state.spec.ts
+++ b/web/app/components/datasets/create/step-two/hooks/__tests__/use-preview-state.spec.ts
@@ -1,7 +1,7 @@
import type { NotionPage } from '@/models/common'
import type { CrawlResultItem, CustomFile } from '@/models/datasets'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataSourceType } from '@/models/datasets'
import { usePreviewState } from '../use-preview-state'
diff --git a/web/app/components/datasets/create/step-two/hooks/__tests__/use-segmentation-state.spec.ts b/web/app/components/datasets/create/step-two/hooks/__tests__/use-segmentation-state.spec.ts
index c80c54bf96f..8156ebafeec 100644
--- a/web/app/components/datasets/create/step-two/hooks/__tests__/use-segmentation-state.spec.ts
+++ b/web/app/components/datasets/create/step-two/hooks/__tests__/use-segmentation-state.spec.ts
@@ -1,6 +1,6 @@
import type { PreProcessingRule, Rules } from '@/models/datasets'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode, ProcessMode } from '@/models/datasets'
import {
DEFAULT_MAXIMUM_CHUNK_LENGTH,
diff --git a/web/app/components/datasets/create/website/__tests__/index.spec.tsx b/web/app/components/datasets/create/website/__tests__/index.spec.tsx
index b4477e8f008..fd0a861941a 100644
--- a/web/app/components/datasets/create/website/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/website/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { DataSourceAuth } from '@/app/components/header/account-setting/data-source-page-new/types'
import type { CrawlOptions, CrawlResultItem } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CredentialTypeEnum } from '@/app/components/plugins/plugin-auth/types'
import Website from '../index'
diff --git a/web/app/components/datasets/create/website/__tests__/no-data.spec.tsx b/web/app/components/datasets/create/website/__tests__/no-data.spec.tsx
index 21b88068a72..ddf02eeb4ca 100644
--- a/web/app/components/datasets/create/website/__tests__/no-data.spec.tsx
+++ b/web/app/components/datasets/create/website/__tests__/no-data.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataSourceProvider } from '@/models/common'
import NoData from '../no-data'
diff --git a/web/app/components/datasets/create/website/__tests__/preview.spec.tsx b/web/app/components/datasets/create/website/__tests__/preview.spec.tsx
index eac6eff8deb..5cd8cdfba68 100644
--- a/web/app/components/datasets/create/website/__tests__/preview.spec.tsx
+++ b/web/app/components/datasets/create/website/__tests__/preview.spec.tsx
@@ -1,6 +1,6 @@
import type { CrawlResultItem } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import WebsitePreview from '../preview'
// Mock Setup
diff --git a/web/app/components/datasets/create/website/base/__tests__/checkbox-with-label.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/checkbox-with-label.spec.tsx
index 612c2e516fe..748cc820c7d 100644
--- a/web/app/components/datasets/create/website/base/__tests__/checkbox-with-label.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/checkbox-with-label.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import CheckboxWithLabel from '../checkbox-with-label'
describe('CheckboxWithLabel', () => {
diff --git a/web/app/components/datasets/create/website/base/__tests__/crawled-result-item.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/crawled-result-item.spec.tsx
index fce52353c13..f034a83fb5d 100644
--- a/web/app/components/datasets/create/website/base/__tests__/crawled-result-item.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/crawled-result-item.spec.tsx
@@ -1,6 +1,6 @@
import type { CrawlResultItem as CrawlResultItemType } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import CrawledResultItem from '../crawled-result-item'
describe('CrawledResultItem', () => {
diff --git a/web/app/components/datasets/create/website/base/__tests__/crawled-result.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/crawled-result.spec.tsx
index 6d9cd92fbd1..d08ac8fee3e 100644
--- a/web/app/components/datasets/create/website/base/__tests__/crawled-result.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/crawled-result.spec.tsx
@@ -1,6 +1,6 @@
import type { CrawlResultItem } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import CrawledResult from '../crawled-result'
const createMockItem = (overrides: Partial = {}): CrawlResultItem => ({
diff --git a/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx
index a3625624378..6a5f5464e9d 100644
--- a/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Field from '../field'
describe('WebsiteField', () => {
diff --git a/web/app/components/datasets/create/website/base/__tests__/header.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/header.spec.tsx
index 85642424390..91b682edb1e 100644
--- a/web/app/components/datasets/create/website/base/__tests__/header.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/header.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Header from '../header'
describe('WebsiteHeader', () => {
diff --git a/web/app/components/datasets/create/website/base/__tests__/input.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/input.spec.tsx
index e68bc49ebf0..ea9f40acf2d 100644
--- a/web/app/components/datasets/create/website/base/__tests__/input.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/input.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Input from '../text-input'
describe('WebsiteInput', () => {
diff --git a/web/app/components/datasets/create/website/base/__tests__/options-wrap.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/options-wrap.spec.tsx
index 6d5311340ad..af0e7c6bf61 100644
--- a/web/app/components/datasets/create/website/base/__tests__/options-wrap.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/options-wrap.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import OptionsWrap from '../options-wrap'
vi.mock('@/app/components/base/icons/src/vender/line/arrows', () => ({
diff --git a/web/app/components/datasets/create/website/base/__tests__/url-input.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/url-input.spec.tsx
index aec78731b7f..42e4dadad4e 100644
--- a/web/app/components/datasets/create/website/base/__tests__/url-input.spec.tsx
+++ b/web/app/components/datasets/create/website/base/__tests__/url-input.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { expectLoadingButton } from '@/test/button'
// Component Imports (after mocks)
import UrlInput from '../url-input'
diff --git a/web/app/components/datasets/create/website/firecrawl/__tests__/index.spec.tsx b/web/app/components/datasets/create/website/firecrawl/__tests__/index.spec.tsx
index 3472e2ceaf9..3dbc7bc1257 100644
--- a/web/app/components/datasets/create/website/firecrawl/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/website/firecrawl/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { CrawlOptions, CrawlResultItem } from '@/models/datasets'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// Component Import (after mocks)
import FireCrawl from '../index'
diff --git a/web/app/components/datasets/create/website/jina-reader/__tests__/index.spec.tsx b/web/app/components/datasets/create/website/jina-reader/__tests__/index.spec.tsx
index dc4c8ead23b..8c306b77dd4 100644
--- a/web/app/components/datasets/create/website/jina-reader/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/website/jina-reader/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { CrawlOptions, CrawlResultItem } from '@/models/datasets'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
diff --git a/web/app/components/datasets/create/website/jina-reader/__tests__/options.spec.tsx b/web/app/components/datasets/create/website/jina-reader/__tests__/options.spec.tsx
index e22f9ac1719..c24d6908acd 100644
--- a/web/app/components/datasets/create/website/jina-reader/__tests__/options.spec.tsx
+++ b/web/app/components/datasets/create/website/jina-reader/__tests__/options.spec.tsx
@@ -1,6 +1,6 @@
import type { CrawlOptions } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Options from '../options'
// Test Data Factory
diff --git a/web/app/components/datasets/create/website/watercrawl/__tests__/index.spec.tsx b/web/app/components/datasets/create/website/watercrawl/__tests__/index.spec.tsx
index 1cf93ede575..8f64a270e19 100644
--- a/web/app/components/datasets/create/website/watercrawl/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/create/website/watercrawl/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { CrawlOptions, CrawlResultItem } from '@/models/datasets'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
diff --git a/web/app/components/datasets/create/website/watercrawl/__tests__/options.spec.tsx b/web/app/components/datasets/create/website/watercrawl/__tests__/options.spec.tsx
index c85a498f876..ab3948cb2b1 100644
--- a/web/app/components/datasets/create/website/watercrawl/__tests__/options.spec.tsx
+++ b/web/app/components/datasets/create/website/watercrawl/__tests__/options.spec.tsx
@@ -1,6 +1,6 @@
import type { CrawlOptions } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Options from '../options'
// Test Data Factory
diff --git a/web/app/components/datasets/documents/__tests__/status-filter.spec.ts b/web/app/components/datasets/documents/__tests__/status-filter.spec.ts
index 96e707f6db6..490dd8984f9 100644
--- a/web/app/components/datasets/documents/__tests__/status-filter.spec.ts
+++ b/web/app/components/datasets/documents/__tests__/status-filter.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { normalizeStatusForQuery, sanitizeStatusValue } from '../status-filter'
vi.mock('@/models/datasets', () => ({
diff --git a/web/app/components/datasets/documents/components/__tests__/documents-header.spec.tsx b/web/app/components/datasets/documents/components/__tests__/documents-header.spec.tsx
index 0165dbcd937..7dd2d522479 100644
--- a/web/app/components/datasets/documents/components/__tests__/documents-header.spec.tsx
+++ b/web/app/components/datasets/documents/components/__tests__/documents-header.spec.tsx
@@ -1,6 +1,6 @@
import type { SortType } from '@/service/datasets'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataSourceType } from '@/models/datasets'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import DocumentsHeader from '../documents-header'
diff --git a/web/app/components/datasets/documents/components/__tests__/list.spec.tsx b/web/app/components/datasets/documents/components/__tests__/list.spec.tsx
index f9f23767864..3aea9ccb488 100644
--- a/web/app/components/datasets/documents/components/__tests__/list.spec.tsx
+++ b/web/app/components/datasets/documents/components/__tests__/list.spec.tsx
@@ -1,6 +1,6 @@
import type { SimpleDocumentDetail } from '@/models/datasets'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithAccountProfile as render } from '@/test/console/account-profile'
import { useDocumentSort } from '../document-list/hooks'
import DocumentList from '../list'
diff --git a/web/app/components/datasets/documents/components/__tests__/operations.spec.tsx b/web/app/components/datasets/documents/components/__tests__/operations.spec.tsx
index 7ca82af06ba..d57fb08367c 100644
--- a/web/app/components/datasets/documents/components/__tests__/operations.spec.tsx
+++ b/web/app/components/datasets/documents/components/__tests__/operations.spec.tsx
@@ -1,6 +1,6 @@
import { act, cleanup, fireEvent, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import Operations from '../operations'
diff --git a/web/app/components/datasets/documents/components/__tests__/rename-modal.spec.tsx b/web/app/components/datasets/documents/components/__tests__/rename-modal.spec.tsx
index 02d814ec308..46db2aa5ed8 100644
--- a/web/app/components/datasets/documents/components/__tests__/rename-modal.spec.tsx
+++ b/web/app/components/datasets/documents/components/__tests__/rename-modal.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// Import after mock
import { renameDocumentName } from '@/service/datasets'
import RenameModal from '../rename-modal'
diff --git a/web/app/components/datasets/documents/components/document-list/__tests__/index.spec.tsx b/web/app/components/datasets/documents/components/document-list/__tests__/index.spec.tsx
index a7c6a05f539..55daa66e5e5 100644
--- a/web/app/components/datasets/documents/components/document-list/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/components/document-list/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { SimpleDocumentDetail } from '@/models/datasets'
import { act, fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode, DataSourceType } from '@/models/datasets'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { render } from '@/test/console/render'
diff --git a/web/app/components/datasets/documents/components/document-list/components/__tests__/document-table-row.spec.tsx b/web/app/components/datasets/documents/components/document-list/components/__tests__/document-table-row.spec.tsx
index b7a15f210c7..ecd1cf520d3 100644
--- a/web/app/components/datasets/documents/components/document-list/components/__tests__/document-table-row.spec.tsx
+++ b/web/app/components/datasets/documents/components/document-list/components/__tests__/document-table-row.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { SimpleDocumentDetail } from '@/models/datasets'
import { CheckboxGroup } from '@langgenius/dify-ui/checkbox-group'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataSourceType } from '@/models/datasets'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { render } from '@/test/console/render'
diff --git a/web/app/components/datasets/documents/components/document-list/components/__tests__/utils.spec.tsx b/web/app/components/datasets/documents/components/document-list/components/__tests__/utils.spec.tsx
index 3de49ef7df7..893ccbdff96 100644
--- a/web/app/components/datasets/documents/components/document-list/components/__tests__/utils.spec.tsx
+++ b/web/app/components/datasets/documents/components/document-list/components/__tests__/utils.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { renderTdValue } from '../utils'
describe('renderTdValue', () => {
diff --git a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions-with-query-client.spec.tsx b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions-with-query-client.spec.tsx
index 580c3b5d5d6..7965bc8df48 100644
--- a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions-with-query-client.spec.tsx
+++ b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions-with-query-client.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DocumentActionType } from '@/models/datasets'
import * as useDocument from '@/service/knowledge/use-document'
import { useDocumentActions } from '../use-document-actions'
diff --git a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions.spec.ts b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions.spec.ts
index 9eebae4f812..a31216c1144 100644
--- a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions.spec.ts
+++ b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-actions.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DocumentActionType } from '@/models/datasets'
import { useDocumentActions } from '../use-document-actions'
diff --git a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-selection.spec.ts b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-selection.spec.ts
index fe8957efaa0..6eefa13e7c5 100644
--- a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-selection.spec.ts
+++ b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-selection.spec.ts
@@ -1,6 +1,6 @@
import type { SimpleDocumentDetail } from '@/models/datasets'
import { act, renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataSourceType } from '@/models/datasets'
import { useDocumentSelection } from '../use-document-selection'
diff --git a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-sort.spec.ts b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-sort.spec.ts
index 784b0d74b29..0484d0a6c64 100644
--- a/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-sort.spec.ts
+++ b/web/app/components/datasets/documents/components/document-list/hooks/__tests__/use-document-sort.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { useDocumentSort } from '../use-document-sort'
describe('useDocumentSort', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/hooks.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/hooks.spec.tsx
index e9c5a6ece02..9c38cf12f91 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/hooks.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/hooks.spec.tsx
@@ -1,6 +1,6 @@
import type { DataSourceNodeType } from '@/app/components/workflow/nodes/data-source/types'
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useDatasourceIcon } from '../hooks'
const mockTransformDataSourceToTool = vi.fn()
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/option-card.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/option-card.spec.tsx
index b7124c9f244..4fa82906cd5 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/option-card.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source-options/__tests__/option-card.spec.tsx
@@ -1,6 +1,6 @@
import type { DataSourceNodeType } from '@/app/components/workflow/nodes/data-source/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import OptionCard from '../option-card'
const TEST_ICON_URL = 'https://example.com/test-icon.png'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx
index bc3b025ded4..95cfbb8ba02 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/__tests__/header.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import Header from '../header'
vi.mock('@/app/components/base/divider', () => ({
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/item.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/item.spec.tsx
index 9b8dc879ce8..2bebd23e904 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/item.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/item.spec.tsx
@@ -1,6 +1,6 @@
import type { DataSourceCredential } from '@/types/pipeline'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Item from '../item'
vi.mock('@/app/components/datasets/common/credential-icon', () => ({
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/list.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/list.spec.tsx
index e67ee245240..8700cf93331 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/list.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/list.spec.tsx
@@ -1,6 +1,6 @@
import type { DataSourceCredential } from '@/types/pipeline'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import List from '../list'
vi.mock('@/app/components/datasets/common/credential-icon', () => ({
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/__tests__/index.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/__tests__/index.spec.tsx
index 9ff640d61c4..9a975ec0a4e 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { FileItem } from '@/models/datasets'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import LocalFile from '../index'
// Mock the hook
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/file-list-item.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/file-list-item.spec.tsx
index f876a430571..ab1cee850cd 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/file-list-item.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/file-list-item.spec.tsx
@@ -1,7 +1,7 @@
import type { FileListItemProps } from '../file-list-item'
import type { CustomFile as File, FileItem } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PROGRESS_ERROR } from '../../constants'
import FileListItem from '../file-list-item'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx
index 31b7be86736..938d3392d21 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/components/__tests__/upload-dropzone.spec.tsx
@@ -2,7 +2,7 @@ import type { RefObject } from 'react'
import type { UploadDropzoneProps } from '../upload-dropzone'
import type { ProviderContextState } from '@/context/provider-context'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import UploadDropzone from '../upload-dropzone'
let mockEnableBilling = false
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/hooks/__tests__/use-local-file-upload.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/hooks/__tests__/use-local-file-upload.spec.tsx
index 485b4cf0fa3..58da00674f7 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/hooks/__tests__/use-local-file-upload.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/hooks/__tests__/use-local-file-upload.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import type { CustomFile, FileItem } from '@/models/datasets'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper, renderWithConsoleQuery } from '@/test/console/query-data'
import { PROGRESS_ERROR } from '../../constants'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/__tests__/utils.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/__tests__/utils.spec.ts
index b4da3f0d161..82b1a9994a2 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/__tests__/utils.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/__tests__/utils.spec.ts
@@ -3,7 +3,7 @@ import type {
NotionPageTreeMap,
} from '@/app/components/base/notion-page-selector/page-selector/types'
import type { DataSourceNotionPageMap } from '@/models/common'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { recursivePushInParentDescendants } from '@/app/components/base/notion-page-selector/page-selector/utils'
const makePageEntry = (overrides: Partial): NotionPageTreeItem => ({
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/__tests__/utils.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/__tests__/utils.spec.ts
index 9ac2ef9f890..5ee4dbe45a0 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/__tests__/utils.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/__tests__/utils.spec.ts
@@ -1,5 +1,5 @@
import type { OnlineDriveData } from '@/types/pipeline'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { OnlineDriveFileType } from '@/models/pipeline'
import { convertOnlineDriveData, isBucketListInitiation, isFile } from '../utils'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx
index 58d93a682b2..98296d92ea9 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/bucket.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Bucket from '../bucket'
describe('Bucket', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/drive.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/drive.spec.tsx
index 27017d9bf2b..fc76193e899 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/drive.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/drive.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Drive from '../drive'
describe('Drive', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/item.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/item.spec.tsx
index f4a63f22b31..b3f8ebdb1a7 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/item.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/__tests__/item.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import BreadcrumbItem from '../item'
describe('BreadcrumbItem', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx
index ccfdf6f83e8..f3662aa176e 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import { DropdownMenu, DropdownMenuContent } from '@langgenius/dify-ui/dropdown-menu'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Item from '../item'
const renderItem = (ui: ReactElement) => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx
index 4f470919c6d..6774e9a465f 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import { DropdownMenu, DropdownMenuContent } from '@langgenius/dify-ui/dropdown-menu'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Menu from '../menu'
const renderMenu = (ui: ReactElement) => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-folder.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-folder.spec.tsx
index 8d026d55890..0aefb996848 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-folder.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-folder.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import EmptyFolder from '../empty-folder'
describe('EmptyFolder', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-search-result.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-search-result.spec.tsx
index 8a4bc521074..493d55712a1 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-search-result.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/empty-search-result.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import EmptySearchResult from '../empty-search-result'
vi.mock('@/app/components/base/icons/src/vender/knowledge', () => ({
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/index.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/index.spec.tsx
index 0230cbaabce..2a15b6f2584 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { OnlineDriveFile } from '@/models/pipeline'
import { RadioGroup } from '@langgenius/dify-ui/radio'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/item.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/item.spec.tsx
index 9f5a3ca88d7..a95bd775fe9 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/item.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/item.spec.tsx
@@ -1,7 +1,7 @@
import type { OnlineDriveFile } from '@/models/pipeline'
import { RadioGroup } from '@langgenius/dify-ui/radio'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Item from '../item'
vi.mock('../file-icon', () => ({
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/utils.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/utils.spec.ts
index 982e57a1d0a..6f8a65faee8 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/utils.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/__tests__/utils.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { FileAppearanceTypeEnum } from '@/app/components/base/file-uploader/types'
import { getFileExtension, getFileType } from '../utils'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/store/__tests__/index.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/data-source/store/__tests__/index.spec.ts
index d7977cc2128..8bb2b68a19d 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/store/__tests__/index.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/store/__tests__/index.spec.ts
@@ -1,7 +1,7 @@
import type { FileItem } from '@/models/datasets'
import { render, renderHook } from '@testing-library/react'
import * as React from 'react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { createDataSourceStore, useDataSourceStore, useDataSourceStoreWithSelector } from '../'
import DataSourceProvider from '../provider'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-add-documents-steps.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-add-documents-steps.spec.ts
index cfb5745a2b6..97d0d24ce99 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-add-documents-steps.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-add-documents-steps.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useAddDocumentsSteps } from '../use-add-documents-steps'
describe('useAddDocumentsSteps', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-actions.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-actions.spec.ts
index 68990463519..9f199fb3b59 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-actions.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-actions.spec.ts
@@ -3,7 +3,7 @@ import type { DataSourceNotionPageMap, NotionPage } from '@/models/common'
import type { CrawlResultItem, DocumentItem, FileItem } from '@/models/datasets'
import type { OnlineDriveFile } from '@/models/pipeline'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DatasourceType } from '@/models/pipeline'
import { createDataSourceStore } from '../../data-source/store'
import { useDatasourceActions } from '../use-datasource-actions'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-options.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-options.spec.ts
index 06de03f66e2..13c3559fcbe 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-options.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-options.spec.ts
@@ -1,7 +1,7 @@
import type { DataSourceNodeType } from '@/app/components/workflow/nodes/data-source/types'
import type { Node } from '@/app/components/workflow/types'
import { renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
vi.mock('@/app/components/workflow/types', async () => {
const actual = await vi.importActual>('@/app/components/workflow/types')
diff --git a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-store.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-store.spec.ts
index cec86b453dd..06254b5fd2f 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-store.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-store.spec.ts
@@ -4,7 +4,7 @@ import type { CrawlResultItem, CustomFile as File, FileItem } from '@/models/dat
import type { OnlineDriveFile } from '@/models/pipeline'
import { act, renderHook } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CrawlStep } from '@/models/datasets'
import { createDataSourceStore } from '../../data-source/store'
import { DataSourceContext } from '../../data-source/store/provider'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-ui-state.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-ui-state.spec.ts
index c6909a7304b..ae821912cd4 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-ui-state.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/hooks/__tests__/use-datasource-ui-state.spec.ts
@@ -1,7 +1,7 @@
import type { Datasource } from '@/app/components/rag-pipeline/components/panel/test-run/types'
import type { OnlineDriveFile } from '@/models/pipeline'
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DatasourceType, OnlineDriveFileType } from '@/models/pipeline'
import { useDatasourceUIState } from '../use-datasource-ui-state'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/file-preview.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/file-preview.spec.tsx
index 82011102b65..445644c7e26 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/file-preview.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/file-preview.spec.tsx
@@ -1,6 +1,6 @@
import type { CustomFile } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import FilePreview from '../file-preview'
const mockFileData = { content: 'file content here with some text' }
diff --git a/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/web-preview.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/web-preview.spec.tsx
index 7bef4d0716c..84f72c1f2e7 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/web-preview.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/preview/__tests__/web-preview.spec.tsx
@@ -1,6 +1,6 @@
import type { CrawlResultItem } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import WebPreview from '../web-preview'
describe('WebPreview', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/actions.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/actions.spec.tsx
index f13519ed477..cad33d5092d 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/actions.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/actions.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Actions from '../actions'
describe('Actions', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/form.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/form.spec.tsx
index 77f696eebb2..bf5a749ba96 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/form.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/form.spec.tsx
@@ -1,6 +1,6 @@
import type { BaseConfiguration } from '@/app/components/base/form/form-scenarios/base/types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { z } from 'zod'
import Form from '../form'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/header.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/header.spec.tsx
index 1b567c760e6..6da6903f9b8 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/header.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/header.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Header from '../header'
describe('Header', () => {
diff --git a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/hooks.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/hooks.spec.ts
index 24645369970..a52658d7bb4 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/hooks.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/process-documents/__tests__/hooks.spec.ts
@@ -1,6 +1,6 @@
import type { PipelineProcessingParamsRequest } from '@/models/pipeline'
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useInputVariables } from '../hooks'
const mockUseDatasetDetailContextWithSelector = vi.fn()
diff --git a/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/__tests__/index.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/__tests__/index.spec.tsx
index 4b546d6486c..4993fe7a045 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import type { CloudPlan } from '@dify/contracts/api/console/features/types.gen'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { DocumentIndexingStatus, IndexingStatusResponse } from '@/models/datasets'
import type { InitialDocumentDetail } from '@/models/pipeline'
import { fireEvent, screen, waitFor } from '@testing-library/react'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/preview-panel.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/preview-panel.spec.tsx
index bb46469e816..0eae8df4f6b 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/preview-panel.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/preview-panel.spec.tsx
@@ -9,7 +9,7 @@ import type {
} from '@/models/datasets'
import type { OnlineDriveFile } from '@/models/pipeline'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DatasourceType } from '@/models/pipeline'
import { StepOnePreview, StepTwoPreview } from '../preview-panel'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/step-one-content.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/step-one-content.spec.tsx
index c2e548c7e6c..44daa66f682 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/step-one-content.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/steps/__tests__/step-one-content.spec.tsx
@@ -2,7 +2,7 @@ import type { Datasource } from '@/app/components/rag-pipeline/components/panel/
import type { DataSourceNodeType } from '@/app/components/workflow/nodes/data-source/types'
import type { Node } from '@/app/components/workflow/types'
import { screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DatasourceType } from '@/models/pipeline'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import StepOneContent from '../step-one-content'
diff --git a/web/app/components/datasets/documents/create-from-pipeline/utils/__tests__/datasource-info-builder.spec.ts b/web/app/components/datasets/documents/create-from-pipeline/utils/__tests__/datasource-info-builder.spec.ts
index 6085dbf4b46..2421d168904 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/utils/__tests__/datasource-info-builder.spec.ts
+++ b/web/app/components/datasets/documents/create-from-pipeline/utils/__tests__/datasource-info-builder.spec.ts
@@ -1,7 +1,7 @@
import type { NotionPage } from '@/models/common'
import type { CrawlResultItem, CustomFile } from '@/models/datasets'
import type { OnlineDriveFile } from '@/models/pipeline'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { OnlineDriveFileType } from '@/models/pipeline'
import { TransferMethod } from '@/types/app'
import {
diff --git a/web/app/components/datasets/documents/detail/__tests__/index.spec.tsx b/web/app/components/datasets/documents/detail/__tests__/index.spec.tsx
index b54ff0e84e6..cb933dc1a92 100644
--- a/web/app/components/datasets/documents/detail/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/detail/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import { act, fireEvent, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithAccountProfile as render } from '@/test/console/account-profile'
import { DatasetACLPermission } from '@/utils/permission'
diff --git a/web/app/components/datasets/documents/detail/__tests__/new-segment.spec.tsx b/web/app/components/datasets/documents/detail/__tests__/new-segment.spec.tsx
index 9d9c98c1d15..ecbfb1f0fee 100644
--- a/web/app/components/datasets/documents/detail/__tests__/new-segment.spec.tsx
+++ b/web/app/components/datasets/documents/detail/__tests__/new-segment.spec.tsx
@@ -1,6 +1,6 @@
import { toast, ToastHost } from '@langgenius/dify-ui/toast'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import { IndexingType } from '../../../create/step-two'
import NewSegmentModal from '../new-segment'
diff --git a/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-downloader.spec.tsx b/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-downloader.spec.tsx
index 79f223b41e8..07ff38d0550 100644
--- a/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-downloader.spec.tsx
+++ b/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-downloader.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactNode } from 'react'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { LanguagesSupported } from '@/i18n-config/language'
import { ChunkingMode } from '@/models/datasets'
import CSVDownload from '../csv-downloader'
diff --git a/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-uploader.spec.tsx b/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-uploader.spec.tsx
index bc30e665de3..25a6353dae8 100644
--- a/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-uploader.spec.tsx
+++ b/web/app/components/datasets/documents/detail/batch-modal/__tests__/csv-uploader.spec.tsx
@@ -1,6 +1,6 @@
import type { CustomFile, FileItem } from '@/models/datasets'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { Theme } from '@/types/app'
import CSVUploader from '../csv-uploader'
diff --git a/web/app/components/datasets/documents/detail/batch-modal/__tests__/index.spec.tsx b/web/app/components/datasets/documents/detail/batch-modal/__tests__/index.spec.tsx
index cc87d819dc2..f7bb44062e2 100644
--- a/web/app/components/datasets/documents/detail/batch-modal/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/detail/batch-modal/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import BatchModal from '../index'
diff --git a/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-detail.spec.tsx b/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-detail.spec.tsx
index ee54cd247d8..25b0f3f6771 100644
--- a/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-detail.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-detail.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import ChildSegmentDetail from '../child-segment-detail'
diff --git a/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-list.spec.tsx b/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-list.spec.tsx
index a651cd38cbc..7fe56f44748 100644
--- a/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-list.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/__tests__/child-segment-list.spec.tsx
@@ -1,6 +1,6 @@
import type { ChildChunkDetail } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ChildSegmentList from '../child-segment-list'
// Mock document context
diff --git a/web/app/components/datasets/documents/detail/completed/__tests__/new-child-segment.spec.tsx b/web/app/components/datasets/documents/detail/completed/__tests__/new-child-segment.spec.tsx
index e7ec81c849e..3ed01d9a9ca 100644
--- a/web/app/components/datasets/documents/detail/completed/__tests__/new-child-segment.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/__tests__/new-child-segment.spec.tsx
@@ -1,6 +1,6 @@
import { toast, ToastHost } from '@langgenius/dify-ui/toast'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import NewChildSegmentModal from '../new-child-segment'
vi.mock('@/next/navigation', () => ({
diff --git a/web/app/components/datasets/documents/detail/completed/__tests__/segment-detail.spec.tsx b/web/app/components/datasets/documents/detail/completed/__tests__/segment-detail.spec.tsx
index 787e2287128..3bf0d36e5b4 100644
--- a/web/app/components/datasets/documents/detail/completed/__tests__/segment-detail.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/__tests__/segment-detail.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { IndexingType } from '@/app/components/datasets/create/step-two'
import { ChunkingMode } from '@/models/datasets'
import { SegmentDetail } from '../segment-detail'
diff --git a/web/app/components/datasets/documents/detail/completed/__tests__/segment-list.spec.tsx b/web/app/components/datasets/documents/detail/completed/__tests__/segment-list.spec.tsx
index e7450cb617f..094f049c906 100644
--- a/web/app/components/datasets/documents/detail/completed/__tests__/segment-list.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/__tests__/segment-list.spec.tsx
@@ -1,6 +1,6 @@
import type { SegmentDetailModel } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import SegmentList from '../segment-list'
diff --git a/web/app/components/datasets/documents/detail/completed/common/__tests__/action-buttons.spec.tsx b/web/app/components/datasets/documents/detail/completed/common/__tests__/action-buttons.spec.tsx
index 82e95878d62..5d74b905e0c 100644
--- a/web/app/components/datasets/documents/detail/completed/common/__tests__/action-buttons.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/common/__tests__/action-buttons.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import { DocumentContext } from '../../../context'
import { ActionButtons } from '../action-buttons'
diff --git a/web/app/components/datasets/documents/detail/completed/common/__tests__/batch-action.spec.tsx b/web/app/components/datasets/documents/detail/completed/common/__tests__/batch-action.spec.tsx
index 4ef9d563e0a..9d0fcdc6537 100644
--- a/web/app/components/datasets/documents/detail/completed/common/__tests__/batch-action.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/common/__tests__/batch-action.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, screen, waitFor, within } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import BatchAction from '../batch-action'
diff --git a/web/app/components/datasets/documents/detail/completed/common/__tests__/chunk-content.spec.tsx b/web/app/components/datasets/documents/detail/completed/common/__tests__/chunk-content.spec.tsx
index 442519e91f5..3a7dc85cc6d 100644
--- a/web/app/components/datasets/documents/detail/completed/common/__tests__/chunk-content.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/common/__tests__/chunk-content.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import ChunkContent from '../chunk-content'
diff --git a/web/app/components/datasets/documents/detail/completed/common/__tests__/drawer.spec.tsx b/web/app/components/datasets/documents/detail/completed/common/__tests__/drawer.spec.tsx
index 9fe43656745..edf4f7d4b39 100644
--- a/web/app/components/datasets/documents/detail/completed/common/__tests__/drawer.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/common/__tests__/drawer.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CompletedDrawer } from '../drawer'
;(
diff --git a/web/app/components/datasets/documents/detail/completed/common/__tests__/regeneration-modal.spec.tsx b/web/app/components/datasets/documents/detail/completed/common/__tests__/regeneration-modal.spec.tsx
index cd0f482ceb3..69a3957f0ed 100644
--- a/web/app/components/datasets/documents/detail/completed/common/__tests__/regeneration-modal.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/common/__tests__/regeneration-modal.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactNode } from 'react'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useEventEmitterContextContext } from '@/context/event-emitter'
import { EventEmitterContextProvider } from '@/context/event-emitter-provider'
import RegenerationModal from '../regeneration-modal'
diff --git a/web/app/components/datasets/documents/detail/completed/common/__tests__/summary-text.spec.tsx b/web/app/components/datasets/documents/detail/completed/common/__tests__/summary-text.spec.tsx
index 1e470aa0d51..47ca7b56f53 100644
--- a/web/app/components/datasets/documents/detail/completed/common/__tests__/summary-text.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/common/__tests__/summary-text.spec.tsx
@@ -1,6 +1,6 @@
import type * as React from 'react'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import SummaryText from '../summary-text'
vi.mock('react-textarea-autosize', () => ({
diff --git a/web/app/components/datasets/documents/detail/completed/common/__tests__/summary.spec.tsx b/web/app/components/datasets/documents/detail/completed/common/__tests__/summary.spec.tsx
index 6f6914526b5..0110e13d774 100644
--- a/web/app/components/datasets/documents/detail/completed/common/__tests__/summary.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/common/__tests__/summary.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import SummaryLabel from '../summary-label'
import SummaryStatus from '../summary-status'
import SummaryText from '../summary-text'
diff --git a/web/app/components/datasets/documents/detail/completed/components/__tests__/menu-bar.spec.tsx b/web/app/components/datasets/documents/detail/completed/components/__tests__/menu-bar.spec.tsx
index 8f5e9dc769a..eb8492018c3 100644
--- a/web/app/components/datasets/documents/detail/completed/components/__tests__/menu-bar.spec.tsx
+++ b/web/app/components/datasets/documents/detail/completed/components/__tests__/menu-bar.spec.tsx
@@ -1,7 +1,7 @@
import type { ComponentProps } from 'react'
import { CheckboxGroup } from '@langgenius/dify-ui/checkbox-group'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import MenuBar from '../menu-bar'
vi.mock('../../display-toggle', () => ({
diff --git a/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-modal-state.spec.ts b/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-modal-state.spec.ts
index 0f887083c27..c9f0c0cbd6a 100644
--- a/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-modal-state.spec.ts
+++ b/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-modal-state.spec.ts
@@ -1,6 +1,6 @@
import type { ChildChunkDetail, SegmentDetailModel } from '@/models/datasets'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import * as modalStateHooks from '../use-modal-state'
const renderDatasetModalState = modalStateHooks.useModalState
diff --git a/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-search-filter.spec.ts b/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-search-filter.spec.ts
index 31b644b73b6..1e84dd64446 100644
--- a/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-search-filter.spec.ts
+++ b/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-search-filter.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useSearchFilter } from '../use-search-filter'
describe('useSearchFilter', () => {
diff --git a/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-segment-selection.spec.ts b/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-segment-selection.spec.ts
index 760347ba258..9588c69ae01 100644
--- a/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-segment-selection.spec.ts
+++ b/web/app/components/datasets/documents/detail/completed/hooks/__tests__/use-segment-selection.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { mergeCurrentPageSelectedSegmentIds, useSegmentSelection } from '../use-segment-selection'
describe('useSegmentSelection', () => {
diff --git a/web/app/components/datasets/documents/detail/embedding/__tests__/index.spec.tsx b/web/app/components/datasets/documents/detail/embedding/__tests__/index.spec.tsx
index 1f3cd6a84ca..7397d49bb4d 100644
--- a/web/app/components/datasets/documents/detail/embedding/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/detail/embedding/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import type { IndexingStatusResponse, ProcessRuleResponse } from '@/models/datas
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ProcessMode } from '@/models/datasets'
import * as datasetsService from '@/service/datasets'
import * as useDataset from '@/service/knowledge/use-dataset'
diff --git a/web/app/components/datasets/documents/detail/embedding/hooks/__tests__/use-embedding-status.spec.tsx b/web/app/components/datasets/documents/detail/embedding/hooks/__tests__/use-embedding-status.spec.tsx
index 737fc400e2c..3e379ccfaf7 100644
--- a/web/app/components/datasets/documents/detail/embedding/hooks/__tests__/use-embedding-status.spec.tsx
+++ b/web/app/components/datasets/documents/detail/embedding/hooks/__tests__/use-embedding-status.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { IndexingStatusResponse } from '@/models/datasets'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import * as datasetsService from '@/service/datasets'
import {
calculatePercent,
diff --git a/web/app/components/datasets/documents/detail/metadata/components/__tests__/field-info.spec.tsx b/web/app/components/datasets/documents/detail/metadata/components/__tests__/field-info.spec.tsx
index d29852640b3..f0a7dfb1cf5 100644
--- a/web/app/components/datasets/documents/detail/metadata/components/__tests__/field-info.spec.tsx
+++ b/web/app/components/datasets/documents/detail/metadata/components/__tests__/field-info.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import FieldInfo from '../field-info'
vi.mock('@/utils', () => ({
diff --git a/web/app/components/datasets/documents/detail/segment-add/__tests__/index.spec.tsx b/web/app/components/datasets/documents/detail/segment-add/__tests__/index.spec.tsx
index e4130018b05..b7b2db0d237 100644
--- a/web/app/components/datasets/documents/detail/segment-add/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/detail/segment-add/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { CloudPlan } from '@dify/contracts/api/console/features/types.gen'
import type { SegmentImportStatus } from '@/types/dataset'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import { segmentImportStatus } from '@/types/dataset'
import { SegmentAdd } from '../index'
diff --git a/web/app/components/datasets/documents/detail/settings/__tests__/document-settings.spec.tsx b/web/app/components/datasets/documents/detail/settings/__tests__/document-settings.spec.tsx
index acc3ba1b85e..11135337ba8 100644
--- a/web/app/components/datasets/documents/detail/settings/__tests__/document-settings.spec.tsx
+++ b/web/app/components/datasets/documents/detail/settings/__tests__/document-settings.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import DocumentSettings from '../document-settings'
const mockPush = vi.fn()
diff --git a/web/app/components/datasets/documents/detail/settings/pipeline-settings/process-documents/__tests__/hooks.spec.ts b/web/app/components/datasets/documents/detail/settings/pipeline-settings/process-documents/__tests__/hooks.spec.ts
index 5892ff53cac..bd4e5488e6a 100644
--- a/web/app/components/datasets/documents/detail/settings/pipeline-settings/process-documents/__tests__/hooks.spec.ts
+++ b/web/app/components/datasets/documents/detail/settings/pipeline-settings/process-documents/__tests__/hooks.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useInputVariables } from '../hooks'
let mockPipelineId: string | undefined
diff --git a/web/app/components/datasets/documents/hooks/__tests__/use-document-list-query-state.spec.tsx b/web/app/components/datasets/documents/hooks/__tests__/use-document-list-query-state.spec.tsx
index 24709178117..7958e504dbc 100644
--- a/web/app/components/datasets/documents/hooks/__tests__/use-document-list-query-state.spec.tsx
+++ b/web/app/components/datasets/documents/hooks/__tests__/use-document-list-query-state.spec.tsx
@@ -1,6 +1,6 @@
import type { DocumentListQuery } from '../use-document-list-query-state'
import { act, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderHookWithNuqs } from '@/test/nuqs-testing'
import { useDocumentListQueryState } from '../use-document-list-query-state'
diff --git a/web/app/components/datasets/documents/hooks/__tests__/use-documents-page-state.spec.ts b/web/app/components/datasets/documents/hooks/__tests__/use-documents-page-state.spec.ts
index bef669798b9..9a5e9c5cb68 100644
--- a/web/app/components/datasets/documents/hooks/__tests__/use-documents-page-state.spec.ts
+++ b/web/app/components/datasets/documents/hooks/__tests__/use-documents-page-state.spec.ts
@@ -1,6 +1,6 @@
import type { DocumentListQuery } from '../use-document-list-query-state'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useDocumentsPageState } from '../use-documents-page-state'
const mockUpdateQuery = vi.fn()
diff --git a/web/app/components/datasets/documents/status-item/__tests__/hooks.spec.ts b/web/app/components/datasets/documents/status-item/__tests__/hooks.spec.ts
index 661e9a901b1..61b440f19f9 100644
--- a/web/app/components/datasets/documents/status-item/__tests__/hooks.spec.ts
+++ b/web/app/components/datasets/documents/status-item/__tests__/hooks.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useIndexStatus } from '../hooks'
// Explicit react-i18next mock so the test stays portable
diff --git a/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx b/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx
index 6eae01a66a6..f0d72b55ac4 100644
--- a/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { act, cleanup, fireEvent, render, screen } from '@testing-library/react'
import * as React from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import StatusItem from '../index'
const toastMocks = vi.hoisted(() => {
diff --git a/web/app/components/datasets/external-api/external-api-modal/__tests__/Form.spec.tsx b/web/app/components/datasets/external-api/external-api-modal/__tests__/Form.spec.tsx
index b0f6446ea57..2d8460d9c29 100644
--- a/web/app/components/datasets/external-api/external-api-modal/__tests__/Form.spec.tsx
+++ b/web/app/components/datasets/external-api/external-api-modal/__tests__/Form.spec.tsx
@@ -1,6 +1,6 @@
import type { CreateExternalAPIReq, FormSchema } from '../../declarations'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Form from '../Form'
vi.mock('@/context/i18n', () => ({
diff --git a/web/app/components/datasets/external-api/external-api-modal/__tests__/index.spec.tsx b/web/app/components/datasets/external-api/external-api-modal/__tests__/index.spec.tsx
index da5adb3caba..10b5515fffd 100644
--- a/web/app/components/datasets/external-api/external-api-modal/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/external-api/external-api-modal/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { CreateExternalAPIReq } from '../../declarations'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// Import mocked service
import { createExternalAPI } from '@/service/datasets'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
diff --git a/web/app/components/datasets/external-api/external-api-panel/__tests__/index.spec.tsx b/web/app/components/datasets/external-api/external-api-panel/__tests__/index.spec.tsx
index 29875defb61..dcced4455ca 100644
--- a/web/app/components/datasets/external-api/external-api-panel/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/external-api/external-api-panel/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { ExternalKnowledgeApiResponse } from '@dify/contracts/api/console/datasets/types.gen'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ExternalAPIPanel from '../index'
vi.mock('@/context/i18n', () => ({
diff --git a/web/app/components/datasets/external-api/external-knowledge-api-card/__tests__/index.spec.tsx b/web/app/components/datasets/external-api/external-knowledge-api-card/__tests__/index.spec.tsx
index b5043aa811d..6826448df8d 100644
--- a/web/app/components/datasets/external-api/external-knowledge-api-card/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/external-api/external-knowledge-api-card/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { ExternalKnowledgeApiResponse } from '@dify/contracts/api/console/datasets/types.gen'
import type { ExternalAPIItem } from '@/models/datasets'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// Import mocked services
import {
checkUsageExternalAPI,
diff --git a/web/app/components/datasets/external-knowledge-base/connector/__tests__/index.spec.tsx b/web/app/components/datasets/external-knowledge-base/connector/__tests__/index.spec.tsx
index 68d5bed0e5f..dde44bc173f 100644
--- a/web/app/components/datasets/external-knowledge-base/connector/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/external-knowledge-base/connector/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { ExternalAPIItem } from '@/models/datasets'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
diff --git a/web/app/components/datasets/external-knowledge-base/create/__tests__/ExternalApiSelect.spec.tsx b/web/app/components/datasets/external-knowledge-base/create/__tests__/ExternalApiSelect.spec.tsx
index 5dfa11f5b79..5ac1d084bc2 100644
--- a/web/app/components/datasets/external-knowledge-base/create/__tests__/ExternalApiSelect.spec.tsx
+++ b/web/app/components/datasets/external-knowledge-base/create/__tests__/ExternalApiSelect.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// Explicit react-i18next mock so the test stays portable
// even if the global vitest.setup changes.
diff --git a/web/app/components/datasets/formatted-text/flavours/__tests__/edit-slice.spec.tsx b/web/app/components/datasets/formatted-text/flavours/__tests__/edit-slice.spec.tsx
index 1c91d924259..1367a27f8ba 100644
--- a/web/app/components/datasets/formatted-text/flavours/__tests__/edit-slice.spec.tsx
+++ b/web/app/components/datasets/formatted-text/flavours/__tests__/edit-slice.spec.tsx
@@ -1,5 +1,5 @@
import { act, fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// Capture the onOpenChange callback to simulate hover interactions
let capturedOnOpenChange: ((open: boolean) => void) | null = null
diff --git a/web/app/components/datasets/hit-testing/__tests__/index.spec.tsx b/web/app/components/datasets/hit-testing/__tests__/index.spec.tsx
index dcf8190e7fa..4120370fc93 100644
--- a/web/app/components/datasets/hit-testing/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/hit-testing/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import type { RetrievalConfig } from '@/types/app'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { seedAccountProfileQuery } from '@/test/console/account-profile'
import { render } from '@/test/console/render'
import { RETRIEVE_METHOD } from '@/types/app'
diff --git a/web/app/components/datasets/hit-testing/__tests__/modify-external-retrieval-modal.spec.tsx b/web/app/components/datasets/hit-testing/__tests__/modify-external-retrieval-modal.spec.tsx
index c01f38d154d..5e8d0e17282 100644
--- a/web/app/components/datasets/hit-testing/__tests__/modify-external-retrieval-modal.spec.tsx
+++ b/web/app/components/datasets/hit-testing/__tests__/modify-external-retrieval-modal.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ModifyExternalRetrievalModal from '../modify-external-retrieval-modal'
vi.mock('../../external-knowledge-base/create/RetrievalSettings', () => ({
diff --git a/web/app/components/datasets/hit-testing/__tests__/modify-retrieval-modal.spec.tsx b/web/app/components/datasets/hit-testing/__tests__/modify-retrieval-modal.spec.tsx
index 11430c98a01..e2e1a6739fd 100644
--- a/web/app/components/datasets/hit-testing/__tests__/modify-retrieval-modal.spec.tsx
+++ b/web/app/components/datasets/hit-testing/__tests__/modify-retrieval-modal.spec.tsx
@@ -1,6 +1,6 @@
import type { RetrievalConfig } from '@/types/app'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import { RETRIEVE_METHOD } from '@/types/app'
import ModifyRetrievalModal from '../modify-retrieval-modal'
diff --git a/web/app/components/datasets/hit-testing/components/__tests__/chunk-detail-modal.spec.tsx b/web/app/components/datasets/hit-testing/components/__tests__/chunk-detail-modal.spec.tsx
index 73b93147219..f3f754b2f2c 100644
--- a/web/app/components/datasets/hit-testing/components/__tests__/chunk-detail-modal.spec.tsx
+++ b/web/app/components/datasets/hit-testing/components/__tests__/chunk-detail-modal.spec.tsx
@@ -1,6 +1,6 @@
import type { HitTesting } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ChunkDetailModal from '../chunk-detail-modal'
vi.mock('@/app/components/base/file-uploader/file-type-icon', () => ({
diff --git a/web/app/components/datasets/hit-testing/components/__tests__/records.spec.tsx b/web/app/components/datasets/hit-testing/components/__tests__/records.spec.tsx
index f7efd022666..41ad8b0c95f 100644
--- a/web/app/components/datasets/hit-testing/components/__tests__/records.spec.tsx
+++ b/web/app/components/datasets/hit-testing/components/__tests__/records.spec.tsx
@@ -1,6 +1,6 @@
import type { HitTestingRecord } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Records from '../records'
vi.mock('@/hooks/use-timestamp', () => ({
diff --git a/web/app/components/datasets/hit-testing/components/__tests__/result-item-external.spec.tsx b/web/app/components/datasets/hit-testing/components/__tests__/result-item-external.spec.tsx
index b1a4aa5f57f..52b5f0e1676 100644
--- a/web/app/components/datasets/hit-testing/components/__tests__/result-item-external.spec.tsx
+++ b/web/app/components/datasets/hit-testing/components/__tests__/result-item-external.spec.tsx
@@ -1,6 +1,6 @@
import type { ExternalKnowledgeBaseHitTesting } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ResultItemExternal from '../result-item-external'
let mockIsShowDetailModal = false
diff --git a/web/app/components/datasets/hit-testing/components/__tests__/result-item.spec.tsx b/web/app/components/datasets/hit-testing/components/__tests__/result-item.spec.tsx
index bf3b6ae055b..f682e0dff4b 100644
--- a/web/app/components/datasets/hit-testing/components/__tests__/result-item.spec.tsx
+++ b/web/app/components/datasets/hit-testing/components/__tests__/result-item.spec.tsx
@@ -1,6 +1,6 @@
import type { HitTesting } from '@/models/datasets'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ResultItem from '../result-item'
vi.mock('@/app/components/base/markdown', () => ({
diff --git a/web/app/components/datasets/hit-testing/components/query-input/__tests__/index.spec.tsx b/web/app/components/datasets/hit-testing/components/query-input/__tests__/index.spec.tsx
index d1a66113eb3..c8b73fdceeb 100644
--- a/web/app/components/datasets/hit-testing/components/query-input/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/hit-testing/components/query-input/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { FileEntity } from '@/app/components/datasets/common/image-uploader
import type { Query } from '@/models/datasets'
import type { RetrievalConfig } from '@/types/app'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { expectLoadingButton } from '@/test/button'
import QueryInput from '../index'
diff --git a/web/app/components/datasets/hit-testing/utils/__tests__/extension-to-file-type.spec.ts b/web/app/components/datasets/hit-testing/utils/__tests__/extension-to-file-type.spec.ts
index fa493905a1c..af99fce0a0f 100644
--- a/web/app/components/datasets/hit-testing/utils/__tests__/extension-to-file-type.spec.ts
+++ b/web/app/components/datasets/hit-testing/utils/__tests__/extension-to-file-type.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { FileAppearanceTypeEnum } from '@/app/components/base/file-uploader/types'
import { extensionToFileType } from '../extension-to-file-type'
diff --git a/web/app/components/datasets/list/__tests__/datasets.spec.tsx b/web/app/components/datasets/list/__tests__/datasets.spec.tsx
index af9d39914be..c039b886710 100644
--- a/web/app/components/datasets/list/__tests__/datasets.spec.tsx
+++ b/web/app/components/datasets/list/__tests__/datasets.spec.tsx
@@ -1,7 +1,7 @@
import type { DataSet, DataSetListResponse } from '@/models/datasets'
import type { useDatasetList } from '@/service/knowledge/use-dataset'
import { render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { IndexingType } from '@/app/components/datasets/create/step-two'
import { STEP_BY_STEP_TOUR_TARGETS } from '@/app/components/step-by-step-tour/target-registry'
import { ChunkingMode, DatasetPermission, DataSourceType } from '@/models/datasets'
diff --git a/web/app/components/datasets/list/__tests__/index.spec.tsx b/web/app/components/datasets/list/__tests__/index.spec.tsx
index 9383260c705..6d57050d5b1 100644
--- a/web/app/components/datasets/list/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/list/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import userEvent from '@testing-library/user-event'
import { createStore, Provider } from 'jotai'
import { hydrateRoot } from 'react-dom/client'
import { renderToString } from 'react-dom/server'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useNewKnowledgeGuideDismissedValue } from '@/features/new-rag/storage'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { render as renderWithConsoleState } from '@/test/console/render'
diff --git a/web/app/components/datasets/list/dataset-card/__tests__/index.spec.tsx b/web/app/components/datasets/list/dataset-card/__tests__/index.spec.tsx
index 8a07e3d9826..0e5de21a2c7 100644
--- a/web/app/components/datasets/list/dataset-card/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/list/dataset-card/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { DataSet } from '@/models/datasets'
import { QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, screen } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { IndexingType } from '@/app/components/datasets/create/step-two'
import { STEP_BY_STEP_TOUR_TARGETS } from '@/app/components/step-by-step-tour/target-registry'
import { ChunkingMode, DatasetPermission, DataSourceType } from '@/models/datasets'
diff --git a/web/app/components/datasets/list/dataset-card/components/__tests__/dataset-card-modals.spec.tsx b/web/app/components/datasets/list/dataset-card/components/__tests__/dataset-card-modals.spec.tsx
index 69ca5be6b3b..ae783f03a78 100644
--- a/web/app/components/datasets/list/dataset-card/components/__tests__/dataset-card-modals.spec.tsx
+++ b/web/app/components/datasets/list/dataset-card/components/__tests__/dataset-card-modals.spec.tsx
@@ -1,6 +1,6 @@
import type { DataSet } from '@/models/datasets'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { IndexingType } from '@/app/components/datasets/create/step-two'
import { ChunkingMode, DatasetPermission, DataSourceType } from '@/models/datasets'
import DatasetCardModals from '../dataset-card-modals'
diff --git a/web/app/components/datasets/list/dataset-card/components/__tests__/operations-dropdown.spec.tsx b/web/app/components/datasets/list/dataset-card/components/__tests__/operations-dropdown.spec.tsx
index dd0c20942b6..963ba07f8e3 100644
--- a/web/app/components/datasets/list/dataset-card/components/__tests__/operations-dropdown.spec.tsx
+++ b/web/app/components/datasets/list/dataset-card/components/__tests__/operations-dropdown.spec.tsx
@@ -1,6 +1,6 @@
import type { DataSet } from '@/models/datasets'
import { createEvent, fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { IndexingType } from '@/app/components/datasets/create/step-two'
import { ChunkingMode, DatasetPermission, DataSourceType } from '@/models/datasets'
import { renderWithConsoleQuery } from '@/test/console/query-data'
diff --git a/web/app/components/datasets/list/dataset-card/hooks/__tests__/use-dataset-card-state.spec.ts b/web/app/components/datasets/list/dataset-card/hooks/__tests__/use-dataset-card-state.spec.ts
index e6414b4b5b1..78f58ea3407 100644
--- a/web/app/components/datasets/list/dataset-card/hooks/__tests__/use-dataset-card-state.spec.ts
+++ b/web/app/components/datasets/list/dataset-card/hooks/__tests__/use-dataset-card-state.spec.ts
@@ -3,7 +3,7 @@ import type { DataSet } from '@/models/datasets'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook } from '@testing-library/react'
import { createElement } from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { useDatasetCardState } from '../use-dataset-card-state'
const mocks = vi.hoisted(() => ({
diff --git a/web/app/components/datasets/metadata/base/__tests__/date-picker.spec.tsx b/web/app/components/datasets/metadata/base/__tests__/date-picker.spec.tsx
index 77d5256c658..3ccefa454a5 100644
--- a/web/app/components/datasets/metadata/base/__tests__/date-picker.spec.tsx
+++ b/web/app/components/datasets/metadata/base/__tests__/date-picker.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactElement } from 'react'
import { fireEvent, render as rtlRender, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { createAccountProfileQueryWrapper } from '@/test/console/account-profile'
import WrappedDatePicker from '../date-picker'
diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/add-row.spec.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/add-row.spec.tsx
index f8fe031d660..dfb160b8078 100644
--- a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/add-row.spec.tsx
+++ b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/add-row.spec.tsx
@@ -1,6 +1,6 @@
import type { MetadataItemWithEdit } from '../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import AddRow from '../add-row'
diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edit-row.spec.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edit-row.spec.tsx
index 75f0f78e992..013b093c514 100644
--- a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edit-row.spec.tsx
+++ b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edit-row.spec.tsx
@@ -1,6 +1,6 @@
import type { MetadataItemWithEdit } from '../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType, UpdateType } from '../../types'
import EditMetadatabatchItem from '../edit-row'
diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edited-beacon.spec.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edited-beacon.spec.tsx
index bf115b21b56..d77a2880676 100644
--- a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edited-beacon.spec.tsx
+++ b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/edited-beacon.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { expect, it, vi } from 'vitest'
+import { expect, it, vi } from 'vite-plus/test'
import EditedBeacon from '../edited-beacon'
it('reveals the reset action on hover and invokes it', async () => {
diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/input-combined.spec.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/input-combined.spec.tsx
index 26d03f81cd3..0de454f8409 100644
--- a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/input-combined.spec.tsx
+++ b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/input-combined.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import InputCombined from '../input-combined'
diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/modal.spec.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/modal.spec.tsx
index f1426269ef1..0702456d07b 100644
--- a/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/modal.spec.tsx
+++ b/web/app/components/datasets/metadata/edit-metadata-batch/__tests__/modal.spec.tsx
@@ -1,7 +1,7 @@
import type { MetadataItemInBatchEdit, MetadataItemWithEdit } from '../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType, UpdateType } from '../../types'
import EditMetadataBatchModal from '../modal'
diff --git a/web/app/components/datasets/metadata/hooks/__tests__/use-batch-edit-document-metadata.spec.ts b/web/app/components/datasets/metadata/hooks/__tests__/use-batch-edit-document-metadata.spec.ts
index a891c8c2256..b96d12547ce 100644
--- a/web/app/components/datasets/metadata/hooks/__tests__/use-batch-edit-document-metadata.spec.ts
+++ b/web/app/components/datasets/metadata/hooks/__tests__/use-batch-edit-document-metadata.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook, waitFor } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType, UpdateType } from '../../types'
import useBatchEditDocumentMetadata from '../use-batch-edit-document-metadata'
diff --git a/web/app/components/datasets/metadata/hooks/__tests__/use-check-metadata-name.spec.ts b/web/app/components/datasets/metadata/hooks/__tests__/use-check-metadata-name.spec.ts
index 7c06be39a92..1a8a600ba27 100644
--- a/web/app/components/datasets/metadata/hooks/__tests__/use-check-metadata-name.spec.ts
+++ b/web/app/components/datasets/metadata/hooks/__tests__/use-check-metadata-name.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import useCheckMetadataName from '../use-check-metadata-name'
describe('useCheckMetadataName', () => {
diff --git a/web/app/components/datasets/metadata/hooks/__tests__/use-edit-dataset-metadata.spec.ts b/web/app/components/datasets/metadata/hooks/__tests__/use-edit-dataset-metadata.spec.ts
index 926df7459ba..4f704dff420 100644
--- a/web/app/components/datasets/metadata/hooks/__tests__/use-edit-dataset-metadata.spec.ts
+++ b/web/app/components/datasets/metadata/hooks/__tests__/use-edit-dataset-metadata.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook, waitFor } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import useEditDatasetMetadata from '../use-edit-dataset-metadata'
diff --git a/web/app/components/datasets/metadata/hooks/__tests__/use-metadata-document.spec.ts b/web/app/components/datasets/metadata/hooks/__tests__/use-metadata-document.spec.ts
index 941bcf1f819..19f05e8218d 100644
--- a/web/app/components/datasets/metadata/hooks/__tests__/use-metadata-document.spec.ts
+++ b/web/app/components/datasets/metadata/hooks/__tests__/use-metadata-document.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook, waitFor } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import useMetadataDocument from '../use-metadata-document'
diff --git a/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-content.spec.tsx b/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-content.spec.tsx
index 18644473ead..4733cd46659 100644
--- a/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-content.spec.tsx
+++ b/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-content.spec.tsx
@@ -1,7 +1,7 @@
import type { Props as CreateContentProps } from '../create-content'
import { Popover } from '@langgenius/dify-ui/popover'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import { CreateContent } from '../create-content'
diff --git a/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-metadata-modal.spec.tsx b/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-metadata-modal.spec.tsx
index 53c7dc1e1d1..b7d7bff4f55 100644
--- a/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-metadata-modal.spec.tsx
+++ b/web/app/components/datasets/metadata/metadata-dataset/__tests__/create-metadata-modal.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import { CreateMetadataModal } from '../create-metadata-modal'
diff --git a/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-drawer.spec.tsx b/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-drawer.spec.tsx
index ace01bd9fcf..0f12c67b2e0 100644
--- a/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-drawer.spec.tsx
+++ b/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-drawer.spec.tsx
@@ -1,6 +1,6 @@
import type { BuiltInMetadataItem, MetadataItemWithValueLength } from '../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import DatasetMetadataDrawer from '../dataset-metadata-drawer'
diff --git a/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-picker.spec.tsx b/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-picker.spec.tsx
index 69c1f271c29..4a3d01e4c96 100644
--- a/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-picker.spec.tsx
+++ b/web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-picker.spec.tsx
@@ -1,7 +1,7 @@
import type { MetadataItem } from '../../types'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import { DatasetMetadataPicker } from '../dataset-metadata-picker'
diff --git a/web/app/components/datasets/metadata/metadata-document/__tests__/index.spec.tsx b/web/app/components/datasets/metadata/metadata-document/__tests__/index.spec.tsx
index 1017cdffee0..7f90e0ed95b 100644
--- a/web/app/components/datasets/metadata/metadata-document/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/metadata/metadata-document/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { MetadataItemWithValue } from '../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import MetadataDocument from '../index'
diff --git a/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx b/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx
index 501a40219a3..c445bde7abe 100644
--- a/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx
+++ b/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx
@@ -1,6 +1,6 @@
import type { MetadataItemWithValue } from '../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DataType } from '../../types'
import InfoGroup from '../info-group'
diff --git a/web/app/components/datasets/settings/__tests__/summary-index-setting.spec.tsx b/web/app/components/datasets/settings/__tests__/summary-index-setting.spec.tsx
index e366e4e69bc..9308feaae7b 100644
--- a/web/app/components/datasets/settings/__tests__/summary-index-setting.spec.tsx
+++ b/web/app/components/datasets/settings/__tests__/summary-index-setting.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import SummaryIndexSetting from '../summary-index-setting'
// Mock useModelList to return a list of text generation models
diff --git a/web/app/components/develop/__tests__/use-doc-toc.spec.ts b/web/app/components/develop/__tests__/use-doc-toc.spec.ts
index c624146be7f..fc25e5f564b 100644
--- a/web/app/components/develop/__tests__/use-doc-toc.spec.ts
+++ b/web/app/components/develop/__tests__/use-doc-toc.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useDocToc } from '../hooks/use-doc-toc'
/**
diff --git a/web/app/components/develop/secret-key/__tests__/secret-key-modal.spec.tsx b/web/app/components/develop/secret-key/__tests__/secret-key-modal.spec.tsx
index 67c24062daa..6ed06786344 100644
--- a/web/app/components/develop/secret-key/__tests__/secret-key-modal.spec.tsx
+++ b/web/app/components/develop/secret-key/__tests__/secret-key-modal.spec.tsx
@@ -5,7 +5,7 @@ import type { SecretKeyScope } from '../secret-key-modal'
import { QueryClientProvider } from '@tanstack/react-query'
import { act, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { afterEach } from 'vitest'
+import { afterEach } from 'vite-plus/test'
import { render } from '@/test/console/render'
import { createTestQueryClient } from '@/test/query-client'
import SecretKeyModal from '../secret-key-modal'
diff --git a/web/app/components/explore/installed-app/__tests__/index.spec.tsx b/web/app/components/explore/installed-app/__tests__/index.spec.tsx
index e9de7f56390..19824e1553f 100644
--- a/web/app/components/explore/installed-app/__tests__/index.spec.tsx
+++ b/web/app/components/explore/installed-app/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type {
AppMode,
InstalledAppResponse,
} from '@dify/contracts/api/console/installed-apps/types.gen'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { screen, waitFor } from '@testing-library/react'
import { useWebAppStore } from '@/context/web-app-context'
import { AccessMode } from '@/models/access-control'
diff --git a/web/app/components/explore/installed-app/__tests__/routes.spec.ts b/web/app/components/explore/installed-app/__tests__/routes.spec.ts
index 366da5167ef..e874a22d29d 100644
--- a/web/app/components/explore/installed-app/__tests__/routes.spec.ts
+++ b/web/app/components/explore/installed-app/__tests__/routes.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { buildInstalledAppPath, buildLegacyInstalledAppPath, isInstalledAppPath } from '../routes'
describe('installed app routes', () => {
diff --git a/web/app/components/explore/try-app/__tests__/index.spec.tsx b/web/app/components/explore/try-app/__tests__/index.spec.tsx
index 24d6959e8a9..9b4b1de96f4 100644
--- a/web/app/components/explore/try-app/__tests__/index.spec.tsx
+++ b/web/app/components/explore/try-app/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { ComponentProps } from 'react'
import type { App as ExploreApp } from '@/models/explore'
import type { TryAppInfo } from '@/service/try-app'
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import TryAppComponent from '../index'
import { TypeEnum } from '../types'
diff --git a/web/app/components/explore/try-app/app-info/__tests__/index.spec.tsx b/web/app/components/explore/try-app/app-info/__tests__/index.spec.tsx
index 229df457798..f85d4f49d33 100644
--- a/web/app/components/explore/try-app/app-info/__tests__/index.spec.tsx
+++ b/web/app/components/explore/try-app/app-info/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { TryAppInfo } from '@/service/try-app'
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
import * as React from 'react'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import AppInfo from '../index'
const mockUseGetRequirements = vi.fn()
diff --git a/web/app/components/explore/try-app/app-info/__tests__/use-get-requirements.spec.ts b/web/app/components/explore/try-app/app-info/__tests__/use-get-requirements.spec.ts
index 2ad92fb54cd..131f52210ff 100644
--- a/web/app/components/explore/try-app/app-info/__tests__/use-get-requirements.spec.ts
+++ b/web/app/components/explore/try-app/app-info/__tests__/use-get-requirements.spec.ts
@@ -1,6 +1,6 @@
import type { TryAppInfo } from '@/service/try-app'
import { renderHook } from '@testing-library/react'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import useGetRequirements from '../use-get-requirements'
const mockUseGetTryAppFlowPreview = vi.fn()
diff --git a/web/app/components/explore/try-app/app/__tests__/chat.spec.tsx b/web/app/components/explore/try-app/app/__tests__/chat.spec.tsx
index b45e524d9d4..d8a6ad7511b 100644
--- a/web/app/components/explore/try-app/app/__tests__/chat.spec.tsx
+++ b/web/app/components/explore/try-app/app/__tests__/chat.spec.tsx
@@ -1,6 +1,6 @@
import type { TryAppInfo } from '@/service/try-app'
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import TryApp from '../chat'
const mockRemoveConversationIdInfo = vi.fn()
diff --git a/web/app/components/explore/try-app/app/__tests__/index.spec.tsx b/web/app/components/explore/try-app/app/__tests__/index.spec.tsx
index a32439c009d..32fbd96d8ff 100644
--- a/web/app/components/explore/try-app/app/__tests__/index.spec.tsx
+++ b/web/app/components/explore/try-app/app/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { TryAppInfo } from '@/service/try-app'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import TryApp from '../index'
vi.mock('../chat', () => ({
diff --git a/web/app/components/explore/try-app/app/__tests__/text-generation.spec.tsx b/web/app/components/explore/try-app/app/__tests__/text-generation.spec.tsx
index 179b662d4d5..eaa009acfcb 100644
--- a/web/app/components/explore/try-app/app/__tests__/text-generation.spec.tsx
+++ b/web/app/components/explore/try-app/app/__tests__/text-generation.spec.tsx
@@ -1,6 +1,6 @@
import type { AppData } from '@/models/share'
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import TextGeneration from '../text-generation'
const mockUpdateAppInfo = vi.fn()
diff --git a/web/app/components/explore/try-app/preview/__tests__/index.spec.tsx b/web/app/components/explore/try-app/preview/__tests__/index.spec.tsx
index 92a371f4fcd..4b1916edbad 100644
--- a/web/app/components/explore/try-app/preview/__tests__/index.spec.tsx
+++ b/web/app/components/explore/try-app/preview/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { TryAppInfo } from '@/service/try-app'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import Preview from '../index'
vi.mock('../basic-app-preview', () => ({
diff --git a/web/app/components/header/__tests__/maintenance-notice.spec.tsx b/web/app/components/header/__tests__/maintenance-notice.spec.tsx
index 14fb43f265c..91310c133ec 100644
--- a/web/app/components/header/__tests__/maintenance-notice.spec.tsx
+++ b/web/app/components/header/__tests__/maintenance-notice.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useLanguage } from '@/app/components/header/account-setting/model-provider-page/hooks'
import { NOTICE_I18N } from '@/i18n-config/language'
import MaintenanceNotice from '../maintenance-notice'
diff --git a/web/app/components/header/account-setting/members-page/__tests__/index.spec.tsx b/web/app/components/header/account-setting/members-page/__tests__/index.spec.tsx
index 69fbea58f84..1e4813cd27a 100644
--- a/web/app/components/header/account-setting/members-page/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import type { Member } from '@/models/common'
import type { ConsoleStateFixture } from '@/test/console/state-fixture'
import { screen, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { createMockProviderContextValue } from '@/__mocks__/provider-context'
import { useProviderContext } from '@/context/provider-context'
import { useFormatTimeFromNow } from '@/hooks/use-format-time-from-now'
diff --git a/web/app/components/header/account-setting/members-page/__tests__/invite-button.spec.tsx b/web/app/components/header/account-setting/members-page/__tests__/invite-button.spec.tsx
index d64395e164e..612c3c3e5aa 100644
--- a/web/app/components/header/account-setting/members-page/__tests__/invite-button.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/__tests__/invite-button.spec.tsx
@@ -1,6 +1,6 @@
import type { ConsoleStateFixture } from '@/test/console/state-fixture'
import { screen } from '@testing-library/react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useWorkspacePermissions } from '@/service/use-workspace'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import InviteButton from '../invite-button'
diff --git a/web/app/components/header/account-setting/members-page/edit-workspace-modal/__tests__/index.spec.tsx b/web/app/components/header/account-setting/members-page/edit-workspace-modal/__tests__/index.spec.tsx
index 275554eebf8..8db9f8142ba 100644
--- a/web/app/components/header/account-setting/members-page/edit-workspace-modal/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/edit-workspace-modal/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { ConsoleStateFixture } from '@/test/console/state-fixture'
import { fireEvent, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { updateWorkspaceInfo } from '@/service/common'
import { render } from '@/test/console/render'
import EditWorkspaceModal from '../index'
diff --git a/web/app/components/header/account-setting/members-page/invite-modal/__tests__/email-recipients.spec.ts b/web/app/components/header/account-setting/members-page/invite-modal/__tests__/email-recipients.spec.ts
index 62117b03157..569644732d4 100644
--- a/web/app/components/header/account-setting/members-page/invite-modal/__tests__/email-recipients.spec.ts
+++ b/web/app/components/header/account-setting/members-page/invite-modal/__tests__/email-recipients.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { createEmailRecipient, hasEmailDelimiter, mergeEmailRecipients } from '../email-recipients'
describe('email recipients', () => {
diff --git a/web/app/components/header/account-setting/members-page/invite-modal/__tests__/index.spec.tsx b/web/app/components/header/account-setting/members-page/invite-modal/__tests__/index.spec.tsx
index 0096ab1afb1..eb760277092 100644
--- a/web/app/components/header/account-setting/members-page/invite-modal/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/invite-modal/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, render, screen, waitFor, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useState } from 'react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useWorkspaceRoleList } from '@/service/access-control/use-workspace-roles'
import { seedFeatures } from '@/test/console/query-data'
import { InviteModal } from '../index'
diff --git a/web/app/components/header/account-setting/members-page/invite-modal/__tests__/role-selector.spec.tsx b/web/app/components/header/account-setting/members-page/invite-modal/__tests__/role-selector.spec.tsx
index 88888e5fc63..5701453732f 100644
--- a/web/app/components/header/account-setting/members-page/invite-modal/__tests__/role-selector.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/invite-modal/__tests__/role-selector.spec.tsx
@@ -1,7 +1,7 @@
import type { Role, RoleListResponse } from '@/models/access-control'
import { act, render, screen, waitFor, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useWorkspaceRoleList } from '@/service/access-control/use-workspace-roles'
import { RoleSelector } from '../role-selector'
diff --git a/web/app/components/header/account-setting/members-page/member-details-modal/__tests__/index.spec.tsx b/web/app/components/header/account-setting/members-page/member-details-modal/__tests__/index.spec.tsx
index c75bfd90130..893d6089578 100644
--- a/web/app/components/header/account-setting/members-page/member-details-modal/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/member-details-modal/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { Role } from '@/models/access-control'
import type { Member } from '@/models/common'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useRolesOfMember } from '@/service/access-control/use-member-roles'
import { useWorkspaceRoleList } from '@/service/access-control/use-workspace-roles'
import MemberDetailsModal from '../index'
diff --git a/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/index.spec.tsx b/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/index.spec.tsx
index 66775ac0a18..750aa5efdad 100644
--- a/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { ConsoleStateFixture } from '@/test/console/state-fixture'
import { act, fireEvent, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { ownershipTransfer, sendOwnerEmail, verifyOwnerEmail } from '@/service/common'
import { useMembers } from '@/service/use-common'
import { createAccountProfileQueryWrapper } from '@/test/console/account-profile'
diff --git a/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/member-selector.spec.tsx b/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/member-selector.spec.tsx
index 4bfd40bf52a..8b6e0f0c3ee 100644
--- a/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/member-selector.spec.tsx
+++ b/web/app/components/header/account-setting/members-page/transfer-ownership-modal/__tests__/member-selector.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { useMembers } from '@/service/use-common'
import MemberSelector from '../member-selector'
diff --git a/web/app/components/header/account-setting/model-provider-page/__tests__/atoms.spec.tsx b/web/app/components/header/account-setting/model-provider-page/__tests__/atoms.spec.tsx
index b1ae492cbb6..1bd4f3ddb40 100644
--- a/web/app/components/header/account-setting/model-provider-page/__tests__/atoms.spec.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/__tests__/atoms.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { act, renderHook } from '@testing-library/react'
import { Provider } from 'jotai'
-import { beforeEach, describe, expect, it } from 'vitest'
+import { beforeEach, describe, expect, it } from 'vite-plus/test'
import {
useExpandModelProviderList,
useModelProviderListExpanded,
diff --git a/web/app/components/header/account-setting/model-provider-page/__tests__/hooks.spec.ts b/web/app/components/header/account-setting/model-provider-page/__tests__/hooks.spec.ts
index fdda8876663..9dd28b12575 100644
--- a/web/app/components/header/account-setting/model-provider-page/__tests__/hooks.spec.ts
+++ b/web/app/components/header/account-setting/model-provider-page/__tests__/hooks.spec.ts
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type {
Credential,
CustomConfigurationModelFixedFields,
diff --git a/web/app/components/header/account-setting/model-provider-page/__tests__/index.spec.tsx b/web/app/components/header/account-setting/model-provider-page/__tests__/index.spec.tsx
index 3cef8326aa3..7edf7ff90c4 100644
--- a/web/app/components/header/account-setting/model-provider-page/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { PluginDeclaration, PluginDetail } from '@/app/components/plugins/types'
import { act, fireEvent, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, PluginSource } from '@/app/components/plugins/types'
import {
getStepByStepTourTargetSelector,
diff --git a/web/app/components/header/account-setting/model-provider-page/__tests__/install-from-marketplace.spec.tsx b/web/app/components/header/account-setting/model-provider-page/__tests__/install-from-marketplace.spec.tsx
index f5a79f8ec7d..c2e6a8e7fe7 100644
--- a/web/app/components/header/account-setting/model-provider-page/__tests__/install-from-marketplace.spec.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/__tests__/install-from-marketplace.spec.tsx
@@ -1,6 +1,6 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { act, fireEvent, screen } from '@testing-library/react'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import {
getStepByStepTourTargetSelector,
STEP_BY_STEP_TOUR_TARGETS,
diff --git a/web/app/components/header/account-setting/model-provider-page/__tests__/utils.spec.ts b/web/app/components/header/account-setting/model-provider-page/__tests__/utils.spec.ts
index 698e14d170b..1bcff84d74c 100644
--- a/web/app/components/header/account-setting/model-provider-page/__tests__/utils.spec.ts
+++ b/web/app/components/header/account-setting/model-provider-page/__tests__/utils.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { FormTypeEnum, ModelTypeEnum } from '../declarations'
import {
genModelNameFormSchema,
diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/hooks/__tests__/use-model-form-schemas.spec.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/hooks/__tests__/use-model-form-schemas.spec.tsx
index 0dbcffaeb3a..b553bf01d62 100644
--- a/web/app/components/header/account-setting/model-provider-page/model-auth/hooks/__tests__/use-model-form-schemas.spec.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/model-auth/hooks/__tests__/use-model-form-schemas.spec.tsx
@@ -1,6 +1,6 @@
import type { Credential, CustomModelCredential, ModelProvider } from '../../../declarations'
import { renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { FormTypeEnum } from '@/app/components/base/form/types'
import { useModelFormSchemas } from '../use-model-form-schemas'
diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/__tests__/presets-parameter.spec.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/__tests__/presets-parameter.spec.tsx
index 0f16de3568f..44a3cb57312 100644
--- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/__tests__/presets-parameter.spec.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/__tests__/presets-parameter.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import PresetsParameter from '../presets-parameter'
import { getSupportedPresetConfig } from '../presets-parameter-utils'
diff --git a/web/app/components/header/account-setting/model-provider-page/model-selector/__tests__/index.spec.tsx b/web/app/components/header/account-setting/model-provider-page/model-selector/__tests__/index.spec.tsx
index 29aa27c4379..1e4a4368810 100644
--- a/web/app/components/header/account-setting/model-provider-page/model-selector/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/model-selector/__tests__/index.spec.tsx
@@ -1,8 +1,9 @@
import type { ReactNode } from 'react'
import type { Model, ModelItem } from '../../declarations'
-import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
+import { QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
+import { createConsoleQueryClient } from '@/test/console/query-data'
import { ConfigurationMethodEnum, ModelStatusEnum, ModelTypeEnum } from '../../declarations'
import { ModelSelector, SplitModelSelector } from '../index'
@@ -88,14 +89,6 @@ const makeModel = (overrides: Partial = {}): Model => ({
...overrides,
})
-const createConsoleQueryClient = () =>
- new QueryClient({
- defaultOptions: {
- queries: { retry: false },
- mutations: { retry: false },
- },
- })
-
const renderWithQueryClient = (node: ReactNode) => {
const queryClient = createConsoleQueryClient()
return render({node})
diff --git a/web/app/components/header/account-setting/model-provider-page/system-model-selector/__tests__/index.spec.tsx b/web/app/components/header/account-setting/model-provider-page/system-model-selector/__tests__/index.spec.tsx
index 3046d762a1f..956f4d8c1b8 100644
--- a/web/app/components/header/account-setting/model-provider-page/system-model-selector/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/system-model-selector/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { DefaultModelResponse } from '../../declarations'
import { fireEvent, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import { ModelTypeEnum } from '../../declarations'
import SystemModel from '../index'
diff --git a/web/app/components/header/account-setting/workflow-log-archives-page/__tests__/index.spec.tsx b/web/app/components/header/account-setting/workflow-log-archives-page/__tests__/index.spec.tsx
index cd3b67e8ae5..02b6b434883 100644
--- a/web/app/components/header/account-setting/workflow-log-archives-page/__tests__/index.spec.tsx
+++ b/web/app/components/header/account-setting/workflow-log-archives-page/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { CloudPlan } from '@dify/contracts/api/console/features/types.gen'
import type { GetWorkflowRunArchivesResponse } from '@dify/contracts/api/console/workflow-run-archives/types.gen'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createMockProviderContextValue } from '@/__mocks__/provider-context'
import { defaultPlan } from '@/app/components/billing/config'
import { useModalContext } from '@/context/modal-context'
diff --git a/web/app/components/header/env-nav/__tests__/index.spec.tsx b/web/app/components/header/env-nav/__tests__/index.spec.tsx
index 43cd9728165..6023753f176 100644
--- a/web/app/components/header/env-nav/__tests__/index.spec.tsx
+++ b/web/app/components/header/env-nav/__tests__/index.spec.tsx
@@ -1,5 +1,5 @@
import { screen } from '@testing-library/react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import EnvNav from '../index'
diff --git a/web/app/components/integrations/__tests__/plugin-category-page.spec.tsx b/web/app/components/integrations/__tests__/plugin-category-page.spec.tsx
index de3cc1c1e0f..7bc623ce72a 100644
--- a/web/app/components/integrations/__tests__/plugin-category-page.spec.tsx
+++ b/web/app/components/integrations/__tests__/plugin-category-page.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactNode } from 'react'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '@/app/components/plugins/types'
import PluginCategoryPage from '../plugin-category-page'
diff --git a/web/app/components/integrations/__tests__/tool-provider-list.spec.tsx b/web/app/components/integrations/__tests__/tool-provider-list.spec.tsx
index 47d4c6931ee..df84bc79ff0 100644
--- a/web/app/components/integrations/__tests__/tool-provider-list.spec.tsx
+++ b/web/app/components/integrations/__tests__/tool-provider-list.spec.tsx
@@ -1,6 +1,6 @@
import type { ComponentProps, ReactNode } from 'react'
import { cleanup, fireEvent, screen, within } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import {
getStepByStepTourTargetSelector,
STEP_BY_STEP_TOUR_TARGETS,
diff --git a/web/app/components/main-nav/__tests__/index.spec.tsx b/web/app/components/main-nav/__tests__/index.spec.tsx
index 590e1ba812b..32fb5397720 100644
--- a/web/app/components/main-nav/__tests__/index.spec.tsx
+++ b/web/app/components/main-nav/__tests__/index.spec.tsx
@@ -9,7 +9,7 @@ import type {
TenantListItemResponse,
} from '@dify/contracts/api/console/workspaces/types.gen'
import type { ReactNode } from 'react'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import type { StepByStepTourSessionState } from '@/app/components/step-by-step-tour/types'
import type { ModalContextState } from '@/context/modal-context'
import type { ProviderContextState } from '@/context/provider-context'
diff --git a/web/app/components/main-nav/__tests__/layout.spec.tsx b/web/app/components/main-nav/__tests__/layout.spec.tsx
index cf93c353bd4..62ff5e2d475 100644
--- a/web/app/components/main-nav/__tests__/layout.spec.tsx
+++ b/web/app/components/main-nav/__tests__/layout.spec.tsx
@@ -1,5 +1,5 @@
import type { ReactNode } from 'react'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { fireEvent, screen } from '@testing-library/react'
import { useStore as useAppStore } from '@/app/components/app/store'
import { isAgentV2Enabled } from '@/features/agent-v2/feature-flag'
diff --git a/web/app/components/main-nav/components/__tests__/support-menu.spec.tsx b/web/app/components/main-nav/components/__tests__/support-menu.spec.tsx
index 2deecf75867..a67485be957 100644
--- a/web/app/components/main-nav/components/__tests__/support-menu.spec.tsx
+++ b/web/app/components/main-nav/components/__tests__/support-menu.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import {
DropdownMenu,
DropdownMenuContent,
diff --git a/web/app/components/plugins/__tests__/hooks.spec.ts b/web/app/components/plugins/__tests__/hooks.spec.ts
index 7113a709743..e60fee7196c 100644
--- a/web/app/components/plugins/__tests__/hooks.spec.ts
+++ b/web/app/components/plugins/__tests__/hooks.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PLUGIN_PAGE_TABS_MAP, useCategories, usePluginPageTabs, useTags } from '../hooks'
describe('useTags', () => {
diff --git a/web/app/components/plugins/__tests__/provider-card.spec.tsx b/web/app/components/plugins/__tests__/provider-card.spec.tsx
index daf213906db..4eb06a65138 100644
--- a/web/app/components/plugins/__tests__/provider-card.spec.tsx
+++ b/web/app/components/plugins/__tests__/provider-card.spec.tsx
@@ -1,7 +1,7 @@
import type { Plugin } from '../types'
import { fireEvent, render, screen } from '@testing-library/react'
import { ThemeProvider } from 'next-themes'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ProviderCard from '../provider-card'
import { PluginCategoryEnum } from '../types'
diff --git a/web/app/components/plugins/__tests__/utils.spec.ts b/web/app/components/plugins/__tests__/utils.spec.ts
index 1323792f6d2..07198c4a751 100644
--- a/web/app/components/plugins/__tests__/utils.spec.ts
+++ b/web/app/components/plugins/__tests__/utils.spec.ts
@@ -1,5 +1,5 @@
import type { Plugin } from '../types'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { API_PREFIX, MARKETPLACE_API_PREFIX } from '@/config'
import { getPluginCardIconUrl } from '../utils'
diff --git a/web/app/components/plugins/base/__tests__/deprecation-notice.spec.tsx b/web/app/components/plugins/base/__tests__/deprecation-notice.spec.tsx
index 986e540ff97..aaaef5abe5c 100644
--- a/web/app/components/plugins/base/__tests__/deprecation-notice.spec.tsx
+++ b/web/app/components/plugins/base/__tests__/deprecation-notice.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import DeprecationNotice from '../deprecation-notice'
vi.mock('@/next/link', () => ({
diff --git a/web/app/components/plugins/base/__tests__/key-value-item.spec.tsx b/web/app/components/plugins/base/__tests__/key-value-item.spec.tsx
index e238bcde0b4..9d7e0d70a87 100644
--- a/web/app/components/plugins/base/__tests__/key-value-item.spec.tsx
+++ b/web/app/components/plugins/base/__tests__/key-value-item.spec.tsx
@@ -1,6 +1,6 @@
import { cleanup, render, screen, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import KeyValueItem from '../key-value-item'
vi.mock('../../../base/icons/src/vender/line/files', () => ({
diff --git a/web/app/components/plugins/base/badges/__tests__/icon-with-tooltip.spec.tsx b/web/app/components/plugins/base/badges/__tests__/icon-with-tooltip.spec.tsx
index 2b30f0415ec..ed2f079e97e 100644
--- a/web/app/components/plugins/base/badges/__tests__/icon-with-tooltip.spec.tsx
+++ b/web/app/components/plugins/base/badges/__tests__/icon-with-tooltip.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { Theme } from '@/types/app'
import IconWithTooltip from '../icon-with-tooltip'
diff --git a/web/app/components/plugins/base/badges/__tests__/verified.spec.tsx b/web/app/components/plugins/base/badges/__tests__/verified.spec.tsx
index a294895d791..d9c9531238d 100644
--- a/web/app/components/plugins/base/badges/__tests__/verified.spec.tsx
+++ b/web/app/components/plugins/base/badges/__tests__/verified.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
vi.mock('@/app/components/base/icons/src/public/plugins/VerifiedDark', () => ({
default: () => ,
diff --git a/web/app/components/plugins/card/base/__tests__/card-icon.spec.tsx b/web/app/components/plugins/card/base/__tests__/card-icon.spec.tsx
index 10b88f36a10..4a22e510199 100644
--- a/web/app/components/plugins/card/base/__tests__/card-icon.spec.tsx
+++ b/web/app/components/plugins/card/base/__tests__/card-icon.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import Icon from '../card-icon'
describe('Plugin card icon', () => {
diff --git a/web/app/components/plugins/install-plugin/__tests__/hooks.spec.ts b/web/app/components/plugins/install-plugin/__tests__/hooks.spec.ts
index 41e338f37ce..f00eced0a2d 100644
--- a/web/app/components/plugins/install-plugin/__tests__/hooks.spec.ts
+++ b/web/app/components/plugins/install-plugin/__tests__/hooks.spec.ts
@@ -1,4 +1,4 @@
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { checkForUpdates, fetchReleases, handleUpload } from '../hooks'
const { mockToastError, mockUploadGitHub } = vi.hoisted(() => ({
diff --git a/web/app/components/plugins/install-plugin/__tests__/utils.spec.ts b/web/app/components/plugins/install-plugin/__tests__/utils.spec.ts
index 85ac53f5469..f5f988bd89a 100644
--- a/web/app/components/plugins/install-plugin/__tests__/utils.spec.ts
+++ b/web/app/components/plugins/install-plugin/__tests__/utils.spec.ts
@@ -1,5 +1,5 @@
import type { PluginDeclaration, PluginManifestInMarket } from '../../types'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '../../types'
import {
convertRepoToUrl,
diff --git a/web/app/components/plugins/install-plugin/base/__tests__/check-task-status.spec.ts b/web/app/components/plugins/install-plugin/base/__tests__/check-task-status.spec.ts
index 4d95f87f857..c745f8ce2cb 100644
--- a/web/app/components/plugins/install-plugin/base/__tests__/check-task-status.spec.ts
+++ b/web/app/components/plugins/install-plugin/base/__tests__/check-task-status.spec.ts
@@ -1,4 +1,4 @@
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TaskStatus } from '../../../types'
import checkTaskStatus from '../check-task-status'
diff --git a/web/app/components/plugins/install-plugin/base/__tests__/installed.spec.tsx b/web/app/components/plugins/install-plugin/base/__tests__/installed.spec.tsx
index 201f544aaeb..88e14e95467 100644
--- a/web/app/components/plugins/install-plugin/base/__tests__/installed.spec.tsx
+++ b/web/app/components/plugins/install-plugin/base/__tests__/installed.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '../../../types'
vi.mock('../../../card', () => ({
diff --git a/web/app/components/plugins/install-plugin/base/__tests__/use-get-icon.spec.ts b/web/app/components/plugins/install-plugin/base/__tests__/use-get-icon.spec.ts
index 5000c31a17d..85bfacbee2b 100644
--- a/web/app/components/plugins/install-plugin/base/__tests__/use-get-icon.spec.ts
+++ b/web/app/components/plugins/install-plugin/base/__tests__/use-get-icon.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { renderHook } from '@/test/console/render'
import useGetIcon from '../use-get-icon'
diff --git a/web/app/components/plugins/install-plugin/hooks/__tests__/use-check-installed.spec.tsx b/web/app/components/plugins/install-plugin/hooks/__tests__/use-check-installed.spec.tsx
index 43234bf84ec..b9aa16939c1 100644
--- a/web/app/components/plugins/install-plugin/hooks/__tests__/use-check-installed.spec.tsx
+++ b/web/app/components/plugins/install-plugin/hooks/__tests__/use-check-installed.spec.tsx
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import useCheckInstalled from '../use-check-installed'
const mockPlugins = [
diff --git a/web/app/components/plugins/install-plugin/hooks/__tests__/use-fold-anim-into.spec.ts b/web/app/components/plugins/install-plugin/hooks/__tests__/use-fold-anim-into.spec.ts
index 050a4891f3d..32f1850d065 100644
--- a/web/app/components/plugins/install-plugin/hooks/__tests__/use-fold-anim-into.spec.ts
+++ b/web/app/components/plugins/install-plugin/hooks/__tests__/use-fold-anim-into.spec.ts
@@ -1,6 +1,6 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { act, renderHook } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
describe('useFoldAnimInto', () => {
let mockOnClose: Mock<() => void>
diff --git a/web/app/components/plugins/install-plugin/hooks/__tests__/use-hide-logic.spec.ts b/web/app/components/plugins/install-plugin/hooks/__tests__/use-hide-logic.spec.ts
index 7fbd3a2da8e..98d9274032d 100644
--- a/web/app/components/plugins/install-plugin/hooks/__tests__/use-hide-logic.spec.ts
+++ b/web/app/components/plugins/install-plugin/hooks/__tests__/use-hide-logic.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import useHideLogic from '../use-hide-logic'
const mockFoldAnimInto = vi.fn()
diff --git a/web/app/components/plugins/install-plugin/hooks/__tests__/use-install-plugin-limit.spec.ts b/web/app/components/plugins/install-plugin/hooks/__tests__/use-install-plugin-limit.spec.ts
index 8cd4de97549..edcf882c164 100644
--- a/web/app/components/plugins/install-plugin/hooks/__tests__/use-install-plugin-limit.spec.ts
+++ b/web/app/components/plugins/install-plugin/hooks/__tests__/use-install-plugin-limit.spec.ts
@@ -1,6 +1,6 @@
import type { PluginInstallationScope } from '@dify/contracts/api/console/system-features/types.gen'
import { zPluginInstallationScope } from '@dify/contracts/api/console/system-features/zod.gen'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { renderHookWithConsoleQuery as renderHook } from '@/test/console/query-data'
import { pluginInstallLimit } from '../use-install-plugin-limit'
diff --git a/web/app/components/plugins/install-plugin/hooks/__tests__/use-refresh-plugin-list.spec.ts b/web/app/components/plugins/install-plugin/hooks/__tests__/use-refresh-plugin-list.spec.ts
index 3d4a1f15dd7..92242f5e75b 100644
--- a/web/app/components/plugins/install-plugin/hooks/__tests__/use-refresh-plugin-list.spec.ts
+++ b/web/app/components/plugins/install-plugin/hooks/__tests__/use-refresh-plugin-list.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '../../../types'
// Mock invalidation / refresh functions
diff --git a/web/app/components/plugins/install-plugin/hooks/__tests__/use-workspace-plugin-install-permission.spec.ts b/web/app/components/plugins/install-plugin/hooks/__tests__/use-workspace-plugin-install-permission.spec.ts
index f9222706ff8..bce8fedc117 100644
--- a/web/app/components/plugins/install-plugin/hooks/__tests__/use-workspace-plugin-install-permission.spec.ts
+++ b/web/app/components/plugins/install-plugin/hooks/__tests__/use-workspace-plugin-install-permission.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { renderHook } from '@/test/console/render'
import useWorkspacePluginInstallPermission from '../use-workspace-plugin-install-permission'
diff --git a/web/app/components/plugins/install-plugin/install-bundle/__tests__/index.spec.tsx b/web/app/components/plugins/install-plugin/install-bundle/__tests__/index.spec.tsx
index 55eb99c4e4f..32875f437c2 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/__tests__/index.spec.tsx
@@ -8,7 +8,7 @@ import type {
VersionProps,
} from '../../../types'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import { InstallStep, PluginCategoryEnum } from '../../../types'
import InstallBundle, { InstallType } from '../index'
diff --git a/web/app/components/plugins/install-plugin/install-bundle/__tests__/ready-to-install.spec.tsx b/web/app/components/plugins/install-plugin/install-bundle/__tests__/ready-to-install.spec.tsx
index 4735718e8c7..755178c2785 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/__tests__/ready-to-install.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/__tests__/ready-to-install.spec.tsx
@@ -1,6 +1,6 @@
import type { Dependency, InstallStatus, Plugin, VersionProps } from '../../../types'
import { act, fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InstallStep } from '../../../types'
import ReadyToInstall from '../ready-to-install'
diff --git a/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/github-item.spec.tsx b/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/github-item.spec.tsx
index 35dd91b7bd0..4f97a93443c 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/github-item.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/github-item.spec.tsx
@@ -1,7 +1,7 @@
import type { GitHubItemAndMarketPlaceDependency, Plugin } from '../../../../types'
import type { VersionProps } from '@/app/components/plugins/types'
import { render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import GithubItem from '../github-item'
const mockUseUploadGitHub = vi.fn()
diff --git a/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/loaded-item.spec.tsx b/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/loaded-item.spec.tsx
index edf32433e6d..9ae66970f4f 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/loaded-item.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/item/__tests__/loaded-item.spec.tsx
@@ -1,7 +1,7 @@
import type { Plugin } from '../../../../types'
import type { VersionProps } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import LoadedItem from '../loaded-item'
const mockCard = vi.fn()
diff --git a/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install-multi.spec.tsx b/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install-multi.spec.tsx
index 3e385d0ea92..b2f896b4d4d 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install-multi.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install-multi.spec.tsx
@@ -7,7 +7,7 @@ import type {
} from '../../../../types'
import { act, fireEvent, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import { PluginCategoryEnum } from '../../../../types'
import InstallMulti from '../install-multi'
diff --git a/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install.spec.tsx b/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install.spec.tsx
index b65acff3079..10e5934b791 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/install.spec.tsx
@@ -1,6 +1,6 @@
import type { Dependency, InstallStatusResponse, PackageDependency } from '../../../../types'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, TaskStatus } from '../../../../types'
import Install from '../install'
diff --git a/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/installed.spec.tsx b/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/installed.spec.tsx
index af8bbed735e..e190a87f42e 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/installed.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-bundle/steps/__tests__/installed.spec.tsx
@@ -1,6 +1,6 @@
import type { InstallStatus, Plugin } from '../../../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Installed from '../installed'
const mockCard = vi.fn()
diff --git a/web/app/components/plugins/install-plugin/install-bundle/steps/hooks/__tests__/use-install-multi-state.spec.ts b/web/app/components/plugins/install-plugin/install-bundle/steps/hooks/__tests__/use-install-multi-state.spec.ts
index 97364462088..c0814ad7fb5 100644
--- a/web/app/components/plugins/install-plugin/install-bundle/steps/hooks/__tests__/use-install-multi-state.spec.ts
+++ b/web/app/components/plugins/install-plugin/install-bundle/steps/hooks/__tests__/use-install-multi-state.spec.ts
@@ -6,7 +6,7 @@ import type {
VersionInfo,
} from '@/app/components/plugins/types'
import { act, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '@/app/components/plugins/types'
import { renderHookWithConsoleQuery as renderHook } from '@/test/console/query-data'
import { getPluginKey, useInstallMultiState } from '../use-install-multi-state'
diff --git a/web/app/components/plugins/install-plugin/install-from-github/__tests__/index.spec.tsx b/web/app/components/plugins/install-plugin/install-from-github/__tests__/index.spec.tsx
index 805644b18df..2b2f59a7b1a 100644
--- a/web/app/components/plugins/install-plugin/install-from-github/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-github/__tests__/index.spec.tsx
@@ -5,7 +5,7 @@ import type {
UpdateFromGitHubPayload,
} from '../../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '../../../types'
import {
convertRepoToUrl,
diff --git a/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/loaded.spec.tsx b/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/loaded.spec.tsx
index 118b807cfc0..85b2b2d4b36 100644
--- a/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/loaded.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/loaded.spec.tsx
@@ -1,6 +1,6 @@
import type { Plugin, PluginDeclaration, UpdateFromGitHubPayload } from '../../../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, TaskStatus } from '../../../../types'
import Loaded from '../loaded'
diff --git a/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/selectPackage.spec.tsx b/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/selectPackage.spec.tsx
index 9560916d014..33b070166a0 100644
--- a/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/selectPackage.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-github/steps/__tests__/selectPackage.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginDeclaration, UpdateFromGitHubPayload } from '../../../../types'
import { fireEvent, render, screen, waitFor, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '../../../../types'
import SelectPackage from '../selectPackage'
diff --git a/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/index.spec.tsx b/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/index.spec.tsx
index edad29cd5a9..7fb5d9c3239 100644
--- a/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { Dependency, PluginDeclaration } from '../../../types'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InstallStep, PluginCategoryEnum } from '../../../types'
import InstallFromLocalPackage from '../index'
diff --git a/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/ready-to-install.spec.tsx b/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/ready-to-install.spec.tsx
index a3b1f390fc9..7018cdf0a5c 100644
--- a/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/ready-to-install.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-local-package/__tests__/ready-to-install.spec.tsx
@@ -1,6 +1,6 @@
import type { PluginDeclaration } from '../../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InstallStep, PluginCategoryEnum } from '../../../types'
import ReadyToInstall from '../ready-to-install'
diff --git a/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/install.spec.tsx b/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/install.spec.tsx
index 54829566daf..3d397ee800f 100644
--- a/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/install.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/install.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import type { PluginDeclaration } from '../../../../types'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { render as renderWithConsoleState } from '@/test/console/render'
import { PluginCategoryEnum, TaskStatus } from '../../../../types'
diff --git a/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/uploading.spec.tsx b/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/uploading.spec.tsx
index 8ca05de7d86..658460c29c2 100644
--- a/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/uploading.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-local-package/steps/__tests__/uploading.spec.tsx
@@ -1,7 +1,7 @@
import type { Dependency, PluginDeclaration } from '../../../../types'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '../../../../types'
import Uploading from '../uploading'
diff --git a/web/app/components/plugins/install-plugin/install-from-marketplace/__tests__/index.spec.tsx b/web/app/components/plugins/install-plugin/install-from-marketplace/__tests__/index.spec.tsx
index 54480f377a4..baf6111ba2b 100644
--- a/web/app/components/plugins/install-plugin/install-from-marketplace/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-marketplace/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { Dependency, Plugin, PluginManifestInMarket } from '../../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InstallStep, PluginCategoryEnum } from '../../../types'
import InstallFromMarketplace from '../index'
diff --git a/web/app/components/plugins/install-plugin/install-from-marketplace/steps/__tests__/install.spec.tsx b/web/app/components/plugins/install-plugin/install-from-marketplace/steps/__tests__/install.spec.tsx
index d908eb617d7..1dd2d4c08a7 100644
--- a/web/app/components/plugins/install-plugin/install-from-marketplace/steps/__tests__/install.spec.tsx
+++ b/web/app/components/plugins/install-plugin/install-from-marketplace/steps/__tests__/install.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactElement } from 'react'
import type { Plugin, PluginManifestInMarket } from '../../../../types'
import { fireEvent, screen, waitFor } from '@testing-library/react'
import { act } from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { render as renderWithConsoleState } from '@/test/console/render'
import { PluginCategoryEnum, TaskStatus } from '../../../../types'
diff --git a/web/app/components/plugins/marketplace/__tests__/atoms.spec.tsx b/web/app/components/plugins/marketplace/__tests__/atoms.spec.tsx
index e02be806b00..cc440d567f4 100644
--- a/web/app/components/plugins/marketplace/__tests__/atoms.spec.tsx
+++ b/web/app/components/plugins/marketplace/__tests__/atoms.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { act, renderHook } from '@testing-library/react'
import { Provider as JotaiProvider } from 'jotai'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createNuqsTestWrapper } from '@/test/nuqs-testing'
import {
useActivePluginType,
diff --git a/web/app/components/plugins/marketplace/__tests__/hydration-server.spec.tsx b/web/app/components/plugins/marketplace/__tests__/hydration-server.spec.tsx
index d29c203519b..50e703aae4e 100644
--- a/web/app/components/plugins/marketplace/__tests__/hydration-server.spec.tsx
+++ b/web/app/components/plugins/marketplace/__tests__/hydration-server.spec.tsx
@@ -2,7 +2,7 @@ import type { DehydratedState } from '@tanstack/react-query'
import type { ReactElement } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
vi.mock('@/config', () => ({
API_PREFIX: '/api',
diff --git a/web/app/components/plugins/marketplace/__tests__/plugin-type-switch.spec.tsx b/web/app/components/plugins/marketplace/__tests__/plugin-type-switch.spec.tsx
index 85788c98e96..8b78b7bba3c 100644
--- a/web/app/components/plugins/marketplace/__tests__/plugin-type-switch.spec.tsx
+++ b/web/app/components/plugins/marketplace/__tests__/plugin-type-switch.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { Provider as JotaiProvider } from 'jotai'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { createNuqsTestWrapper } from '@/test/nuqs-testing'
import PluginTypeSwitch from '../plugin-type-switch'
diff --git a/web/app/components/plugins/marketplace/__tests__/query.spec.tsx b/web/app/components/plugins/marketplace/__tests__/query.spec.tsx
index c00d4b49f1f..ec93fe23bde 100644
--- a/web/app/components/plugins/marketplace/__tests__/query.spec.tsx
+++ b/web/app/components/plugins/marketplace/__tests__/query.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
vi.mock('@/config', () => ({
API_PREFIX: '/api',
diff --git a/web/app/components/plugins/marketplace/__tests__/search-params.spec.ts b/web/app/components/plugins/marketplace/__tests__/search-params.spec.ts
index d3e8fea6781..62a786e5be1 100644
--- a/web/app/components/plugins/marketplace/__tests__/search-params.spec.ts
+++ b/web/app/components/plugins/marketplace/__tests__/search-params.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { PLUGIN_TYPE_SEARCH_MAP } from '../constants'
import { marketplaceSearchParamsParsers } from '../search-params'
diff --git a/web/app/components/plugins/marketplace/__tests__/state.spec.tsx b/web/app/components/plugins/marketplace/__tests__/state.spec.tsx
index f47d3002017..03fd80dd333 100644
--- a/web/app/components/plugins/marketplace/__tests__/state.spec.tsx
+++ b/web/app/components/plugins/marketplace/__tests__/state.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { renderHook, waitFor } from '@testing-library/react'
import { Provider as JotaiProvider } from 'jotai'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createNuqsTestWrapper } from '@/test/nuqs-testing'
vi.mock('@/config', () => ({
diff --git a/web/app/components/plugins/marketplace/__tests__/utils.spec.ts b/web/app/components/plugins/marketplace/__tests__/utils.spec.ts
index 91c83e21194..ec9e0b66772 100644
--- a/web/app/components/plugins/marketplace/__tests__/utils.spec.ts
+++ b/web/app/components/plugins/marketplace/__tests__/utils.spec.ts
@@ -1,5 +1,5 @@
import type { Plugin } from '@/app/components/plugins/types'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '@/app/components/plugins/types'
import { PLUGIN_TYPE_SEARCH_MAP } from '../constants'
diff --git a/web/app/components/plugins/marketplace/description/__tests__/index.spec.tsx b/web/app/components/plugins/marketplace/description/__tests__/index.spec.tsx
index fa412d832fd..058d4375be2 100644
--- a/web/app/components/plugins/marketplace/description/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/marketplace/description/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { render, screen } from '@testing-library/react'
import { Provider as JotaiProvider } from 'jotai'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createNuqsTestWrapper } from '@/test/nuqs-testing'
import Description from '../index'
diff --git a/web/app/components/plugins/marketplace/list/__tests__/card-wrapper.spec.tsx b/web/app/components/plugins/marketplace/list/__tests__/card-wrapper.spec.tsx
index 049b6d51157..b73763059fa 100644
--- a/web/app/components/plugins/marketplace/list/__tests__/card-wrapper.spec.tsx
+++ b/web/app/components/plugins/marketplace/list/__tests__/card-wrapper.spec.tsx
@@ -3,7 +3,7 @@ import type { Plugin } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { ThemeProvider } from 'next-themes'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '@/app/components/plugins/types'
import CardWrapper from '../card-wrapper'
diff --git a/web/app/components/plugins/marketplace/list/__tests__/index.spec.tsx b/web/app/components/plugins/marketplace/list/__tests__/index.spec.tsx
index 3140d47268e..b4174445fd4 100644
--- a/web/app/components/plugins/marketplace/list/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/marketplace/list/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { Plugin } from '@/app/components/plugins/types'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import List from '../index'
vi.mock(
diff --git a/web/app/components/plugins/marketplace/list/__tests__/list-with-collection.spec.tsx b/web/app/components/plugins/marketplace/list/__tests__/list-with-collection.spec.tsx
index 1b38816afcc..b617891a833 100644
--- a/web/app/components/plugins/marketplace/list/__tests__/list-with-collection.spec.tsx
+++ b/web/app/components/plugins/marketplace/list/__tests__/list-with-collection.spec.tsx
@@ -1,7 +1,7 @@
import type { MarketplaceCollection } from '@dify/contracts/marketplace'
import type { Plugin } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ListWithCollection from '../list-with-collection'
const mockMoreClick = vi.fn()
diff --git a/web/app/components/plugins/marketplace/list/__tests__/list-wrapper.spec.tsx b/web/app/components/plugins/marketplace/list/__tests__/list-wrapper.spec.tsx
index 7901b175877..3b882a804d2 100644
--- a/web/app/components/plugins/marketplace/list/__tests__/list-wrapper.spec.tsx
+++ b/web/app/components/plugins/marketplace/list/__tests__/list-wrapper.spec.tsx
@@ -1,7 +1,7 @@
import type { MarketplaceCollection } from '@dify/contracts/marketplace'
import type { Plugin } from '@/app/components/plugins/types'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ListWrapper from '../list-wrapper'
const mockMarketplaceData = vi.hoisted(() => ({
diff --git a/web/app/components/plugins/marketplace/search-box/__tests__/index.spec.tsx b/web/app/components/plugins/marketplace/search-box/__tests__/index.spec.tsx
index e31146643ea..826de10f224 100644
--- a/web/app/components/plugins/marketplace/search-box/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/marketplace/search-box/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { createRef, useState } from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import SearchBox from '../index'
vi.mock('../tags-filter', () => ({
diff --git a/web/app/components/plugins/marketplace/search-box/__tests__/search-box-wrapper.spec.tsx b/web/app/components/plugins/marketplace/search-box/__tests__/search-box-wrapper.spec.tsx
index 8988ec20b57..0424f4396ee 100644
--- a/web/app/components/plugins/marketplace/search-box/__tests__/search-box-wrapper.spec.tsx
+++ b/web/app/components/plugins/marketplace/search-box/__tests__/search-box-wrapper.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import SearchBoxWrapper from '../search-box-wrapper'
const mockHandleSearchPluginTextChange = vi.fn()
diff --git a/web/app/components/plugins/marketplace/search-box/__tests__/tags-filter.spec.tsx b/web/app/components/plugins/marketplace/search-box/__tests__/tags-filter.spec.tsx
index bc1e3a2986a..57eba333983 100644
--- a/web/app/components/plugins/marketplace/search-box/__tests__/tags-filter.spec.tsx
+++ b/web/app/components/plugins/marketplace/search-box/__tests__/tags-filter.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import TagsFilter from '../tags-filter'
const { mockTranslate } = vi.hoisted(() => ({
diff --git a/web/app/components/plugins/marketplace/search-box/trigger/__tests__/marketplace.spec.tsx b/web/app/components/plugins/marketplace/search-box/trigger/__tests__/marketplace.spec.tsx
index 9d80c133894..083e6d753be 100644
--- a/web/app/components/plugins/marketplace/search-box/trigger/__tests__/marketplace.spec.tsx
+++ b/web/app/components/plugins/marketplace/search-box/trigger/__tests__/marketplace.spec.tsx
@@ -3,7 +3,7 @@ import { Popover } from '@langgenius/dify-ui/popover'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useState } from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import MarketplaceTrigger from '../marketplace'
const tagsMap: Record = {
diff --git a/web/app/components/plugins/marketplace/search-box/trigger/__tests__/tool-selector.spec.tsx b/web/app/components/plugins/marketplace/search-box/trigger/__tests__/tool-selector.spec.tsx
index 2ffc989b363..ceaf6ba0bff 100644
--- a/web/app/components/plugins/marketplace/search-box/trigger/__tests__/tool-selector.spec.tsx
+++ b/web/app/components/plugins/marketplace/search-box/trigger/__tests__/tool-selector.spec.tsx
@@ -3,7 +3,7 @@ import { Popover, PopoverContent } from '@langgenius/dify-ui/popover'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useState } from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ToolSelectorTrigger from '../tool-selector'
const tagsMap: Record = {
diff --git a/web/app/components/plugins/plugin-auth/__tests__/authorized-in-data-source-node.spec.tsx b/web/app/components/plugins/plugin-auth/__tests__/authorized-in-data-source-node.spec.tsx
index bdd86305d43..40b2386c634 100644
--- a/web/app/components/plugins/plugin-auth/__tests__/authorized-in-data-source-node.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/__tests__/authorized-in-data-source-node.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import AuthorizedInDataSourceNode from '../authorized-in-data-source-node'
vi.mock('@langgenius/dify-ui/status-dot', () => ({
diff --git a/web/app/components/plugins/plugin-auth/__tests__/authorized-in-node.spec.tsx b/web/app/components/plugins/plugin-auth/__tests__/authorized-in-node.spec.tsx
index 1a8db7ccd53..153e669b95e 100644
--- a/web/app/components/plugins/plugin-auth/__tests__/authorized-in-node.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/__tests__/authorized-in-node.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { Credential, PluginPayload } from '../types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import { AuthCategory, CredentialTypeEnum } from '../types'
diff --git a/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-agent.spec.tsx b/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-agent.spec.tsx
index 4b5f22a1c39..c2c9e3cbf6f 100644
--- a/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-agent.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-agent.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { Credential, PluginPayload } from '../types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { seedAccountProfileQuery } from '@/test/console/account-profile'
import { render } from '@/test/console/render'
import { AuthCategory, CredentialTypeEnum } from '../types'
diff --git a/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-datasource-node.spec.tsx b/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-datasource-node.spec.tsx
index 827541153c5..aedfb0385fd 100644
--- a/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-datasource-node.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/__tests__/plugin-auth-in-datasource-node.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import PluginAuthInDataSourceNode from '../plugin-auth-in-datasource-node'
describe('PluginAuthInDataSourceNode', () => {
diff --git a/web/app/components/plugins/plugin-auth/__tests__/plugin-auth.spec.tsx b/web/app/components/plugins/plugin-auth/__tests__/plugin-auth.spec.tsx
index 78833795103..af92ceb2d7c 100644
--- a/web/app/components/plugins/plugin-auth/__tests__/plugin-auth.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/__tests__/plugin-auth.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import PluginAuth from '../plugin-auth'
import { AuthCategory } from '../types'
diff --git a/web/app/components/plugins/plugin-auth/authorize/__tests__/add-api-key-button.spec.tsx b/web/app/components/plugins/plugin-auth/authorize/__tests__/add-api-key-button.spec.tsx
index ea51a320e5e..34b4e940870 100644
--- a/web/app/components/plugins/plugin-auth/authorize/__tests__/add-api-key-button.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorize/__tests__/add-api-key-button.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthCategory } from '../../types'
import AddApiKeyButton from '../add-api-key-button'
diff --git a/web/app/components/plugins/plugin-auth/authorize/__tests__/add-oauth-button.spec.tsx b/web/app/components/plugins/plugin-auth/authorize/__tests__/add-oauth-button.spec.tsx
index fcbd90d5071..75729d8ef75 100644
--- a/web/app/components/plugins/plugin-auth/authorize/__tests__/add-oauth-button.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorize/__tests__/add-oauth-button.spec.tsx
@@ -2,7 +2,7 @@ import type { OAuthClientSettingsProps } from '../oauth-client-settings'
import type { FormSchema } from '@/app/components/base/form/types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthCategory } from '../../types'
const mockGetPluginOAuthUrl = vi
diff --git a/web/app/components/plugins/plugin-auth/authorize/__tests__/api-key-modal.spec.tsx b/web/app/components/plugins/plugin-auth/authorize/__tests__/api-key-modal.spec.tsx
index 6490b85dc5a..4cd02a15d4f 100644
--- a/web/app/components/plugins/plugin-auth/authorize/__tests__/api-key-modal.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorize/__tests__/api-key-modal.spec.tsx
@@ -5,7 +5,7 @@ import { Popover, PopoverContent, PopoverTrigger } from '@langgenius/dify-ui/pop
import { fireEvent, screen, waitFor, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithAccountProfile as render } from '@/test/console/account-profile'
import { AuthCategory } from '../../types'
diff --git a/web/app/components/plugins/plugin-auth/authorize/__tests__/authorize-components.spec.tsx b/web/app/components/plugins/plugin-auth/authorize/__tests__/authorize-components.spec.tsx
index 351a1d8920c..c36e6ae58e8 100644
--- a/web/app/components/plugins/plugin-auth/authorize/__tests__/authorize-components.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorize/__tests__/authorize-components.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginPayload } from '../../types'
import type { FormSchema } from '@/app/components/base/form/types'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createAccountProfileQueryClient } from '@/test/console/account-profile'
import { createQueryClientWrapper } from '@/test/console/query-client'
import { AuthCategory } from '../../types'
diff --git a/web/app/components/plugins/plugin-auth/authorize/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-auth/authorize/__tests__/index.spec.tsx
index 3a097712301..8e18d04a133 100644
--- a/web/app/components/plugins/plugin-auth/authorize/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorize/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { PluginPayload } from '../../types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import { AuthCategory } from '../../types'
import Authorize from '../index'
diff --git a/web/app/components/plugins/plugin-auth/authorize/__tests__/oauth-client-settings.spec.tsx b/web/app/components/plugins/plugin-auth/authorize/__tests__/oauth-client-settings.spec.tsx
index 9a41e4aae78..cc6d2030545 100644
--- a/web/app/components/plugins/plugin-auth/authorize/__tests__/oauth-client-settings.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorize/__tests__/oauth-client-settings.spec.tsx
@@ -4,7 +4,7 @@ import { Popover, PopoverContent, PopoverTrigger } from '@langgenius/dify-ui/pop
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthCategory } from '../../types'
const mockNotify = vi.fn()
diff --git a/web/app/components/plugins/plugin-auth/authorized/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-auth/authorized/__tests__/index.spec.tsx
index 744bf4bd11c..ed65ae01355 100644
--- a/web/app/components/plugins/plugin-auth/authorized/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorized/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { Credential, PluginPayload } from '../../types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { seedAccountProfileQuery } from '@/test/console/account-profile'
import { render } from '@/test/console/render'
import { AuthCategory, CredentialTypeEnum } from '../../types'
diff --git a/web/app/components/plugins/plugin-auth/authorized/__tests__/item.spec.tsx b/web/app/components/plugins/plugin-auth/authorized/__tests__/item.spec.tsx
index 428004e16a2..36354d807ed 100644
--- a/web/app/components/plugins/plugin-auth/authorized/__tests__/item.spec.tsx
+++ b/web/app/components/plugins/plugin-auth/authorized/__tests__/item.spec.tsx
@@ -1,6 +1,6 @@
import type { Credential } from '../../types'
import { cleanup, fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithAccountProfile as render } from '@/test/console/account-profile'
import { CredentialTypeEnum } from '../../types'
import Item from '../item'
diff --git a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-credential.spec.ts b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-credential.spec.ts
index fc915120f9a..d364d8f9b5c 100644
--- a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-credential.spec.ts
+++ b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-credential.spec.ts
@@ -1,6 +1,6 @@
import type { PluginPayload } from '../../types'
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthCategory, CredentialTypeEnum } from '../../types'
import {
useAddPluginCredentialHook,
diff --git a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-get-api.spec.ts b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-get-api.spec.ts
index e3ba1170065..843cd9736ca 100644
--- a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-get-api.spec.ts
+++ b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-get-api.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { AuthCategory, CredentialTypeEnum } from '../../types'
import { useGetApi } from '../use-get-api'
diff --git a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth-action.spec.ts b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth-action.spec.ts
index f33a2108371..366f69d3af5 100644
--- a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth-action.spec.ts
+++ b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth-action.spec.ts
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { usePluginAuthAction } from '../../hooks/use-plugin-auth-action'
import { AuthCategory } from '../../types'
diff --git a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth.spec.ts b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth.spec.ts
index 11a7e602d38..831448f7e5b 100644
--- a/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth.spec.ts
+++ b/web/app/components/plugins/plugin-auth/hooks/__tests__/use-plugin-auth.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthCategory, CredentialTypeEnum } from '../../types'
import { usePluginAuth } from '../use-plugin-auth'
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-card.spec.tsx b/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-card.spec.tsx
index 6e4c5b3c1e4..1502069bc6c 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-card.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-card.spec.tsx
@@ -1,7 +1,7 @@
import type { EndpointListItem, PluginDetail } from '../../types'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import EndpointCard from '../endpoint-card'
const mockHandleChange = vi.fn()
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-list.spec.tsx b/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-list.spec.tsx
index 36b4855672d..42cc3c00216 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-list.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-list.spec.tsx
@@ -1,6 +1,6 @@
import type { PluginDetail } from '@/app/components/plugins/types'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import EndpointList from '../endpoint-list'
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-modal.spec.tsx b/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-modal.spec.tsx
index 297dabb210d..a42223a8592 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-modal.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/endpoint-modal.spec.tsx
@@ -1,7 +1,7 @@
import type { FormSchema } from '../../../base/form/types'
import type { PluginDetail } from '../../types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import EndpointModal from '../endpoint-modal'
const mockToastNotify = vi.fn()
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-detail-panel/__tests__/index.spec.tsx
index e2897792b79..1cf3c6df86b 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { PluginDeclaration, PluginDetail } from '@/app/components/plugins/types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, PluginSource } from '@/app/components/plugins/types'
import PluginDetailPanel from '../index'
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/operation-dropdown.spec.tsx b/web/app/components/plugins/plugin-detail-panel/__tests__/operation-dropdown.spec.tsx
index 69f61f0578a..add1cd6b31b 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/operation-dropdown.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/operation-dropdown.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactElement } from 'react'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import { PluginSource } from '../../types'
import { OperationDropdown } from '../operation-dropdown'
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-detail.spec.tsx b/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-detail.spec.tsx
index b9cba018be9..414d418b2f7 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-detail.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-detail.spec.tsx
@@ -1,7 +1,7 @@
import type { StrategyDetail as StrategyDetailType } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import StrategyDetail from '../strategy-detail'
vi.mock('@/hooks/use-i18n', () => ({
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-item.spec.tsx b/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-item.spec.tsx
index 431d9d4da29..c6b61ccccc3 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-item.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/strategy-item.spec.tsx
@@ -1,7 +1,7 @@
import type { ComponentProps } from 'react'
import type { StrategyDetail } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import StrategyItem from '../strategy-item'
vi.mock('@/hooks/use-i18n', () => ({
diff --git a/web/app/components/plugins/plugin-detail-panel/__tests__/utils.spec.ts b/web/app/components/plugins/plugin-detail-panel/__tests__/utils.spec.ts
index 602badc9c58..decca5d828a 100644
--- a/web/app/components/plugins/plugin-detail-panel/__tests__/utils.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/__tests__/utils.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { FormTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
import { NAME_FIELD } from '../utils'
diff --git a/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-form.spec.tsx b/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-form.spec.tsx
index a91e74a6fef..75fc0509357 100644
--- a/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-form.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-form.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import AppInputsForm from '../app-inputs-form'
diff --git a/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-panel.spec.tsx b/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-panel.spec.tsx
index 6d77a9e87cf..7bfbc10e016 100644
--- a/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-panel.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/app-inputs-panel.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import AppInputsPanel from '../app-inputs-panel'
let mockHookResult = {
diff --git a/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/index.spec.tsx
index d466b26457e..1427c7c15f2 100644
--- a/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/app-selector/__tests__/index.spec.tsx
@@ -5,7 +5,7 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useState } from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AppModeEnum } from '@/types/app'
import { AppSelector } from '../index'
diff --git a/web/app/components/plugins/plugin-detail-panel/app-selector/hooks/__tests__/use-app-inputs-form-schema.spec.ts b/web/app/components/plugins/plugin-detail-panel/app-selector/hooks/__tests__/use-app-inputs-form-schema.spec.ts
index 8f6ac5c63a7..f8862288758 100644
--- a/web/app/components/plugins/plugin-detail-panel/app-selector/hooks/__tests__/use-app-inputs-form-schema.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/app-selector/hooks/__tests__/use-app-inputs-form-schema.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum, InputVarType, SupportUploadFileTypes } from '@/app/components/workflow/types'
import { AppModeEnum, Resolution } from '@/types/app'
import { useAppInputsFormSchema } from '../use-app-inputs-form-schema'
diff --git a/web/app/components/plugins/plugin-detail-panel/detail-header/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-detail-panel/detail-header/__tests__/index.spec.tsx
index 6e4527265b6..0ef3bb63d0c 100644
--- a/web/app/components/plugins/plugin-detail-panel/detail-header/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/detail-header/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import type { PluginDetail } from '@/app/components/plugins/types'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, PluginSource } from '@/app/components/plugins/types'
import { createAccountProfileQueryClient } from '@/test/console/account-profile'
import { renderWithConsoleQuery } from '@/test/console/query-data'
diff --git a/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/header-modals.spec.tsx b/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/header-modals.spec.tsx
index 21bec2516d1..f5ec35e9314 100644
--- a/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/header-modals.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/header-modals.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginDetail } from '../../../../types'
import type { ModalStates, VersionTarget } from '../../hooks'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { expectLoadingButton } from '@/test/button'
import { PluginSource } from '../../../../types'
import HeaderModals from '../header-modals'
diff --git a/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/plugin-source-badge.spec.tsx b/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/plugin-source-badge.spec.tsx
index 2aff1eb76f4..fd85bc55305 100644
--- a/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/plugin-source-badge.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/detail-header/components/__tests__/plugin-source-badge.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { PluginSource } from '../../../../types'
import PluginSourceBadge from '../plugin-source-badge'
diff --git a/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-detail-header-state.spec.ts b/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-detail-header-state.spec.ts
index 8020c3ae5e8..0f4a332604d 100644
--- a/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-detail-header-state.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-detail-header-state.spec.ts
@@ -1,6 +1,6 @@
import type { PluginDetail } from '../../../../types'
import { act } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderHookWithConsoleQuery } from '@/test/console/query-data'
import { PluginSource } from '../../../../types'
import { useDetailHeaderState } from '../use-detail-header-state'
diff --git a/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-plugin-operations.spec.ts b/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-plugin-operations.spec.ts
index 202a0756e29..db8dc0ac74c 100644
--- a/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-plugin-operations.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/detail-header/hooks/__tests__/use-plugin-operations.spec.ts
@@ -1,7 +1,7 @@
import type { PluginDetail } from '../../../../types'
import type { ModalStates, VersionTarget } from '../use-detail-header-state'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import * as amplitude from '@/app/components/base/amplitude'
import { PluginSource } from '../../../../types'
import { usePluginOperations } from '../use-plugin-operations'
diff --git a/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/index.spec.tsx
index 937fbd60bfa..598c9471a21 100644
--- a/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/index.spec.tsx
@@ -4,7 +4,7 @@ import type {
} from '@/app/components/header/account-setting/model-provider-page/declarations'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import {
ConfigurationMethodEnum,
ModelStatusEnum,
diff --git a/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/llm-params-panel.spec.tsx b/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/llm-params-panel.spec.tsx
index 5bc994b0a81..53e7e0624ec 100644
--- a/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/llm-params-panel.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/model-selector/__tests__/llm-params-panel.spec.tsx
@@ -3,7 +3,7 @@ import type {
ModelParameterRule,
} from '@/app/components/header/account-setting/model-provider-page/declarations'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// Import component after mocks
import LLMParamsPanel from '../llm-params-panel'
diff --git a/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/__tests__/index.spec.tsx
index 553225c7338..f6efaa7dce1 100644
--- a/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/__tests__/index.spec.tsx
@@ -5,7 +5,7 @@ import type { NodeOutPutVar, ToolWithProvider } from '@/app/components/workflow/
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// ==================== Imports (after mocks) ====================
import { MCPToolAvailabilityProvider } from '@/app/components/workflow/nodes/_base/components/mcp-tool-availability'
import MultipleToolSelector from '../index'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/delete-confirm.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/delete-confirm.spec.tsx
index 0b6b00fcf8c..e3905e98e33 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/delete-confirm.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/delete-confirm.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DeleteConfirm } from '../delete-confirm'
const mockRefetch = vi.fn()
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/index.spec.tsx
index bff310b0f00..1b5d9de7177 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginDeclaration, PluginDetail } from '@/app/components/plugins/types'
import type { TriggerSubscription } from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import { createReactI18nextMock } from '@/test/i18n-mock'
import { SubscriptionList } from '../index'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/list-view.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/list-view.spec.tsx
index d9c3a2dc9b4..0163175b429 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/list-view.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/list-view.spec.tsx
@@ -1,6 +1,6 @@
import type { TriggerSubscription } from '@/app/components/workflow/block-selector/types'
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import { SubscriptionListView } from '../list-view'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/log-viewer.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/log-viewer.spec.tsx
index 77fa8c82f81..bb23c8135ea 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/log-viewer.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/log-viewer.spec.tsx
@@ -1,6 +1,6 @@
import type { TriggerLogEntity } from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import LogViewer from '../log-viewer'
const mockToastNotify = vi.fn()
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-entry.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-entry.spec.tsx
index 72af1bd77d6..d743394d4fc 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-entry.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-entry.spec.tsx
@@ -1,7 +1,7 @@
import type { TriggerSubscription } from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import { SubscriptionSelectorEntry } from '../selector-entry'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-view.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-view.spec.tsx
index a506921d12b..dedf9451fa7 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-view.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/selector-view.spec.tsx
@@ -1,6 +1,6 @@
import type { TriggerSubscription } from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import { SubscriptionSelectorView } from '../selector-view'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/subscription-card.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/subscription-card.spec.tsx
index c7680457947..a70f8448f03 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/subscription-card.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/subscription-card.spec.tsx
@@ -1,6 +1,6 @@
import type { TriggerSubscription } from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import SubscriptionCard from '../subscription-card'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/use-subscription-list.spec.ts b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/use-subscription-list.spec.ts
index 60b3f14bf90..d913329d102 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/use-subscription-list.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/use-subscription-list.spec.ts
@@ -1,6 +1,6 @@
import type { SimpleDetail } from '../../store'
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useSubscriptionList } from '../use-subscription-list'
let mockDetail: SimpleDetail | undefined
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/common-modal.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/common-modal.spec.tsx
index dd22d041d36..f9b7719a75f 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/common-modal.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/common-modal.spec.tsx
@@ -1,7 +1,7 @@
import type * as React from 'react'
import type { TriggerSubscriptionBuilder } from '@/app/components/workflow/block-selector/types'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { SupportedCreationMethods } from '@/app/components/plugins/types'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import { CommonCreateModal } from '../common-modal'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/oauth-client.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/oauth-client.spec.tsx
index 910a15dc179..df966d88b51 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/oauth-client.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/__tests__/oauth-client.spec.tsx
@@ -4,7 +4,7 @@ import type {
} from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import { OAuthClientSettingsModal } from '../oauth-client'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.helpers.spec.ts b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.helpers.spec.ts
index d7cfb5e5da9..af953735a92 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.helpers.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.helpers.spec.ts
@@ -2,7 +2,7 @@ import type { RefObject } from 'react'
import type { FormRefObject } from '@/app/components/base/form/types'
import type { TriggerSubscriptionBuilder } from '@/app/components/workflow/block-selector/types'
import { renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { SupportedCreationMethods } from '@/app/components/plugins/types'
import { withSelectorKey } from '@/test/i18n-mock'
import {
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.spec.ts b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.spec.ts
index 5bb4fb71c4f..bb079785a3b 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-common-modal-state.spec.ts
@@ -1,7 +1,7 @@
import type { FormRefObject } from '@/app/components/base/form/types'
import type { TriggerSubscriptionBuilder } from '@/app/components/workflow/block-selector/types'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { SupportedCreationMethods } from '@/app/components/plugins/types'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import { ApiKeyStep, useCommonModalState } from '../use-common-modal-state'
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-oauth-client-state.spec.ts b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-oauth-client-state.spec.ts
index c5ef694e415..086e22494dc 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-oauth-client-state.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/__tests__/use-oauth-client-state.spec.ts
@@ -3,7 +3,7 @@ import type {
TriggerSubscriptionBuilder,
} from '@/app/components/workflow/block-selector/types'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
import {
AuthorizationStatusEnum,
diff --git a/web/app/components/plugins/plugin-detail-panel/subscription-list/edit/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-detail-panel/subscription-list/edit/__tests__/index.spec.tsx
index f89ab95087e..9f9b2cb699e 100644
--- a/web/app/components/plugins/plugin-detail-panel/subscription-list/edit/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/subscription-list/edit/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginDetail } from '@/app/components/plugins/types'
import type { TriggerSubscription } from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { FormTypeEnum } from '@/app/components/base/form/types'
import { PluginCategoryEnum, PluginSource } from '@/app/components/plugins/types'
import { TriggerCredentialType } from '@/app/components/workflow/block-selector/types'
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.helpers.spec.ts b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.helpers.spec.ts
index e82aa964655..3b49e1fea4a 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.helpers.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.helpers.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { FormTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
import { VarType as VarKindType } from '@/app/components/workflow/nodes/tool/types'
import { VarType } from '@/app/components/workflow/types'
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.spec.tsx b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.spec.tsx
index ff0e73369eb..998fdbee152 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/reasoning-config-form.spec.tsx
@@ -3,7 +3,7 @@ import type { AppSelectorValue } from '@/app/components/plugins/plugin-detail-pa
import type { ToolFormSchema } from '@/app/components/tools/utils/to-form-schema'
import { fireEvent, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { FormTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
import { Type } from '@/app/components/workflow/nodes/llm/types'
import { VarType as VarKindType } from '@/app/components/workflow/nodes/tool/types'
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/schema-modal.spec.tsx b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/schema-modal.spec.tsx
index 428f0cfb352..9b2fa5cfb75 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/schema-modal.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/schema-modal.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { SchemaModal } from '../schema-modal'
vi.mock(
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-authorization-section.spec.tsx b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-authorization-section.spec.tsx
index a81cdb52b2a..1dfb974ba86 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-authorization-section.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-authorization-section.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginPayload } from '@/app/components/plugins/plugin-auth/types'
import type { ToolWithProvider } from '@/app/components/workflow/types'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { CollectionType } from '@/app/components/tools/types'
import { ToolAuthorizationSection } from '../tool-authorization-section'
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-base-form.spec.tsx b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-base-form.spec.tsx
index 2e6d81b2c19..133069139c0 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-base-form.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-base-form.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
vi.mock('../../../../readme-panel/entrance', () => ({
ReadmeEntrance: () => ,
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-item.spec.tsx b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-item.spec.tsx
index e9c55b03d47..e25015a072b 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-item.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-item.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactElement } from 'react'
import { Popover } from '@langgenius/dify-ui/popover'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ToolItem } from '../tool-item'
const renderToolItem = (item: ReactElement) => {
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-settings-panel.spec.tsx b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-settings-panel.spec.tsx
index 41cfa225b4e..cfee2b95b8f 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-settings-panel.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-settings-panel.spec.tsx
@@ -1,6 +1,6 @@
import type { ToolWithProvider } from '@/app/components/workflow/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { ToolSettingsPanel } from '../tool-settings-panel'
vi.mock('@/app/components/base/tab-slider-plain', () => ({
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-trigger.spec.tsx b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-trigger.spec.tsx
index d10758d3ea0..a44b61fdad8 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-trigger.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/components/__tests__/tool-trigger.spec.tsx
@@ -2,7 +2,7 @@ import type { ToolWithProvider } from '@/app/components/workflow/types'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { createRef } from 'react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { ToolTrigger } from '../tool-trigger'
vi.mock('@/app/components/workflow/block-icon', () => ({
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-plugin-installed-check.spec.ts b/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-plugin-installed-check.spec.ts
index cf87105ccf2..f6327e14a5b 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-plugin-installed-check.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-plugin-installed-check.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginSource } from '@/app/components/plugins/types'
import { usePluginInstalledCheck } from '../use-plugin-installed-check'
diff --git a/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-tool-selector.spec.ts b/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-tool-selector.spec.ts
index 12c1f94866d..4ea540d54b5 100644
--- a/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-tool-selector.spec.ts
+++ b/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/__tests__/use-tool-selector.spec.ts
@@ -1,6 +1,6 @@
import type { ToolValue } from '@/app/components/workflow/block-selector/types'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CollectionType } from '@/app/components/tools/types'
import { useToolSelector } from '../use-tool-selector'
diff --git a/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-detail-drawer.spec.tsx b/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-detail-drawer.spec.tsx
index 47e9b78ad91..1a3640178f1 100644
--- a/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-detail-drawer.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-detail-drawer.spec.tsx
@@ -2,7 +2,7 @@ import type { TriggerEvent } from '@/app/components/plugins/types'
import type { TriggerProviderApiEntity } from '@/app/components/workflow/block-selector/types'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { EventDetailDrawer } from '../event-detail-drawer'
vi.mock('@/app/components/header/account-setting/model-provider-page/hooks', () => ({
diff --git a/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-list.spec.tsx b/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-list.spec.tsx
index b94870ad415..3fa2c7765bc 100644
--- a/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-list.spec.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/trigger/__tests__/event-list.spec.tsx
@@ -1,6 +1,6 @@
import type { TriggerEvent } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TriggerEventsList } from '../event-list'
vi.mock('@/app/components/header/account-setting/model-provider-page/hooks', () => ({
diff --git a/web/app/components/plugins/plugin-item/__tests__/action.spec.tsx b/web/app/components/plugins/plugin-item/__tests__/action.spec.tsx
index 369ff558aa5..672e569011c 100644
--- a/web/app/components/plugins/plugin-item/__tests__/action.spec.tsx
+++ b/web/app/components/plugins/plugin-item/__tests__/action.spec.tsx
@@ -1,7 +1,7 @@
import type { MetaData, PluginCategoryEnum } from '../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { expectLoadingButton } from '@/test/button'
// ==================== Imports (after mocks) ====================
import { PluginSource } from '../../types'
diff --git a/web/app/components/plugins/plugin-item/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-item/__tests__/index.spec.tsx
index 19ab94ed351..95215e021de 100644
--- a/web/app/components/plugins/plugin-item/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-item/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import type { PluginDeclaration, PluginDetail } from '../../types'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import { PluginCategoryEnum, PluginSource } from '../../types'
import PluginItem from '../index'
diff --git a/web/app/components/plugins/plugin-mutation-model/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-mutation-model/__tests__/index.spec.tsx
index a9881b64ba2..3999c178375 100644
--- a/web/app/components/plugins/plugin-mutation-model/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-mutation-model/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { Plugin } from '../../types'
import { fireEvent, screen } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { expectLoadingButton } from '@/test/button'
import { render } from '@/test/console/render'
import { PluginCategoryEnum } from '../../types'
diff --git a/web/app/components/plugins/plugin-page/__tests__/category-empty-state.spec.tsx b/web/app/components/plugins/plugin-page/__tests__/category-empty-state.spec.tsx
index 576eceb8ead..5e4817cc537 100644
--- a/web/app/components/plugins/plugin-page/__tests__/category-empty-state.spec.tsx
+++ b/web/app/components/plugins/plugin-page/__tests__/category-empty-state.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactNode } from 'react'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '../../types'
import CategoryEmptyState from '../category-empty-state'
import { getCategoryMarketplaceId } from '../category-marketplace'
diff --git a/web/app/components/plugins/plugin-page/__tests__/category-marketplace-panel.spec.tsx b/web/app/components/plugins/plugin-page/__tests__/category-marketplace-panel.spec.tsx
index 40e9ee6b83e..22bd2bcd60d 100644
--- a/web/app/components/plugins/plugin-page/__tests__/category-marketplace-panel.spec.tsx
+++ b/web/app/components/plugins/plugin-page/__tests__/category-marketplace-panel.spec.tsx
@@ -1,6 +1,6 @@
import type { PluginCategoryEnum } from '../../types'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum as Category } from '../../types'
import { getCategoryMarketplaceId } from '../category-marketplace'
import CategoryMarketplacePanel from '../category-marketplace-panel'
diff --git a/web/app/components/plugins/plugin-page/__tests__/context-provider.spec.tsx b/web/app/components/plugins/plugin-page/__tests__/context-provider.spec.tsx
index b2237a63566..8a42c0773b8 100644
--- a/web/app/components/plugins/plugin-page/__tests__/context-provider.spec.tsx
+++ b/web/app/components/plugins/plugin-page/__tests__/context-provider.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement, ReactNode } from 'react'
import { fireEvent, render, screen } from '@testing-library/react'
import { NuqsTestingAdapter } from 'nuqs/adapters/testing'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { usePluginPageContext } from '../context'
import { PluginPageContextProvider } from '../context-provider'
diff --git a/web/app/components/plugins/plugin-page/__tests__/debug-info.spec.tsx b/web/app/components/plugins/plugin-page/__tests__/debug-info.spec.tsx
index 73f709cf84a..42039b9b06e 100644
--- a/web/app/components/plugins/plugin-page/__tests__/debug-info.spec.tsx
+++ b/web/app/components/plugins/plugin-page/__tests__/debug-info.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import DebugInfo from '../debug-info'
vi.mock('@/context/i18n', () => ({
diff --git a/web/app/components/plugins/plugin-page/__tests__/install-plugin-dropdown.spec.tsx b/web/app/components/plugins/plugin-page/__tests__/install-plugin-dropdown.spec.tsx
index 15c479d76ad..f1203dbebc8 100644
--- a/web/app/components/plugins/plugin-page/__tests__/install-plugin-dropdown.spec.tsx
+++ b/web/app/components/plugins/plugin-page/__tests__/install-plugin-dropdown.spec.tsx
@@ -1,6 +1,6 @@
import type { ReactElement } from 'react'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import InstallPluginDropdown from '../install-plugin-dropdown'
diff --git a/web/app/components/plugins/plugin-page/__tests__/plugins-panel.spec.tsx b/web/app/components/plugins/plugin-page/__tests__/plugins-panel.spec.tsx
index 8e03fdcaee0..9f8a18453a1 100644
--- a/web/app/components/plugins/plugin-page/__tests__/plugins-panel.spec.tsx
+++ b/web/app/components/plugins/plugin-page/__tests__/plugins-panel.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginDetail } from '../../types'
import type { Collection } from '@/app/components/tools/types'
import { act, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import {
getStepByStepTourTargetSelector,
STEP_BY_STEP_TOUR_TARGETS,
diff --git a/web/app/components/plugins/plugin-page/__tests__/use-reference-setting.spec.ts b/web/app/components/plugins/plugin-page/__tests__/use-reference-setting.spec.ts
index 2262b945ef1..c6b4c319cff 100644
--- a/web/app/components/plugins/plugin-page/__tests__/use-reference-setting.spec.ts
+++ b/web/app/components/plugins/plugin-page/__tests__/use-reference-setting.spec.ts
@@ -3,7 +3,7 @@ import type { LangGeniusVersionInfo } from '@/context/app-context-types'
import type { ConsoleStateFixture as BaseConsoleStateFixture } from '@/test/console/state-fixture'
import { toast } from '@langgenius/dify-ui/toast'
import { waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import {
useInvalidateReferenceSettings,
useMutationPluginPermissionSettings,
diff --git a/web/app/components/plugins/plugin-page/__tests__/use-uploader.spec.ts b/web/app/components/plugins/plugin-page/__tests__/use-uploader.spec.ts
index f30fb08c9c7..6f9c094e199 100644
--- a/web/app/components/plugins/plugin-page/__tests__/use-uploader.spec.ts
+++ b/web/app/components/plugins/plugin-page/__tests__/use-uploader.spec.ts
@@ -1,6 +1,6 @@
import type { RefObject } from 'react'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useUploader } from '../use-uploader'
describe('useUploader Hook', () => {
diff --git a/web/app/components/plugins/plugin-page/empty/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-page/empty/__tests__/index.spec.tsx
index 028cbd31ac2..4e7bd36d1a6 100644
--- a/web/app/components/plugins/plugin-page/empty/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-page/empty/__tests__/index.spec.tsx
@@ -3,7 +3,7 @@ import type { ReactElement } from 'react'
import type { FilterState } from '../../filter-management'
import { zPluginInstallationScope } from '@dify/contracts/api/console/system-features/zod.gen'
import { act, fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
// ==================== Imports (after mocks) ====================
import Empty from '../index'
diff --git a/web/app/components/plugins/plugin-page/filter-management/__tests__/category-filter.spec.tsx b/web/app/components/plugins/plugin-page/filter-management/__tests__/category-filter.spec.tsx
index 59c404ac046..68b09e3ad5b 100644
--- a/web/app/components/plugins/plugin-page/filter-management/__tests__/category-filter.spec.tsx
+++ b/web/app/components/plugins/plugin-page/filter-management/__tests__/category-filter.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render, screen } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
vi.mock('@langgenius/dify-ui/cn', () => ({
cn: (...args: unknown[]) => args.filter(Boolean).join(' '),
diff --git a/web/app/components/plugins/plugin-page/filter-management/__tests__/search-box.spec.tsx b/web/app/components/plugins/plugin-page/filter-management/__tests__/search-box.spec.tsx
index 26736227d5f..b222f4c56f6 100644
--- a/web/app/components/plugins/plugin-page/filter-management/__tests__/search-box.spec.tsx
+++ b/web/app/components/plugins/plugin-page/filter-management/__tests__/search-box.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
describe('SearchBox', () => {
let SearchBox: (typeof import('../search-box'))['default']
diff --git a/web/app/components/plugins/plugin-page/filter-management/__tests__/tag-filter.spec.tsx b/web/app/components/plugins/plugin-page/filter-management/__tests__/tag-filter.spec.tsx
index 850011bc8ba..90f2db92a39 100644
--- a/web/app/components/plugins/plugin-page/filter-management/__tests__/tag-filter.spec.tsx
+++ b/web/app/components/plugins/plugin-page/filter-management/__tests__/tag-filter.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen, within } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import TagFilter from '../tag-filter'
vi.mock('../../../hooks', () => ({
diff --git a/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/hooks.spec.ts b/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/hooks.spec.ts
index 73b957e6331..253aa9677b9 100644
--- a/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/hooks.spec.ts
+++ b/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/hooks.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { TaskStatus } from '@/app/components/plugins/types'
import { usePluginTaskStatus } from '../hooks'
diff --git a/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/index.spec.tsx b/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/index.spec.tsx
index 7cf6228d9da..507d957798d 100644
--- a/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/plugin-page/plugin-tasks/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { PluginStatus } from '@/app/components/plugins/types'
import { fireEvent, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginSource, TaskStatus } from '@/app/components/plugins/types'
// Import mocked modules
import { useMutationClearTaskPlugin, usePluginTaskList } from '@/service/use-plugins'
diff --git a/web/app/components/plugins/readme-panel/__tests__/entrance.spec.tsx b/web/app/components/plugins/readme-panel/__tests__/entrance.spec.tsx
index 245be420511..0822e4aabe3 100644
--- a/web/app/components/plugins/readme-panel/__tests__/entrance.spec.tsx
+++ b/web/app/components/plugins/readme-panel/__tests__/entrance.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it } from 'vitest'
+import { beforeEach, describe, expect, it } from 'vite-plus/test'
import { ReadmeEntrance } from '../entrance'
import { useReadmePanelStore } from '../store'
diff --git a/web/app/components/plugins/readme-panel/__tests__/index.spec.tsx b/web/app/components/plugins/readme-panel/__tests__/index.spec.tsx
index 6744dba3c32..650e7fba858 100644
--- a/web/app/components/plugins/readme-panel/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/readme-panel/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactElement } from 'react'
import type { PluginDetail } from '../../types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, PluginSource } from '../../types'
import { ReadmeEntrance } from '../entrance'
import ReadmePanel from '../index'
diff --git a/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/plugins-picker.spec.tsx b/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/plugins-picker.spec.tsx
index 4199da53a6f..07f6c09e578 100644
--- a/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/plugins-picker.spec.tsx
+++ b/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/plugins-picker.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '@/app/components/plugins/types'
import PluginsPicker from '../plugins-picker'
import { AUTO_UPDATE_MODE } from '../types'
diff --git a/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-item.spec.tsx b/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-item.spec.tsx
index 1f98f965e77..9ccb68f7dc6 100644
--- a/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-item.spec.tsx
+++ b/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-item.spec.tsx
@@ -1,6 +1,6 @@
import type { PluginDetail } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ToolItem from '../tool-item'
vi.mock('@/config', () => ({
diff --git a/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-picker.spec.tsx b/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-picker.spec.tsx
index bbd2e0afab6..01efa92fcbc 100644
--- a/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-picker.spec.tsx
+++ b/web/app/components/plugins/reference-setting-modal/auto-update-setting/__tests__/tool-picker.spec.tsx
@@ -1,6 +1,6 @@
import type { PluginDetail } from '@/app/components/plugins/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, PluginSource } from '@/app/components/plugins/types'
import ToolPicker from '../tool-picker'
diff --git a/web/app/components/plugins/update-plugin/__tests__/downgrade-warning.spec.tsx b/web/app/components/plugins/update-plugin/__tests__/downgrade-warning.spec.tsx
index 2b72ed63d96..7e762b2dac1 100644
--- a/web/app/components/plugins/update-plugin/__tests__/downgrade-warning.spec.tsx
+++ b/web/app/components/plugins/update-plugin/__tests__/downgrade-warning.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import DowngradeWarningModal from '../downgrade-warning'
describe('DowngradeWarningModal', () => {
diff --git a/web/app/components/plugins/update-plugin/__tests__/from-market-place.spec.tsx b/web/app/components/plugins/update-plugin/__tests__/from-market-place.spec.tsx
index 3ad658c82d5..35d5cc56bb7 100644
--- a/web/app/components/plugins/update-plugin/__tests__/from-market-place.spec.tsx
+++ b/web/app/components/plugins/update-plugin/__tests__/from-market-place.spec.tsx
@@ -1,6 +1,6 @@
import type { UpdateFromMarketPlacePayload } from '@/app/components/plugins/types'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum, TaskStatus } from '@/app/components/plugins/types'
import { render } from '@/test/console/render'
import UpdateFromMarketplace from '../from-market-place'
diff --git a/web/app/components/plugins/update-plugin/__tests__/index.spec.tsx b/web/app/components/plugins/update-plugin/__tests__/index.spec.tsx
index 52f09d15dd0..2b0277b1c8d 100644
--- a/web/app/components/plugins/update-plugin/__tests__/index.spec.tsx
+++ b/web/app/components/plugins/update-plugin/__tests__/index.spec.tsx
@@ -9,7 +9,7 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import { PluginCategoryEnum, PluginSource, TaskStatus } from '../../types'
import DowngradeWarningModal from '../downgrade-warning'
diff --git a/web/app/components/plugins/update-plugin/__tests__/plugin-version-picker.spec.tsx b/web/app/components/plugins/update-plugin/__tests__/plugin-version-picker.spec.tsx
index 6e180059814..484e9a7b806 100644
--- a/web/app/components/plugins/update-plugin/__tests__/plugin-version-picker.spec.tsx
+++ b/web/app/components/plugins/update-plugin/__tests__/plugin-version-picker.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import PluginVersionPicker from '../plugin-version-picker'
type VersionItem = {
diff --git a/web/app/components/rag-pipeline/components/__tests__/conversion.spec.tsx b/web/app/components/rag-pipeline/components/__tests__/conversion.spec.tsx
index 96c0a18d85c..3c0c976ad51 100644
--- a/web/app/components/rag-pipeline/components/__tests__/conversion.spec.tsx
+++ b/web/app/components/rag-pipeline/components/__tests__/conversion.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithAccountProfile as render } from '@/test/console/account-profile'
import Conversion from '../conversion'
diff --git a/web/app/components/rag-pipeline/components/__tests__/publish-as-knowledge-pipeline-modal.spec.tsx b/web/app/components/rag-pipeline/components/__tests__/publish-as-knowledge-pipeline-modal.spec.tsx
index 873d1763446..045dda8bced 100644
--- a/web/app/components/rag-pipeline/components/__tests__/publish-as-knowledge-pipeline-modal.spec.tsx
+++ b/web/app/components/rag-pipeline/components/__tests__/publish-as-knowledge-pipeline-modal.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import PublishAsKnowledgePipelineModal from '../publish-as-knowledge-pipeline-modal'
vi.mock('@/app/components/workflow/store', () => ({
diff --git a/web/app/components/rag-pipeline/components/__tests__/publish-toast.spec.tsx b/web/app/components/rag-pipeline/components/__tests__/publish-toast.spec.tsx
index e76d7b50c71..07a50c6f2e7 100644
--- a/web/app/components/rag-pipeline/components/__tests__/publish-toast.spec.tsx
+++ b/web/app/components/rag-pipeline/components/__tests__/publish-toast.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import PublishToast from '../publish-toast'
let mockPublishedAt = 0
diff --git a/web/app/components/rag-pipeline/components/__tests__/rag-pipeline-main.spec.tsx b/web/app/components/rag-pipeline/components/__tests__/rag-pipeline-main.spec.tsx
index d089b483292..52a36c9f801 100644
--- a/web/app/components/rag-pipeline/components/__tests__/rag-pipeline-main.spec.tsx
+++ b/web/app/components/rag-pipeline/components/__tests__/rag-pipeline-main.spec.tsx
@@ -1,7 +1,7 @@
import type { PropsWithChildren } from 'react'
import type { Edge, Node, Viewport } from 'reactflow'
import { cleanup, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithAccountProfile as render } from '@/test/console/account-profile'
import { DatasetACLPermission } from '@/utils/permission'
import RagPipelineMain from '../rag-pipeline-main'
diff --git a/web/app/components/rag-pipeline/components/__tests__/update-dsl-modal.spec.tsx b/web/app/components/rag-pipeline/components/__tests__/update-dsl-modal.spec.tsx
index f046124474e..01a752d93fb 100644
--- a/web/app/components/rag-pipeline/components/__tests__/update-dsl-modal.spec.tsx
+++ b/web/app/components/rag-pipeline/components/__tests__/update-dsl-modal.spec.tsx
@@ -1,5 +1,5 @@
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DSLImportStatus } from '@/models/app'
import UpdateDSLModal from '../update-dsl-modal'
diff --git a/web/app/components/rag-pipeline/components/__tests__/version-mismatch-modal.spec.tsx b/web/app/components/rag-pipeline/components/__tests__/version-mismatch-modal.spec.tsx
index b4b29fd0a87..7cc9b8acc02 100644
--- a/web/app/components/rag-pipeline/components/__tests__/version-mismatch-modal.spec.tsx
+++ b/web/app/components/rag-pipeline/components/__tests__/version-mismatch-modal.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import VersionMismatchModal from '../version-mismatch-modal'
describe('VersionMismatchModal', () => {
diff --git a/web/app/components/rag-pipeline/components/chunk-card-list/__tests__/chunk-card.spec.tsx b/web/app/components/rag-pipeline/components/chunk-card-list/__tests__/chunk-card.spec.tsx
index 94e179eeb55..c8b20f248f3 100644
--- a/web/app/components/rag-pipeline/components/chunk-card-list/__tests__/chunk-card.spec.tsx
+++ b/web/app/components/rag-pipeline/components/chunk-card-list/__tests__/chunk-card.spec.tsx
@@ -1,6 +1,6 @@
import type { ParentChildChunk } from '../types'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { ChunkingMode } from '@/models/datasets'
import ChunkCard from '../chunk-card'
diff --git a/web/app/components/rag-pipeline/components/panel/input-field/__tests__/hooks.spec.ts b/web/app/components/rag-pipeline/components/panel/input-field/__tests__/hooks.spec.ts
index 2b5c1a24994..7ecfb0375ca 100644
--- a/web/app/components/rag-pipeline/components/panel/input-field/__tests__/hooks.spec.ts
+++ b/web/app/components/rag-pipeline/components/panel/input-field/__tests__/hooks.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useFloatingRight } from '../hooks'
const mockGetNodes = vi.fn()
diff --git a/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/hooks.spec.ts b/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/hooks.spec.ts
index 3b85ddbe957..c89fcf1e692 100644
--- a/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/hooks.spec.ts
+++ b/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/hooks.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PipelineInputVarType } from '@/models/pipeline'
import { useConfigurations, useHiddenConfigurations, useHiddenFieldNames } from '../hooks'
diff --git a/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/schema.spec.ts b/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/schema.spec.ts
index 64c40c0843c..8a4c1295a21 100644
--- a/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/schema.spec.ts
+++ b/web/app/components/rag-pipeline/components/panel/input-field/editor/form/__tests__/schema.spec.ts
@@ -1,5 +1,5 @@
import type { TFunction } from 'i18next'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { PipelineInputVarType } from '@/models/pipeline'
import { createInputFieldSchema, TEXT_MAX_LENGTH } from '../schema'
diff --git a/web/app/components/rag-pipeline/components/panel/input-field/field-list/__tests__/hooks.spec.ts b/web/app/components/rag-pipeline/components/panel/input-field/field-list/__tests__/hooks.spec.ts
index 25f62b86f38..810e6dae986 100644
--- a/web/app/components/rag-pipeline/components/panel/input-field/field-list/__tests__/hooks.spec.ts
+++ b/web/app/components/rag-pipeline/components/panel/input-field/field-list/__tests__/hooks.spec.ts
@@ -1,7 +1,7 @@
import type { InputVar } from '@/models/pipeline'
import { renderHook } from '@testing-library/react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useFieldList } from '../hooks'
const mockToggleInputFieldEditPanel = vi.fn()
diff --git a/web/app/components/rag-pipeline/components/panel/test-run/preparation/__tests__/hooks.spec.ts b/web/app/components/rag-pipeline/components/panel/test-run/preparation/__tests__/hooks.spec.ts
index 28b6806bf78..ee1617be43d 100644
--- a/web/app/components/rag-pipeline/components/panel/test-run/preparation/__tests__/hooks.spec.ts
+++ b/web/app/components/rag-pipeline/components/panel/test-run/preparation/__tests__/hooks.spec.ts
@@ -1,7 +1,7 @@
import type { DataSourceNodeType } from '@/app/components/workflow/nodes/data-source/types'
import { renderHook } from '@testing-library/react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import {
useDatasourceOptions,
diff --git a/web/app/components/rag-pipeline/components/rag-pipeline-header/__tests__/run-mode.spec.tsx b/web/app/components/rag-pipeline/components/rag-pipeline-header/__tests__/run-mode.spec.tsx
index aeadb735879..10d72478fb6 100644
--- a/web/app/components/rag-pipeline/components/rag-pipeline-header/__tests__/run-mode.spec.tsx
+++ b/web/app/components/rag-pipeline/components/rag-pipeline-header/__tests__/run-mode.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { RunMode } from '../run-mode'
const mockHandleWorkflowStartRunInWorkflow = vi.fn()
diff --git a/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/index.spec.tsx b/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/index.spec.tsx
index 513bd0d516a..5e35154b084 100644
--- a/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/index.spec.tsx
+++ b/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { IconInfo } from '@/models/datasets'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, fireEvent, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { seedAccountProfileQuery } from '@/test/console/account-profile'
import { seedSystemFeatures } from '@/test/console/query-data'
import { render } from '@/test/console/render'
diff --git a/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/popup.spec.tsx b/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/popup.spec.tsx
index f91c8515985..d87a38d4a6c 100644
--- a/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/popup.spec.tsx
+++ b/web/app/components/rag-pipeline/components/rag-pipeline-header/publisher/__tests__/popup.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { render as renderWithConsoleState } from '@/test/console/render'
import { Popup } from '../popup'
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-DSL.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-DSL.spec.ts
index 505a1c4545c..c4b84df87ad 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-DSL.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-DSL.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useDSLByCanEdit } from '../use-DSL'
const toastMocks = vi.hoisted(() => ({
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-available-nodes-meta-data.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-available-nodes-meta-data.spec.ts
index 13bc63aa051..66fd1b67acd 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-available-nodes-meta-data.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-available-nodes-meta-data.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import { useAvailableNodesMetaData } from '../use-available-nodes-meta-data'
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-configs-map.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-configs-map.spec.ts
index 7313d7970e0..cb7b7fdaf3c 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-configs-map.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-configs-map.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { useConfigsMap } from '../use-configs-map'
const mockPipelineId = 'pipeline-xyz'
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-get-run-and-trace-url.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-get-run-and-trace-url.spec.ts
index e72e685b344..c4502b42675 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-get-run-and-trace-url.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-get-run-and-trace-url.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { useGetRunAndTraceUrl } from '../use-get-run-and-trace-url'
vi.mock('@/app/components/workflow/store', () => ({
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-input-field-panel.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-input-field-panel.spec.ts
index 510db6aadc8..7cc7d1ee66d 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-input-field-panel.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-input-field-panel.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useInputFieldPanel } from '../use-input-field-panel'
const mockSetShowInputFieldPanel = vi.fn()
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-input-fields.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-input-fields.spec.ts
index 9b6cfd5fbd1..18c756c2815 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-input-fields.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-input-fields.spec.ts
@@ -1,6 +1,6 @@
import type { RAGPipelineVariables } from '@/models/pipeline'
import { renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { BaseFieldType } from '@/app/components/base/form/form-scenarios/base/types'
import { useConfigurations, useInitialData } from '../use-input-fields'
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-inspect-vars-crud.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-inspect-vars-crud.spec.ts
index 71322e3f3e9..495531a1fe4 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-inspect-vars-crud.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-inspect-vars-crud.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useInspectVarsCrud } from '../use-inspect-vars-crud'
// Mock return value for useInspectVarsCrudCommon
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-nodes-sync-draft.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-nodes-sync-draft.spec.ts
index 3b6178a1809..f3c13e91d85 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-nodes-sync-draft.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-nodes-sync-draft.spec.ts
@@ -1,6 +1,6 @@
import { renderHook } from '@testing-library/react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useNodesSyncDraft } from '../use-nodes-sync-draft'
const mockGetNodes = vi.fn()
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-config.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-config.spec.ts
index 6e0ecc00aff..57daee1b513 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-config.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-config.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { usePipelineConfig } from '../use-pipeline-config'
const mockUseStore = vi.fn()
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-init.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-init.spec.ts
index 007740d223a..5d9cfee9977 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-init.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-init.spec.ts
@@ -1,5 +1,5 @@
import { renderHook, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { usePipelineInit } from '../use-pipeline-init'
const mockWorkflowStoreGetState = vi.fn()
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-refresh-draft.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-refresh-draft.spec.ts
index e98976f1acc..ec44c58ebcb 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-refresh-draft.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-refresh-draft.spec.ts
@@ -1,6 +1,6 @@
import { renderHook, waitFor } from '@testing-library/react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { usePipelineRefreshDraft } from '../use-pipeline-refresh-draft'
const mockWorkflowStoreGetState = vi.fn()
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-run.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-run.spec.ts
index 2c7378493bb..7853a84f46f 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-run.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-run.spec.ts
@@ -1,7 +1,7 @@
import type { VersionHistory } from '@/types/workflow'
import { renderHook } from '@testing-library/react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { WorkflowRunningStatus } from '@/app/components/workflow/types'
import { usePipelineRunByCanEdit } from '../use-pipeline-run'
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-start-run.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-start-run.spec.ts
index 68b7f3abac4..5ae0d3a1811 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-start-run.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-start-run.spec.ts
@@ -1,6 +1,6 @@
import { renderHook } from '@testing-library/react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { WorkflowRunningStatus } from '@/app/components/workflow/types'
import { usePipelineStartRunByCanEdit } from '../use-pipeline-start-run'
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-template.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-template.spec.ts
index 8873ad6cb4f..7bfb6b8c1f9 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-template.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-template.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { usePipelineTemplate } from '../use-pipeline-template'
vi.mock('@/app/components/workflow/constants', () => ({
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline.spec.ts
index 6fe02495f03..a70c1d80012 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline.spec.ts
@@ -1,6 +1,6 @@
import { renderHook } from '@testing-library/react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { usePipeline } from '../use-pipeline'
const mockGetNodes = vi.fn()
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-rag-pipeline-search.spec.tsx b/web/app/components/rag-pipeline/hooks/__tests__/use-rag-pipeline-search.spec.tsx
index 70b3b837384..d4668f6bb6b 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-rag-pipeline-search.spec.tsx
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-rag-pipeline-search.spec.tsx
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import { findRagPipelineNodes } from '../../goto-anything-search'
import { useRagPipelineSearch } from '../use-rag-pipeline-search'
diff --git a/web/app/components/rag-pipeline/hooks/__tests__/use-update-dsl-modal.spec.ts b/web/app/components/rag-pipeline/hooks/__tests__/use-update-dsl-modal.spec.ts
index 329b1dbdec9..cae5320829a 100644
--- a/web/app/components/rag-pipeline/hooks/__tests__/use-update-dsl-modal.spec.ts
+++ b/web/app/components/rag-pipeline/hooks/__tests__/use-update-dsl-modal.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DSLImportMode, DSLImportStatus } from '@/models/app'
import { useUpdateDSLModal } from '../use-update-dsl-modal'
diff --git a/web/app/components/rag-pipeline/store/__tests__/index.spec.ts b/web/app/components/rag-pipeline/store/__tests__/index.spec.ts
index 10e2ef69141..347f64c51cf 100644
--- a/web/app/components/rag-pipeline/store/__tests__/index.spec.ts
+++ b/web/app/components/rag-pipeline/store/__tests__/index.spec.ts
@@ -2,7 +2,7 @@ import type { InputFieldEditorProps } from '../../components/panel/input-field/e
import type { RagPipelineSliceShape } from '../index'
import type { DataSourceItem } from '@/app/components/workflow/block-selector/types'
import type { RAGPipelineVariables } from '@/models/pipeline'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { PipelineInputVarType } from '@/models/pipeline'
import { createRagPipelineSliceSlice } from '../index'
diff --git a/web/app/components/rag-pipeline/utils/__tests__/index.spec.ts b/web/app/components/rag-pipeline/utils/__tests__/index.spec.ts
index 7a4c1779f5a..48117c91b59 100644
--- a/web/app/components/rag-pipeline/utils/__tests__/index.spec.ts
+++ b/web/app/components/rag-pipeline/utils/__tests__/index.spec.ts
@@ -1,6 +1,6 @@
import type { Viewport } from 'reactflow'
import type { Node } from '@/app/components/workflow/types'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import { processNodesWithoutDataSource } from '../nodes'
diff --git a/web/app/components/share/text-generation/__tests__/info-modal.spec.tsx b/web/app/components/share/text-generation/__tests__/info-modal.spec.tsx
index 048a43521db..f07d41d0e87 100644
--- a/web/app/components/share/text-generation/__tests__/info-modal.spec.tsx
+++ b/web/app/components/share/text-generation/__tests__/info-modal.spec.tsx
@@ -1,6 +1,6 @@
import type { SiteInfo } from '@/models/share'
import { act, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import InfoModal from '../info-modal'
const siteInfo: SiteInfo = {
diff --git a/web/app/components/share/text-generation/__tests__/menu-dropdown.spec.tsx b/web/app/components/share/text-generation/__tests__/menu-dropdown.spec.tsx
index 3358f92b285..b171ab17926 100644
--- a/web/app/components/share/text-generation/__tests__/menu-dropdown.spec.tsx
+++ b/web/app/components/share/text-generation/__tests__/menu-dropdown.spec.tsx
@@ -1,7 +1,7 @@
import type { SiteInfo } from '@/models/share'
import type { WebAppAddress } from '@/service/webapp-address'
import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import MenuDropdown from '../menu-dropdown'
vi.mock('../info-modal', () => ({
diff --git a/web/app/components/share/text-generation/run-batch/__tests__/index.spec.tsx b/web/app/components/share/text-generation/run-batch/__tests__/index.spec.tsx
index dfd81bb96f7..ef03c4a9b81 100644
--- a/web/app/components/share/text-generation/run-batch/__tests__/index.spec.tsx
+++ b/web/app/components/share/text-generation/run-batch/__tests__/index.spec.tsx
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints'
diff --git a/web/app/components/snippets/hooks/__tests__/use-inspect-vars-crud.spec.ts b/web/app/components/snippets/hooks/__tests__/use-inspect-vars-crud.spec.ts
index 26719bc3a70..7b19f6c9f0a 100644
--- a/web/app/components/snippets/hooks/__tests__/use-inspect-vars-crud.spec.ts
+++ b/web/app/components/snippets/hooks/__tests__/use-inspect-vars-crud.spec.ts
@@ -1,5 +1,5 @@
import { renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useInspectVarsCrud } from '../use-inspect-vars-crud'
const mockApis = {
diff --git a/web/app/components/snippets/hooks/__tests__/use-snippet-init.spec.ts b/web/app/components/snippets/hooks/__tests__/use-snippet-init.spec.ts
index 2106edb363d..085986288fc 100644
--- a/web/app/components/snippets/hooks/__tests__/use-snippet-init.spec.ts
+++ b/web/app/components/snippets/hooks/__tests__/use-snippet-init.spec.ts
@@ -1,6 +1,6 @@
import type { SnippetWorkflow } from '@/types/snippet'
import { renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useSnippetInit } from '../use-snippet-init'
const mockWorkflowStoreSetState = vi.fn()
diff --git a/web/app/components/snippets/hooks/__tests__/use-snippet-start-run.spec.ts b/web/app/components/snippets/hooks/__tests__/use-snippet-start-run.spec.ts
index 03597494ee1..9745957f4e7 100644
--- a/web/app/components/snippets/hooks/__tests__/use-snippet-start-run.spec.ts
+++ b/web/app/components/snippets/hooks/__tests__/use-snippet-start-run.spec.ts
@@ -1,7 +1,7 @@
import type { SnippetInputField } from '@/models/snippet'
import { renderHook } from '@testing-library/react'
import { act } from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { WorkflowRunningStatus } from '@/app/components/workflow/types'
import { PipelineInputVarType } from '@/models/pipeline'
import { useSnippetDraftStore } from '../../draft-store'
diff --git a/web/app/components/tools/edit-custom-collection-modal/__tests__/config-credentials.spec.tsx b/web/app/components/tools/edit-custom-collection-modal/__tests__/config-credentials.spec.tsx
index e4e2527e406..e1524ef5184 100644
--- a/web/app/components/tools/edit-custom-collection-modal/__tests__/config-credentials.spec.tsx
+++ b/web/app/components/tools/edit-custom-collection-modal/__tests__/config-credentials.spec.tsx
@@ -1,6 +1,6 @@
import type { Credential } from '@/app/components/tools/types'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthHeaderPrefix, AuthType } from '@/app/components/tools/types'
import ConfigCredential from '../config-credentials'
diff --git a/web/app/components/tools/edit-custom-collection-modal/__tests__/index.spec.tsx b/web/app/components/tools/edit-custom-collection-modal/__tests__/index.spec.tsx
index 4f473499178..aa084bfaf38 100644
--- a/web/app/components/tools/edit-custom-collection-modal/__tests__/index.spec.tsx
+++ b/web/app/components/tools/edit-custom-collection-modal/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { ModalContextState } from '@/context/modal-context'
import type { ProviderContextState } from '@/context/provider-context'
import { toast } from '@langgenius/dify-ui/toast'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthHeaderPrefix, AuthType } from '@/app/components/tools/types'
import { parseParamsSchema } from '@/service/tools'
import EditCustomCollectionModal from '../index'
diff --git a/web/app/components/tools/edit-custom-collection-modal/__tests__/test-api.spec.tsx b/web/app/components/tools/edit-custom-collection-modal/__tests__/test-api.spec.tsx
index 9855932ee02..45f76704e3f 100644
--- a/web/app/components/tools/edit-custom-collection-modal/__tests__/test-api.spec.tsx
+++ b/web/app/components/tools/edit-custom-collection-modal/__tests__/test-api.spec.tsx
@@ -1,6 +1,6 @@
import type { CustomCollectionBackend, CustomParamSchema } from '@/app/components/tools/types'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AuthHeaderPrefix, AuthType } from '@/app/components/tools/types'
import { testAPIAvailable } from '@/service/tools'
import TestApi from '../test-api'
diff --git a/web/app/components/tools/labels/__tests__/filter.spec.tsx b/web/app/components/tools/labels/__tests__/filter.spec.tsx
index 78d0718fd56..82dfb9320f2 100644
--- a/web/app/components/tools/labels/__tests__/filter.spec.tsx
+++ b/web/app/components/tools/labels/__tests__/filter.spec.tsx
@@ -1,5 +1,5 @@
import { act, fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import LabelFilter from '../filter'
// Mock useTags hook with controlled test data
diff --git a/web/app/components/tools/labels/__tests__/selector.spec.tsx b/web/app/components/tools/labels/__tests__/selector.spec.tsx
index f4a5ca0eb70..9a20087662c 100644
--- a/web/app/components/tools/labels/__tests__/selector.spec.tsx
+++ b/web/app/components/tools/labels/__tests__/selector.spec.tsx
@@ -1,5 +1,5 @@
import { act, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import LabelSelector from '../selector'
// Mock useTags hook with controlled test data
diff --git a/web/app/components/tools/marketplace/__tests__/builtin-marketplace-panel.spec.tsx b/web/app/components/tools/marketplace/__tests__/builtin-marketplace-panel.spec.tsx
index fb1e712fefc..31d00361317 100644
--- a/web/app/components/tools/marketplace/__tests__/builtin-marketplace-panel.spec.tsx
+++ b/web/app/components/tools/marketplace/__tests__/builtin-marketplace-panel.spec.tsx
@@ -1,6 +1,6 @@
import { act, fireEvent, render, screen } from '@testing-library/react'
import { createRef } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BuiltinMarketplacePanel } from '../builtin-marketplace-panel'
const mockUseMarketplace = vi.fn()
diff --git a/web/app/components/tools/marketplace/__tests__/hooks.spec.ts b/web/app/components/tools/marketplace/__tests__/hooks.spec.ts
index b78f59faa85..4bc90a1b9bb 100644
--- a/web/app/components/tools/marketplace/__tests__/hooks.spec.ts
+++ b/web/app/components/tools/marketplace/__tests__/hooks.spec.ts
@@ -3,7 +3,7 @@ import type { Plugin } from '@/app/components/plugins/types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook, waitFor } from '@testing-library/react'
import { createElement } from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { SCROLL_BOTTOM_THRESHOLD } from '@/app/components/plugins/marketplace/constants'
import { getMarketplaceListCondition } from '@/app/components/plugins/marketplace/utils'
import { PluginCategoryEnum } from '@/app/components/plugins/types'
diff --git a/web/app/components/tools/mcp/__tests__/create-card.spec.tsx b/web/app/components/tools/mcp/__tests__/create-card.spec.tsx
index 981c92315e2..b8fc457486c 100644
--- a/web/app/components/tools/mcp/__tests__/create-card.spec.tsx
+++ b/web/app/components/tools/mcp/__tests__/create-card.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import {
getStepByStepTourTargetSelector,
STEP_BY_STEP_TOUR_TARGETS,
diff --git a/web/app/components/tools/mcp/__tests__/headers-input.spec.tsx b/web/app/components/tools/mcp/__tests__/headers-input.spec.tsx
index 64a4812603f..1db6c724e19 100644
--- a/web/app/components/tools/mcp/__tests__/headers-input.spec.tsx
+++ b/web/app/components/tools/mcp/__tests__/headers-input.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import HeadersInput from '../headers-input'
describe('HeadersInput', () => {
diff --git a/web/app/components/tools/mcp/__tests__/index.spec.tsx b/web/app/components/tools/mcp/__tests__/index.spec.tsx
index 0ae0b699ce9..4dd304794d2 100644
--- a/web/app/components/tools/mcp/__tests__/index.spec.tsx
+++ b/web/app/components/tools/mcp/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import type { ToolWithProvider } from '@/app/components/workflow/types'
import { act, fireEvent, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import MCPList from '../index'
diff --git a/web/app/components/tools/mcp/__tests__/mcp-server-modal.spec.tsx b/web/app/components/tools/mcp/__tests__/mcp-server-modal.spec.tsx
index efb60bd2dd1..99e90b25c81 100644
--- a/web/app/components/tools/mcp/__tests__/mcp-server-modal.spec.tsx
+++ b/web/app/components/tools/mcp/__tests__/mcp-server-modal.spec.tsx
@@ -3,7 +3,7 @@ import type { MCPServerDetail } from '@/app/components/tools/types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import MCPServerModal from '../mcp-server-modal'
const mockGetSocket = vi.hoisted(() => vi.fn())
diff --git a/web/app/components/tools/mcp/__tests__/mcp-server-param-item.spec.tsx b/web/app/components/tools/mcp/__tests__/mcp-server-param-item.spec.tsx
index 611995977f2..3853593ad8b 100644
--- a/web/app/components/tools/mcp/__tests__/mcp-server-param-item.spec.tsx
+++ b/web/app/components/tools/mcp/__tests__/mcp-server-param-item.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import MCPServerParamItem from '../mcp-server-param-item'
describe('MCPServerParamItem', () => {
diff --git a/web/app/components/tools/mcp/__tests__/modal.spec.tsx b/web/app/components/tools/mcp/__tests__/modal.spec.tsx
index 2ef9347e320..2905d18dd41 100644
--- a/web/app/components/tools/mcp/__tests__/modal.spec.tsx
+++ b/web/app/components/tools/mcp/__tests__/modal.spec.tsx
@@ -2,7 +2,7 @@ import type { SsoProtocol } from '@dify/contracts/api/console/system-features/ty
import type { ToolWithProvider } from '@/app/components/workflow/types'
import { zSsoProtocol } from '@dify/contracts/api/console/system-features/zod.gen'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import MCPModal from '../modal'
diff --git a/web/app/components/tools/mcp/__tests__/provider-card.spec.tsx b/web/app/components/tools/mcp/__tests__/provider-card.spec.tsx
index 216449a16a2..30e22370de2 100644
--- a/web/app/components/tools/mcp/__tests__/provider-card.spec.tsx
+++ b/web/app/components/tools/mcp/__tests__/provider-card.spec.tsx
@@ -3,7 +3,7 @@ import type { ToolWithProvider } from '@/app/components/workflow/types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, screen } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import MCPCard from '../provider-card'
diff --git a/web/app/components/tools/mcp/detail/__tests__/content.spec.tsx b/web/app/components/tools/mcp/detail/__tests__/content.spec.tsx
index 3c5809a662b..735dbffdced 100644
--- a/web/app/components/tools/mcp/detail/__tests__/content.spec.tsx
+++ b/web/app/components/tools/mcp/detail/__tests__/content.spec.tsx
@@ -3,7 +3,7 @@ import type { ToolWithProvider } from '@/app/components/workflow/types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, screen, waitFor } from '@testing-library/react'
import * as React from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import MCPDetailContent from '../content'
diff --git a/web/app/components/tools/mcp/detail/__tests__/operation-dropdown.spec.tsx b/web/app/components/tools/mcp/detail/__tests__/operation-dropdown.spec.tsx
index 4342113f3b3..2056991640e 100644
--- a/web/app/components/tools/mcp/detail/__tests__/operation-dropdown.spec.tsx
+++ b/web/app/components/tools/mcp/detail/__tests__/operation-dropdown.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import OperationDropdown from '../operation-dropdown'
describe('OperationDropdown', () => {
diff --git a/web/app/components/tools/mcp/hooks/__tests__/use-mcp-modal-form.spec.ts b/web/app/components/tools/mcp/hooks/__tests__/use-mcp-modal-form.spec.ts
index 51a49f148f0..ed53d2ca951 100644
--- a/web/app/components/tools/mcp/hooks/__tests__/use-mcp-modal-form.spec.ts
+++ b/web/app/components/tools/mcp/hooks/__tests__/use-mcp-modal-form.spec.ts
@@ -4,7 +4,7 @@ import type {
} from '@/app/components/base/app-icon-picker'
import type { ToolWithProvider } from '@/app/components/workflow/types'
import { act, renderHook } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { MCPAuthMethod } from '@/app/components/tools/types'
import { isValidServerID, isValidUrl, useMCPModalForm } from '../use-mcp-modal-form'
diff --git a/web/app/components/tools/mcp/sections/__tests__/authentication-section.spec.tsx b/web/app/components/tools/mcp/sections/__tests__/authentication-section.spec.tsx
index f1ce589bc52..d2299560bd2 100644
--- a/web/app/components/tools/mcp/sections/__tests__/authentication-section.spec.tsx
+++ b/web/app/components/tools/mcp/sections/__tests__/authentication-section.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import AuthenticationSection from '../authentication-section'
describe('AuthenticationSection', () => {
diff --git a/web/app/components/tools/mcp/sections/__tests__/configurations-section.spec.tsx b/web/app/components/tools/mcp/sections/__tests__/configurations-section.spec.tsx
index b6d0c2cca33..d8eb7b2ecd3 100644
--- a/web/app/components/tools/mcp/sections/__tests__/configurations-section.spec.tsx
+++ b/web/app/components/tools/mcp/sections/__tests__/configurations-section.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ConfigurationsSection from '../configurations-section'
describe('ConfigurationsSection', () => {
diff --git a/web/app/components/tools/mcp/sections/__tests__/headers-section.spec.tsx b/web/app/components/tools/mcp/sections/__tests__/headers-section.spec.tsx
index a2e273c6cde..083e589f165 100644
--- a/web/app/components/tools/mcp/sections/__tests__/headers-section.spec.tsx
+++ b/web/app/components/tools/mcp/sections/__tests__/headers-section.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import HeadersSection from '../headers-section'
describe('HeadersSection', () => {
diff --git a/web/app/components/tools/provider/__tests__/custom-create-card.spec.tsx b/web/app/components/tools/provider/__tests__/custom-create-card.spec.tsx
index 9bad35fb320..6e0ba278ec0 100644
--- a/web/app/components/tools/provider/__tests__/custom-create-card.spec.tsx
+++ b/web/app/components/tools/provider/__tests__/custom-create-card.spec.tsx
@@ -1,6 +1,6 @@
import type { CustomCollectionBackend } from '../../types'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { render } from '@/test/console/render'
import { AuthType } from '../../types'
import CustomCreateCard, { NewCustomToolButton } from '../custom-create-card'
diff --git a/web/app/components/tools/provider/__tests__/detail.spec.tsx b/web/app/components/tools/provider/__tests__/detail.spec.tsx
index b05c8953a1d..1240885f75f 100644
--- a/web/app/components/tools/provider/__tests__/detail.spec.tsx
+++ b/web/app/components/tools/provider/__tests__/detail.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import type { Collection } from '../../types'
import { act, cleanup, fireEvent, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { commonQueryKeys } from '@/service/use-common'
import { createConsoleQueryClient, renderWithConsoleQuery } from '@/test/console/query-data'
import { AuthType, CollectionType } from '../../types'
diff --git a/web/app/components/tools/provider/__tests__/empty.spec.tsx b/web/app/components/tools/provider/__tests__/empty.spec.tsx
index 0bf9cfcbdb5..f71f1725d6a 100644
--- a/web/app/components/tools/provider/__tests__/empty.spec.tsx
+++ b/web/app/components/tools/provider/__tests__/empty.spec.tsx
@@ -1,5 +1,5 @@
import { screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import { ToolType } from '../../../workflow/block-selector/types'
import Empty from '../empty'
diff --git a/web/app/components/tools/provider/__tests__/tool-item.spec.tsx b/web/app/components/tools/provider/__tests__/tool-item.spec.tsx
index 022db26e2bf..48dbf7d67b8 100644
--- a/web/app/components/tools/provider/__tests__/tool-item.spec.tsx
+++ b/web/app/components/tools/provider/__tests__/tool-item.spec.tsx
@@ -1,7 +1,7 @@
import type { Collection, Tool } from '../../types'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ToolItem from '../tool-item'
vi.mock('@/i18n-config/language', () => ({ getLanguage: () => 'en_US' }))
diff --git a/web/app/components/tools/setting/build-in/__tests__/config-credentials.spec.tsx b/web/app/components/tools/setting/build-in/__tests__/config-credentials.spec.tsx
index 164e0954421..7b5aa96e5cb 100644
--- a/web/app/components/tools/setting/build-in/__tests__/config-credentials.spec.tsx
+++ b/web/app/components/tools/setting/build-in/__tests__/config-credentials.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import ConfigCredential from '../config-credentials'
vi.mock('@/app/components/header/account-setting/model-provider-page/hooks', () => ({
diff --git a/web/app/components/tools/utils/__tests__/index.spec.ts b/web/app/components/tools/utils/__tests__/index.spec.ts
index 8149a2442ae..05585a70239 100644
--- a/web/app/components/tools/utils/__tests__/index.spec.ts
+++ b/web/app/components/tools/utils/__tests__/index.spec.ts
@@ -1,6 +1,6 @@
import type { ThoughtItem } from '@/app/components/base/chat/chat/type'
import type { FileEntity } from '@/app/components/base/file-uploader/types'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { addFileInfos, sortAgentSorts } from '../index'
describe('tools/utils', () => {
diff --git a/web/app/components/tools/utils/__tests__/to-form-schema.spec.ts b/web/app/components/tools/utils/__tests__/to-form-schema.spec.ts
index 8238a24aeac..9f6a7046983 100644
--- a/web/app/components/tools/utils/__tests__/to-form-schema.spec.ts
+++ b/web/app/components/tools/utils/__tests__/to-form-schema.spec.ts
@@ -1,6 +1,6 @@
import type { TriggerEventParameter } from '../../../plugins/types'
import type { ToolCredential, ToolParameter } from '../../types'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
addDefaultValue,
generateAgentToolValue,
diff --git a/web/app/components/tools/workflow-tool/__tests__/helpers.spec.ts b/web/app/components/tools/workflow-tool/__tests__/helpers.spec.ts
index 403a10dbbe8..9c27381b915 100644
--- a/web/app/components/tools/workflow-tool/__tests__/helpers.spec.ts
+++ b/web/app/components/tools/workflow-tool/__tests__/helpers.spec.ts
@@ -1,5 +1,5 @@
import type { TFunction } from 'i18next'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { VarType } from '@/app/components/workflow/types'
import { withSelectorKey } from '@/test/i18n-mock'
import {
diff --git a/web/app/components/tools/workflow-tool/__tests__/index.spec.tsx b/web/app/components/tools/workflow-tool/__tests__/index.spec.tsx
index dfda7a5c142..5ce7f7bfff9 100644
--- a/web/app/components/tools/workflow-tool/__tests__/index.spec.tsx
+++ b/web/app/components/tools/workflow-tool/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { WorkflowToolDrawerPayload } from '../index'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { WorkflowToolDrawer } from '../index'
vi.mock('@/app/components/base/app-icon', () => ({
diff --git a/web/app/components/tools/workflow-tool/__tests__/method-selector.spec.tsx b/web/app/components/tools/workflow-tool/__tests__/method-selector.spec.tsx
index b5d0958fa19..9cde5226819 100644
--- a/web/app/components/tools/workflow-tool/__tests__/method-selector.spec.tsx
+++ b/web/app/components/tools/workflow-tool/__tests__/method-selector.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import MethodSelector from '../method-selector'
describe('MethodSelector', () => {
diff --git a/web/app/components/tools/workflow-tool/confirm-modal/__tests__/index.spec.tsx b/web/app/components/tools/workflow-tool/confirm-modal/__tests__/index.spec.tsx
index 81c7138559b..79ccd21a5fc 100644
--- a/web/app/components/tools/workflow-tool/confirm-modal/__tests__/index.spec.tsx
+++ b/web/app/components/tools/workflow-tool/confirm-modal/__tests__/index.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ConfirmModal from '../index'
describe('ConfirmModal', () => {
diff --git a/web/app/components/workflow-app/hooks/__tests__/use-nodes-sync-draft.spec.ts b/web/app/components/workflow-app/hooks/__tests__/use-nodes-sync-draft.spec.ts
index 758691551d9..1b60fa9b742 100644
--- a/web/app/components/workflow-app/hooks/__tests__/use-nodes-sync-draft.spec.ts
+++ b/web/app/components/workflow-app/hooks/__tests__/use-nodes-sync-draft.spec.ts
@@ -1,6 +1,6 @@
import type { EnvironmentVariablePatch } from '@/service/workflow'
import { act } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import { renderHookWithConsoleQuery } from '@/test/console/query-data'
import { useNodesSyncDraft } from '../use-nodes-sync-draft'
diff --git a/web/app/components/workflow-app/hooks/__tests__/use-workflow-init.spec.ts b/web/app/components/workflow-app/hooks/__tests__/use-workflow-init.spec.ts
index 6b130d10ff4..6e73a2aff14 100644
--- a/web/app/components/workflow-app/hooks/__tests__/use-workflow-init.spec.ts
+++ b/web/app/components/workflow-app/hooks/__tests__/use-workflow-init.spec.ts
@@ -1,5 +1,5 @@
import { waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import { createAccountProfileQueryWrapper } from '@/test/console/account-profile'
import { renderHook as renderHookWithConsoleState } from '@/test/console/render'
diff --git a/web/app/components/workflow-app/hooks/__tests__/use-workflow-refresh-draft.spec.ts b/web/app/components/workflow-app/hooks/__tests__/use-workflow-refresh-draft.spec.ts
index db94d06d73c..a7d2edd8cd7 100644
--- a/web/app/components/workflow-app/hooks/__tests__/use-workflow-refresh-draft.spec.ts
+++ b/web/app/components/workflow-app/hooks/__tests__/use-workflow-refresh-draft.spec.ts
@@ -1,5 +1,5 @@
import { act, renderHook, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { BlockEnum } from '@/app/components/workflow/types'
import { AppModeEnum } from '@/types/app'
import { useWorkflowRefreshDraft } from '../use-workflow-refresh-draft'
diff --git a/web/app/components/workflow/__tests__/i18n.ts b/web/app/components/workflow/__tests__/i18n.ts
index 7d04667a32a..60342bf547c 100644
--- a/web/app/components/workflow/__tests__/i18n.ts
+++ b/web/app/components/workflow/__tests__/i18n.ts
@@ -1,4 +1,4 @@
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
export function resolveDocLink(path: string, baseUrl = 'https://docs.example.com') {
return `${baseUrl}${path}`
diff --git a/web/app/components/workflow/__tests__/trigger-status-sync.spec.tsx b/web/app/components/workflow/__tests__/trigger-status-sync.spec.tsx
index 2425a7b711a..a43327e7ae2 100644
--- a/web/app/components/workflow/__tests__/trigger-status-sync.spec.tsx
+++ b/web/app/components/workflow/__tests__/trigger-status-sync.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import type { EntryNodeStatus } from '../store/trigger-status'
import type { BlockEnum } from '../types'
import { act, render } from '@testing-library/react'
diff --git a/web/app/components/workflow/block-selector/marketplace-plugin/__tests__/action.spec.tsx b/web/app/components/workflow/block-selector/marketplace-plugin/__tests__/action.spec.tsx
index 0643eb0f56f..cf0e7f97fac 100644
--- a/web/app/components/workflow/block-selector/marketplace-plugin/__tests__/action.spec.tsx
+++ b/web/app/components/workflow/block-selector/marketplace-plugin/__tests__/action.spec.tsx
@@ -2,7 +2,7 @@ import type { ComponentProps } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import OperationDropdown from '../action'
const mockDownloadBlob = vi.fn()
diff --git a/web/app/components/workflow/comment/comment-icon.spec.tsx b/web/app/components/workflow/comment/comment-icon.spec.tsx
index b89b70b9872..acb2fe7f36b 100644
--- a/web/app/components/workflow/comment/comment-icon.spec.tsx
+++ b/web/app/components/workflow/comment/comment-icon.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactElement } from 'react'
import type { WorkflowCommentList } from '@/app/components/workflow/comment/types'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createAccountProfileQueryWrapper } from '@/test/console/account-profile'
import { render as renderWithConsoleState } from '@/test/console/render'
import { CommentIcon } from './comment-icon'
diff --git a/web/app/components/workflow/comment/comment-input.spec.tsx b/web/app/components/workflow/comment/comment-input.spec.tsx
index e1e8107f331..8b7ac6e0959 100644
--- a/web/app/components/workflow/comment/comment-input.spec.tsx
+++ b/web/app/components/workflow/comment/comment-input.spec.tsx
@@ -1,6 +1,6 @@
import type { FC, ReactElement } from 'react'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createAccountProfileQueryWrapper } from '@/test/console/account-profile'
import { render as renderWithConsoleState } from '@/test/console/render'
import { CommentInput } from './comment-input'
diff --git a/web/app/components/workflow/comment/comment-preview.spec.tsx b/web/app/components/workflow/comment/comment-preview.spec.tsx
index 819cfb89111..cdf1fde19dc 100644
--- a/web/app/components/workflow/comment/comment-preview.spec.tsx
+++ b/web/app/components/workflow/comment/comment-preview.spec.tsx
@@ -1,6 +1,6 @@
import type { WorkflowCommentList } from '@/app/components/workflow/comment/types'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import CommentPreview from './comment-preview'
type UserProfile = NonNullable
diff --git a/web/app/components/workflow/comment/cursor.spec.tsx b/web/app/components/workflow/comment/cursor.spec.tsx
index c6cd64c0aae..b393b7911a2 100644
--- a/web/app/components/workflow/comment/cursor.spec.tsx
+++ b/web/app/components/workflow/comment/cursor.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { ControlMode } from '../types'
import { CommentCursor } from './cursor'
diff --git a/web/app/components/workflow/header/checklist/__tests__/plugin-group.spec.tsx b/web/app/components/workflow/header/checklist/__tests__/plugin-group.spec.tsx
index b0a6f3e8569..79c29f714cf 100644
--- a/web/app/components/workflow/header/checklist/__tests__/plugin-group.spec.tsx
+++ b/web/app/components/workflow/header/checklist/__tests__/plugin-group.spec.tsx
@@ -1,7 +1,7 @@
import type { ChecklistItem } from '../../../hooks/use-checklist'
import { Popover, PopoverContent } from '@langgenius/dify-ui/popover'
import { fireEvent, render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it } from 'vitest'
+import { beforeEach, describe, expect, it } from 'vite-plus/test'
import { useStore as usePluginDependencyStore } from '../../../plugin-dependency/store'
import { BlockEnum } from '../../../types'
import { ChecklistPluginGroup } from '../plugin-group'
diff --git a/web/app/components/workflow/nodes/_base/components/__tests__/agent-strategy-selector.spec.tsx b/web/app/components/workflow/nodes/_base/components/__tests__/agent-strategy-selector.spec.tsx
index 30d69e86ad5..fd0b0f4a83f 100644
--- a/web/app/components/workflow/nodes/_base/components/__tests__/agent-strategy-selector.spec.tsx
+++ b/web/app/components/workflow/nodes/_base/components/__tests__/agent-strategy-selector.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { StrategyPluginDetail } from '@/app/components/plugins/types'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PluginCategoryEnum } from '@/app/components/plugins/types'
import { AgentStrategySelector } from '../agent-strategy-selector'
diff --git a/web/app/components/workflow/nodes/_base/components/variable/__tests__/utils.spec.ts b/web/app/components/workflow/nodes/_base/components/variable/__tests__/utils.spec.ts
index 7b8de8b40db..3857fa73a82 100644
--- a/web/app/components/workflow/nodes/_base/components/variable/__tests__/utils.spec.ts
+++ b/web/app/components/workflow/nodes/_base/components/variable/__tests__/utils.spec.ts
@@ -3,7 +3,7 @@ import type { AnswerNodeType } from '@/app/components/workflow/nodes/answer/type
import type { HumanInputNodeType } from '@/app/components/workflow/nodes/human-input/types'
import type { LLMNodeType } from '@/app/components/workflow/nodes/llm/types'
import type { EnvironmentVariable, Node, PromptItem } from '@/app/components/workflow/types'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { DeliveryMethodType } from '@/app/components/workflow/nodes/human-input/types'
import {
BlockEnum,
diff --git a/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/index.spec.tsx b/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/index.spec.tsx
index d725278cff9..25a477089fa 100644
--- a/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/index.spec.tsx
+++ b/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/index.spec.tsx
@@ -1,7 +1,7 @@
import type { DeclaredOutputConfig } from '@dify/contracts/api/console/apps/types.gen'
import { render, screen, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { AgentOutputVariables } from '../index'
const editorLabel = 'workflow.nodes.agent.outputVars.editorLabel'
diff --git a/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/utils.spec.ts b/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/utils.spec.ts
index 58be559f86b..04c64d8b04c 100644
--- a/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/utils.spec.ts
+++ b/web/app/components/workflow/nodes/agent-v2/components/agent-output-variables/__tests__/utils.spec.ts
@@ -1,5 +1,5 @@
import type { OutputDraft } from '../utils'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { createOutputFromDraft, getDefaultValueErrorKey } from '../utils'
const createDraft = (overrides: Partial = {}): OutputDraft => ({
diff --git a/web/app/components/workflow/nodes/http/components/edit-body/index.spec.tsx b/web/app/components/workflow/nodes/http/components/edit-body/index.spec.tsx
index 5b5331df681..9205551b40e 100644
--- a/web/app/components/workflow/nodes/http/components/edit-body/index.spec.tsx
+++ b/web/app/components/workflow/nodes/http/components/edit-body/index.spec.tsx
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { VarType } from '@/app/components/workflow/types'
import { HTTP_BODY_VARIABLE_TYPES, isSupportedHttpBodyVariable } from './supported-body-vars'
diff --git a/web/app/components/workflow/nodes/human-input/__tests__/human-input.spec.tsx b/web/app/components/workflow/nodes/human-input/__tests__/human-input.spec.tsx
index ed1a366a114..0c98414f2e4 100644
--- a/web/app/components/workflow/nodes/human-input/__tests__/human-input.spec.tsx
+++ b/web/app/components/workflow/nodes/human-input/__tests__/human-input.spec.tsx
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { HumanInputNodeType } from '@/app/components/workflow/nodes/human-input/types'
import type { Edge, Node } from '@/app/components/workflow/types'
import { render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { WORKFLOW_COMMON_NODES } from '@/app/components/workflow/constants/node'
import humanInputDefault from '@/app/components/workflow/nodes/human-input/default'
import HumanInputNode from '@/app/components/workflow/nodes/human-input/node'
diff --git a/web/app/components/workflow/nodes/llm/components/json-schema-config-modal/__tests__/json-importer.spec.tsx b/web/app/components/workflow/nodes/llm/components/json-schema-config-modal/__tests__/json-importer.spec.tsx
index a36def95985..a39e72296da 100644
--- a/web/app/components/workflow/nodes/llm/components/json-schema-config-modal/__tests__/json-importer.spec.tsx
+++ b/web/app/components/workflow/nodes/llm/components/json-schema-config-modal/__tests__/json-importer.spec.tsx
@@ -1,7 +1,7 @@
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { JSON_SCHEMA_MAX_DEPTH } from '@/config'
import JsonImporter from '../json-importer'
diff --git a/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-picker.spec.tsx b/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-picker.spec.tsx
index 65d9b0706c1..c5fa2067147 100644
--- a/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-picker.spec.tsx
+++ b/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-picker.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ToolDatePicker from '../tool-date-picker'
vi.mock('react-i18next', async () => {
diff --git a/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-range-picker.spec.tsx b/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-range-picker.spec.tsx
index 2add4377c5d..4ca8ee899a0 100644
--- a/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-range-picker.spec.tsx
+++ b/web/app/components/workflow/nodes/tool/components/__tests__/tool-date-range-picker.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import ToolDateRangePicker from '../tool-date-range-picker'
vi.mock('react-i18next', async () => {
diff --git a/web/app/device/__tests__/page-terminal.spec.tsx b/web/app/device/__tests__/page-terminal.spec.tsx
index 05f5707414e..3d74e85bd8f 100644
--- a/web/app/device/__tests__/page-terminal.spec.tsx
+++ b/web/app/device/__tests__/page-terminal.spec.tsx
@@ -1,6 +1,6 @@
import { useQuery } from '@tanstack/react-query'
import { fireEvent, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import DevicePage from '../page'
diff --git a/web/app/device/components/__tests__/authorize-account.spec.tsx b/web/app/device/components/__tests__/authorize-account.spec.tsx
index 0b017c6c3ea..fd1809e881c 100644
--- a/web/app/device/components/__tests__/authorize-account.spec.tsx
+++ b/web/app/device/components/__tests__/authorize-account.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import AuthorizeAccount from '../authorize-account'
const mockApproveAccount = vi.fn()
diff --git a/web/app/device/components/__tests__/authorize-sso.spec.tsx b/web/app/device/components/__tests__/authorize-sso.spec.tsx
index 6bf17ee4c04..a27ded87115 100644
--- a/web/app/device/components/__tests__/authorize-sso.spec.tsx
+++ b/web/app/device/components/__tests__/authorize-sso.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import AuthorizeSSO from '../authorize-sso'
const mockCtx = {
diff --git a/web/app/device/components/__tests__/chooser.spec.tsx b/web/app/device/components/__tests__/chooser.spec.tsx
index a189248db6c..e970d5e4029 100644
--- a/web/app/device/components/__tests__/chooser.spec.tsx
+++ b/web/app/device/components/__tests__/chooser.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { setPostLoginRedirect } from '@/app/signin/utils/post-login-redirect'
import Chooser from '../chooser'
diff --git a/web/app/signin/__tests__/normal-form.spec.tsx b/web/app/signin/__tests__/normal-form.spec.tsx
index 1abd1e59daf..afe46929163 100644
--- a/web/app/signin/__tests__/normal-form.spec.tsx
+++ b/web/app/signin/__tests__/normal-form.spec.tsx
@@ -1,6 +1,6 @@
import { useQuery } from '@tanstack/react-query'
import { fireEvent, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useRouter, useSearchParams } from '@/next/navigation'
import { renderWithConsoleQuery as render } from '@/test/console/query-data'
import NormalForm from '../normal-form'
diff --git a/web/app/signin/__tests__/one-more-step.spec.tsx b/web/app/signin/__tests__/one-more-step.spec.tsx
index 129a707d604..b995ca0c009 100644
--- a/web/app/signin/__tests__/one-more-step.spec.tsx
+++ b/web/app/signin/__tests__/one-more-step.spec.tsx
@@ -1,8 +1,8 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useRouter, useSearchParams } from '@/next/navigation'
import { useOneMoreStep } from '@/service/use-common'
import OneMoreStep from '../one-more-step'
diff --git a/web/app/signin/components/__tests__/mail-and-code-auth.spec.tsx b/web/app/signin/components/__tests__/mail-and-code-auth.spec.tsx
index 232cb399f12..8a3f04a43a7 100644
--- a/web/app/signin/components/__tests__/mail-and-code-auth.spec.tsx
+++ b/web/app/signin/components/__tests__/mail-and-code-auth.spec.tsx
@@ -1,6 +1,6 @@
import { act, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderWithConsoleQuery } from '@/test/console/query-data'
import MailAndCodeAuth from '../mail-and-code-auth'
diff --git a/web/app/signin/components/__tests__/social-auth.spec.tsx b/web/app/signin/components/__tests__/social-auth.spec.tsx
index 1d5e74e6c85..ac6d55674a0 100644
--- a/web/app/signin/components/__tests__/social-auth.spec.tsx
+++ b/web/app/signin/components/__tests__/social-auth.spec.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useLocale } from '@/context/i18n'
import { useSearchParams } from '@/next/navigation'
import { getBrowserTimezone } from '@/utils/timezone'
diff --git a/web/app/signin/components/__tests__/turnstile.spec.tsx b/web/app/signin/components/__tests__/turnstile.spec.tsx
index f573dce15b3..9f12706e729 100644
--- a/web/app/signin/components/__tests__/turnstile.spec.tsx
+++ b/web/app/signin/components/__tests__/turnstile.spec.tsx
@@ -1,7 +1,7 @@
import { act, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { StrictMode } from 'react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import Turnstile from '../turnstile'
type ScriptProps = {
diff --git a/web/app/signin/invite-settings/__tests__/page.spec.tsx b/web/app/signin/invite-settings/__tests__/page.spec.tsx
index 73c90dd2db5..eee0d16e611 100644
--- a/web/app/signin/invite-settings/__tests__/page.spec.tsx
+++ b/web/app/signin/invite-settings/__tests__/page.spec.tsx
@@ -1,7 +1,7 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import { useQuery } from '@tanstack/react-query'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useLocale } from '@/context/i18n'
import { useRouter, useSearchParams } from '@/next/navigation'
import { activateMember } from '@/service/common'
diff --git a/web/app/signin/utils/__tests__/post-login-redirect.spec.ts b/web/app/signin/utils/__tests__/post-login-redirect.spec.ts
index 995128c183e..6457e90e8c0 100644
--- a/web/app/signin/utils/__tests__/post-login-redirect.spec.ts
+++ b/web/app/signin/utils/__tests__/post-login-redirect.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { resolvePostLoginRedirect, setPostLoginRedirect } from '../post-login-redirect'
describe('post-login redirect utilities', () => {
diff --git a/web/app/signup/components/input-mail.spec.tsx b/web/app/signup/components/input-mail.spec.tsx
index 642cd858a41..d93c6f26a24 100644
--- a/web/app/signup/components/input-mail.spec.tsx
+++ b/web/app/signup/components/input-mail.spec.tsx
@@ -1,4 +1,4 @@
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import { fireEvent, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import * as React from 'react'
diff --git a/web/app/signup/set-password/__tests__/page.spec.tsx b/web/app/signup/set-password/__tests__/page.spec.tsx
index 8dd4cf6c563..50021c10254 100644
--- a/web/app/signup/set-password/__tests__/page.spec.tsx
+++ b/web/app/signup/set-password/__tests__/page.spec.tsx
@@ -1,9 +1,9 @@
import type { ReactElement } from 'react'
-import type { MockedFunction } from 'vitest'
+import type { MockedFunction } from 'vite-plus/test'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import Cookies from 'js-cookie'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useLocale } from '@/context/i18n'
import { useRouter, useSearchParams } from '@/next/navigation'
import { useMailRegister } from '@/service/use-common'
diff --git a/web/config/__tests__/server.spec.ts b/web/config/__tests__/server.spec.ts
index 2217832e93f..8389a1ac4be 100644
--- a/web/config/__tests__/server.spec.ts
+++ b/web/config/__tests__/server.spec.ts
@@ -1,6 +1,6 @@
// @vitest-environment node
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
vi.mock('server-only', () => ({}))
diff --git a/web/features/account-profile/__tests__/server.spec.ts b/web/features/account-profile/__tests__/server.spec.ts
index 7650317b1d7..c480e6176a8 100644
--- a/web/features/account-profile/__tests__/server.spec.ts
+++ b/web/features/account-profile/__tests__/server.spec.ts
@@ -1,6 +1,6 @@
import type { GetAccountProfileResponse } from '@dify/contracts/api/console/account/types.gen'
import { QueryClient } from '@tanstack/react-query'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { resolveServerConsoleApiUrl } from '@/service/server'
import { userProfileQueryOptions } from '../client'
diff --git a/web/features/agent-v2/agent-composer/__tests__/knowledge-validation.spec.ts b/web/features/agent-v2/agent-composer/__tests__/knowledge-validation.spec.ts
index d97d0e42cf7..18ec2a5b9d3 100644
--- a/web/features/agent-v2/agent-composer/__tests__/knowledge-validation.spec.ts
+++ b/web/features/agent-v2/agent-composer/__tests__/knowledge-validation.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
LogicalOperator,
MetadataFilteringModeEnum,
diff --git a/web/features/agent-v2/agent-composer/__tests__/provider.spec.tsx b/web/features/agent-v2/agent-composer/__tests__/provider.spec.tsx
index e83923ace43..f11c935652d 100644
--- a/web/features/agent-v2/agent-composer/__tests__/provider.spec.tsx
+++ b/web/features/agent-v2/agent-composer/__tests__/provider.spec.tsx
@@ -1,6 +1,6 @@
import { render, screen } from '@testing-library/react'
import { useAtomValue } from 'jotai'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { defaultAgentSoulConfigFormState } from '../form-state'
import { AgentComposerProvider } from '../provider'
import {
diff --git a/web/features/agent-v2/agent-composer/__tests__/store.spec.ts b/web/features/agent-v2/agent-composer/__tests__/store.spec.ts
index c4dd9d3dab1..b9cabb60e22 100644
--- a/web/features/agent-v2/agent-composer/__tests__/store.spec.ts
+++ b/web/features/agent-v2/agent-composer/__tests__/store.spec.ts
@@ -1,6 +1,6 @@
import type { AgentSoulConfig } from '@dify/contracts/api/console/agent/types.gen'
import { createStore } from 'jotai'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { agentSoulConfigToFormState, formStateToAgentSoulConfig } from '../conversions'
import { defaultAgentSoulConfigFormState } from '../form-state'
import {
diff --git a/web/features/agent-v2/agent-composer/store-modules/__tests__/env.spec.ts b/web/features/agent-v2/agent-composer/store-modules/__tests__/env.spec.ts
index a545055a0ba..222d24ca2f5 100644
--- a/web/features/agent-v2/agent-composer/store-modules/__tests__/env.spec.ts
+++ b/web/features/agent-v2/agent-composer/store-modules/__tests__/env.spec.ts
@@ -1,5 +1,5 @@
import { createStore } from 'jotai'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { defaultAgentSoulConfigFormState } from '../../form-state'
import { agentComposerDraftAtom } from '../../store'
import {
diff --git a/web/features/agent-v2/agent-composer/store-modules/__tests__/files.spec.ts b/web/features/agent-v2/agent-composer/store-modules/__tests__/files.spec.ts
index bc777778b88..95b89fb400f 100644
--- a/web/features/agent-v2/agent-composer/store-modules/__tests__/files.spec.ts
+++ b/web/features/agent-v2/agent-composer/store-modules/__tests__/files.spec.ts
@@ -1,5 +1,5 @@
import { createStore } from 'jotai'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { defaultAgentSoulConfigFormState } from '../../form-state'
import { agentComposerDraftAtom } from '../../store'
import { clearAgentConfigNoteAtom, removeAgentFileAtom, upsertAgentFileAtom } from '../files'
diff --git a/web/features/agent-v2/agent-composer/store-modules/__tests__/knowledge.spec.ts b/web/features/agent-v2/agent-composer/store-modules/__tests__/knowledge.spec.ts
index 782e188e931..fa8a51d60a6 100644
--- a/web/features/agent-v2/agent-composer/store-modules/__tests__/knowledge.spec.ts
+++ b/web/features/agent-v2/agent-composer/store-modules/__tests__/knowledge.spec.ts
@@ -1,5 +1,5 @@
import { createStore } from 'jotai'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { defaultAgentSoulConfigFormState } from '../../form-state'
import { agentComposerDraftAtom } from '../../store'
import {
diff --git a/web/features/agent-v2/agent-composer/store-modules/__tests__/skills.spec.ts b/web/features/agent-v2/agent-composer/store-modules/__tests__/skills.spec.ts
index 269c87c43f1..9d9d315c4f1 100644
--- a/web/features/agent-v2/agent-composer/store-modules/__tests__/skills.spec.ts
+++ b/web/features/agent-v2/agent-composer/store-modules/__tests__/skills.spec.ts
@@ -1,5 +1,5 @@
import { createStore } from 'jotai'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { defaultAgentSoulConfigFormState } from '../../form-state'
import { agentComposerDraftAtom } from '../../store'
import { removeAgentSkillAtom, upsertAgentSkillAtom } from '../skills'
diff --git a/web/features/agent-v2/agent-composer/store-modules/__tests__/tools.spec.ts b/web/features/agent-v2/agent-composer/store-modules/__tests__/tools.spec.ts
index 3e0216456ea..908f0e7d732 100644
--- a/web/features/agent-v2/agent-composer/store-modules/__tests__/tools.spec.ts
+++ b/web/features/agent-v2/agent-composer/store-modules/__tests__/tools.spec.ts
@@ -1,6 +1,6 @@
import type { AgentProviderToolDefaultValue } from '../tools'
import { createStore } from 'jotai'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { defaultAgentSoulConfigFormState } from '../../form-state'
import { agentComposerDraftAtom } from '../../store'
import {
diff --git a/web/features/agent-v2/agent-detail/configure/__tests__/use-agent-configure-sync.spec.tsx b/web/features/agent-v2/agent-detail/configure/__tests__/use-agent-configure-sync.spec.tsx
index aaa255a5cab..a3c1ddee992 100644
--- a/web/features/agent-v2/agent-detail/configure/__tests__/use-agent-configure-sync.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/__tests__/use-agent-configure-sync.spec.tsx
@@ -95,15 +95,13 @@ type PublishAgentResponse = {
}
const publishAgentMutationFn = vi.hoisted(() =>
- vi.fn(
- async (_variables: PublishAgentVariables): Promise => ({
- active_config_snapshot: {
- id: 'snapshot-1',
- },
- active_config_snapshot_id: 'snapshot-1',
- result: 'success',
- }),
- ),
+ vi.fn(async (_variables: PublishAgentVariables): Promise => ({
+ active_config_snapshot: {
+ id: 'snapshot-1',
+ },
+ active_config_snapshot_id: 'snapshot-1',
+ result: 'success',
+ })),
)
const publishAgentMutationOptions = vi.hoisted(() =>
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/__tests__/publish-bar.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/__tests__/publish-bar.spec.tsx
index fb19b3ca3b5..93bd49021a4 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/__tests__/publish-bar.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/__tests__/publish-bar.spec.tsx
@@ -3,7 +3,7 @@ import type {
AgentReferencingWorkflowResponse,
} from '@dify/contracts/api/console/agent/types.gen'
import type { ComponentProps } from 'react'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, fireEvent, render, screen, waitFor, within } from '@testing-library/react'
import { createStore, Provider as JotaiProvider } from 'jotai'
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/advanced/__tests__/env.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/advanced/__tests__/env.spec.tsx
index e138e2145d2..f51f7d7b889 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/advanced/__tests__/env.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/advanced/__tests__/env.spec.tsx
@@ -1,7 +1,7 @@
import { toast } from '@langgenius/dify-ui/toast'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { defaultAgentSoulConfigFormState } from '@/features/agent-v2/agent-composer/form-state'
import { AgentComposerProvider } from '@/features/agent-v2/agent-composer/provider'
import { AgentOrchestrateReadOnlyContext } from '../../read-only-context'
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/file-icon.spec.ts b/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/file-icon.spec.ts
index 16d6df93ede..cf7058c331b 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/file-icon.spec.ts
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/file-icon.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { getDriveFileIconType, getFileIconType } from '../file-icon'
describe('agent file icon helpers', () => {
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/index.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/index.spec.tsx
index 17b8e368ed1..9e6057f4d46 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/index.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/files/__tests__/index.spec.tsx
@@ -5,7 +5,7 @@ import { QueryClient } from '@tanstack/react-query'
import { fireEvent, render, screen, waitFor, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useAtomValue } from 'jotai'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { formStateToAgentSoulConfig } from '@/features/agent-v2/agent-composer/conversions'
import { defaultAgentSoulConfigFormState } from '@/features/agent-v2/agent-composer/form-state'
import { AgentComposerProvider } from '@/features/agent-v2/agent-composer/provider'
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/knowledge/__tests__/index.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/knowledge/__tests__/index.spec.tsx
index a4ad8009e6f..26db8342cbe 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/knowledge/__tests__/index.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/knowledge/__tests__/index.spec.tsx
@@ -2,7 +2,7 @@ import type { AgentSoulConfigFormState } from '@/features/agent-v2/agent-compose
import { fireEvent, screen, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useAtomValue } from 'jotai'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { MetadataFilteringModeEnum } from '@/app/components/workflow/nodes/knowledge-retrieval/types'
import { formStateToAgentSoulConfig } from '@/features/agent-v2/agent-composer/conversions'
import { defaultAgentSoulConfigFormState } from '@/features/agent-v2/agent-composer/form-state'
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/prompt-editor/__tests__/options.spec.ts b/web/features/agent-v2/agent-detail/configure/components/orchestrate/prompt-editor/__tests__/options.spec.ts
index efe85d64b77..a97b1275a7f 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/prompt-editor/__tests__/options.spec.ts
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/prompt-editor/__tests__/options.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { insertTokenAtTextRange, replaceTrailingSlashWithToken } from '../options'
describe('prompt editor token replacement', () => {
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/skills/__tests__/index.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/skills/__tests__/index.spec.tsx
index 3db177165de..d07d8d92e4c 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/skills/__tests__/index.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/skills/__tests__/index.spec.tsx
@@ -5,7 +5,7 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { useAtomValue } from 'jotai'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { formStateToAgentSoulConfig } from '@/features/agent-v2/agent-composer/conversions'
import { defaultAgentSoulConfigFormState } from '@/features/agent-v2/agent-composer/form-state'
import { AgentComposerProvider } from '@/features/agent-v2/agent-composer/provider'
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/__tests__/index.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/__tests__/index.spec.tsx
index d0ff3f728a9..c9f3a0b812a 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/__tests__/index.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/__tests__/index.spec.tsx
@@ -5,7 +5,7 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, cleanup, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { createStore, Provider as JotaiProvider } from 'jotai'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CredentialTypeEnum } from '@/app/components/plugins/plugin-auth/types'
import { CollectionType } from '@/app/components/tools/types'
import { defaultAgentSoulConfigFormState } from '@/features/agent-v2/agent-composer/form-state'
diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/cli-tool/__tests__/dialog.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/cli-tool/__tests__/dialog.spec.tsx
index 7210537f986..802ec3bb1bb 100644
--- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/cli-tool/__tests__/dialog.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/tools/cli-tool/__tests__/dialog.spec.tsx
@@ -1,7 +1,7 @@
import { toast } from '@langgenius/dify-ui/toast'
import { fireEvent, render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { CliToolDialog } from '../dialog'
vi.mock('@langgenius/dify-ui/toast', () => ({
diff --git a/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/working-directory-panel.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/working-directory-panel.spec.tsx
index c96bc5564e8..de036134c5a 100644
--- a/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/working-directory-panel.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/working-directory-panel.spec.tsx
@@ -3,7 +3,7 @@ import { toast } from '@langgenius/dify-ui/toast'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AgentWorkingDirectoryPanel } from '../working-directory-panel'
type QueryOptionsInput = {
diff --git a/web/features/home/banner/__tests__/banner-item.spec.tsx b/web/features/home/banner/__tests__/banner-item.spec.tsx
index 3c718098c9a..70da3faaebe 100644
--- a/web/features/home/banner/__tests__/banner-item.spec.tsx
+++ b/web/features/home/banner/__tests__/banner-item.spec.tsx
@@ -1,7 +1,7 @@
import type { BannerResponse } from '@dify/contracts/api/console/explore/types.gen'
import type { ComponentProps } from 'react'
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import { BannerItem } from '../banner-item'
const mockTrackEvent = vi.fn()
diff --git a/web/features/home/banner/__tests__/banner.spec.tsx b/web/features/home/banner/__tests__/banner.spec.tsx
index f6a3e079c23..777cb232cc3 100644
--- a/web/features/home/banner/__tests__/banner.spec.tsx
+++ b/web/features/home/banner/__tests__/banner.spec.tsx
@@ -2,7 +2,7 @@ import type { BannerResponse } from '@dify/contracts/api/console/explore/types.g
import { cleanup, fireEvent, screen } from '@testing-library/react'
import * as React from 'react'
import { act } from 'react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { createConsoleQueryWrapper } from '@/test/console/query-data'
import { render as renderWithConsoleState } from '@/test/console/render'
import { Banner } from '../banner'
diff --git a/web/features/home/banner/__tests__/indicator-button.spec.tsx b/web/features/home/banner/__tests__/indicator-button.spec.tsx
index e18c6744f0c..5c8a4aebef7 100644
--- a/web/features/home/banner/__tests__/indicator-button.spec.tsx
+++ b/web/features/home/banner/__tests__/indicator-button.spec.tsx
@@ -1,5 +1,5 @@
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { IndicatorButton } from '../indicator-button'
const defaultProps = {
diff --git a/web/features/new-rag/__tests__/processing-task-events.spec.ts b/web/features/new-rag/__tests__/processing-task-events.spec.ts
index f871acc9c76..0149042c092 100644
--- a/web/features/new-rag/__tests__/processing-task-events.spec.ts
+++ b/web/features/new-rag/__tests__/processing-task-events.spec.ts
@@ -1,6 +1,6 @@
import type { DocumentProcessingTaskEvent } from '@dify/contracts/knowledge-fs/types.gen'
import { withEventMeta } from '@orpc/client'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { streamProcessingTaskEvents } from '../services/processing-task-events'
const { mockStreamEvents } = vi.hoisted(() => ({
diff --git a/web/features/tag-management/hooks/__tests__/use-tag-mutations.spec.tsx b/web/features/tag-management/hooks/__tests__/use-tag-mutations.spec.tsx
index 11cc2542221..cf1849ba52a 100644
--- a/web/features/tag-management/hooks/__tests__/use-tag-mutations.spec.tsx
+++ b/web/features/tag-management/hooks/__tests__/use-tag-mutations.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook, waitFor } from '@testing-library/react'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { useApplyTagBindingsMutation } from '../use-tag-mutations'
const { appListKey, bindTag, listKey, recentAppListKey, starredAppListKey, unbindTag } = vi.hoisted(
diff --git a/web/hooks/use-format-time-from-now.spec.ts b/web/hooks/use-format-time-from-now.spec.ts
index d01d8f79438..da89c8206c8 100644
--- a/web/hooks/use-format-time-from-now.spec.ts
+++ b/web/hooks/use-format-time-from-now.spec.ts
@@ -1,4 +1,4 @@
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
/**
* Test suite for useFormatTimeFromNow hook
*
diff --git a/web/i18n-config/__tests__/plural-selector.spec.ts b/web/i18n-config/__tests__/plural-selector.spec.ts
index bc2e8c34746..931d10ab167 100644
--- a/web/i18n-config/__tests__/plural-selector.spec.ts
+++ b/web/i18n-config/__tests__/plural-selector.spec.ts
@@ -1,6 +1,6 @@
import type { SelectorParam } from 'i18next'
import { createInstance } from 'i18next'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { getInitOptions } from '../settings'
describe('i18n selector configuration', () => {
diff --git a/web/package.json b/web/package.json
index 482b62d7309..ca23f7614c2 100644
--- a/web/package.json
+++ b/web/package.json
@@ -181,7 +181,6 @@
"@typescript/native": "catalog:",
"@vitejs/plugin-react": "catalog:",
"@vitejs/plugin-rsc": "catalog:",
- "@vitest/browser": "catalog:",
"@vitest/browser-playwright": "catalog:",
"@vitest/coverage-v8": "catalog:",
"agentation": "catalog:",
diff --git a/web/scripts/__tests__/migrate-i18n-selectors.spec.ts b/web/scripts/__tests__/migrate-i18n-selectors.spec.ts
index 84b4d4448ae..9a12e3fa382 100644
--- a/web/scripts/__tests__/migrate-i18n-selectors.spec.ts
+++ b/web/scripts/__tests__/migrate-i18n-selectors.spec.ts
@@ -1,5 +1,5 @@
import ts from 'typescript'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { transformSource } from '../migrate-i18n-selectors'
describe('migrate-i18n-selectors', () => {
diff --git a/web/scripts/__tests__/prune-unused-i18n.spec.ts b/web/scripts/__tests__/prune-unused-i18n.spec.ts
index 09a833f4546..49d437d313e 100644
--- a/web/scripts/__tests__/prune-unused-i18n.spec.ts
+++ b/web/scripts/__tests__/prune-unused-i18n.spec.ts
@@ -1,7 +1,7 @@
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'
import { tmpdir } from 'node:os'
import path from 'node:path'
-import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it } from 'vite-plus/test'
import { analyzeUnusedTranslations, removeUnusedTranslations } from '../i18n-prune/core'
let webRoot: string
diff --git a/web/service/__tests__/base-request.spec.ts b/web/service/__tests__/base-request.spec.ts
index 01bf9fe668e..c324a83cb55 100644
--- a/web/service/__tests__/base-request.spec.ts
+++ b/web/service/__tests__/base-request.spec.ts
@@ -1,4 +1,4 @@
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
// oxlint-disable-next-line no-restricted-imports -- This spec directly tests the legacy request owner.
import { request } from '../base'
diff --git a/web/service/__tests__/server.spec.ts b/web/service/__tests__/server.spec.ts
index de2debd67dc..5fb935c53ec 100644
--- a/web/service/__tests__/server.spec.ts
+++ b/web/service/__tests__/server.spec.ts
@@ -1,6 +1,6 @@
// @vitest-environment node
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
const mocks = vi.hoisted(() => ({
headers: vi.fn(),
diff --git a/web/service/__tests__/use-pipeline.spec.tsx b/web/service/__tests__/use-pipeline.spec.tsx
index d030a8b151c..8dae4041b1d 100644
--- a/web/service/__tests__/use-pipeline.spec.tsx
+++ b/web/service/__tests__/use-pipeline.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { DSLImportMode, DSLImportStatus } from '@/models/app'
import { post } from '../base'
import { useImportPipelineDSL, useImportPipelineDSLConfirm } from '../use-pipeline'
diff --git a/web/service/__tests__/use-plugins.spec.tsx b/web/service/__tests__/use-plugins.spec.tsx
index 5f104ae32ca..3dcec327f51 100644
--- a/web/service/__tests__/use-plugins.spec.tsx
+++ b/web/service/__tests__/use-plugins.spec.tsx
@@ -7,7 +7,7 @@ import type { ReactNode } from 'react'
import type { Permissions, PluginTaskStart } from '@/app/components/plugins/types'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, waitFor } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { FormTypeEnum } from '@/app/components/base/form/types'
import {
AUTO_UPDATE_MODE,
diff --git a/web/service/__tests__/use-tools.spec.tsx b/web/service/__tests__/use-tools.spec.tsx
index cc91369dfe9..f6b7482d74b 100644
--- a/web/service/__tests__/use-tools.spec.tsx
+++ b/web/service/__tests__/use-tools.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { renderHook } from '@/test/console/render'
import { useRefreshMCPServerCode } from '../use-tools'
diff --git a/web/service/__tests__/use-triggers.spec.ts b/web/service/__tests__/use-triggers.spec.ts
index f8b80bd2c08..f007a5952e5 100644
--- a/web/service/__tests__/use-triggers.spec.ts
+++ b/web/service/__tests__/use-triggers.spec.ts
@@ -1,5 +1,5 @@
import type { TriggerProviderApiEntity as GeneratedTriggerProvider } from '@dify/contracts/api/console/workspaces/types.gen'
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import { convertToTriggerWithProvider, normalizeTriggerProvider } from '../use-triggers'
const createGeneratedTriggerProvider = (): GeneratedTriggerProvider => ({
diff --git a/web/service/__tests__/use-workflow.spec.tsx b/web/service/__tests__/use-workflow.spec.tsx
index f7ba263a6ad..d915493928f 100644
--- a/web/service/__tests__/use-workflow.spec.tsx
+++ b/web/service/__tests__/use-workflow.spec.tsx
@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { act, renderHook } from '@testing-library/react'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { useUpdateWorkflow } from '../use-workflow'
import { appWorkflowVersionsInfiniteQueryKey } from '../workflow-queries'
diff --git a/web/service/base.spec.ts b/web/service/base.spec.ts
index fb014a8ab00..2f620c1ff84 100644
--- a/web/service/base.spec.ts
+++ b/web/service/base.spec.ts
@@ -1,6 +1,6 @@
import { toast } from '@langgenius/dify-ui/toast'
import { waitFor } from '@testing-library/react'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PUBLIC_API_PREFIX } from '@/config'
// oxlint-disable-next-line no-restricted-imports
import {
diff --git a/web/service/client.spec.ts b/web/service/client.spec.ts
index 56f8dcbec97..f86f59f8041 100644
--- a/web/service/client.spec.ts
+++ b/web/service/client.spec.ts
@@ -4,7 +4,7 @@ import type { DocumentProcessingTaskEvent } from '@dify/contracts/knowledge-fs/t
import type { MutationFunctionContext, QueryFunctionContext } from '@tanstack/react-query'
import type { consoleQuery as ConsoleQuery } from './client'
import { QueryClient } from '@tanstack/react-query'
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { normalizeConsoleOpenAPIURL } from './console-openapi-url'
const loadGetBaseURL = async (isClientValue: boolean) => {
diff --git a/web/service/common.spec.ts b/web/service/common.spec.ts
index ea6fb50c832..4c8f6027141 100644
--- a/web/service/common.spec.ts
+++ b/web/service/common.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { sendEMailLoginCode } from './common'
const mocks = vi.hoisted(() => ({
diff --git a/web/service/explore.spec.ts b/web/service/explore.spec.ts
index 6b472c7a5dd..17ace7b0000 100644
--- a/web/service/explore.spec.ts
+++ b/web/service/explore.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { fetchAppDetail, fetchAppList, fetchInstalledAppList } from './explore'
const mockExploreAppsGet = vi.hoisted(() => vi.fn())
diff --git a/web/service/fetch.spec.ts b/web/service/fetch.spec.ts
index aa23e81ffd4..57d5040ec0e 100644
--- a/web/service/fetch.spec.ts
+++ b/web/service/fetch.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { PUBLIC_API_PREFIX } from '@/config'
// oxlint-disable-next-line no-restricted-imports
import { base } from './fetch'
diff --git a/web/service/plugins.spec.ts b/web/service/plugins.spec.ts
index 15aeb112b02..1d71b6db883 100644
--- a/web/service/plugins.spec.ts
+++ b/web/service/plugins.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { uninstallPlugin } from './plugins'
const { mockUninstallPost } = vi.hoisted(() => ({
diff --git a/web/service/webapp-address.spec.ts b/web/service/webapp-address.spec.ts
index f9055705d7b..aa24708cc08 100644
--- a/web/service/webapp-address.spec.ts
+++ b/web/service/webapp-address.spec.ts
@@ -1,4 +1,4 @@
-import { afterEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, describe, expect, it, vi } from 'vite-plus/test'
import { getWebAppApiPath, parseWebAppAddress, resolveWebAppAddress } from './webapp-address'
describe('WebAppAddress', () => {
diff --git a/web/service/webapp-auth.spec.ts b/web/service/webapp-auth.spec.ts
index e0ee04897ce..4ce09688f45 100644
--- a/web/service/webapp-auth.spec.ts
+++ b/web/service/webapp-auth.spec.ts
@@ -1,4 +1,4 @@
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { AccessMode } from '@/models/access-control'
const getPublicMock = vi.hoisted(() => vi.fn())
diff --git a/web/service/workflow.spec.ts b/web/service/workflow.spec.ts
index ecf58bb1e24..a72f8e967bc 100644
--- a/web/service/workflow.spec.ts
+++ b/web/service/workflow.spec.ts
@@ -1,5 +1,5 @@
import type { EnvironmentVariable } from '@/app/components/workflow/types'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { updateEnvironmentVariables } from './workflow'
const mockPost = vi.hoisted(() => vi.fn())
diff --git a/web/test/__tests__/i18n-mock.spec.ts b/web/test/__tests__/i18n-mock.spec.ts
index 2a04d2d77df..772387696d5 100644
--- a/web/test/__tests__/i18n-mock.spec.ts
+++ b/web/test/__tests__/i18n-mock.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
createI18nextMock,
createReactI18nextMock,
diff --git a/web/test/button.ts b/web/test/button.ts
index 6e9844e7e22..61ddfe8076e 100644
--- a/web/test/button.ts
+++ b/web/test/button.ts
@@ -1,4 +1,4 @@
-import { expect } from 'vitest'
+import { expect } from 'vite-plus/test'
export const expectLoadingButton = (button: Element | null) => {
expect(button).toBeInstanceOf(HTMLButtonElement)
diff --git a/web/test/i18n-mock.ts b/web/test/i18n-mock.ts
index fc197e76355..d267f4be044 100644
--- a/web/test/i18n-mock.ts
+++ b/web/test/i18n-mock.ts
@@ -1,5 +1,5 @@
import * as React from 'react'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
type TranslationMap = Record
type TranslationNamespace = string | readonly string[]
diff --git a/web/test/nuqs-testing.tsx b/web/test/nuqs-testing.tsx
index 414a86d1975..439cee89294 100644
--- a/web/test/nuqs-testing.tsx
+++ b/web/test/nuqs-testing.tsx
@@ -1,8 +1,8 @@
import type { UrlUpdateEvent } from 'nuqs/adapters/testing'
import type { ComponentProps, ReactElement, ReactNode } from 'react'
-import type { Mock } from 'vitest'
+import type { Mock } from 'vite-plus/test'
import { NuqsTestingAdapter } from 'nuqs/adapters/testing'
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import { render, renderHook } from '@/test/console/render'
type NuqsSearchParams = ComponentProps['searchParams']
diff --git a/web/utils/__tests__/create-app-tracking.spec.ts b/web/utils/__tests__/create-app-tracking.spec.ts
index 0790ceee71e..4a43c6c9205 100644
--- a/web/utils/__tests__/create-app-tracking.spec.ts
+++ b/web/utils/__tests__/create-app-tracking.spec.ts
@@ -1,5 +1,5 @@
import Cookies from 'js-cookie'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import * as amplitude from '@/app/components/base/amplitude/utils'
import { AppModeEnum } from '@/types/app'
import {
diff --git a/web/utils/__tests__/login-redirect.client.spec.ts b/web/utils/__tests__/login-redirect.client.spec.ts
index 8bccf01062d..e9270378703 100644
--- a/web/utils/__tests__/login-redirect.client.spec.ts
+++ b/web/utils/__tests__/login-redirect.client.spec.ts
@@ -1,4 +1,4 @@
-import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vite-plus/test'
import { replaceLoginRedirect } from '../login-redirect.client'
describe('replaceLoginRedirect', () => {
diff --git a/web/utils/__tests__/login-redirect.spec.ts b/web/utils/__tests__/login-redirect.spec.ts
index 4674e4f1c2b..f9099d26cb4 100644
--- a/web/utils/__tests__/login-redirect.spec.ts
+++ b/web/utils/__tests__/login-redirect.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it } from 'vite-plus/test'
import {
getClientLoginFallback,
getServerLoginFallback,
diff --git a/web/utils/clipboard.spec.ts b/web/utils/clipboard.spec.ts
index f93eff91e49..4a5abc2bf66 100644
--- a/web/utils/clipboard.spec.ts
+++ b/web/utils/clipboard.spec.ts
@@ -8,7 +8,7 @@
* The implementation ensures clipboard operations work across all supported browsers
* while gracefully handling permissions and API availability.
*/
-import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'
+import { afterEach, beforeAll, describe, expect, it, vi } from 'vite-plus/test'
import { writeTextToClipboard } from './clipboard'
describe('Clipboard Utilities', () => {
diff --git a/web/utils/query-atoms.spec.ts b/web/utils/query-atoms.spec.ts
index a0852bd2b9a..c4c9770fc38 100644
--- a/web/utils/query-atoms.spec.ts
+++ b/web/utils/query-atoms.spec.ts
@@ -1,6 +1,6 @@
import { QueryClient } from '@tanstack/react-query'
import { createStore } from 'jotai'
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { atomWithResolvedSuspenseQuery } from './query-atoms'
const createQueryClient = () =>
diff --git a/web/utils/var.spec.ts b/web/utils/var.spec.ts
index 0930545d4ea..c871eea6762 100644
--- a/web/utils/var.spec.ts
+++ b/web/utils/var.spec.ts
@@ -1,4 +1,4 @@
-import { describe, expect, it, vi } from 'vitest'
+import { describe, expect, it, vi } from 'vite-plus/test'
import { InputVarType } from '@/app/components/workflow/types'
import {
checkKey,
diff --git a/web/vite.config.ts b/web/vite.config.ts
index 935eee44c3a..aaa86b0eab4 100644
--- a/web/vite.config.ts
+++ b/web/vite.config.ts
@@ -1,6 +1,5 @@
import { fileURLToPath } from 'node:url'
-import { defineConfig, lazyPlugins } from 'vite-plus'
-import { configDefaults } from 'vitest/config'
+import { configDefaults, defineConfig, lazyPlugins } from 'vite-plus'
import {
createCodeInspectorPlugin,
createForceInspectorClientInjectionPlugin,
diff --git a/web/vitest.browser.setup.ts b/web/vitest.browser.setup.ts
index eb6c16349a3..e48008abc2f 100644
--- a/web/vitest.browser.setup.ts
+++ b/web/vitest.browser.setup.ts
@@ -1,4 +1,4 @@
-import { vi } from 'vitest'
+import { vi } from 'vite-plus/test'
import './app/styles/globals.css'
document.documentElement.dataset.theme = 'light'
diff --git a/web/vitest.setup.ts b/web/vitest.setup.ts
index 322a77df942..52ee9979838 100644
--- a/web/vitest.setup.ts
+++ b/web/vitest.setup.ts
@@ -1,6 +1,6 @@
import { act, cleanup } from '@testing-library/react'
import * as React from 'react'
-import { afterEach, beforeEach, vi } from 'vitest'
+import { afterEach, beforeEach, vi } from 'vite-plus/test'
import '@testing-library/jest-dom/vitest'
import 'vitest-canvas-mock'