From a7cdcdd94d89f337a5b24c5fccfb5ae90411e8de Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 09:44:15 +0200 Subject: [PATCH 1/8] fix(core): add proper vite-plus vendored package detection --- .../js-package-manager/JsPackageManager.ts | 21 +- .../src/common/js-package-manager/index.ts | 1 + .../vite-plus-versions.test.ts | 83 ++ .../js-package-manager/vite-plus-versions.ts | 45 ++ code/lib/cli-storybook/src/autoblock/utils.ts | 27 +- code/package.json | 4 + yarn.lock | 741 +++++++++++++++++- 7 files changed, 911 insertions(+), 11 deletions(-) create mode 100644 code/core/src/common/js-package-manager/vite-plus-versions.test.ts create mode 100644 code/core/src/common/js-package-manager/vite-plus-versions.ts diff --git a/code/core/src/common/js-package-manager/JsPackageManager.ts b/code/core/src/common/js-package-manager/JsPackageManager.ts index 48bf28df02b2..35436808abde 100644 --- a/code/core/src/common/js-package-manager/JsPackageManager.ts +++ b/code/core/src/common/js-package-manager/JsPackageManager.ts @@ -650,15 +650,30 @@ export abstract class JsPackageManager { logger.debug(`Getting installed version for ${packageName}...`); const installations = await this.findInstallations([packageName]); - if (!installations) { + + let version: string | null = null; + + if (installations) { + version = Object.entries(installations.dependencies)[0]?.[1]?.[0].version || null; + } + + // Fallback: when vitest is not found as a standalone package, check if it's vendored + // inside vite-plus (which bundles vitest rather than installing it separately). + if (!version && packageName === 'vitest') { + const { getVitePlusVersions } = await import('./vite-plus-versions.ts'); + const vitePlusVersions = await getVitePlusVersions(); + if (vitePlusVersions?.vitest) { + version = vitePlusVersions.vitest; + } + } + + if (!version) { logger.debug(`No installations found for ${packageName}`); // Cache the null result JsPackageManager.installedVersionCache.set(cacheKey, null); return null; } - const version = Object.entries(installations.dependencies)[0]?.[1]?.[0].version || null; - const coercedVersion = coerce(version, { includePrerelease: true })?.toString() ?? version; logger.debug(`Installed version for ${packageName}: ${coercedVersion}`); diff --git a/code/core/src/common/js-package-manager/index.ts b/code/core/src/common/js-package-manager/index.ts index 039b07bd906f..f9cd2369d8a1 100644 --- a/code/core/src/common/js-package-manager/index.ts +++ b/code/core/src/common/js-package-manager/index.ts @@ -2,3 +2,4 @@ export * from './JsPackageManagerFactory.ts'; export * from './JsPackageManager.ts'; export * from './PackageJson.ts'; export * from './types.ts'; +export * from './vite-plus-versions.ts'; diff --git a/code/core/src/common/js-package-manager/vite-plus-versions.test.ts b/code/core/src/common/js-package-manager/vite-plus-versions.test.ts new file mode 100644 index 000000000000..aef3369d83e8 --- /dev/null +++ b/code/core/src/common/js-package-manager/vite-plus-versions.test.ts @@ -0,0 +1,83 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import { clearVitePlusCache, getVitePlusVersions } from './vite-plus-versions.ts'; + +vi.mock('storybook/internal/node-logger', () => ({ + logger: { debug: vi.fn() }, +})); + +describe('getVitePlusVersions', () => { + afterEach(() => { + clearVitePlusCache(); + vi.restoreAllMocks(); + }); + + it('returns versions when vite-plus/versions is importable', async () => { + vi.doMock('vite-plus/versions', () => ({ + versions: { vite: '6.1.0', vitest: '3.2.0', rolldown: '0.5.0' }, + })); + + // Clear cache so fresh import is attempted + clearVitePlusCache(); + // Re-import to pick up the doMock + const { getVitePlusVersions: fn } = await import('./vite-plus-versions.ts'); + clearVitePlusCache(); + + const result = await fn(); + + expect(result).toEqual( + expect.objectContaining({ + vite: '6.1.0', + vitest: '3.2.0', + }) + ); + + vi.doUnmock('vite-plus/versions'); + }); + + it('returns null when vite-plus/versions is not available', async () => { + // By default, vite-plus/versions is not installed in this repo, so import will fail + const result = await getVitePlusVersions(); + + expect(result).toBeNull(); + }); + + it('caches results across calls', async () => { + const result1 = await getVitePlusVersions(); + const result2 = await getVitePlusVersions(); + + expect(result1).toBeNull(); + expect(result2).toBeNull(); + // Both should be the same cached reference + expect(result1).toBe(result2); + }); + + it('clearVitePlusCache resets the cache', async () => { + const result1 = await getVitePlusVersions(); + expect(result1).toBeNull(); + + // Mock vite-plus/versions after first call + vi.doMock('vite-plus/versions', () => ({ + versions: { vite: '6.1.0', vitest: '3.2.0' }, + })); + + // Without clearing, should still return cached null + const result2 = await getVitePlusVersions(); + expect(result2).toBeNull(); + + // After clearing cache, should pick up the mock + clearVitePlusCache(); + const { getVitePlusVersions: fn } = await import('./vite-plus-versions.ts'); + clearVitePlusCache(); + + const result3 = await fn(); + expect(result3).toEqual( + expect.objectContaining({ + vite: '6.1.0', + vitest: '3.2.0', + }) + ); + + vi.doUnmock('vite-plus/versions'); + }); +}); diff --git a/code/core/src/common/js-package-manager/vite-plus-versions.ts b/code/core/src/common/js-package-manager/vite-plus-versions.ts new file mode 100644 index 000000000000..affe1eadd64e --- /dev/null +++ b/code/core/src/common/js-package-manager/vite-plus-versions.ts @@ -0,0 +1,45 @@ +import { logger } from 'storybook/internal/node-logger'; + +export interface VitePlusVersions { + vite?: string; + vitest?: string; + rolldown?: string; + tsdown?: string; + [key: string]: string | undefined; +} + +/** Cached result: undefined = not yet checked, null = not available */ +let cachedVersions: VitePlusVersions | null | undefined; + +/** + * Attempts to load vendored package versions from `vite-plus/versions`. + * + * When a project uses vite-plus (typically via `"vite": "npm:vite-plus@..."`), vitest and vite are + * vendored rather than installed as separate packages. This function retrieves their actual versions + * from the `vite-plus/versions` subpath export. + * + * Returns null when vite-plus is not installed or lacks the `/versions` export (older versions). + */ +export async function getVitePlusVersions(): Promise { + if (cachedVersions !== undefined) { + return cachedVersions; + } + + try { + const mod = await import('vite-plus/versions'); + const versions: VitePlusVersions = mod.versions ?? mod; + + if (versions && typeof versions.vite === 'string') { + logger.debug(`Detected vite-plus: vite=${versions.vite}, vitest=${versions.vitest ?? 'N/A'}`); + cachedVersions = versions; + return versions; + } + } catch {} + + cachedVersions = null; + return null; +} + +export function clearVitePlusCache(): void { + cachedVersions = undefined; +} diff --git a/code/lib/cli-storybook/src/autoblock/utils.ts b/code/lib/cli-storybook/src/autoblock/utils.ts index 2f9f6aca6830..0b805517e671 100644 --- a/code/lib/cli-storybook/src/autoblock/utils.ts +++ b/code/lib/cli-storybook/src/autoblock/utils.ts @@ -1,4 +1,5 @@ import type { JsPackageManager } from 'storybook/internal/common'; +import { getVitePlusVersions } from 'storybook/internal/common'; import { CLI_COLORS } from 'storybook/internal/node-logger'; import picocolors from 'picocolors'; @@ -29,12 +30,26 @@ export async function findOutdatedPackage>( } ): Promise> { const list = await Promise.all( - typedKeys(minimalVersionsMap).map(async (packageName) => ({ - packageName, - installedVersion: - (await options.packageManager.getModulePackageJSON(packageName))?.version ?? null, - minimumVersion: minimalVersionsMap[packageName], - })) + typedKeys(minimalVersionsMap).map(async (packageName) => { + const packageJson = await options.packageManager.getModulePackageJSON(packageName); + let installedVersion = packageJson?.version ?? null; + + // When vite is aliased to vite-plus, the package.json version reflects the wrapper + // version (e.g. 0.1.12) rather than the actual vendored Vite version. Use the + // vite-plus/versions export to get the real version. + if (packageName === 'vite' && packageJson?.name === 'vite-plus') { + const vitePlusVersions = await getVitePlusVersions(); + if (vitePlusVersions?.vite) { + installedVersion = vitePlusVersions.vite; + } + } + + return { + packageName, + installedVersion, + minimumVersion: minimalVersionsMap[packageName], + }; + }) ); return list.reduce>( diff --git a/code/package.json b/code/package.json index 3822e86ff021..5502452132cd 100644 --- a/code/package.json +++ b/code/package.json @@ -124,6 +124,7 @@ "uuid": "^11.1.0", "vite": "^7.0.4", "vite-plugin-inspect": "^11.0.0", + "vite-plus": "^0.1.15", "vitest": "^4.1.0", "wait-on": "^8.0.3" }, @@ -154,6 +155,9 @@ "built": false } }, + "peerDependencies": { + "vite-plus": "^0.1.15" + }, "collective": { "type": "opencollective", "url": "https://opencollective.com/storybook" diff --git a/yarn.lock b/yarn.lock index f7b406ffff3d..54eeb7d16f3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4672,6 +4672,13 @@ __metadata: languageName: node linkType: hard +"@oxc-project/runtime@npm:=0.123.0": + version: 0.123.0 + resolution: "@oxc-project/runtime@npm:0.123.0" + checksum: 10c0/ed057ca3c95a2570914c3c99c842b6274b9f4b7e4005d4f7775617bfc31b80adc65272449316032ee4d6933ba0a0eb6e8ee5d0ca4633c845c12be00dcbfb26bf + languageName: node + linkType: hard + "@oxc-project/types@npm:=0.115.0": version: 0.115.0 resolution: "@oxc-project/types@npm:0.115.0" @@ -4679,6 +4686,13 @@ __metadata: languageName: node linkType: hard +"@oxc-project/types@npm:=0.123.0": + version: 0.123.0 + resolution: "@oxc-project/types@npm:0.123.0" + checksum: 10c0/7f71f9fa38796e6e5431390c213ec9626a3972feec07b513c513828bbfba5f6d908b04e8c679ae2b30b49cc1dee2dc0b2f1012f38ed1cb9e54bfeba09119f36d + languageName: node + linkType: hard + "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0": version: 11.14.0 resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0" @@ -4821,6 +4835,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-android-arm-eabi@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-android-arm-eabi@npm:0.43.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@oxfmt/binding-android-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-android-arm64@npm:0.41.0" @@ -4828,6 +4849,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-android-arm64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-android-arm64@npm:0.43.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-darwin-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-darwin-arm64@npm:0.41.0" @@ -4835,6 +4863,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-darwin-arm64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-darwin-arm64@npm:0.43.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-darwin-x64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-darwin-x64@npm:0.41.0" @@ -4842,6 +4877,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-darwin-x64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-darwin-x64@npm:0.43.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@oxfmt/binding-freebsd-x64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-freebsd-x64@npm:0.41.0" @@ -4849,6 +4891,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-freebsd-x64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-freebsd-x64@npm:0.43.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm-gnueabihf@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.41.0" @@ -4856,6 +4905,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm-gnueabihf@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.43.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm-musleabihf@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.41.0" @@ -4863,6 +4919,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm-musleabihf@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.43.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.41.0" @@ -4870,6 +4933,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.43.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.41.0" @@ -4877,6 +4947,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm64-musl@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.43.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@oxfmt/binding-linux-ppc64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.41.0" @@ -4884,6 +4961,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-ppc64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.43.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-riscv64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.41.0" @@ -4891,6 +4975,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-riscv64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.43.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-riscv64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.41.0" @@ -4898,6 +4989,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-riscv64-musl@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.43.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@oxfmt/binding-linux-s390x-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.41.0" @@ -4905,6 +5003,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-s390x-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.43.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-x64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.41.0" @@ -4912,6 +5017,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-x64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.43.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-x64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-x64-musl@npm:0.41.0" @@ -4919,6 +5031,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-x64-musl@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-x64-musl@npm:0.43.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@oxfmt/binding-openharmony-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-openharmony-arm64@npm:0.41.0" @@ -4926,6 +5045,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-openharmony-arm64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-openharmony-arm64@npm:0.43.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-win32-arm64-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.41.0" @@ -4933,6 +5059,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-win32-arm64-msvc@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.43.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-win32-ia32-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.41.0" @@ -4940,6 +5073,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-win32-ia32-msvc@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.43.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@oxfmt/binding-win32-x64-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.41.0" @@ -4947,6 +5087,188 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-win32-x64-msvc@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.43.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/darwin-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/darwin-arm64@npm:0.20.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/darwin-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/darwin-x64@npm:0.20.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/linux-arm64@npm:0.20.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/linux-x64@npm:0.20.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/win32-arm64@npm:0.20.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/win32-x64@npm:0.20.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-android-arm-eabi@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-android-arm-eabi@npm:1.58.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-android-arm64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-android-arm64@npm:1.58.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-arm64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-darwin-arm64@npm:1.58.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-x64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-darwin-x64@npm:1.58.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-freebsd-x64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-freebsd-x64@npm:1.58.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-gnueabihf@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.58.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-musleabihf@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.58.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.58.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-musl@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm64-musl@npm:1.58.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-ppc64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.58.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.58.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-musl@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.58.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-s390x-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.58.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-x64-gnu@npm:1.58.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-musl@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-x64-musl@npm:1.58.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-openharmony-arm64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-openharmony-arm64@npm:1.58.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-arm64-msvc@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.58.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-ia32-msvc@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.58.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxlint/binding-win32-x64-msvc@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-win32-x64-msvc@npm:1.58.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@parcel/watcher-android-arm64@npm:2.5.1": version: 2.5.1 resolution: "@parcel/watcher-android-arm64@npm:2.5.1" @@ -8233,8 +8555,11 @@ __metadata: uuid: "npm:^11.1.0" vite: "npm:^7.0.4" vite-plugin-inspect: "npm:^11.0.0" + vite-plus: "npm:^0.1.15" vitest: "npm:^4.1.0" wait-on: "npm:^8.0.3" + peerDependencies: + vite-plus: ^0.1.15 dependenciesMeta: ejs: built: false @@ -11116,6 +11441,178 @@ __metadata: languageName: node linkType: hard +"@voidzero-dev/vite-plus-core@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-core@npm:0.1.16" + dependencies: + "@oxc-project/runtime": "npm:=0.123.0" + "@oxc-project/types": "npm:=0.123.0" + fsevents: "npm:~2.3.3" + lightningcss: "npm:^1.30.2" + postcss: "npm:^8.5.6" + peerDependencies: + "@arethetypeswrong/core": ^0.18.1 + "@tsdown/css": 0.21.7 + "@tsdown/exe": 0.21.7 + "@types/node": ^20.19.0 || >=22.12.0 + "@vitejs/devtools": ^0.1.0 + esbuild: ^0.28.0 + jiti: ">=1.21.0" + less: ^4.0.0 + publint: ^0.3.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + typescript: ^5.0.0 || ^6.0.0 + unplugin-unused: ^0.5.0 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@arethetypeswrong/core": + optional: true + "@tsdown/css": + optional: true + "@tsdown/exe": + optional: true + "@types/node": + optional: true + "@vitejs/devtools": + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + publint: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + typescript: + optional: true + unplugin-unused: + optional: true + yaml: + optional: true + checksum: 10c0/7b779e7aa6e6a8a1bc95f68859dea1095dd9a1b5b1155fc1a7590500e1befa097a72583ba284aaf295c1f89efef7d02d8f573326ab79c7c194e561cf9409e24d + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-darwin-arm64@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-darwin-arm64@npm:0.1.16" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-darwin-x64@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-darwin-x64@npm:0.1.16" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-arm64-gnu@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-arm64-gnu@npm:0.1.16" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-arm64-musl@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-arm64-musl@npm:0.1.16" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-x64-gnu@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-x64-gnu@npm:0.1.16" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-x64-musl@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-x64-musl@npm:0.1.16" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-test@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-test@npm:0.1.16" + dependencies: + "@standard-schema/spec": "npm:^1.1.0" + "@types/chai": "npm:^5.2.2" + "@voidzero-dev/vite-plus-core": "npm:0.1.16" + es-module-lexer: "npm:^1.7.0" + obug: "npm:^2.1.1" + pixelmatch: "npm:^7.1.0" + pngjs: "npm:^7.0.0" + sirv: "npm:^3.0.2" + std-env: "npm:^4.0.0" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^1.0.2" + tinyglobby: "npm:^0.2.15" + ws: "npm:^8.18.3" + peerDependencies: + "@edge-runtime/vm": "*" + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/ui": 4.1.2 + happy-dom: "*" + jsdom: "*" + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@opentelemetry/api": + optional: true + "@types/node": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vite: + optional: false + checksum: 10c0/f9ba8ddd3b05e2baa5c57143449e47a4dbc68ca8a7aee99fb1ea55aad22789215c8b25a0093f38e55ecb8a8618ec3188d476535938ab6e2c0aae624fcfd2afcc + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-win32-arm64-msvc@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-win32-arm64-msvc@npm:0.1.16" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-win32-x64-msvc@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-win32-x64-msvc@npm:0.1.16" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@volar/language-core@npm:2.4.15": version: 2.4.15 resolution: "@volar/language-core@npm:2.4.15" @@ -16065,7 +16562,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4, es-module-lexer@npm:^1.7.0": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b @@ -21291,7 +21788,7 @@ __metadata: languageName: node linkType: hard -"lightningcss@npm:^1.32.0": +"lightningcss@npm:^1.30.2, lightningcss@npm:^1.32.0": version: 1.32.0 resolution: "lightningcss@npm:1.32.0" dependencies: @@ -24095,6 +24592,75 @@ __metadata: languageName: node linkType: hard +"oxfmt@npm:=0.43.0": + version: 0.43.0 + resolution: "oxfmt@npm:0.43.0" + dependencies: + "@oxfmt/binding-android-arm-eabi": "npm:0.43.0" + "@oxfmt/binding-android-arm64": "npm:0.43.0" + "@oxfmt/binding-darwin-arm64": "npm:0.43.0" + "@oxfmt/binding-darwin-x64": "npm:0.43.0" + "@oxfmt/binding-freebsd-x64": "npm:0.43.0" + "@oxfmt/binding-linux-arm-gnueabihf": "npm:0.43.0" + "@oxfmt/binding-linux-arm-musleabihf": "npm:0.43.0" + "@oxfmt/binding-linux-arm64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-arm64-musl": "npm:0.43.0" + "@oxfmt/binding-linux-ppc64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-riscv64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-riscv64-musl": "npm:0.43.0" + "@oxfmt/binding-linux-s390x-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-x64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-x64-musl": "npm:0.43.0" + "@oxfmt/binding-openharmony-arm64": "npm:0.43.0" + "@oxfmt/binding-win32-arm64-msvc": "npm:0.43.0" + "@oxfmt/binding-win32-ia32-msvc": "npm:0.43.0" + "@oxfmt/binding-win32-x64-msvc": "npm:0.43.0" + tinypool: "npm:2.1.0" + dependenciesMeta: + "@oxfmt/binding-android-arm-eabi": + optional: true + "@oxfmt/binding-android-arm64": + optional: true + "@oxfmt/binding-darwin-arm64": + optional: true + "@oxfmt/binding-darwin-x64": + optional: true + "@oxfmt/binding-freebsd-x64": + optional: true + "@oxfmt/binding-linux-arm-gnueabihf": + optional: true + "@oxfmt/binding-linux-arm-musleabihf": + optional: true + "@oxfmt/binding-linux-arm64-gnu": + optional: true + "@oxfmt/binding-linux-arm64-musl": + optional: true + "@oxfmt/binding-linux-ppc64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-musl": + optional: true + "@oxfmt/binding-linux-s390x-gnu": + optional: true + "@oxfmt/binding-linux-x64-gnu": + optional: true + "@oxfmt/binding-linux-x64-musl": + optional: true + "@oxfmt/binding-openharmony-arm64": + optional: true + "@oxfmt/binding-win32-arm64-msvc": + optional: true + "@oxfmt/binding-win32-ia32-msvc": + optional: true + "@oxfmt/binding-win32-x64-msvc": + optional: true + bin: + oxfmt: bin/oxfmt + checksum: 10c0/f78c05c2f834fb6ea1d5a421c964d2211bc519dc260b80ed846b078cd404b7f6ba71d0f34be83064bd4bacfbd2e451a974f11d31713bbead39495d9d8234bae5 + languageName: node + linkType: hard + "oxfmt@npm:^0.41.0": version: 0.41.0 resolution: "oxfmt@npm:0.41.0" @@ -24164,6 +24730,108 @@ __metadata: languageName: node linkType: hard +"oxlint-tsgolint@npm:=0.20.0": + version: 0.20.0 + resolution: "oxlint-tsgolint@npm:0.20.0" + dependencies: + "@oxlint-tsgolint/darwin-arm64": "npm:0.20.0" + "@oxlint-tsgolint/darwin-x64": "npm:0.20.0" + "@oxlint-tsgolint/linux-arm64": "npm:0.20.0" + "@oxlint-tsgolint/linux-x64": "npm:0.20.0" + "@oxlint-tsgolint/win32-arm64": "npm:0.20.0" + "@oxlint-tsgolint/win32-x64": "npm:0.20.0" + dependenciesMeta: + "@oxlint-tsgolint/darwin-arm64": + optional: true + "@oxlint-tsgolint/darwin-x64": + optional: true + "@oxlint-tsgolint/linux-arm64": + optional: true + "@oxlint-tsgolint/linux-x64": + optional: true + "@oxlint-tsgolint/win32-arm64": + optional: true + "@oxlint-tsgolint/win32-x64": + optional: true + bin: + tsgolint: bin/tsgolint.js + checksum: 10c0/9521a8e6aaea637592cda093bfb9220eb8a728bfccc980cc82de0011ed84733f1a42c629dfff8574a023e40e48c2dcdaf1675f0cf11aa92d164d5ccca1305c52 + languageName: node + linkType: hard + +"oxlint@npm:=1.58.0": + version: 1.58.0 + resolution: "oxlint@npm:1.58.0" + dependencies: + "@oxlint/binding-android-arm-eabi": "npm:1.58.0" + "@oxlint/binding-android-arm64": "npm:1.58.0" + "@oxlint/binding-darwin-arm64": "npm:1.58.0" + "@oxlint/binding-darwin-x64": "npm:1.58.0" + "@oxlint/binding-freebsd-x64": "npm:1.58.0" + "@oxlint/binding-linux-arm-gnueabihf": "npm:1.58.0" + "@oxlint/binding-linux-arm-musleabihf": "npm:1.58.0" + "@oxlint/binding-linux-arm64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-arm64-musl": "npm:1.58.0" + "@oxlint/binding-linux-ppc64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-riscv64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-riscv64-musl": "npm:1.58.0" + "@oxlint/binding-linux-s390x-gnu": "npm:1.58.0" + "@oxlint/binding-linux-x64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-x64-musl": "npm:1.58.0" + "@oxlint/binding-openharmony-arm64": "npm:1.58.0" + "@oxlint/binding-win32-arm64-msvc": "npm:1.58.0" + "@oxlint/binding-win32-ia32-msvc": "npm:1.58.0" + "@oxlint/binding-win32-x64-msvc": "npm:1.58.0" + peerDependencies: + oxlint-tsgolint: ">=0.18.0" + dependenciesMeta: + "@oxlint/binding-android-arm-eabi": + optional: true + "@oxlint/binding-android-arm64": + optional: true + "@oxlint/binding-darwin-arm64": + optional: true + "@oxlint/binding-darwin-x64": + optional: true + "@oxlint/binding-freebsd-x64": + optional: true + "@oxlint/binding-linux-arm-gnueabihf": + optional: true + "@oxlint/binding-linux-arm-musleabihf": + optional: true + "@oxlint/binding-linux-arm64-gnu": + optional: true + "@oxlint/binding-linux-arm64-musl": + optional: true + "@oxlint/binding-linux-ppc64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-musl": + optional: true + "@oxlint/binding-linux-s390x-gnu": + optional: true + "@oxlint/binding-linux-x64-gnu": + optional: true + "@oxlint/binding-linux-x64-musl": + optional: true + "@oxlint/binding-openharmony-arm64": + optional: true + "@oxlint/binding-win32-arm64-msvc": + optional: true + "@oxlint/binding-win32-ia32-msvc": + optional: true + "@oxlint/binding-win32-x64-msvc": + optional: true + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + bin: + oxlint: bin/oxlint + checksum: 10c0/b766362cf700b842077f7a4873b971c8f31dd05f103c28e0c0a07141a24fca2e03a79b43570006010629c20b96d214fadfb81bb0297307e72250af3504a7e59f + languageName: node + linkType: hard + "p-finally@npm:^1.0.0": version: 1.0.0 resolution: "p-finally@npm:1.0.0" @@ -24904,6 +25572,17 @@ __metadata: languageName: node linkType: hard +"pixelmatch@npm:^7.1.0": + version: 7.1.0 + resolution: "pixelmatch@npm:7.1.0" + dependencies: + pngjs: "npm:^7.0.0" + bin: + pixelmatch: bin/pixelmatch + checksum: 10c0/ff069f92edaa841ac9b58b0ab74e1afa1f3b5e770eea0218c96bac1da4e752f5f6b79a0f9c4ba6b02afb955d39b8c78bcc3cc884f8122b67a1f2efbbccbe1a73 + languageName: node + linkType: hard + "pkg-dir@npm:^3.0.0": version: 3.0.0 resolution: "pkg-dir@npm:3.0.0" @@ -30913,6 +31592,49 @@ __metadata: languageName: node linkType: hard +"vite-plus@npm:^0.1.15": + version: 0.1.16 + resolution: "vite-plus@npm:0.1.16" + dependencies: + "@oxc-project/types": "npm:=0.123.0" + "@voidzero-dev/vite-plus-core": "npm:0.1.16" + "@voidzero-dev/vite-plus-darwin-arm64": "npm:0.1.16" + "@voidzero-dev/vite-plus-darwin-x64": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-arm64-gnu": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-arm64-musl": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-x64-gnu": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-x64-musl": "npm:0.1.16" + "@voidzero-dev/vite-plus-test": "npm:0.1.16" + "@voidzero-dev/vite-plus-win32-arm64-msvc": "npm:0.1.16" + "@voidzero-dev/vite-plus-win32-x64-msvc": "npm:0.1.16" + oxfmt: "npm:=0.43.0" + oxlint: "npm:=1.58.0" + oxlint-tsgolint: "npm:=0.20.0" + dependenciesMeta: + "@voidzero-dev/vite-plus-darwin-arm64": + optional: true + "@voidzero-dev/vite-plus-darwin-x64": + optional: true + "@voidzero-dev/vite-plus-linux-arm64-gnu": + optional: true + "@voidzero-dev/vite-plus-linux-arm64-musl": + optional: true + "@voidzero-dev/vite-plus-linux-x64-gnu": + optional: true + "@voidzero-dev/vite-plus-linux-x64-musl": + optional: true + "@voidzero-dev/vite-plus-win32-arm64-msvc": + optional: true + "@voidzero-dev/vite-plus-win32-x64-msvc": + optional: true + bin: + oxfmt: bin/oxfmt + oxlint: bin/oxlint + vp: bin/vp + checksum: 10c0/480651acc9f57e5a8bb1e1506aeb916b452ce17da9f2f670868452602652782c3ae73eccf0b8f5be47ce6b5616fb0c055d042a3e818312fc5a1c88db66b9f37d + languageName: node + linkType: hard + "vite-tsconfig-paths@npm:^5.1.4": version: 5.1.4 resolution: "vite-tsconfig-paths@npm:5.1.4" @@ -32049,6 +32771,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.18.3": + version: 8.20.0 + resolution: "ws@npm:8.20.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/956ac5f11738c914089b65878b9223692ace77337ba55379ae68e1ecbeae9b47a0c6eb9403688f609999a58c80d83d99865fe0029b229d308b08c1ef93d4ea14 + languageName: node + linkType: hard + "wsl-utils@npm:^0.1.0": version: 0.1.0 resolution: "wsl-utils@npm:0.1.0" From 27ed25786929e170d8b0a552b1c4bb9694d66a30 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 10:31:39 +0200 Subject: [PATCH 2/8] fix: vite-plus detection get higfher priority --- .../js-package-manager/JsPackageManager.ts | 21 +++--- .../vite-plus-versions.test.ts | 72 +++++++++++-------- code/lib/cli-storybook/src/autoblock/utils.ts | 20 +++--- 3 files changed, 63 insertions(+), 50 deletions(-) diff --git a/code/core/src/common/js-package-manager/JsPackageManager.ts b/code/core/src/common/js-package-manager/JsPackageManager.ts index 35436808abde..4a1de48bcf6e 100644 --- a/code/core/src/common/js-package-manager/JsPackageManager.ts +++ b/code/core/src/common/js-package-manager/JsPackageManager.ts @@ -649,21 +649,20 @@ export abstract class JsPackageManager { } logger.debug(`Getting installed version for ${packageName}...`); - const installations = await this.findInstallations([packageName]); + // When vite-plus is used, packages like vite and vitest are vendored and their node_modules entries report the vite-plus wrapper version (e.g. 0.1.16) instead of the actual vendored version. + // Check vite-plus first so we always get the real version when it's available. let version: string | null = null; - - if (installations) { - version = Object.entries(installations.dependencies)[0]?.[1]?.[0].version || null; + const { getVitePlusVersions } = await import('./vite-plus-versions.ts'); + const vitePlusVersions = await getVitePlusVersions(); + if (vitePlusVersions?.[packageName]) { + version = vitePlusVersions[packageName]!; } - // Fallback: when vitest is not found as a standalone package, check if it's vendored - // inside vite-plus (which bundles vitest rather than installing it separately). - if (!version && packageName === 'vitest') { - const { getVitePlusVersions } = await import('./vite-plus-versions.ts'); - const vitePlusVersions = await getVitePlusVersions(); - if (vitePlusVersions?.vitest) { - version = vitePlusVersions.vitest; + if (!version) { + const installations = await this.findInstallations([packageName]); + if (installations) { + version = Object.entries(installations.dependencies)[0]?.[1]?.[0].version || null; } } diff --git a/code/core/src/common/js-package-manager/vite-plus-versions.test.ts b/code/core/src/common/js-package-manager/vite-plus-versions.test.ts index aef3369d83e8..be99546ef81c 100644 --- a/code/core/src/common/js-package-manager/vite-plus-versions.test.ts +++ b/code/core/src/common/js-package-manager/vite-plus-versions.test.ts @@ -17,9 +17,7 @@ describe('getVitePlusVersions', () => { versions: { vite: '6.1.0', vitest: '3.2.0', rolldown: '0.5.0' }, })); - // Clear cache so fresh import is attempted clearVitePlusCache(); - // Re-import to pick up the doMock const { getVitePlusVersions: fn } = await import('./vite-plus-versions.ts'); clearVitePlusCache(); @@ -36,47 +34,65 @@ describe('getVitePlusVersions', () => { }); it('returns null when vite-plus/versions is not available', async () => { - // By default, vite-plus/versions is not installed in this repo, so import will fail - const result = await getVitePlusVersions(); + vi.doMock('vite-plus/versions', () => { + throw new Error("Cannot find module 'vite-plus/versions'"); + }); + + clearVitePlusCache(); + const { getVitePlusVersions: fn } = await import('./vite-plus-versions.ts'); + clearVitePlusCache(); + + const result = await fn(); expect(result).toBeNull(); + + vi.doUnmock('vite-plus/versions'); }); it('caches results across calls', async () => { - const result1 = await getVitePlusVersions(); - const result2 = await getVitePlusVersions(); + vi.doMock('vite-plus/versions', () => ({ + versions: { vite: '6.1.0', vitest: '3.2.0' }, + })); + + clearVitePlusCache(); + const { getVitePlusVersions: fn } = await import('./vite-plus-versions.ts'); + clearVitePlusCache(); - expect(result1).toBeNull(); - expect(result2).toBeNull(); - // Both should be the same cached reference + const result1 = await fn(); + const result2 = await fn(); + + expect(result1).toEqual(result2); + // Same cached reference expect(result1).toBe(result2); - }); - it('clearVitePlusCache resets the cache', async () => { - const result1 = await getVitePlusVersions(); - expect(result1).toBeNull(); + vi.doUnmock('vite-plus/versions'); + }); - // Mock vite-plus/versions after first call + it('clearVitePlusCache resets the cache allowing new values', async () => { vi.doMock('vite-plus/versions', () => ({ versions: { vite: '6.1.0', vitest: '3.2.0' }, })); - // Without clearing, should still return cached null - const result2 = await getVitePlusVersions(); - expect(result2).toBeNull(); - - // After clearing cache, should pick up the mock - clearVitePlusCache(); - const { getVitePlusVersions: fn } = await import('./vite-plus-versions.ts'); clearVitePlusCache(); + const mod = await import('./vite-plus-versions.ts'); + mod.clearVitePlusCache(); - const result3 = await fn(); - expect(result3).toEqual( - expect.objectContaining({ - vite: '6.1.0', - vitest: '3.2.0', - }) - ); + const result1 = await mod.getVitePlusVersions(); + expect(result1?.vite).toBe('6.1.0'); + + vi.doUnmock('vite-plus/versions'); + + // After clearing, mock with different values + vi.doMock('vite-plus/versions', () => ({ + versions: { vite: '7.0.0', vitest: '4.0.0' }, + })); + + mod.clearVitePlusCache(); + const { getVitePlusVersions: fn2 } = await import('./vite-plus-versions.ts'); + mod.clearVitePlusCache(); + + const result2 = await fn2(); + expect(result2?.vite).toBe('7.0.0'); vi.doUnmock('vite-plus/versions'); }); diff --git a/code/lib/cli-storybook/src/autoblock/utils.ts b/code/lib/cli-storybook/src/autoblock/utils.ts index 0b805517e671..99d5c2e114c1 100644 --- a/code/lib/cli-storybook/src/autoblock/utils.ts +++ b/code/lib/cli-storybook/src/autoblock/utils.ts @@ -31,17 +31,15 @@ export async function findOutdatedPackage>( ): Promise> { const list = await Promise.all( typedKeys(minimalVersionsMap).map(async (packageName) => { - const packageJson = await options.packageManager.getModulePackageJSON(packageName); - let installedVersion = packageJson?.version ?? null; - - // When vite is aliased to vite-plus, the package.json version reflects the wrapper - // version (e.g. 0.1.12) rather than the actual vendored Vite version. Use the - // vite-plus/versions export to get the real version. - if (packageName === 'vite' && packageJson?.name === 'vite-plus') { - const vitePlusVersions = await getVitePlusVersions(); - if (vitePlusVersions?.vite) { - installedVersion = vitePlusVersions.vite; - } + // When vite-plus is used, packages like vite are overridden and their + // package.json reports the vite-plus wrapper version (e.g. 0.1.16) instead + // of the actual vendored version. Check vite-plus first. + const vitePlusVersions = await getVitePlusVersions(); + let installedVersion = vitePlusVersions?.[packageName] ?? null; + + if (!installedVersion) { + const packageJson = await options.packageManager.getModulePackageJSON(packageName); + installedVersion = packageJson?.version ?? null; } return { From 5c5c7917ca9e5fef3fc7e5449c74d5fa248e4710 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 10:32:33 +0200 Subject: [PATCH 3/8] chore: move import() to static import --- code/core/src/common/js-package-manager/JsPackageManager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/core/src/common/js-package-manager/JsPackageManager.ts b/code/core/src/common/js-package-manager/JsPackageManager.ts index 4a1de48bcf6e..31b434654b42 100644 --- a/code/core/src/common/js-package-manager/JsPackageManager.ts +++ b/code/core/src/common/js-package-manager/JsPackageManager.ts @@ -19,6 +19,7 @@ import { findFilesUp, getProjectRoot } from '../utils/paths.ts'; import storybookPackagesVersions from '../versions.ts'; import type { PackageJson, PackageJsonWithDepsAndDevDeps } from './PackageJson.ts'; import type { InstallationMetadata } from './types.ts'; +import { getVitePlusVersions } from './vite-plus-versions.ts'; export enum PackageManagerName { NPM = 'npm', @@ -653,7 +654,6 @@ export abstract class JsPackageManager { // When vite-plus is used, packages like vite and vitest are vendored and their node_modules entries report the vite-plus wrapper version (e.g. 0.1.16) instead of the actual vendored version. // Check vite-plus first so we always get the real version when it's available. let version: string | null = null; - const { getVitePlusVersions } = await import('./vite-plus-versions.ts'); const vitePlusVersions = await getVitePlusVersions(); if (vitePlusVersions?.[packageName]) { version = vitePlusVersions[packageName]!; From 3c19157f14663d8ddcf8320399fcc4dcda308e03 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 10:37:17 +0200 Subject: [PATCH 4/8] chore: dedupe lockfile --- yarn.lock | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index 54eeb7d16f3d..acfe1f8fb0fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32756,22 +32756,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0, ws@npm:^8.19.0": - version: 8.19.0 - resolution: "ws@npm:8.19.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/4741d9b9bc3f9c791880882414f96e36b8b254e34d4b503279d6400d9a4b87a033834856dbdd94ee4b637944df17ea8afc4bce0ff4a1560d2166be8855da5b04 - languageName: node - linkType: hard - -"ws@npm:^8.18.3": +"ws@npm:^8.18.0, ws@npm:^8.18.3, ws@npm:^8.19.0": version: 8.20.0 resolution: "ws@npm:8.20.0" peerDependencies: From ce0db91add5d26c0d3e65ecff64f219a9a2e0bdd Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 11:24:46 +0200 Subject: [PATCH 5/8] fix: set vite-plus as optionnal peerdeps --- code/package.json | 6 +- yarn.lock | 729 +--------------------------------------------- 2 files changed, 11 insertions(+), 724 deletions(-) diff --git a/code/package.json b/code/package.json index 5502452132cd..88c96ae7f394 100644 --- a/code/package.json +++ b/code/package.json @@ -124,7 +124,6 @@ "uuid": "^11.1.0", "vite": "^7.0.4", "vite-plugin-inspect": "^11.0.0", - "vite-plus": "^0.1.15", "vitest": "^4.1.0", "wait-on": "^8.0.3" }, @@ -158,6 +157,11 @@ "peerDependencies": { "vite-plus": "^0.1.15" }, + "peerDependenciesMeta": { + "vite-plus": { + "optional": true + } + }, "collective": { "type": "opencollective", "url": "https://opencollective.com/storybook" diff --git a/yarn.lock b/yarn.lock index acfe1f8fb0fc..4971ebb02d29 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4672,13 +4672,6 @@ __metadata: languageName: node linkType: hard -"@oxc-project/runtime@npm:=0.123.0": - version: 0.123.0 - resolution: "@oxc-project/runtime@npm:0.123.0" - checksum: 10c0/ed057ca3c95a2570914c3c99c842b6274b9f4b7e4005d4f7775617bfc31b80adc65272449316032ee4d6933ba0a0eb6e8ee5d0ca4633c845c12be00dcbfb26bf - languageName: node - linkType: hard - "@oxc-project/types@npm:=0.115.0": version: 0.115.0 resolution: "@oxc-project/types@npm:0.115.0" @@ -4686,13 +4679,6 @@ __metadata: languageName: node linkType: hard -"@oxc-project/types@npm:=0.123.0": - version: 0.123.0 - resolution: "@oxc-project/types@npm:0.123.0" - checksum: 10c0/7f71f9fa38796e6e5431390c213ec9626a3972feec07b513c513828bbfba5f6d908b04e8c679ae2b30b49cc1dee2dc0b2f1012f38ed1cb9e54bfeba09119f36d - languageName: node - linkType: hard - "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0": version: 11.14.0 resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0" @@ -4835,13 +4821,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-android-arm-eabi@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-android-arm-eabi@npm:0.43.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@oxfmt/binding-android-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-android-arm64@npm:0.41.0" @@ -4849,13 +4828,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-android-arm64@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-android-arm64@npm:0.43.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@oxfmt/binding-darwin-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-darwin-arm64@npm:0.41.0" @@ -4863,13 +4835,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-darwin-arm64@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-darwin-arm64@npm:0.43.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@oxfmt/binding-darwin-x64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-darwin-x64@npm:0.41.0" @@ -4877,13 +4842,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-darwin-x64@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-darwin-x64@npm:0.43.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@oxfmt/binding-freebsd-x64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-freebsd-x64@npm:0.41.0" @@ -4891,13 +4849,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-freebsd-x64@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-freebsd-x64@npm:0.43.0" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@oxfmt/binding-linux-arm-gnueabihf@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.41.0" @@ -4905,13 +4856,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-arm-gnueabihf@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.43.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@oxfmt/binding-linux-arm-musleabihf@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.41.0" @@ -4919,13 +4863,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-arm-musleabihf@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.43.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@oxfmt/binding-linux-arm64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.41.0" @@ -4933,13 +4870,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-arm64-gnu@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.43.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - "@oxfmt/binding-linux-arm64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.41.0" @@ -4947,13 +4877,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-arm64-musl@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.43.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - "@oxfmt/binding-linux-ppc64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.41.0" @@ -4961,13 +4884,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-ppc64-gnu@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.43.0" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - "@oxfmt/binding-linux-riscv64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.41.0" @@ -4975,13 +4891,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-riscv64-gnu@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.43.0" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - "@oxfmt/binding-linux-riscv64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.41.0" @@ -4989,13 +4898,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-riscv64-musl@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.43.0" - conditions: os=linux & cpu=riscv64 & libc=musl - languageName: node - linkType: hard - "@oxfmt/binding-linux-s390x-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.41.0" @@ -5003,13 +4905,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-s390x-gnu@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.43.0" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - "@oxfmt/binding-linux-x64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.41.0" @@ -5017,13 +4912,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-x64-gnu@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.43.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - "@oxfmt/binding-linux-x64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-x64-musl@npm:0.41.0" @@ -5031,13 +4919,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-linux-x64-musl@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-linux-x64-musl@npm:0.43.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - "@oxfmt/binding-openharmony-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-openharmony-arm64@npm:0.41.0" @@ -5045,13 +4926,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-openharmony-arm64@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-openharmony-arm64@npm:0.43.0" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - "@oxfmt/binding-win32-arm64-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.41.0" @@ -5059,13 +4933,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-win32-arm64-msvc@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.43.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@oxfmt/binding-win32-ia32-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.41.0" @@ -5073,13 +4940,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-win32-ia32-msvc@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.43.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@oxfmt/binding-win32-x64-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.41.0" @@ -5087,188 +4947,6 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-win32-x64-msvc@npm:0.43.0": - version: 0.43.0 - resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.43.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@oxlint-tsgolint/darwin-arm64@npm:0.20.0": - version: 0.20.0 - resolution: "@oxlint-tsgolint/darwin-arm64@npm:0.20.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint-tsgolint/darwin-x64@npm:0.20.0": - version: 0.20.0 - resolution: "@oxlint-tsgolint/darwin-x64@npm:0.20.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@oxlint-tsgolint/linux-arm64@npm:0.20.0": - version: 0.20.0 - resolution: "@oxlint-tsgolint/linux-arm64@npm:0.20.0" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint-tsgolint/linux-x64@npm:0.20.0": - version: 0.20.0 - resolution: "@oxlint-tsgolint/linux-x64@npm:0.20.0" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@oxlint-tsgolint/win32-arm64@npm:0.20.0": - version: 0.20.0 - resolution: "@oxlint-tsgolint/win32-arm64@npm:0.20.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint-tsgolint/win32-x64@npm:0.20.0": - version: 0.20.0 - resolution: "@oxlint-tsgolint/win32-x64@npm:0.20.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@oxlint/binding-android-arm-eabi@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-android-arm-eabi@npm:1.58.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@oxlint/binding-android-arm64@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-android-arm64@npm:1.58.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint/binding-darwin-arm64@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-darwin-arm64@npm:1.58.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint/binding-darwin-x64@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-darwin-x64@npm:1.58.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@oxlint/binding-freebsd-x64@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-freebsd-x64@npm:1.58.0" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@oxlint/binding-linux-arm-gnueabihf@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.58.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@oxlint/binding-linux-arm-musleabihf@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.58.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@oxlint/binding-linux-arm64-gnu@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.58.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@oxlint/binding-linux-arm64-musl@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-arm64-musl@npm:1.58.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@oxlint/binding-linux-ppc64-gnu@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.58.0" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@oxlint/binding-linux-riscv64-gnu@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.58.0" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@oxlint/binding-linux-riscv64-musl@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.58.0" - conditions: os=linux & cpu=riscv64 & libc=musl - languageName: node - linkType: hard - -"@oxlint/binding-linux-s390x-gnu@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.58.0" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@oxlint/binding-linux-x64-gnu@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-x64-gnu@npm:1.58.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@oxlint/binding-linux-x64-musl@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-linux-x64-musl@npm:1.58.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@oxlint/binding-openharmony-arm64@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-openharmony-arm64@npm:1.58.0" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint/binding-win32-arm64-msvc@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.58.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint/binding-win32-ia32-msvc@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.58.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@oxlint/binding-win32-x64-msvc@npm:1.58.0": - version: 1.58.0 - resolution: "@oxlint/binding-win32-x64-msvc@npm:1.58.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@parcel/watcher-android-arm64@npm:2.5.1": version: 2.5.1 resolution: "@parcel/watcher-android-arm64@npm:2.5.1" @@ -8555,7 +8233,6 @@ __metadata: uuid: "npm:^11.1.0" vite: "npm:^7.0.4" vite-plugin-inspect: "npm:^11.0.0" - vite-plus: "npm:^0.1.15" vitest: "npm:^4.1.0" wait-on: "npm:^8.0.3" peerDependencies: @@ -8576,6 +8253,9 @@ __metadata: built: false yorkie: built: false + peerDependenciesMeta: + vite-plus: + optional: true languageName: unknown linkType: soft @@ -11441,178 +11121,6 @@ __metadata: languageName: node linkType: hard -"@voidzero-dev/vite-plus-core@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-core@npm:0.1.16" - dependencies: - "@oxc-project/runtime": "npm:=0.123.0" - "@oxc-project/types": "npm:=0.123.0" - fsevents: "npm:~2.3.3" - lightningcss: "npm:^1.30.2" - postcss: "npm:^8.5.6" - peerDependencies: - "@arethetypeswrong/core": ^0.18.1 - "@tsdown/css": 0.21.7 - "@tsdown/exe": 0.21.7 - "@types/node": ^20.19.0 || >=22.12.0 - "@vitejs/devtools": ^0.1.0 - esbuild: ^0.28.0 - jiti: ">=1.21.0" - less: ^4.0.0 - publint: ^0.3.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: ">=0.54.8" - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - typescript: ^5.0.0 || ^6.0.0 - unplugin-unused: ^0.5.0 - yaml: ^2.4.2 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@arethetypeswrong/core": - optional: true - "@tsdown/css": - optional: true - "@tsdown/exe": - optional: true - "@types/node": - optional: true - "@vitejs/devtools": - optional: true - esbuild: - optional: true - jiti: - optional: true - less: - optional: true - publint: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - typescript: - optional: true - unplugin-unused: - optional: true - yaml: - optional: true - checksum: 10c0/7b779e7aa6e6a8a1bc95f68859dea1095dd9a1b5b1155fc1a7590500e1befa097a72583ba284aaf295c1f89efef7d02d8f573326ab79c7c194e561cf9409e24d - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-darwin-arm64@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-darwin-arm64@npm:0.1.16" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-darwin-x64@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-darwin-x64@npm:0.1.16" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-linux-arm64-gnu@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-linux-arm64-gnu@npm:0.1.16" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-linux-arm64-musl@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-linux-arm64-musl@npm:0.1.16" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-linux-x64-gnu@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-linux-x64-gnu@npm:0.1.16" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-linux-x64-musl@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-linux-x64-musl@npm:0.1.16" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-test@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-test@npm:0.1.16" - dependencies: - "@standard-schema/spec": "npm:^1.1.0" - "@types/chai": "npm:^5.2.2" - "@voidzero-dev/vite-plus-core": "npm:0.1.16" - es-module-lexer: "npm:^1.7.0" - obug: "npm:^2.1.1" - pixelmatch: "npm:^7.1.0" - pngjs: "npm:^7.0.0" - sirv: "npm:^3.0.2" - std-env: "npm:^4.0.0" - tinybench: "npm:^2.9.0" - tinyexec: "npm:^1.0.2" - tinyglobby: "npm:^0.2.15" - ws: "npm:^8.18.3" - peerDependencies: - "@edge-runtime/vm": "*" - "@opentelemetry/api": ^1.9.0 - "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 - "@vitest/ui": 4.1.2 - happy-dom: "*" - jsdom: "*" - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - "@edge-runtime/vm": - optional: true - "@opentelemetry/api": - optional: true - "@types/node": - optional: true - "@vitest/ui": - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vite: - optional: false - checksum: 10c0/f9ba8ddd3b05e2baa5c57143449e47a4dbc68ca8a7aee99fb1ea55aad22789215c8b25a0093f38e55ecb8a8618ec3188d476535938ab6e2c0aae624fcfd2afcc - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-win32-arm64-msvc@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-win32-arm64-msvc@npm:0.1.16" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@voidzero-dev/vite-plus-win32-x64-msvc@npm:0.1.16": - version: 0.1.16 - resolution: "@voidzero-dev/vite-plus-win32-x64-msvc@npm:0.1.16" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@volar/language-core@npm:2.4.15": version: 2.4.15 resolution: "@volar/language-core@npm:2.4.15" @@ -16562,7 +16070,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4, es-module-lexer@npm:^1.7.0": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b @@ -21788,7 +21296,7 @@ __metadata: languageName: node linkType: hard -"lightningcss@npm:^1.30.2, lightningcss@npm:^1.32.0": +"lightningcss@npm:^1.32.0": version: 1.32.0 resolution: "lightningcss@npm:1.32.0" dependencies: @@ -24592,75 +24100,6 @@ __metadata: languageName: node linkType: hard -"oxfmt@npm:=0.43.0": - version: 0.43.0 - resolution: "oxfmt@npm:0.43.0" - dependencies: - "@oxfmt/binding-android-arm-eabi": "npm:0.43.0" - "@oxfmt/binding-android-arm64": "npm:0.43.0" - "@oxfmt/binding-darwin-arm64": "npm:0.43.0" - "@oxfmt/binding-darwin-x64": "npm:0.43.0" - "@oxfmt/binding-freebsd-x64": "npm:0.43.0" - "@oxfmt/binding-linux-arm-gnueabihf": "npm:0.43.0" - "@oxfmt/binding-linux-arm-musleabihf": "npm:0.43.0" - "@oxfmt/binding-linux-arm64-gnu": "npm:0.43.0" - "@oxfmt/binding-linux-arm64-musl": "npm:0.43.0" - "@oxfmt/binding-linux-ppc64-gnu": "npm:0.43.0" - "@oxfmt/binding-linux-riscv64-gnu": "npm:0.43.0" - "@oxfmt/binding-linux-riscv64-musl": "npm:0.43.0" - "@oxfmt/binding-linux-s390x-gnu": "npm:0.43.0" - "@oxfmt/binding-linux-x64-gnu": "npm:0.43.0" - "@oxfmt/binding-linux-x64-musl": "npm:0.43.0" - "@oxfmt/binding-openharmony-arm64": "npm:0.43.0" - "@oxfmt/binding-win32-arm64-msvc": "npm:0.43.0" - "@oxfmt/binding-win32-ia32-msvc": "npm:0.43.0" - "@oxfmt/binding-win32-x64-msvc": "npm:0.43.0" - tinypool: "npm:2.1.0" - dependenciesMeta: - "@oxfmt/binding-android-arm-eabi": - optional: true - "@oxfmt/binding-android-arm64": - optional: true - "@oxfmt/binding-darwin-arm64": - optional: true - "@oxfmt/binding-darwin-x64": - optional: true - "@oxfmt/binding-freebsd-x64": - optional: true - "@oxfmt/binding-linux-arm-gnueabihf": - optional: true - "@oxfmt/binding-linux-arm-musleabihf": - optional: true - "@oxfmt/binding-linux-arm64-gnu": - optional: true - "@oxfmt/binding-linux-arm64-musl": - optional: true - "@oxfmt/binding-linux-ppc64-gnu": - optional: true - "@oxfmt/binding-linux-riscv64-gnu": - optional: true - "@oxfmt/binding-linux-riscv64-musl": - optional: true - "@oxfmt/binding-linux-s390x-gnu": - optional: true - "@oxfmt/binding-linux-x64-gnu": - optional: true - "@oxfmt/binding-linux-x64-musl": - optional: true - "@oxfmt/binding-openharmony-arm64": - optional: true - "@oxfmt/binding-win32-arm64-msvc": - optional: true - "@oxfmt/binding-win32-ia32-msvc": - optional: true - "@oxfmt/binding-win32-x64-msvc": - optional: true - bin: - oxfmt: bin/oxfmt - checksum: 10c0/f78c05c2f834fb6ea1d5a421c964d2211bc519dc260b80ed846b078cd404b7f6ba71d0f34be83064bd4bacfbd2e451a974f11d31713bbead39495d9d8234bae5 - languageName: node - linkType: hard - "oxfmt@npm:^0.41.0": version: 0.41.0 resolution: "oxfmt@npm:0.41.0" @@ -24730,108 +24169,6 @@ __metadata: languageName: node linkType: hard -"oxlint-tsgolint@npm:=0.20.0": - version: 0.20.0 - resolution: "oxlint-tsgolint@npm:0.20.0" - dependencies: - "@oxlint-tsgolint/darwin-arm64": "npm:0.20.0" - "@oxlint-tsgolint/darwin-x64": "npm:0.20.0" - "@oxlint-tsgolint/linux-arm64": "npm:0.20.0" - "@oxlint-tsgolint/linux-x64": "npm:0.20.0" - "@oxlint-tsgolint/win32-arm64": "npm:0.20.0" - "@oxlint-tsgolint/win32-x64": "npm:0.20.0" - dependenciesMeta: - "@oxlint-tsgolint/darwin-arm64": - optional: true - "@oxlint-tsgolint/darwin-x64": - optional: true - "@oxlint-tsgolint/linux-arm64": - optional: true - "@oxlint-tsgolint/linux-x64": - optional: true - "@oxlint-tsgolint/win32-arm64": - optional: true - "@oxlint-tsgolint/win32-x64": - optional: true - bin: - tsgolint: bin/tsgolint.js - checksum: 10c0/9521a8e6aaea637592cda093bfb9220eb8a728bfccc980cc82de0011ed84733f1a42c629dfff8574a023e40e48c2dcdaf1675f0cf11aa92d164d5ccca1305c52 - languageName: node - linkType: hard - -"oxlint@npm:=1.58.0": - version: 1.58.0 - resolution: "oxlint@npm:1.58.0" - dependencies: - "@oxlint/binding-android-arm-eabi": "npm:1.58.0" - "@oxlint/binding-android-arm64": "npm:1.58.0" - "@oxlint/binding-darwin-arm64": "npm:1.58.0" - "@oxlint/binding-darwin-x64": "npm:1.58.0" - "@oxlint/binding-freebsd-x64": "npm:1.58.0" - "@oxlint/binding-linux-arm-gnueabihf": "npm:1.58.0" - "@oxlint/binding-linux-arm-musleabihf": "npm:1.58.0" - "@oxlint/binding-linux-arm64-gnu": "npm:1.58.0" - "@oxlint/binding-linux-arm64-musl": "npm:1.58.0" - "@oxlint/binding-linux-ppc64-gnu": "npm:1.58.0" - "@oxlint/binding-linux-riscv64-gnu": "npm:1.58.0" - "@oxlint/binding-linux-riscv64-musl": "npm:1.58.0" - "@oxlint/binding-linux-s390x-gnu": "npm:1.58.0" - "@oxlint/binding-linux-x64-gnu": "npm:1.58.0" - "@oxlint/binding-linux-x64-musl": "npm:1.58.0" - "@oxlint/binding-openharmony-arm64": "npm:1.58.0" - "@oxlint/binding-win32-arm64-msvc": "npm:1.58.0" - "@oxlint/binding-win32-ia32-msvc": "npm:1.58.0" - "@oxlint/binding-win32-x64-msvc": "npm:1.58.0" - peerDependencies: - oxlint-tsgolint: ">=0.18.0" - dependenciesMeta: - "@oxlint/binding-android-arm-eabi": - optional: true - "@oxlint/binding-android-arm64": - optional: true - "@oxlint/binding-darwin-arm64": - optional: true - "@oxlint/binding-darwin-x64": - optional: true - "@oxlint/binding-freebsd-x64": - optional: true - "@oxlint/binding-linux-arm-gnueabihf": - optional: true - "@oxlint/binding-linux-arm-musleabihf": - optional: true - "@oxlint/binding-linux-arm64-gnu": - optional: true - "@oxlint/binding-linux-arm64-musl": - optional: true - "@oxlint/binding-linux-ppc64-gnu": - optional: true - "@oxlint/binding-linux-riscv64-gnu": - optional: true - "@oxlint/binding-linux-riscv64-musl": - optional: true - "@oxlint/binding-linux-s390x-gnu": - optional: true - "@oxlint/binding-linux-x64-gnu": - optional: true - "@oxlint/binding-linux-x64-musl": - optional: true - "@oxlint/binding-openharmony-arm64": - optional: true - "@oxlint/binding-win32-arm64-msvc": - optional: true - "@oxlint/binding-win32-ia32-msvc": - optional: true - "@oxlint/binding-win32-x64-msvc": - optional: true - peerDependenciesMeta: - oxlint-tsgolint: - optional: true - bin: - oxlint: bin/oxlint - checksum: 10c0/b766362cf700b842077f7a4873b971c8f31dd05f103c28e0c0a07141a24fca2e03a79b43570006010629c20b96d214fadfb81bb0297307e72250af3504a7e59f - languageName: node - linkType: hard - "p-finally@npm:^1.0.0": version: 1.0.0 resolution: "p-finally@npm:1.0.0" @@ -25572,17 +24909,6 @@ __metadata: languageName: node linkType: hard -"pixelmatch@npm:^7.1.0": - version: 7.1.0 - resolution: "pixelmatch@npm:7.1.0" - dependencies: - pngjs: "npm:^7.0.0" - bin: - pixelmatch: bin/pixelmatch - checksum: 10c0/ff069f92edaa841ac9b58b0ab74e1afa1f3b5e770eea0218c96bac1da4e752f5f6b79a0f9c4ba6b02afb955d39b8c78bcc3cc884f8122b67a1f2efbbccbe1a73 - languageName: node - linkType: hard - "pkg-dir@npm:^3.0.0": version: 3.0.0 resolution: "pkg-dir@npm:3.0.0" @@ -31592,49 +30918,6 @@ __metadata: languageName: node linkType: hard -"vite-plus@npm:^0.1.15": - version: 0.1.16 - resolution: "vite-plus@npm:0.1.16" - dependencies: - "@oxc-project/types": "npm:=0.123.0" - "@voidzero-dev/vite-plus-core": "npm:0.1.16" - "@voidzero-dev/vite-plus-darwin-arm64": "npm:0.1.16" - "@voidzero-dev/vite-plus-darwin-x64": "npm:0.1.16" - "@voidzero-dev/vite-plus-linux-arm64-gnu": "npm:0.1.16" - "@voidzero-dev/vite-plus-linux-arm64-musl": "npm:0.1.16" - "@voidzero-dev/vite-plus-linux-x64-gnu": "npm:0.1.16" - "@voidzero-dev/vite-plus-linux-x64-musl": "npm:0.1.16" - "@voidzero-dev/vite-plus-test": "npm:0.1.16" - "@voidzero-dev/vite-plus-win32-arm64-msvc": "npm:0.1.16" - "@voidzero-dev/vite-plus-win32-x64-msvc": "npm:0.1.16" - oxfmt: "npm:=0.43.0" - oxlint: "npm:=1.58.0" - oxlint-tsgolint: "npm:=0.20.0" - dependenciesMeta: - "@voidzero-dev/vite-plus-darwin-arm64": - optional: true - "@voidzero-dev/vite-plus-darwin-x64": - optional: true - "@voidzero-dev/vite-plus-linux-arm64-gnu": - optional: true - "@voidzero-dev/vite-plus-linux-arm64-musl": - optional: true - "@voidzero-dev/vite-plus-linux-x64-gnu": - optional: true - "@voidzero-dev/vite-plus-linux-x64-musl": - optional: true - "@voidzero-dev/vite-plus-win32-arm64-msvc": - optional: true - "@voidzero-dev/vite-plus-win32-x64-msvc": - optional: true - bin: - oxfmt: bin/oxfmt - oxlint: bin/oxlint - vp: bin/vp - checksum: 10c0/480651acc9f57e5a8bb1e1506aeb916b452ce17da9f2f670868452602652782c3ae73eccf0b8f5be47ce6b5616fb0c055d042a3e818312fc5a1c88db66b9f37d - languageName: node - linkType: hard - "vite-tsconfig-paths@npm:^5.1.4": version: 5.1.4 resolution: "vite-tsconfig-paths@npm:5.1.4" @@ -32756,7 +32039,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0, ws@npm:^8.18.3, ws@npm:^8.19.0": +"ws@npm:^8.18.0, ws@npm:^8.19.0": version: 8.20.0 resolution: "ws@npm:8.20.0" peerDependencies: From e3ec2f980be0330505851e6523f44e47f2bd50c5 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 14:30:33 +0200 Subject: [PATCH 6/8] fix: add back vite-plus as dev-deps --- code/core/package.json | 1 + yarn.lock | 726 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 724 insertions(+), 3 deletions(-) diff --git a/code/core/package.json b/code/core/package.json index c0ca8bc7853a..269295b3c33a 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -373,6 +373,7 @@ "typescript": "^5.8.3", "unique-string": "^3.0.0", "use-resize-observer": "^9.1.0", + "vite-plus": "^0.1.16", "watchpack": "^2.5.0", "wrap-ansi": "^9.0.2", "zod": "^3.25.76" diff --git a/yarn.lock b/yarn.lock index 4971ebb02d29..e4883b221775 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4672,6 +4672,13 @@ __metadata: languageName: node linkType: hard +"@oxc-project/runtime@npm:=0.123.0": + version: 0.123.0 + resolution: "@oxc-project/runtime@npm:0.123.0" + checksum: 10c0/ed057ca3c95a2570914c3c99c842b6274b9f4b7e4005d4f7775617bfc31b80adc65272449316032ee4d6933ba0a0eb6e8ee5d0ca4633c845c12be00dcbfb26bf + languageName: node + linkType: hard + "@oxc-project/types@npm:=0.115.0": version: 0.115.0 resolution: "@oxc-project/types@npm:0.115.0" @@ -4679,6 +4686,13 @@ __metadata: languageName: node linkType: hard +"@oxc-project/types@npm:=0.123.0": + version: 0.123.0 + resolution: "@oxc-project/types@npm:0.123.0" + checksum: 10c0/7f71f9fa38796e6e5431390c213ec9626a3972feec07b513c513828bbfba5f6d908b04e8c679ae2b30b49cc1dee2dc0b2f1012f38ed1cb9e54bfeba09119f36d + languageName: node + linkType: hard + "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0": version: 11.14.0 resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0" @@ -4821,6 +4835,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-android-arm-eabi@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-android-arm-eabi@npm:0.43.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@oxfmt/binding-android-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-android-arm64@npm:0.41.0" @@ -4828,6 +4849,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-android-arm64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-android-arm64@npm:0.43.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-darwin-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-darwin-arm64@npm:0.41.0" @@ -4835,6 +4863,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-darwin-arm64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-darwin-arm64@npm:0.43.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-darwin-x64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-darwin-x64@npm:0.41.0" @@ -4842,6 +4877,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-darwin-x64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-darwin-x64@npm:0.43.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@oxfmt/binding-freebsd-x64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-freebsd-x64@npm:0.41.0" @@ -4849,6 +4891,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-freebsd-x64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-freebsd-x64@npm:0.43.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm-gnueabihf@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.41.0" @@ -4856,6 +4905,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm-gnueabihf@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.43.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm-musleabihf@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.41.0" @@ -4863,6 +4919,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm-musleabihf@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.43.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.41.0" @@ -4870,6 +4933,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.43.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-arm64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.41.0" @@ -4877,6 +4947,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-arm64-musl@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.43.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@oxfmt/binding-linux-ppc64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.41.0" @@ -4884,6 +4961,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-ppc64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.43.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-riscv64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.41.0" @@ -4891,6 +4975,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-riscv64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.43.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-riscv64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.41.0" @@ -4898,6 +4989,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-riscv64-musl@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.43.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@oxfmt/binding-linux-s390x-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.41.0" @@ -4905,6 +5003,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-s390x-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.43.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-x64-gnu@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.41.0" @@ -4912,6 +5017,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-x64-gnu@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.43.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@oxfmt/binding-linux-x64-musl@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-linux-x64-musl@npm:0.41.0" @@ -4919,6 +5031,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-linux-x64-musl@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-linux-x64-musl@npm:0.43.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@oxfmt/binding-openharmony-arm64@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-openharmony-arm64@npm:0.41.0" @@ -4926,6 +5045,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-openharmony-arm64@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-openharmony-arm64@npm:0.43.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-win32-arm64-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.41.0" @@ -4933,6 +5059,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-win32-arm64-msvc@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.43.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@oxfmt/binding-win32-ia32-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.41.0" @@ -4940,6 +5073,13 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-win32-ia32-msvc@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.43.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@oxfmt/binding-win32-x64-msvc@npm:0.41.0": version: 0.41.0 resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.41.0" @@ -4947,6 +5087,188 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-win32-x64-msvc@npm:0.43.0": + version: 0.43.0 + resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.43.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/darwin-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/darwin-arm64@npm:0.20.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/darwin-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/darwin-x64@npm:0.20.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/linux-arm64@npm:0.20.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/linux-x64@npm:0.20.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/win32-arm64@npm:0.20.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/win32-x64@npm:0.20.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-android-arm-eabi@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-android-arm-eabi@npm:1.58.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-android-arm64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-android-arm64@npm:1.58.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-arm64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-darwin-arm64@npm:1.58.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-x64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-darwin-x64@npm:1.58.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-freebsd-x64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-freebsd-x64@npm:1.58.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-gnueabihf@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.58.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-musleabihf@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.58.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.58.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-musl@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-arm64-musl@npm:1.58.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-ppc64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.58.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.58.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-musl@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.58.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-s390x-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.58.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-gnu@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-x64-gnu@npm:1.58.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-musl@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-linux-x64-musl@npm:1.58.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-openharmony-arm64@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-openharmony-arm64@npm:1.58.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-arm64-msvc@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.58.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-ia32-msvc@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.58.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxlint/binding-win32-x64-msvc@npm:1.58.0": + version: 1.58.0 + resolution: "@oxlint/binding-win32-x64-msvc@npm:1.58.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@parcel/watcher-android-arm64@npm:2.5.1": version: 2.5.1 resolution: "@parcel/watcher-android-arm64@npm:2.5.1" @@ -11121,6 +11443,178 @@ __metadata: languageName: node linkType: hard +"@voidzero-dev/vite-plus-core@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-core@npm:0.1.16" + dependencies: + "@oxc-project/runtime": "npm:=0.123.0" + "@oxc-project/types": "npm:=0.123.0" + fsevents: "npm:~2.3.3" + lightningcss: "npm:^1.30.2" + postcss: "npm:^8.5.6" + peerDependencies: + "@arethetypeswrong/core": ^0.18.1 + "@tsdown/css": 0.21.7 + "@tsdown/exe": 0.21.7 + "@types/node": ^20.19.0 || >=22.12.0 + "@vitejs/devtools": ^0.1.0 + esbuild: ^0.28.0 + jiti: ">=1.21.0" + less: ^4.0.0 + publint: ^0.3.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + typescript: ^5.0.0 || ^6.0.0 + unplugin-unused: ^0.5.0 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@arethetypeswrong/core": + optional: true + "@tsdown/css": + optional: true + "@tsdown/exe": + optional: true + "@types/node": + optional: true + "@vitejs/devtools": + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + publint: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + typescript: + optional: true + unplugin-unused: + optional: true + yaml: + optional: true + checksum: 10c0/7b779e7aa6e6a8a1bc95f68859dea1095dd9a1b5b1155fc1a7590500e1befa097a72583ba284aaf295c1f89efef7d02d8f573326ab79c7c194e561cf9409e24d + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-darwin-arm64@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-darwin-arm64@npm:0.1.16" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-darwin-x64@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-darwin-x64@npm:0.1.16" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-arm64-gnu@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-arm64-gnu@npm:0.1.16" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-arm64-musl@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-arm64-musl@npm:0.1.16" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-x64-gnu@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-x64-gnu@npm:0.1.16" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-linux-x64-musl@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-linux-x64-musl@npm:0.1.16" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-test@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-test@npm:0.1.16" + dependencies: + "@standard-schema/spec": "npm:^1.1.0" + "@types/chai": "npm:^5.2.2" + "@voidzero-dev/vite-plus-core": "npm:0.1.16" + es-module-lexer: "npm:^1.7.0" + obug: "npm:^2.1.1" + pixelmatch: "npm:^7.1.0" + pngjs: "npm:^7.0.0" + sirv: "npm:^3.0.2" + std-env: "npm:^4.0.0" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^1.0.2" + tinyglobby: "npm:^0.2.15" + ws: "npm:^8.18.3" + peerDependencies: + "@edge-runtime/vm": "*" + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/ui": 4.1.2 + happy-dom: "*" + jsdom: "*" + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@opentelemetry/api": + optional: true + "@types/node": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vite: + optional: false + checksum: 10c0/f9ba8ddd3b05e2baa5c57143449e47a4dbc68ca8a7aee99fb1ea55aad22789215c8b25a0093f38e55ecb8a8618ec3188d476535938ab6e2c0aae624fcfd2afcc + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-win32-arm64-msvc@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-win32-arm64-msvc@npm:0.1.16" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@voidzero-dev/vite-plus-win32-x64-msvc@npm:0.1.16": + version: 0.1.16 + resolution: "@voidzero-dev/vite-plus-win32-x64-msvc@npm:0.1.16" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@volar/language-core@npm:2.4.15": version: 2.4.15 resolution: "@volar/language-core@npm:2.4.15" @@ -16070,7 +16564,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4, es-module-lexer@npm:^1.7.0": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b @@ -21296,7 +21790,7 @@ __metadata: languageName: node linkType: hard -"lightningcss@npm:^1.32.0": +"lightningcss@npm:^1.30.2, lightningcss@npm:^1.32.0": version: 1.32.0 resolution: "lightningcss@npm:1.32.0" dependencies: @@ -24100,6 +24594,75 @@ __metadata: languageName: node linkType: hard +"oxfmt@npm:=0.43.0": + version: 0.43.0 + resolution: "oxfmt@npm:0.43.0" + dependencies: + "@oxfmt/binding-android-arm-eabi": "npm:0.43.0" + "@oxfmt/binding-android-arm64": "npm:0.43.0" + "@oxfmt/binding-darwin-arm64": "npm:0.43.0" + "@oxfmt/binding-darwin-x64": "npm:0.43.0" + "@oxfmt/binding-freebsd-x64": "npm:0.43.0" + "@oxfmt/binding-linux-arm-gnueabihf": "npm:0.43.0" + "@oxfmt/binding-linux-arm-musleabihf": "npm:0.43.0" + "@oxfmt/binding-linux-arm64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-arm64-musl": "npm:0.43.0" + "@oxfmt/binding-linux-ppc64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-riscv64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-riscv64-musl": "npm:0.43.0" + "@oxfmt/binding-linux-s390x-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-x64-gnu": "npm:0.43.0" + "@oxfmt/binding-linux-x64-musl": "npm:0.43.0" + "@oxfmt/binding-openharmony-arm64": "npm:0.43.0" + "@oxfmt/binding-win32-arm64-msvc": "npm:0.43.0" + "@oxfmt/binding-win32-ia32-msvc": "npm:0.43.0" + "@oxfmt/binding-win32-x64-msvc": "npm:0.43.0" + tinypool: "npm:2.1.0" + dependenciesMeta: + "@oxfmt/binding-android-arm-eabi": + optional: true + "@oxfmt/binding-android-arm64": + optional: true + "@oxfmt/binding-darwin-arm64": + optional: true + "@oxfmt/binding-darwin-x64": + optional: true + "@oxfmt/binding-freebsd-x64": + optional: true + "@oxfmt/binding-linux-arm-gnueabihf": + optional: true + "@oxfmt/binding-linux-arm-musleabihf": + optional: true + "@oxfmt/binding-linux-arm64-gnu": + optional: true + "@oxfmt/binding-linux-arm64-musl": + optional: true + "@oxfmt/binding-linux-ppc64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-musl": + optional: true + "@oxfmt/binding-linux-s390x-gnu": + optional: true + "@oxfmt/binding-linux-x64-gnu": + optional: true + "@oxfmt/binding-linux-x64-musl": + optional: true + "@oxfmt/binding-openharmony-arm64": + optional: true + "@oxfmt/binding-win32-arm64-msvc": + optional: true + "@oxfmt/binding-win32-ia32-msvc": + optional: true + "@oxfmt/binding-win32-x64-msvc": + optional: true + bin: + oxfmt: bin/oxfmt + checksum: 10c0/f78c05c2f834fb6ea1d5a421c964d2211bc519dc260b80ed846b078cd404b7f6ba71d0f34be83064bd4bacfbd2e451a974f11d31713bbead39495d9d8234bae5 + languageName: node + linkType: hard + "oxfmt@npm:^0.41.0": version: 0.41.0 resolution: "oxfmt@npm:0.41.0" @@ -24169,6 +24732,108 @@ __metadata: languageName: node linkType: hard +"oxlint-tsgolint@npm:=0.20.0": + version: 0.20.0 + resolution: "oxlint-tsgolint@npm:0.20.0" + dependencies: + "@oxlint-tsgolint/darwin-arm64": "npm:0.20.0" + "@oxlint-tsgolint/darwin-x64": "npm:0.20.0" + "@oxlint-tsgolint/linux-arm64": "npm:0.20.0" + "@oxlint-tsgolint/linux-x64": "npm:0.20.0" + "@oxlint-tsgolint/win32-arm64": "npm:0.20.0" + "@oxlint-tsgolint/win32-x64": "npm:0.20.0" + dependenciesMeta: + "@oxlint-tsgolint/darwin-arm64": + optional: true + "@oxlint-tsgolint/darwin-x64": + optional: true + "@oxlint-tsgolint/linux-arm64": + optional: true + "@oxlint-tsgolint/linux-x64": + optional: true + "@oxlint-tsgolint/win32-arm64": + optional: true + "@oxlint-tsgolint/win32-x64": + optional: true + bin: + tsgolint: bin/tsgolint.js + checksum: 10c0/9521a8e6aaea637592cda093bfb9220eb8a728bfccc980cc82de0011ed84733f1a42c629dfff8574a023e40e48c2dcdaf1675f0cf11aa92d164d5ccca1305c52 + languageName: node + linkType: hard + +"oxlint@npm:=1.58.0": + version: 1.58.0 + resolution: "oxlint@npm:1.58.0" + dependencies: + "@oxlint/binding-android-arm-eabi": "npm:1.58.0" + "@oxlint/binding-android-arm64": "npm:1.58.0" + "@oxlint/binding-darwin-arm64": "npm:1.58.0" + "@oxlint/binding-darwin-x64": "npm:1.58.0" + "@oxlint/binding-freebsd-x64": "npm:1.58.0" + "@oxlint/binding-linux-arm-gnueabihf": "npm:1.58.0" + "@oxlint/binding-linux-arm-musleabihf": "npm:1.58.0" + "@oxlint/binding-linux-arm64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-arm64-musl": "npm:1.58.0" + "@oxlint/binding-linux-ppc64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-riscv64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-riscv64-musl": "npm:1.58.0" + "@oxlint/binding-linux-s390x-gnu": "npm:1.58.0" + "@oxlint/binding-linux-x64-gnu": "npm:1.58.0" + "@oxlint/binding-linux-x64-musl": "npm:1.58.0" + "@oxlint/binding-openharmony-arm64": "npm:1.58.0" + "@oxlint/binding-win32-arm64-msvc": "npm:1.58.0" + "@oxlint/binding-win32-ia32-msvc": "npm:1.58.0" + "@oxlint/binding-win32-x64-msvc": "npm:1.58.0" + peerDependencies: + oxlint-tsgolint: ">=0.18.0" + dependenciesMeta: + "@oxlint/binding-android-arm-eabi": + optional: true + "@oxlint/binding-android-arm64": + optional: true + "@oxlint/binding-darwin-arm64": + optional: true + "@oxlint/binding-darwin-x64": + optional: true + "@oxlint/binding-freebsd-x64": + optional: true + "@oxlint/binding-linux-arm-gnueabihf": + optional: true + "@oxlint/binding-linux-arm-musleabihf": + optional: true + "@oxlint/binding-linux-arm64-gnu": + optional: true + "@oxlint/binding-linux-arm64-musl": + optional: true + "@oxlint/binding-linux-ppc64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-musl": + optional: true + "@oxlint/binding-linux-s390x-gnu": + optional: true + "@oxlint/binding-linux-x64-gnu": + optional: true + "@oxlint/binding-linux-x64-musl": + optional: true + "@oxlint/binding-openharmony-arm64": + optional: true + "@oxlint/binding-win32-arm64-msvc": + optional: true + "@oxlint/binding-win32-ia32-msvc": + optional: true + "@oxlint/binding-win32-x64-msvc": + optional: true + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + bin: + oxlint: bin/oxlint + checksum: 10c0/b766362cf700b842077f7a4873b971c8f31dd05f103c28e0c0a07141a24fca2e03a79b43570006010629c20b96d214fadfb81bb0297307e72250af3504a7e59f + languageName: node + linkType: hard + "p-finally@npm:^1.0.0": version: 1.0.0 resolution: "p-finally@npm:1.0.0" @@ -24909,6 +25574,17 @@ __metadata: languageName: node linkType: hard +"pixelmatch@npm:^7.1.0": + version: 7.1.0 + resolution: "pixelmatch@npm:7.1.0" + dependencies: + pngjs: "npm:^7.0.0" + bin: + pixelmatch: bin/pixelmatch + checksum: 10c0/ff069f92edaa841ac9b58b0ab74e1afa1f3b5e770eea0218c96bac1da4e752f5f6b79a0f9c4ba6b02afb955d39b8c78bcc3cc884f8122b67a1f2efbbccbe1a73 + languageName: node + linkType: hard + "pkg-dir@npm:^3.0.0": version: 3.0.0 resolution: "pkg-dir@npm:3.0.0" @@ -28707,6 +29383,7 @@ __metadata: unique-string: "npm:^3.0.0" use-resize-observer: "npm:^9.1.0" use-sync-external-store: "npm:^1.5.0" + vite-plus: "npm:^0.1.16" watchpack: "npm:^2.5.0" wrap-ansi: "npm:^9.0.2" ws: "npm:^8.18.0" @@ -30918,6 +31595,49 @@ __metadata: languageName: node linkType: hard +"vite-plus@npm:^0.1.16": + version: 0.1.16 + resolution: "vite-plus@npm:0.1.16" + dependencies: + "@oxc-project/types": "npm:=0.123.0" + "@voidzero-dev/vite-plus-core": "npm:0.1.16" + "@voidzero-dev/vite-plus-darwin-arm64": "npm:0.1.16" + "@voidzero-dev/vite-plus-darwin-x64": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-arm64-gnu": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-arm64-musl": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-x64-gnu": "npm:0.1.16" + "@voidzero-dev/vite-plus-linux-x64-musl": "npm:0.1.16" + "@voidzero-dev/vite-plus-test": "npm:0.1.16" + "@voidzero-dev/vite-plus-win32-arm64-msvc": "npm:0.1.16" + "@voidzero-dev/vite-plus-win32-x64-msvc": "npm:0.1.16" + oxfmt: "npm:=0.43.0" + oxlint: "npm:=1.58.0" + oxlint-tsgolint: "npm:=0.20.0" + dependenciesMeta: + "@voidzero-dev/vite-plus-darwin-arm64": + optional: true + "@voidzero-dev/vite-plus-darwin-x64": + optional: true + "@voidzero-dev/vite-plus-linux-arm64-gnu": + optional: true + "@voidzero-dev/vite-plus-linux-arm64-musl": + optional: true + "@voidzero-dev/vite-plus-linux-x64-gnu": + optional: true + "@voidzero-dev/vite-plus-linux-x64-musl": + optional: true + "@voidzero-dev/vite-plus-win32-arm64-msvc": + optional: true + "@voidzero-dev/vite-plus-win32-x64-msvc": + optional: true + bin: + oxfmt: bin/oxfmt + oxlint: bin/oxlint + vp: bin/vp + checksum: 10c0/480651acc9f57e5a8bb1e1506aeb916b452ce17da9f2f670868452602652782c3ae73eccf0b8f5be47ce6b5616fb0c055d042a3e818312fc5a1c88db66b9f37d + languageName: node + linkType: hard + "vite-tsconfig-paths@npm:^5.1.4": version: 5.1.4 resolution: "vite-tsconfig-paths@npm:5.1.4" @@ -32039,7 +32759,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0, ws@npm:^8.19.0": +"ws@npm:^8.18.0, ws@npm:^8.18.3, ws@npm:^8.19.0": version: 8.20.0 resolution: "ws@npm:8.20.0" peerDependencies: From 2fe7352e6163aaafb1fa7de1b7b93d6a94aba66e Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 14:35:42 +0200 Subject: [PATCH 7/8] fix: types --- .../js-package-manager/vite-plus-versions.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/code/core/src/common/js-package-manager/vite-plus-versions.ts b/code/core/src/common/js-package-manager/vite-plus-versions.ts index affe1eadd64e..e603958b0926 100644 --- a/code/core/src/common/js-package-manager/vite-plus-versions.ts +++ b/code/core/src/common/js-package-manager/vite-plus-versions.ts @@ -1,15 +1,7 @@ import { logger } from 'storybook/internal/node-logger'; -export interface VitePlusVersions { - vite?: string; - vitest?: string; - rolldown?: string; - tsdown?: string; - [key: string]: string | undefined; -} - /** Cached result: undefined = not yet checked, null = not available */ -let cachedVersions: VitePlusVersions | null | undefined; +let cachedVersions: Record | null | undefined; /** * Attempts to load vendored package versions from `vite-plus/versions`. @@ -20,14 +12,14 @@ let cachedVersions: VitePlusVersions | null | undefined; * * Returns null when vite-plus is not installed or lacks the `/versions` export (older versions). */ -export async function getVitePlusVersions(): Promise { +export async function getVitePlusVersions(): Promise | null> { if (cachedVersions !== undefined) { return cachedVersions; } try { const mod = await import('vite-plus/versions'); - const versions: VitePlusVersions = mod.versions ?? mod; + const versions = mod.versions ?? mod; if (versions && typeof versions.vite === 'string') { logger.debug(`Detected vite-plus: vite=${versions.vite}, vitest=${versions.vitest ?? 'N/A'}`); From 4bade0e07900bfe1f7fb073f66fbad6d31c63467 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 9 Apr 2026 16:05:32 +0200 Subject: [PATCH 8/8] fix: move peerdeps into code/core --- code/core/package.json | 6 +++++- code/package.json | 8 -------- yarn.lock | 8 +++----- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/code/core/package.json b/code/core/package.json index 269295b3c33a..e843a15b9820 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -379,11 +379,15 @@ "zod": "^3.25.76" }, "peerDependencies": { - "prettier": "^2 || ^3" + "prettier": "^2 || ^3", + "vite-plus": "^0.1.15" }, "peerDependenciesMeta": { "prettier": { "optional": true + }, + "vite-plus": { + "optional": true } }, "publishConfig": { diff --git a/code/package.json b/code/package.json index 88c96ae7f394..3822e86ff021 100644 --- a/code/package.json +++ b/code/package.json @@ -154,14 +154,6 @@ "built": false } }, - "peerDependencies": { - "vite-plus": "^0.1.15" - }, - "peerDependenciesMeta": { - "vite-plus": { - "optional": true - } - }, "collective": { "type": "opencollective", "url": "https://opencollective.com/storybook" diff --git a/yarn.lock b/yarn.lock index e4883b221775..5d91f8cc3dee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8557,8 +8557,6 @@ __metadata: vite-plugin-inspect: "npm:^11.0.0" vitest: "npm:^4.1.0" wait-on: "npm:^8.0.3" - peerDependencies: - vite-plus: ^0.1.15 dependenciesMeta: ejs: built: false @@ -8575,9 +8573,6 @@ __metadata: built: false yorkie: built: false - peerDependenciesMeta: - vite-plus: - optional: true languageName: unknown linkType: soft @@ -29390,9 +29385,12 @@ __metadata: zod: "npm:^3.25.76" peerDependencies: prettier: ^2 || ^3 + vite-plus: ^0.1.15 peerDependenciesMeta: prettier: optional: true + vite-plus: + optional: true bin: storybook: ./dist/bin/dispatcher.js languageName: unknown