diff --git a/.github/scripts/upgrade-deps.ts b/.github/scripts/upgrade-deps.ts index 0d0f3958d9..1645cb5844 100644 --- a/.github/scripts/upgrade-deps.ts +++ b/.github/scripts/upgrade-deps.ts @@ -63,11 +63,6 @@ type PnpmWorkspaceEntry = { newVersion: string; }; -type PackageJson = { - devDependencies?: Record; - peerDependencies?: Record; -}; - const STABLE_SEMVER_TAG_RE = /^v?\d+\.\d+\.\d+$/; const isFullSha = (s: string): boolean => /^[0-9a-f]{40}$/.test(s); @@ -465,23 +460,6 @@ async function updateReadmeVitestPins(vitestVersion: string): Promise { recordChange('README vitest pins', oldVersion ?? null, vitestVersion); } -// ============ Update packages/core/package.json ============ -async function updateCorePackage(devtoolsVersion: string): Promise { - const filePath = path.join(ROOT, 'packages/core/package.json'); - const pkg: PackageJson = readJsonFile(filePath); - - const devDependencies = pkg.devDependencies; - const currentDevtools = devDependencies?.['@vitejs/devtools']; - if (!currentDevtools) { - return; - } - devDependencies['@vitejs/devtools'] = `^${devtoolsVersion}`; - recordChange('@vitejs/devtools', currentDevtools.replace(/^[\^~]/, ''), devtoolsVersion); - - fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n'); - console.log('Updated packages/core/package.json'); -} - // ============ Write metadata files for PR description ============ function writeMetaFiles(): void { if (!META_DIR) { @@ -565,7 +543,6 @@ const [ tsdownVersion, stableTsdownMigrateVersion, lightningcssVersion, - devtoolsVersion, oxcNodeCliVersion, oxcNodeCoreVersion, oxfmtVersion, @@ -582,7 +559,6 @@ const [ getLatestNpmVersion('tsdown-migrate'), // Mirror exactly what the bundled @tsdown/css depends on. getNpmDependencyRange('@tsdown/css', 'lightningcss'), - getLatestNpmVersion('@vitejs/devtools'), getLatestNpmVersion('@oxc-node/cli'), getLatestNpmVersion('@oxc-node/core'), getLatestNpmVersion('oxfmt'), @@ -599,7 +575,6 @@ console.log(`vitest: ${vitestVersion}`); console.log(`tsdown: ${tsdownVersion}`); console.log(`tsdown-migrate (stable): ${stableTsdownMigrateVersion}`); console.log(`lightningcss (from @tsdown/css): ${lightningcssVersion}`); -console.log(`@vitejs/devtools: ${devtoolsVersion}`); console.log(`@oxc-node/cli: ${oxcNodeCliVersion}`); console.log(`@oxc-node/core: ${oxcNodeCoreVersion}`); console.log(`oxfmt: ${oxfmtVersion}`); @@ -630,8 +605,6 @@ await updatePnpmWorkspace({ await updateTsdownMigrateVersion(tsdownVersion, stableTsdownMigrateVersion); await updateVitestVersionConstant(vitestVersion); await updateReadmeVitestPins(vitestVersion); -await updateCorePackage(devtoolsVersion); - writeMetaFiles(); console.log('Done!'); diff --git a/packages/core/build.ts b/packages/core/build.ts index dddd165f2d..02a3515bd3 100644 --- a/packages/core/build.ts +++ b/packages/core/build.ts @@ -498,11 +498,10 @@ async function bundleTsdown() { await copyFile(join(tsdownSourceDir, 'client.d.ts'), join(projectDir, 'dist/tsdown/client.d.ts')); } -// Ensure a bundled chunk imports the given ansis color helpers (e.g. `bold`, -// `red`) from the shared `main-*.js` chunk. tsdown's logger module does not -// import every color the Vite+ branding uses, so after the logger patches we -// add any missing ones, resolving their (minified) export aliases from main's -// own `export { ... }` map so the fix survives rolldown renaming them. +// Ensure a bundled chunk has the given ansis color helpers (e.g. `bold`, `red`). +// Rolldown can inline ansis into the logger chunk or keep it in a shared chunk. +// For the latter layout, add imports for any missing helpers by resolving their +// minified aliases from the shared chunk's own `export { ... }` map. async function ensureAnsisImports( content: string, names: string[], @@ -515,10 +514,6 @@ async function ensureAnsisImports( // chunk actually re-exports it. const importRe = /import \{([^}]*)\} from "(\.\/[^"]+\.js)";/g; const imports = [...content.matchAll(importRe)]; - if (imports.length === 0) { - throw new Error('ensureAnsisImports: no relative chunk import found in branded logger chunk'); - } - // Every binding already in scope across all imports (its local name). const localNames = new Set(); for (const [, bindings] of imports) { @@ -531,10 +526,17 @@ async function ensureAnsisImports( localNames.add(aliased ? aliased[1] : trimmed); } } - const missing = names.filter((name) => !localNames.has(name)); + // Rolldown can also inline ansis into the logger chunk. Detect its destructured + // declarations so we do not try to import a binding that is already local. + const isLocallyDeclared = (name: string) => + new RegExp(`\\b(?:const|let|var)\\s+(?:${name}\\b|\\{[^}]*\\b${name}\\b)`).test(content); + const missing = names.filter((name) => !localNames.has(name) && !isLocallyDeclared(name)); if (missing.length === 0) { return content; } + if (imports.length === 0) { + throw new Error('ensureAnsisImports: no relative chunk import found in branded logger chunk'); + } // Group missing colors by the imported chunk that re-exports them. Chunks // re-export colors as ` as ` (e.g. `bold as i`); the consumer diff --git a/packages/core/package.json b/packages/core/package.json index 13a5d6172c..73b853e676 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -128,7 +128,7 @@ "@oxc-node/cli": "catalog:", "@tsdown/css": "catalog:", "@tsdown/exe": "catalog:", - "@vitejs/devtools": "^0.5.2", + "@vitejs/devtools": "^0.4.12", "es-module-lexer": "^1.7.0", "hookable": "^6.0.1", "magic-string": "^0.30.21", diff --git a/packages/tools/src/__tests__/sync-remote-deps.spec.ts b/packages/tools/src/__tests__/sync-remote-deps.spec.ts index 9c0ce531ad..82ef13c409 100644 --- a/packages/tools/src/__tests__/sync-remote-deps.spec.ts +++ b/packages/tools/src/__tests__/sync-remote-deps.spec.ts @@ -1,7 +1,35 @@ import * as semver from 'semver'; import { describe, expect, test } from 'vitest'; -import { mergePnpmWorkspaces, syncCargoOxcVersions } from '../sync-remote-deps.ts'; +import { + mergePnpmWorkspaces, + syncCargoOxcVersions, + syncViteDevtoolsDependencies, +} from '../sync-remote-deps.ts'; + +describe('syncViteDevtoolsDependencies()', () => { + test('uses the DevTools ranges declared by Vite', () => { + const corePackage = { + devDependencies: { '@vitejs/devtools': '^0.6.1' }, + peerDependencies: { '@vitejs/devtools': '^0.4.0 || ^0.5.0 || ^0.6.0' }, + }; + const vitePackage = { + devDependencies: { '@vitejs/devtools': '^0.4.12' }, + peerDependencies: { '@vitejs/devtools': '^0.4.0 || ^0.5.0' }, + }; + + syncViteDevtoolsDependencies(corePackage, vitePackage); + + expect(corePackage.devDependencies['@vitejs/devtools']).toBe('^0.4.12'); + expect(corePackage.peerDependencies['@vitejs/devtools']).toBe('^0.4.0 || ^0.5.0'); + }); + + test('fails when Vite no longer declares a DevTools range', () => { + expect(() => syncViteDevtoolsDependencies({}, {})).toThrow( + 'Vite package.json must define @vitejs/devtools in devDependencies and peerDependencies', + ); + }); +}); describe('mergePnpmWorkspaces() minimumReleaseAgeExclude', () => { test('drops versioned upstream entries already covered by a glob or bare pattern', () => { diff --git a/packages/tools/src/sync-remote-deps.ts b/packages/tools/src/sync-remote-deps.ts index 0ff4cf45c2..28e96c2876 100755 --- a/packages/tools/src/sync-remote-deps.ts +++ b/packages/tools/src/sync-remote-deps.ts @@ -24,6 +24,8 @@ interface PnpmWorkspace { interface PackageJson { name?: string; version?: string; + devDependencies?: Record; + peerDependencies?: Record; exports?: Record; [key: string]: unknown; } @@ -33,6 +35,7 @@ type ExportValue = string | { [condition: string]: string | ExportValue } | null const ROLLDOWN_DIR = 'rolldown'; const VITE_DIR = 'vite'; const CORE_PACKAGE_PATH = 'packages/core'; +const VITE_DEVTOOLS_PACKAGE = '@vitejs/devtools'; function log(message: string) { console.log(`[sync-rolldown] ${message}`); @@ -332,6 +335,22 @@ function mergePackageExports( ); } +export function syncViteDevtoolsDependencies(corePkg: PackageJson, vitePkg: PackageJson): void { + const devRange = vitePkg.devDependencies?.[VITE_DEVTOOLS_PACKAGE]; + const peerRange = vitePkg.peerDependencies?.[VITE_DEVTOOLS_PACKAGE]; + + if (!devRange || !peerRange) { + throw new Error( + `Vite package.json must define ${VITE_DEVTOOLS_PACKAGE} in devDependencies and peerDependencies`, + ); + } + + corePkg.devDependencies ??= {}; + corePkg.peerDependencies ??= {}; + corePkg.devDependencies[VITE_DEVTOOLS_PACKAGE] = devRange; + corePkg.peerDependencies[VITE_DEVTOOLS_PACKAGE] = peerRange; +} + // Oxc-related packages that should use the higher version on conflict const OXC_PACKAGE_PREFIXES = [ '@oxc-project/', @@ -887,6 +906,17 @@ export async function syncRemote() { log('✓ pnpm-workspace.yaml updated successfully!'); + const corePackagePath = join(rootDir, CORE_PACKAGE_PATH, 'package.json'); + const rolldownVitePackagePath = join(rootDir, VITE_DIR, 'packages', 'vite', 'package.json'); + const corePackage = JSON.parse(readFileSync(corePackagePath, 'utf-8')) as PackageJson; + const rolldownVitePackage = JSON.parse( + readFileSync(rolldownVitePackagePath, 'utf-8'), + ) as PackageJson; + + syncViteDevtoolsDependencies(corePackage, rolldownVitePackage); + writeFileSync(corePackagePath, JSON.stringify(corePackage, null, 2) + '\n', 'utf-8'); + log('✓ package.json Vite DevTools ranges updated successfully!'); + execCommand('pnpm install --no-frozen-lockfile', rootDir); // Keep the root Cargo.toml oxc pins in lockstep with the vendored rolldown. @@ -896,9 +926,7 @@ export async function syncRemote() { // Merge package.json exports log('Merging package.json exports...'); - const corePackagePath = join(rootDir, CORE_PACKAGE_PATH, 'package.json'); const rolldownPackagePath = join(rootDir, ROLLDOWN_DIR, 'packages', 'rolldown', 'package.json'); - const rolldownVitePackagePath = join(rootDir, VITE_DIR, 'packages', 'vite', 'package.json'); const pluginutilsPackagePath = join( rootDir, ROLLDOWN_DIR, @@ -910,11 +938,7 @@ export async function syncRemote() { 'package.json', ); - const corePackage = JSON.parse(readFileSync(corePackagePath, 'utf-8')) as PackageJson; const rolldownPackage = JSON.parse(readFileSync(rolldownPackagePath, 'utf-8')) as PackageJson; - const rolldownVitePackage = JSON.parse( - readFileSync(rolldownVitePackagePath, 'utf-8'), - ) as PackageJson; const pluginutilsPackage = JSON.parse( readFileSync(pluginutilsPackagePath, 'utf-8'), ) as PackageJson; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c1d5398c46..436017c5d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -560,8 +560,8 @@ importers: specifier: 'catalog:' version: 0.22.14(tsdown@0.22.14) '@vitejs/devtools': - specifier: ^0.5.2 - version: 0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(vite@packages+core) + specifier: ^0.4.12 + version: 0.4.12(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@packages+core) es-module-lexer: specifier: ^1.7.0 version: 1.7.0 @@ -609,7 +609,7 @@ importers: version: 1.2.2 tsdown: specifier: 'catalog:' - version: 0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(srvx@0.12.7)(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1) + version: 0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.4.12(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1) vite: specifier: workspace:@voidzero-dev/vite-plus-core@* version: 'link:' @@ -9538,6 +9538,7 @@ snapshots: devframe: 0.9.5(cac@7.0.0)(srvx@0.12.7) optionalDependencies: '@devframes/json-render': 0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)) + optional: true '@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.7))': dependencies: @@ -9564,11 +9565,13 @@ snapshots: transitivePeerDependencies: - crossws - ocache + optional: true '@devframes/json-render-ui@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7))': optionalDependencies: '@devframes/hub': 0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)) devframe: 0.9.5(cac@7.0.0)(srvx@0.12.7) + optional: true '@devframes/json-render@0.8.2(@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.7)))(devframe@0.8.2(cac@7.0.0)(srvx@0.12.7))': dependencies: @@ -9587,6 +9590,7 @@ snapshots: zod: 4.4.3 optionalDependencies: '@devframes/hub': 0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)) + optional: true '@devframes/plugin-inspect@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.7))(valibot@1.4.2(typescript@6.0.3))(vite@packages+core)': dependencies: @@ -9605,6 +9609,7 @@ snapshots: devframe: 0.9.5(cac@7.0.0)(srvx@0.12.7) optionalDependencies: vite: link:packages/core + optional: true '@devframes/plugin-messages@0.8.2(@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.7)))(devframe@0.8.2(cac@7.0.0)(srvx@0.12.7))(vite@packages+core)': dependencies: @@ -9623,6 +9628,7 @@ snapshots: devframe: 0.9.5(cac@7.0.0)(srvx@0.12.7) optionalDependencies: vite: link:packages/core + optional: true '@devframes/plugin-terminals@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.7))(vite@packages+core)': dependencies: @@ -9644,11 +9650,13 @@ snapshots: transitivePeerDependencies: - '@devframes/hub' - '@devframes/hub-ui' + optional: true '@devframes/service-open@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7))': dependencies: devframe: 0.9.5(cac@7.0.0)(srvx@0.12.7) pathe: 2.0.3 + optional: true '@devframes/vite@0.9.5(@devframes/hub-ui@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7))(vite@packages+core)': dependencies: @@ -9658,6 +9666,7 @@ snapshots: '@devframes/hub': 0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)) '@devframes/hub-ui': 0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)) vite: link:packages/core + optional: true '@edge-runtime/primitives@6.0.0': optional: true @@ -11394,7 +11403,7 @@ snapshots: lightningcss: 1.33.0 postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.26)(tsx@4.23.12)(yaml@2.9.0) rolldown: link:rolldown/packages/rolldown - tsdown: 0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(srvx@0.12.7)(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1) + tsdown: 0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1) optionalDependencies: postcss: 8.5.26 postcss-import: 16.2.0(postcss@8.5.26) @@ -11409,7 +11418,7 @@ snapshots: dependencies: obug: 2.1.4 tinyexec: 1.3.0 - tsdown: 0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(srvx@0.12.7)(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1) + tsdown: 0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1) verkit: 0.3.0 '@tybys/wasm-util@0.10.3': @@ -11758,6 +11767,7 @@ snapshots: - crossws - ocache - srvx + optional: true '@vitejs/devtools@0.4.12(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@packages+core)': dependencies: @@ -11813,6 +11823,7 @@ snapshots: - crossws - ocache - srvx + optional: true '@vitejs/release-scripts@1.9.2': dependencies: @@ -12889,6 +12900,7 @@ snapshots: transitivePeerDependencies: - ocache - srvx + optional: true dom-accessibility-api@0.5.16: {} @@ -15276,6 +15288,72 @@ snapshots: typescript: 6.0.3 optional: true + tsdown@0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.4.12(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1): + dependencies: + ansis: 4.3.1 + cac: 7.0.0 + defu: 6.1.7 + empathic: 2.0.1 + hookable: 6.1.1 + import-without-cache: 0.4.0 + obug: 2.1.4 + picomatch: 4.0.5 + rolldown: link:rolldown/packages/rolldown + rolldown-plugin-dts: 0.27.13(@typescript/native-preview@7.0.0-dev.20260605.1)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@6.0.3) + tinyexec: 1.3.0 + tinyglobby: 0.2.17 + tree-kill: 1.2.2 + unconfig-core: 7.5.0 + verkit: 0.3.0 + optionalDependencies: + '@arethetypeswrong/core': 0.18.2 + '@tsdown/css': 0.22.14(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.26))(postcss@8.5.26)(sass-embedded@1.102.0(source-map-js@1.2.1))(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0) + '@tsdown/exe': 0.22.14(tsdown@0.22.14) + '@vitejs/devtools': 0.4.12(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@packages+core) + publint: 0.3.24 + tsx: 4.23.12 + typescript: 6.0.3 + unplugin-unused: 0.5.6 + unrun: 0.3.1 + transitivePeerDependencies: + - '@typescript/native-preview' + - '@volar/typescript' + - oxc-resolver + - vue-tsc + + tsdown@0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1): + dependencies: + ansis: 4.3.1 + cac: 7.0.0 + defu: 6.1.7 + empathic: 2.0.1 + hookable: 6.1.1 + import-without-cache: 0.4.0 + obug: 2.1.4 + picomatch: 4.0.5 + rolldown: link:rolldown/packages/rolldown + rolldown-plugin-dts: 0.27.13(@typescript/native-preview@7.0.0-dev.20260605.1)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@6.0.3) + tinyexec: 1.3.0 + tinyglobby: 0.2.17 + tree-kill: 1.2.2 + unconfig-core: 7.5.0 + verkit: 0.3.0 + optionalDependencies: + '@arethetypeswrong/core': 0.18.2 + '@tsdown/css': 0.22.14(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.26))(postcss@8.5.26)(sass-embedded@1.102.0(source-map-js@1.2.1))(sass@1.102.0)(tsdown@0.22.14)(tsx@4.23.12)(yaml@2.9.0) + '@tsdown/exe': 0.22.14(tsdown@0.22.14) + '@vitejs/devtools': 0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(crossws@0.4.10(srvx@0.12.7))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(crossws@0.4.10(srvx@0.12.7))(srvx@0.12.7)(vite@packages+core) + publint: 0.3.24 + tsx: 4.23.12 + typescript: 6.0.3 + unplugin-unused: 0.5.6 + unrun: 0.3.1 + transitivePeerDependencies: + - '@typescript/native-preview' + - '@volar/typescript' + - oxc-resolver + - vue-tsc + tsdown@0.22.14(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.22.14)(@tsdown/exe@0.22.14)(@typescript/native-preview@7.0.0-dev.20260605.1)(@vitejs/devtools@0.5.2(@devframes/json-render@0.9.5(@devframes/hub@0.9.5(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(devframe@0.9.5(cac@7.0.0)(srvx@0.12.7)))(srvx@0.12.7)(vite@packages+core))(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.12)(typescript@6.0.3)(unplugin-unused@0.5.6)(unrun@0.3.1): dependencies: ansis: 4.3.1