From 0d3024218f3f758a6ad16b9cb00c5d74d5e38962 Mon Sep 17 00:00:00 2001 From: "voidzero-guard[bot]" <278573678+voidzero-guard[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 02:33:36 +0000 Subject: [PATCH 1/2] feat(deps): upgrade upstream dependencies - oxc-node: 4759ced -> v1.0.1 (6d5376d) - tsdown: 0.23.1 -> 0.23.2 - @tsdown/css: 0.23.1 -> 0.23.2 - @tsdown/exe: 0.23.1 -> 0.23.2 - @oxc-node/cli: 1.0.0 -> 1.0.1 - @oxc-node/core: 1.0.0 -> 1.0.1 - rolldown-plugin-dts: ^0.28.0 -> ^0.29.0-beta.2 - typescript: ~7.0.2 -> 7.1.0-beta Code changes: - pin TypeScript to 7.1.0-beta when Vite's compiler range can only select 7.0.x (packages/tools/src/sync-remote-deps.ts, tests in packages/tools/src/__tests__/sync-remote-yaml.spec.ts and packages/tools/src/__tests__/sync-remote-deps.spec.ts) - switch dts generation to the Oxc generator (packages/cli/tsdown.config.ts, packages/prompts/tsdown.config.ts) - add explicit type annotations required by the Oxc dts generator (packages/prompts/src/, packages/cli/src/define-config.ts, packages/cli/src/version.ts, packages/cli/src/oxlint-plugin.ts) - remove the @typescript/native-preview peer dependency (packages/core/package.json, packages/core/build.ts) - migrate the exports-map test to the TypeScript 7.1 API (packages/cli/src/__tests__/exports-map.spec.ts) - update pack snapshot for the TypeScript Go emit messages (crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md) - regenerate NAPI binding declarations from the oxc-node sync (packages/cli/binding/index.d.cts) --- .../snapshots/command_pack_monorepo.md | 8 +- packages/cli/binding/index.d.cts | 9 + .../cli/src/__tests__/exports-map.spec.ts | 19 +- packages/cli/src/define-config.ts | 2 +- packages/cli/src/oxlint-plugin.ts | 6 +- packages/cli/src/version.ts | 2 +- packages/cli/tsdown.config.ts | 7 +- packages/core/build.ts | 7 +- packages/core/package.json | 6 +- packages/prompts/src/box.ts | 2 +- packages/prompts/src/common.ts | 80 +-- packages/prompts/src/log.ts | 14 +- packages/prompts/src/messages.ts | 6 +- packages/prompts/src/note.ts | 2 +- packages/prompts/src/stream.ts | 14 +- packages/prompts/src/task-log.ts | 15 +- packages/prompts/src/task.ts | 2 +- packages/prompts/tsdown.config.ts | 6 + packages/tools/.upstream-versions.json | 2 +- .../src/__tests__/sync-remote-deps.spec.ts | 2 +- .../src/__tests__/sync-remote-yaml.spec.ts | 31 +- packages/tools/src/sync-remote-deps.ts | 23 +- pnpm-lock.yaml | 539 +++++++++++++----- pnpm-workspace.yaml | 14 +- 24 files changed, 579 insertions(+), 239 deletions(-) diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md index e1a364cf1e..a6980f9ba8 100644 --- a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md @@ -106,8 +106,8 @@ should hit cache from sub dir ℹ entry: ./src/sub/index.ts ℹ tsconfig: tsconfig.json ℹ Build start -warn: TypeScript 7.0 does not yet have a stable API and is experimental. Some options will be unavailable. -ℹ Emit types with typescript@7.0.2 +warn: TypeScript Go is experimental. Some options will be unavailable. +ℹ Emit types with TypeScript Go ℹ dist/index.mjs kB │ gzip: kB ℹ dist/index.d.mts kB │ gzip: kB ℹ 2 files, total: kB @@ -126,8 +126,8 @@ should hit cache from root after sub dir build ℹ entry: ./src/sub/index.ts ℹ tsconfig: tsconfig.json ℹ Build start -warn: TypeScript 7.0 does not yet have a stable API and is experimental. Some options will be unavailable. -ℹ Emit types with typescript@7.0.2 +warn: TypeScript Go is experimental. Some options will be unavailable. +ℹ Emit types with TypeScript Go ℹ dist/index.mjs kB │ gzip: kB ℹ dist/index.d.mts kB │ gzip: kB ℹ 2 files, total: kB diff --git a/packages/cli/binding/index.d.cts b/packages/cli/binding/index.d.cts index 9faf478f4b..42389277f9 100644 --- a/packages/cli/binding/index.d.cts +++ b/packages/cli/binding/index.d.cts @@ -1669,6 +1669,15 @@ export interface TypeScriptOptions { rewriteImportExtensions?: 'rewrite' | 'remove' | boolean; } +/** + * The selected tsconfig and its original source, sent to an asynchronous loader. + * `None` selects discovery explicitly, without consulting the receiving thread's env. + */ +export interface FrozenTsconfig { + path?: string; + source?: string; +} + export interface LoadContext { /** Export conditions of the relevant `package.json` */ conditions?: Array; diff --git a/packages/cli/src/__tests__/exports-map.spec.ts b/packages/cli/src/__tests__/exports-map.spec.ts index 9b3432aa36..409a69c436 100644 --- a/packages/cli/src/__tests__/exports-map.spec.ts +++ b/packages/cli/src/__tests__/exports-map.spec.ts @@ -17,8 +17,9 @@ import os from 'node:os'; import path from 'node:path'; import url from 'node:url'; -import { isStringLiteral } from 'typescript/unstable/ast'; -import { API, type Project } from 'typescript/unstable/sync'; +import { isStringLiteral } from 'typescript/ast/is'; +import { serverFS } from 'typescript/fs'; +import { API, type Project } from 'typescript/sync'; import { describe, expect, it } from 'vitest'; const cliPkgDir = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), '../..'); @@ -57,14 +58,22 @@ function withTypeProject( }, }), }; + // Overlay the virtual files on the host filesystem; every miss falls back + // to the OS so real on-disk sources (dependencies, lib files) still load. const api = new API({ fs: { - readFile: (file) => virtualFiles[file.replaceAll('\\', '/')], - fileExists: (file) => (file.replaceAll('\\', '/') in virtualFiles ? true : undefined), + directoryExists: serverFS.useOS, + fileExists: (file) => (file.replaceAll('\\', '/') in virtualFiles ? true : serverFS.useOS), + getAccessibleEntries: serverFS.useOS, + readFile: (file) => virtualFiles[file.replaceAll('\\', '/')] ?? serverFS.useOS, + realpath: serverFS.useOS, + stat: serverFS.useOS, + writeFile: serverFS.useOS, + removeFile: serverFS.useOS, }, }); try { - const project = api.updateSnapshot({ openProjects: [config] }).getProject(config); + const project = api.createSnapshot({ openProjects: [config] }).getConfiguredProject(config); expect(project).toBeDefined(); return check(project!); } finally { diff --git a/packages/cli/src/define-config.ts b/packages/cli/src/define-config.ts index 930c2ca9e4..a79ab1a60a 100644 --- a/packages/cli/src/define-config.ts +++ b/packages/cli/src/define-config.ts @@ -432,7 +432,7 @@ export function computeAutoInlineList( existingInline: (string | RegExp)[] | true | undefined, projectRoot: string, _createRequire: (from: string) => { resolve: (id: string) => string } = createRequire, - installedPackages = new Map(), + installedPackages: Map = new Map(), ): (string | RegExp)[] | null { // User opted into "inline everything" — don't touch. if (existingInline === true) { diff --git a/packages/cli/src/oxlint-plugin.ts b/packages/cli/src/oxlint-plugin.ts index 3a7e589600..952df9b223 100644 --- a/packages/cli/src/oxlint-plugin.ts +++ b/packages/cli/src/oxlint-plugin.ts @@ -2,7 +2,7 @@ import fs from 'node:fs'; import path from 'node:path'; import { definePlugin, defineRule } from '@oxlint/plugins'; -import type { Context, ESTree } from '@oxlint/plugins'; +import type { Context, ESTree, Plugin, Rule } from '@oxlint/plugins'; import cliPackage from '../package.json' with { type: 'json' }; import { @@ -362,7 +362,7 @@ function reportLegacyOxlintPluginApiImport( reportSpecifier(context, literal, VITE_PLUS_LINT_PLUGINS); } -export const preferVitePlusImportsRule = defineRule({ +export const preferVitePlusImportsRule: Rule = defineRule({ meta: { type: 'problem', docs: { @@ -435,7 +435,7 @@ export const preferVitePlusImportsRule = defineRule({ }, }); -const plugin = definePlugin({ +const plugin: Plugin = definePlugin({ meta: { name: VITE_PLUS_OXLINT_PLUGIN_NAME, }, diff --git a/packages/cli/src/version.ts b/packages/cli/src/version.ts index 2a62af26b9..f6c26da892 100644 --- a/packages/cli/src/version.ts +++ b/packages/cli/src/version.ts @@ -81,7 +81,7 @@ async function resolveToolVersions(localPackagePath: string): Promise { const globalVersion = getGlobalVersion(); const cliVersion = getCliVersion(); const localMetadata = getLocalMetadata(cwd); diff --git a/packages/cli/tsdown.config.ts b/packages/cli/tsdown.config.ts index a9b7a3977a..cc8b431e1c 100644 --- a/packages/cli/tsdown.config.ts +++ b/packages/cli/tsdown.config.ts @@ -99,7 +99,12 @@ export default defineConfig([ format: 'esm', fixedExtension: false, shims: true, - dts: true, + dts: { + // Generate declarations with Oxc so the build does not depend on the + // resolved TypeScript version: rolldown-plugin-dts requires the classic + // tsc API (TypeScript <7) or the tsgo API (TypeScript 7.1+). + generator: 'oxc', + }, clean: true, // NAPI binding uses a relative path that tsdown can't auto-detect from package.json deps: { neverBundle: [/\.\.\/binding\/index\.(js|cjs)/] }, diff --git a/packages/core/build.ts b/packages/core/build.ts index 203addbd8d..2f3727effe 100644 --- a/packages/core/build.ts +++ b/packages/core/build.ts @@ -742,10 +742,9 @@ async function mergePackageJson() { ); // Merge peerDependencies from rolldown-plugin-dts, tsdown and vite. The bundled - // dts plugin still resolves `vue-tsc`, `@volar/typescript`, - // `@vue/language-core` and `@typescript/native-preview` from core at runtime, - // and its declarations import their types, so isolated installs need them - // declared here. + // dts plugin still resolves `vue-tsc`, `@volar/typescript` and + // `@vue/language-core` from core at runtime, and its declarations import + // their types, so isolated installs need them declared here. destPkg.peerDependencies = { ...dtsPkg.peerDependencies, ...tsdownPkg.peerDependencies, diff --git a/packages/core/package.json b/packages/core/package.json index e3d0933b20..63348a4cd0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -147,7 +147,6 @@ "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "@types/node": "^20.19.0 || >=22.12.0", - "@typescript/native-preview": "*", "@vitejs/devtools": "^0.7.1 || ^0.8.0", "@volar/typescript": "~2.4.0", "@vue/language-core": "~3.2.0 || ~3.3.0", @@ -168,9 +167,6 @@ "yaml": "^2.4.2" }, "peerDependenciesMeta": { - "@typescript/native-preview": { - "optional": true - }, "@volar/typescript": { "optional": true }, @@ -241,6 +237,6 @@ "bundledVersions": { "vite": "8.3.5", "rolldown": "1.2.15", - "tsdown": "0.23.1" + "tsdown": "0.23.2" } } diff --git a/packages/prompts/src/box.ts b/packages/prompts/src/box.ts index 88a0781e17..5c162a6d92 100644 --- a/packages/prompts/src/box.ts +++ b/packages/prompts/src/box.ts @@ -64,7 +64,7 @@ function getPaddingForLine( const defaultFormatBorder = color.gray; -export const box = (message = '', title = '', opts?: BoxOptions) => { +export const box = (message = '', title = '', opts?: BoxOptions): void => { const output: Writable = opts?.output ?? process.stdout; const columns = getColumns(output); const borderWidth = 1; diff --git a/packages/prompts/src/common.ts b/packages/prompts/src/common.ts index d6918cfa0f..182920ed1d 100644 --- a/packages/prompts/src/common.ts +++ b/packages/prompts/src/common.ts @@ -14,7 +14,7 @@ export const wrapTextWithPrefix = ( output: Writable | undefined, text: string, prefix: string, - startPrefix = prefix, + startPrefix: string = prefix, ): string => { const width = Math.max( 1, @@ -58,8 +58,8 @@ export const optionText = ( .join('\n'); }; -export const SELECT_INSTRUCTIONS = ['↑/↓ navigate', 'Enter confirm']; -export const MULTISELECT_INSTRUCTIONS = ['↑/↓ navigate', 'Space select', 'Enter confirm']; +export const SELECT_INSTRUCTIONS: string[] = ['↑/↓ navigate', 'Enter confirm']; +export const MULTISELECT_INSTRUCTIONS: string[] = ['↑/↓ navigate', 'Space select', 'Enter confirm']; export const formatInstructionFooter = ( instructions: string[], hasGuide: boolean, @@ -71,47 +71,47 @@ export const formatInstructionFooter = ( hasGuide ? `${color.blue(S_BAR)} ` : ' ', ).split('\n'); -export const unicode = isUnicodeSupported(); +export const unicode: boolean = isUnicodeSupported(); export const isCI = (): boolean => process.env.CI === 'true'; export const isTTY = (output: Writable): boolean => { return (output as Writable & { isTTY?: boolean }).isTTY === true; }; -export const unicodeOr = (c: string, fallback: string) => (unicode ? c : fallback); -export const S_POINTER_ACTIVE = unicodeOr('›', '>'); +export const unicodeOr = (c: string, fallback: string): string => (unicode ? c : fallback); +export const S_POINTER_ACTIVE: string = unicodeOr('›', '>'); export const S_POINTER_INACTIVE = ' '; -export const S_STEP_ACTIVE = S_POINTER_ACTIVE; -export const S_STEP_CANCEL = unicodeOr('■', 'x'); -export const S_STEP_ERROR = unicodeOr('▲', 'x'); -export const S_STEP_SUBMIT = unicodeOr('◇', 'o'); - -export const S_BAR_START = unicodeOr('┌', 'T'); -export const S_BAR = unicodeOr('│', '|'); -export const S_BAR_END = unicodeOr('└', '—'); -export const S_BAR_START_RIGHT = unicodeOr('┐', 'T'); -export const S_BAR_END_RIGHT = unicodeOr('┘', '—'); - -export const S_RADIO_ACTIVE = S_POINTER_ACTIVE; -export const S_RADIO_INACTIVE = S_POINTER_INACTIVE; -export const S_CHECKBOX_ACTIVE = unicodeOr('◻', '[•]'); -export const S_CHECKBOX_SELECTED = unicodeOr('◼', '[+]'); -export const S_CHECKBOX_INACTIVE = unicodeOr('◻', '[ ]'); -export const S_PASSWORD_MASK = unicodeOr('▪', '•'); - -export const S_BAR_H = unicodeOr('─', '-'); -export const S_CORNER_TOP_RIGHT = unicodeOr('╮', '+'); -export const S_CONNECT_LEFT = unicodeOr('├', '+'); -export const S_CORNER_BOTTOM_RIGHT = unicodeOr('╯', '+'); -export const S_CORNER_BOTTOM_LEFT = unicodeOr('╰', '+'); -export const S_CORNER_TOP_LEFT = unicodeOr('╭', '+'); - -export const S_INFO = unicodeOr('●', '•'); -export const S_SUCCESS = unicodeOr('◆', '*'); -export const S_WARN = unicodeOr('▲', '!'); -export const S_ERROR = unicodeOr('■', 'x'); - -export const completeColor = (value: string) => color.gray(value); - -export const symbol = (state: State) => { +export const S_STEP_ACTIVE: string = S_POINTER_ACTIVE; +export const S_STEP_CANCEL: string = unicodeOr('■', 'x'); +export const S_STEP_ERROR: string = unicodeOr('▲', 'x'); +export const S_STEP_SUBMIT: string = unicodeOr('◇', 'o'); + +export const S_BAR_START: string = unicodeOr('┌', 'T'); +export const S_BAR: string = unicodeOr('│', '|'); +export const S_BAR_END: string = unicodeOr('└', '—'); +export const S_BAR_START_RIGHT: string = unicodeOr('┐', 'T'); +export const S_BAR_END_RIGHT: string = unicodeOr('┘', '—'); + +export const S_RADIO_ACTIVE: string = S_POINTER_ACTIVE; +export const S_RADIO_INACTIVE: string = S_POINTER_INACTIVE; +export const S_CHECKBOX_ACTIVE: string = unicodeOr('◻', '[•]'); +export const S_CHECKBOX_SELECTED: string = unicodeOr('◼', '[+]'); +export const S_CHECKBOX_INACTIVE: string = unicodeOr('◻', '[ ]'); +export const S_PASSWORD_MASK: string = unicodeOr('▪', '•'); + +export const S_BAR_H: string = unicodeOr('─', '-'); +export const S_CORNER_TOP_RIGHT: string = unicodeOr('╮', '+'); +export const S_CONNECT_LEFT: string = unicodeOr('├', '+'); +export const S_CORNER_BOTTOM_RIGHT: string = unicodeOr('╯', '+'); +export const S_CORNER_BOTTOM_LEFT: string = unicodeOr('╰', '+'); +export const S_CORNER_TOP_LEFT: string = unicodeOr('╭', '+'); + +export const S_INFO: string = unicodeOr('●', '•'); +export const S_SUCCESS: string = unicodeOr('◆', '*'); +export const S_WARN: string = unicodeOr('▲', '!'); +export const S_ERROR: string = unicodeOr('■', 'x'); + +export const completeColor = (value: string): string => color.gray(value); + +export const symbol = (state: State): string => { switch (state) { case 'initial': case 'active': @@ -129,7 +129,7 @@ export const symbol = (state: State) => { } }; -export const symbolBar = (state: State) => { +export const symbolBar = (state: State): string => { switch (state) { case 'initial': case 'active': diff --git a/packages/prompts/src/log.ts b/packages/prompts/src/log.ts index a9882613f6..3f6f2d1cbf 100644 --- a/packages/prompts/src/log.ts +++ b/packages/prompts/src/log.ts @@ -29,7 +29,7 @@ export const log = { spacing = 0, withGuide, }: LogMessageOptions = {}, - ) => { + ): void => { const parts: string[] = []; const hasGuide = getGuide({ withGuide }); const spacingString = !hasGuide ? '' : secondarySymbol; @@ -59,23 +59,23 @@ export const log = { } output.write(`${parts.join('\n')}\n`); }, - info: (message: string, opts?: LogMessageOptions) => { + info: (message: string, opts?: LogMessageOptions): void => { log.message(message, { ...opts, symbol: color.blue(S_INFO) }); }, - success: (message: string, opts?: LogMessageOptions) => { + success: (message: string, opts?: LogMessageOptions): void => { log.message(message, { ...opts, symbol: completeColor(S_SUCCESS) }); }, - step: (message: string, opts?: LogMessageOptions) => { + step: (message: string, opts?: LogMessageOptions): void => { log.message(message, { ...opts, symbol: completeColor(S_STEP_SUBMIT) }); }, - warn: (message: string, opts?: LogMessageOptions) => { + warn: (message: string, opts?: LogMessageOptions): void => { log.message(message, { ...opts, symbol: color.yellow(S_WARN) }); }, /** alias for `log.warn()`. */ - warning: (message: string, opts?: LogMessageOptions) => { + warning: (message: string, opts?: LogMessageOptions): void => { log.warn(message, opts); }, - error: (message: string, opts?: LogMessageOptions) => { + error: (message: string, opts?: LogMessageOptions): void => { log.message(message, { ...opts, symbol: color.red(S_ERROR) }); }, }; diff --git a/packages/prompts/src/messages.ts b/packages/prompts/src/messages.ts index 7a2e1a0708..79bcd8ceb1 100644 --- a/packages/prompts/src/messages.ts +++ b/packages/prompts/src/messages.ts @@ -4,19 +4,19 @@ import color from 'picocolors'; import { type CommonOptions, getGuide, S_BAR, S_BAR_START, S_BAR_END } from './common.js'; -export const cancel = (message = '', opts?: CommonOptions) => { +export const cancel = (message = '', opts?: CommonOptions): void => { const output: Writable = opts?.output ?? process.stdout; const prefix = getGuide(opts) ? `${color.gray(S_BAR_END)} ` : ''; output.write(`${prefix}${color.red(message)}\n\n`); }; -export const intro = (title = '', opts?: CommonOptions) => { +export const intro = (title = '', opts?: CommonOptions): void => { const output: Writable = opts?.output ?? process.stdout; const prefix = getGuide(opts) ? `${color.gray(S_BAR_START)} ` : ''; output.write(`${prefix}${title}\n\n`); }; -export const outro = (message = '', opts?: CommonOptions) => { +export const outro = (message = '', opts?: CommonOptions): void => { const output: Writable = opts?.output ?? process.stdout; const prefix = getGuide(opts) ? `${color.gray(S_BAR)}\n${color.gray(S_BAR_END)} ` : ''; output.write(`${prefix}${message}\n\n`); diff --git a/packages/prompts/src/note.ts b/packages/prompts/src/note.ts index db2e45b983..197c4a06e5 100644 --- a/packages/prompts/src/note.ts +++ b/packages/prompts/src/note.ts @@ -9,7 +9,7 @@ export interface NoteOptions extends CommonOptions { } /** A compact, enclosed note. Guide bars never replace its side borders. */ -export const note = (message = '', title = '', opts?: NoteOptions) => { +export const note = (message = '', title = '', opts?: NoteOptions): void => { const content = opts?.format ? message.split('\n').map(opts.format).join('\n') : message; box(`\n${content}\n`, title, { ...opts, width: 'auto', rounded: true, formatBorder: color.gray }); }; diff --git a/packages/prompts/src/stream.ts b/packages/prompts/src/stream.ts index 15dfa2da60..f4bc6e5471 100644 --- a/packages/prompts/src/stream.ts +++ b/packages/prompts/src/stream.ts @@ -16,7 +16,7 @@ export const stream = { message: async ( iterable: Iterable | AsyncIterable, { symbol = '' }: LogMessageOptions = {}, - ) => { + ): Promise => { process.stdout.write(symbol ? `${symbol} ` : ''); const initialWidth = symbol ? 2 : 0; let lineWidth = initialWidth; @@ -36,23 +36,23 @@ export const stream = { } process.stdout.write('\n'); }, - info: (iterable: Iterable | AsyncIterable) => { + info: (iterable: Iterable | AsyncIterable): Promise => { return stream.message(iterable, { symbol: color.blue(S_INFO) }); }, - success: (iterable: Iterable | AsyncIterable) => { + success: (iterable: Iterable | AsyncIterable): Promise => { return stream.message(iterable, { symbol: completeColor(S_SUCCESS) }); }, - step: (iterable: Iterable | AsyncIterable) => { + step: (iterable: Iterable | AsyncIterable): Promise => { return stream.message(iterable, { symbol: completeColor(S_STEP_SUBMIT) }); }, - warn: (iterable: Iterable | AsyncIterable) => { + warn: (iterable: Iterable | AsyncIterable): Promise => { return stream.message(iterable, { symbol: color.yellow(S_WARN) }); }, /** alias for `log.warn()`. */ - warning: (iterable: Iterable | AsyncIterable) => { + warning: (iterable: Iterable | AsyncIterable): Promise => { return stream.warn(iterable); }, - error: (iterable: Iterable | AsyncIterable) => { + error: (iterable: Iterable | AsyncIterable): Promise => { return stream.message(iterable, { symbol: color.red(S_ERROR) }); }, }; diff --git a/packages/prompts/src/task-log.ts b/packages/prompts/src/task-log.ts index 0d89b40a1c..7267b01174 100644 --- a/packages/prompts/src/task-log.ts +++ b/packages/prompts/src/task-log.ts @@ -31,6 +31,19 @@ export interface TaskLogCompletionOptions { showLog?: boolean; } +export interface TaskLogGroup { + message(msg: string, mopts?: TaskLogMessageOptions): void; + error(message: string): void; + success(message: string): void; +} + +export interface TaskLog { + message(msg: string, mopts?: TaskLogMessageOptions): void; + group(name: string): TaskLogGroup; + error(message: string, opts?: TaskLogCompletionOptions): void; + success(message: string, opts?: TaskLogCompletionOptions): void; +} + interface BufferEntry { header?: string; value: string; @@ -49,7 +62,7 @@ const stripDestructiveANSI = (input: string): string => { /** * Renders a log which clears on success and remains on failure */ -export const taskLog = (opts: TaskLogOptions) => { +export const taskLog = (opts: TaskLogOptions): TaskLog => { const output: Writable = opts.output ?? process.stdout; const columns = getColumns(output); const secondarySymbol = color.gray(S_BAR); diff --git a/packages/prompts/src/task.ts b/packages/prompts/src/task.ts index 6e5737a5a8..6c82cf3337 100644 --- a/packages/prompts/src/task.ts +++ b/packages/prompts/src/task.ts @@ -20,7 +20,7 @@ export type Task = { /** * Define a group of tasks to be executed */ -export const tasks = async (tasks: Task[], opts?: CommonOptions) => { +export const tasks = async (tasks: Task[], opts?: CommonOptions): Promise => { for (const task of tasks) { if (task.enabled === false) { continue; diff --git a/packages/prompts/tsdown.config.ts b/packages/prompts/tsdown.config.ts index 6231d8bd2d..31490731f8 100644 --- a/packages/prompts/tsdown.config.ts +++ b/packages/prompts/tsdown.config.ts @@ -4,4 +4,10 @@ export default defineConfig({ deps: { onlyBundle: false, }, + dts: { + // Generate declarations with Oxc so the build does not depend on the + // resolved TypeScript version: rolldown-plugin-dts requires the classic + // tsc API (TypeScript <7) or the tsgo API (TypeScript 7.1+). + generator: 'oxc', + }, }); diff --git a/packages/tools/.upstream-versions.json b/packages/tools/.upstream-versions.json index cc5d493502..0f36e2b027 100644 --- a/packages/tools/.upstream-versions.json +++ b/packages/tools/.upstream-versions.json @@ -12,6 +12,6 @@ "oxc-node": { "repo": "https://github.com/oxc-project/oxc-node.git", "branch": "main", - "hash": "4759cedbda87f67ca646d3277166884cfcd62f81" + "hash": "6d5376df15df5446a91d01d53f3d7965d8b9708e" } } diff --git a/packages/tools/src/__tests__/sync-remote-deps.spec.ts b/packages/tools/src/__tests__/sync-remote-deps.spec.ts index d581a36a83..c963182dc6 100644 --- a/packages/tools/src/__tests__/sync-remote-deps.spec.ts +++ b/packages/tools/src/__tests__/sync-remote-deps.spec.ts @@ -152,7 +152,7 @@ describe('vendored Vitest dependency alignment', () => { verkit, ); expect(merged.catalog).toEqual({ - typescript: '~7.0.2', + typescript: '7.1.0-beta', vitest: '5.1.2', '@vitest/browser': '5.1.2', '@vitest/browser-webdriverio': '5.0.0-rc.1', diff --git a/packages/tools/src/__tests__/sync-remote-yaml.spec.ts b/packages/tools/src/__tests__/sync-remote-yaml.spec.ts index aa8f7b7dd5..e981bdb18a 100644 --- a/packages/tools/src/__tests__/sync-remote-yaml.spec.ts +++ b/packages/tools/src/__tests__/sync-remote-yaml.spec.ts @@ -40,7 +40,7 @@ const VITE_SRC = `catalog: `; describe('mergeWorkspaceYaml()', () => { - test.each(['~7.0.2', '~7.1.0', '~6.0.3'])( + test.each(['~7.1.0', '~6.0.3'])( "follows Vite's TypeScript declaration %s instead of merging catalog ranges", (typescript) => { const main = `catalog: @@ -64,16 +64,39 @@ overrides: }, ); + test.each(['~7.0.2', '~7.0.0'])( + 'pins the first tsgo-API TypeScript release when Vite stays on %s', + (typescript) => { + // rolldown-plugin-dts 0.29 (bundled with tsdown) needs the TypeScript Go + // API from 7.1; on 7.0.x the classic tsc API is gone, leaving no working + // declaration generator. + const vitePackage = { devDependencies: { typescript } }; + const output = mergeWorkspaceYaml( + 'catalog:\n typescript: ~7.0.2\n', + ROLLDOWN_SRC, + VITE_SRC, + vitePackage, + yaml, + verkit, + ); + + expect(yaml.parse(output).catalog.typescript).toBe('7.1.0-beta'); + expect(mergeWorkspaceYaml(output, ROLLDOWN_SRC, VITE_SRC, vitePackage, yaml, verkit)).toBe( + output, + ); + }, + ); + test('resolves a TypeScript catalog reference from Vite', () => { const output = mergeWorkspaceYaml( 'catalog:\n typescript: ^6.0.0\n', 'catalog:\n typescript: ^6.0.0\n', - 'catalog:\n typescript: ~7.0.2\n', + 'catalog:\n typescript: ~7.1.0\n', { devDependencies: { typescript: 'catalog:' } }, yaml, verkit, ); - expect(yaml.parse(output).catalog.typescript).toBe('~7.0.2'); + expect(yaml.parse(output).catalog.typescript).toBe('~7.1.0'); }); test('updates the Rolldown compiler override when its catalog changes', () => { @@ -143,7 +166,7 @@ overrides: const output = mergeWorkspaceYaml(main, rolldown, vite, VITE_PACKAGE, yaml, verkit); expect(yaml.parse(output).catalog).toEqual({ - typescript: '~7.0.2', + typescript: '7.1.0-beta', vitest: '5.1.2', '@vitest/browser': '5.1.2', '@vitest/utils': '5.1.2', diff --git a/packages/tools/src/sync-remote-deps.ts b/packages/tools/src/sync-remote-deps.ts index 42efd9e378..2efa337946 100755 --- a/packages/tools/src/sync-remote-deps.ts +++ b/packages/tools/src/sync-remote-deps.ts @@ -28,6 +28,13 @@ interface PnpmWorkspace { [key: string]: unknown; } +// First TypeScript release whose `typescript/async` entry point exposes the +// TypeScript Go declaration API (`Program#getDeclarationEmit`) that +// rolldown-plugin-dts 0.29's tsgo generator requires. The catalog must never +// select an older 7.x: the classic tsc API no longer exists there, leaving no +// working declaration generator. +const TSGO_API_TYPESCRIPT_VERSION = '7.1.0-beta'; + interface PackageJson { name?: string; version?: string; @@ -544,11 +551,25 @@ export function mergePnpmWorkspaces( // Vite declares its compiler in the root package.json, outside its catalog. // Follow that range exactly, even when Rolldown still uses an older major. const typescriptSpecifier = vitePackage.devDependencies?.typescript; - const typescriptRange = + let typescriptRange = typescriptSpecifier === 'catalog:' ? rolldownVite.catalog?.typescript : typescriptSpecifier; if (!typescriptRange || !verkit.normalizeRange(typescriptRange)) { throw new Error('Vite must declare a valid TypeScript devDependency range'); } + // The rolldown-plugin-dts release bundled with tsdown emits declarations + // through the TypeScript Go API, which first shipped in TypeScript 7.1; on + // 7.0.x the classic tsc API no longer exists, so no declaration generator + // works. When Vite's compiler range is pinned to 7.0.x (e.g. `~7.0.2`), pin + // the first capable release instead. Ranges that can also select 7.1+ + // (e.g. `^7.0.0`) or predate 7.0 entirely (classic tsc still works there) + // keep Vite's choice. An exact pin: range forms like `~7.1.0-beta` also + // match the higher `7.1.0-dev.*` daily builds. + if ( + verkit.rangesIntersect(typescriptRange, '~7.0.0') && + !verkit.rangesIntersect(typescriptRange, `>=${TSGO_API_TYPESCRIPT_VERSION}`) + ) { + typescriptRange = TSGO_API_TYPESCRIPT_VERSION; + } const catalog: Record = { typescript: typescriptRange }; for (const workspace of [main, rolldown, rolldownVite]) { for (const [pkg, version] of Object.entries(workspace.catalog || {})) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f42f95379..8ff3f5e844 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -195,11 +195,11 @@ catalogs: specifier: ^3.1.0 version: 3.1.0 '@oxc-node/cli': - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.0.1 + version: 1.0.1 '@oxc-node/core': - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.0.1 + version: 1.0.1 '@oxc-project/runtime': specifier: '=0.155.0' version: 0.155.0 @@ -219,11 +219,11 @@ catalogs: specifier: ^16.0.0 version: 16.0.3 '@tsdown/css': - specifier: ^0.23.1 - version: 0.23.1 + specifier: ^0.23.2 + version: 0.23.2 '@tsdown/exe': - specifier: ^0.23.1 - version: 0.23.1 + specifier: ^0.23.2 + version: 0.23.2 '@types/babel__core': specifier: 7.20.5 version: 7.20.5 @@ -372,8 +372,8 @@ catalogs: specifier: ^2.50.0 version: 2.50.0 rolldown-plugin-dts: - specifier: ^0.28.0 - version: 0.28.8 + specifier: ^0.29.0-beta.2 + version: 0.29.0-beta.2 rollup: specifier: ^4.63.0 version: 4.63.1 @@ -399,11 +399,11 @@ catalogs: specifier: ^0.2.15 version: 0.2.17 tsdown: - specifier: ^0.23.1 - version: 0.23.1 + specifier: ^0.23.2 + version: 0.23.2 typescript: - specifier: ~7.0.2 - version: 7.0.2 + specifier: 7.1.0-beta + version: 7.1.0-beta valibot: specifier: 1.5.0 version: 1.5.0 @@ -462,7 +462,7 @@ importers: version: 3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.10.3)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1) '@oxc-node/cli': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 '@types/node': specifier: 'catalog:' version: 24.10.3 @@ -477,7 +477,7 @@ importers: version: 1.62.1 typescript: specifier: 'catalog:' - version: 7.0.2 + version: 7.1.0-beta vite: specifier: workspace:@voidzero-dev/vite-plus-core@* version: link:packages/core @@ -607,7 +607,7 @@ importers: version: 0.2.17 tsdown: specifier: 'catalog:' - version: 0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)) validate-npm-package-name: specifier: 'catalog:' version: 8.0.0 @@ -685,7 +685,7 @@ importers: version: 0.3.1 vue-tsc: specifier: ~3.2.0 || ~3.3.0 - version: 3.3.12(typescript@7.0.2) + version: 3.3.12(typescript@7.1.0-beta) yaml: specifier: ^2.4.2 version: 2.9.1 @@ -707,13 +707,13 @@ importers: version: 3.10.3(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5)(@types/node@24.19.2)(emnapi@2.0.0-alpha.5(node-addon-api@7.1.1))(supports-color@8.1.1) '@oxc-node/cli': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 '@tsdown/css': specifier: 'catalog:' - version: 0.23.1(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.1)(tsx@4.23.15)(yaml@2.9.1) + version: 0.23.2(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.2)(tsx@4.23.15)(yaml@2.9.1) '@tsdown/exe': specifier: 'catalog:' - version: 0.23.1(tsdown@0.23.1) + version: 0.23.2(tsdown@0.23.2) '@typescript/native-preview': specifier: 'catalog:' version: 7.0.0-dev.20260707.2 @@ -746,7 +746,7 @@ importers: version: link:../../rolldown/packages/rolldown rolldown-plugin-dts: specifier: 'catalog:' - version: 0.28.8(@typescript/native-preview@7.0.0-dev.20260707.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.0.2)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.29.0-beta.2(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.1.0-beta)(vue-tsc@3.3.12(typescript@7.1.0-beta)) rollup: specifier: 'catalog:' version: 4.63.1 @@ -764,10 +764,10 @@ importers: version: 1.2.2 tsdown: specifier: 'catalog:' - version: 0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)) typescript: specifier: 'catalog:' - version: 7.0.2 + version: 7.1.0-beta vite: specifier: workspace:@voidzero-dev/vite-plus-core@* version: 'link:' @@ -805,13 +805,13 @@ importers: version: 2.1.0 tsdown: specifier: 'catalog:' - version: 0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)) packages/tools: devDependencies: '@oxc-node/core': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 verkit: specifier: 'catalog:' version: 0.5.0 @@ -826,7 +826,7 @@ importers: devDependencies: '@oxc-node/core': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 '@oxc-project/runtime': specifier: 'catalog:' version: 0.155.0 @@ -853,7 +853,7 @@ importers: version: link:packages/rolldown typescript: specifier: 'catalog:' - version: 7.0.2 + version: 7.1.0-beta vite-plus: specifier: workspace:vite-plus@* version: link:../packages/cli @@ -868,10 +868,10 @@ importers: version: 19.2.0(react@19.2.0) vue: specifier: 'catalog:' - version: 3.5.40(typescript@7.0.2) + version: 3.5.40(typescript@7.1.0-beta) vue-router: specifier: ^5.3.0 - version: 5.3.1(@vue/compiler-sfc@3.5.40)(esbuild@0.28.2)(rolldown@rolldown+packages+rolldown)(rollup@4.63.1)(vite@packages+core)(vue@3.5.40(typescript@7.0.2)) + version: 5.3.1(@vue/compiler-sfc@3.5.40)(esbuild@0.28.2)(rolldown@rolldown+packages+rolldown)(rollup@4.63.1)(vite@packages+core)(vue@3.5.40(typescript@7.1.0-beta)) devDependencies: '@babel/core': specifier: 'catalog:' @@ -884,7 +884,7 @@ importers: version: 7.29.7(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) '@oxc-node/cli': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 '@rollup/plugin-commonjs': specifier: 'catalog:' version: 29.0.0(rollup@4.63.1) @@ -932,7 +932,7 @@ importers: devDependencies: '@oxc-node/cli': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 rolldown/packages/rolldown: dependencies: @@ -957,7 +957,7 @@ importers: version: 1.2.5(@emnapi/core@2.0.0-alpha.5)(@emnapi/runtime@2.0.0-alpha.5) '@oxc-node/cli': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 cac: specifier: 'catalog:' version: 7.1.0 @@ -990,7 +990,7 @@ importers: version: 'link:' rolldown-plugin-dts: specifier: 'catalog:' - version: 0.28.8(@typescript/native-preview@7.0.0-dev.20260707.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@6.0.3)(vue-tsc@3.3.12(typescript@6.0.3)) + version: 0.29.0-beta.2(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@6.0.3)(vue-tsc@3.3.12(typescript@6.0.3)) rollup: specifier: 'catalog:' version: 4.63.1 @@ -1036,7 +1036,7 @@ importers: devDependencies: '@oxc-node/cli': specifier: 'catalog:' - version: 1.0.0 + version: 1.0.1 tinyexec: specifier: 'catalog:' version: 1.3.1 @@ -1147,7 +1147,7 @@ importers: version: 1.3.1 tsdown: specifier: ^0.23.1 - version: 0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)) unrun: specifier: ^0.3.1 version: 0.3.1 @@ -1202,7 +1202,7 @@ importers: version: 1.1.1 tsdown: specifier: ^0.23.1 - version: 0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + version: 0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)) unrun: specifier: ^0.3.1 version: 0.3.1 @@ -3132,98 +3132,98 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@oxc-node/cli@1.0.0': - resolution: {integrity: sha512-oSv6eAk/24+iNNr1R6vBYOttOuaeyzZSKEO8+MLCqwIpE1ufth20d0y764ZCiAR2WiJhcRQDe7K5Mnno5C9j8w==} + '@oxc-node/cli@1.0.1': + resolution: {integrity: sha512-PhEgjr/q2fa2KUM8wkX4mkS6ad1VZ0b5CdPfPCKzadKzlsd7n44/xup8CYJD4s2j+v4BN1caHlnpDENSgye4IA==} hasBin: true - '@oxc-node/core-android-arm-eabi@1.0.0': - resolution: {integrity: sha512-jIZI1Wv5QXsXIuUjvzGPxtlzpyWRZtLphC9NR6Nv5buykKzVpA5yRPTGQUEXPXO/xg2V6mb4pTrJJGYsKOQADQ==} + '@oxc-node/core-android-arm-eabi@1.0.1': + resolution: {integrity: sha512-+P14d3shlQmsXbqUcfLGRUHL8OFDuAbfLxoJWU79JPw/PXh8iHtIlWql/qA1KJIhuFvyOU1+Vzo2cRXtZYZzZA==} cpu: [arm] os: [android] - '@oxc-node/core-android-arm64@1.0.0': - resolution: {integrity: sha512-TfBz/djCCsCvhylp4mjOmXW2HMJkt7JUy/1uApflYFhCjUBMgFgzd2kZtIK5p+yuNs6I1tVeq2nuKM4wouEk6A==} + '@oxc-node/core-android-arm64@1.0.1': + resolution: {integrity: sha512-qYyhMai0p3JixEVNa08sBGxH8AyVr4Gkw0U4NNkViXBwrjHVfPhhPPBw19FXQEa/JriUNVmoON9tkm7Iqp6/dA==} cpu: [arm64] os: [android] - '@oxc-node/core-darwin-arm64@1.0.0': - resolution: {integrity: sha512-i9vsYb1WU7NXTJegesmheqK/AekBgFb67LbULsb/8vtAvakyHqJZeXhCCfbLZjseVqxrPvLyT+Y+vCpUR8H8aQ==} + '@oxc-node/core-darwin-arm64@1.0.1': + resolution: {integrity: sha512-miheAHWXtkfwLIp6DyN8g+oHmsV714Qj7YBGXzraIOh9NjC2snuTzlzH1ZZjLZKX1w+r/NpDrzm9tVEoATJ5FA==} cpu: [arm64] os: [darwin] - '@oxc-node/core-darwin-x64@1.0.0': - resolution: {integrity: sha512-xIejve7KuDTMYA9AUjbscTIWRbXkyohnKWIg7H2mgnfnVDp6ktFlqYj4XQy0ilcA4lSVjd1NTao8aMxKL8ExdQ==} + '@oxc-node/core-darwin-x64@1.0.1': + resolution: {integrity: sha512-l0lvtkvoek5O+cgk9iXMez6EGFqa8BcEnx87k054sVI5dqBHWTw41Z2orRcMgZvTCKYNIJ7s05J0XR5iiv4N2A==} cpu: [x64] os: [darwin] - '@oxc-node/core-freebsd-x64@1.0.0': - resolution: {integrity: sha512-/60+Hxe4BukVCx0XLqBTNJpm18pB5Prfq2mVm7cEfdXFMu2f/96FiQBkWxSVCUdC3SRcI3Sq4SotRzFAzWkLRw==} + '@oxc-node/core-freebsd-x64@1.0.1': + resolution: {integrity: sha512-J6rbw+0HWAruZiq2NiwryWEKPLFOENBiYKqlMQSRZ7w/YDOMEQZHFHFpjtz1n0C4NT8DVyVeGcvy5cscJOhNJQ==} cpu: [x64] os: [freebsd] - '@oxc-node/core-linux-arm-gnueabihf@1.0.0': - resolution: {integrity: sha512-jpyErr7Y8TyGuFmyLDH7lvMP+fRzoFs/TnkXmL+icY0Ts0QOApuCKgDCDIFhQUDiCymzO33K5Lz9JifHkiGGCA==} + '@oxc-node/core-linux-arm-gnueabihf@1.0.1': + resolution: {integrity: sha512-ESs4CsUSVgDxJqYnuDC50p7Za+k2lmrxO6hA5pjCASAT+jfpwiRB69KtsF1eEe4LXRrur59O0KqIYtMLIUlx0A==} cpu: [arm] os: [linux] - '@oxc-node/core-linux-arm64-gnu@1.0.0': - resolution: {integrity: sha512-hUGPtnfxk24tj/NNYMq1NmlWHzb2SG/J783p1WSbQAFH2fvg70Tg59C8FK/dANFOC2ZNlSliAA6ROYNhvEARNw==} + '@oxc-node/core-linux-arm64-gnu@1.0.1': + resolution: {integrity: sha512-o0Cy0SvK+7jrK7zXBVxYAtklfGeMf5aNF+QmQ0+raZwFp+gbesccGQ3U6DSAtb3tbXImCsejJ2oknE3kFyY2bA==} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-node/core-linux-arm64-musl@1.0.0': - resolution: {integrity: sha512-KzNxVXvy6qD9equ4zTNQUy27bmssiR1fgNc4uR2dd2Tgv5tp2BP8tYIWvqzBpMnVKZQmy65OlCaGWmMMj0H5lg==} + '@oxc-node/core-linux-arm64-musl@1.0.1': + resolution: {integrity: sha512-kZjkChPpwb9X3COUE8w2X+UhTPCWLm+/5ddaGgOXn6lqYvV3eQRlSTN3bCF6Wnu3nwmPYKxjGqUf4zZNpWSufw==} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-node/core-linux-ppc64-gnu@1.0.0': - resolution: {integrity: sha512-W2Ci9UjcSr04oZbrSQBlFE6BIluxjnpTxs+bISXdSp7CvLqrcRbO8SMipaBIJxQN/2GyQuS2afppda4KSWGZwA==} + '@oxc-node/core-linux-ppc64-gnu@1.0.1': + resolution: {integrity: sha512-B0XP8quN6BWK4LDnWLY3tu8NaYKNUkcMTAwpSg2SIBI8jzKLLwn6DXAVkt1SI3V0SLsKMUVXNOMOrn6zKsYs6A==} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-node/core-linux-s390x-gnu@1.0.0': - resolution: {integrity: sha512-BCiRr2FNdEt+j7GU1Ci2G2FWUluOsIJjKdJdFwjiAB2h7GnUb8TKSfrALKZc1pUTwDaWa1DUf/vpb7s+tzTYIg==} + '@oxc-node/core-linux-s390x-gnu@1.0.1': + resolution: {integrity: sha512-G06PMgfaDV8VHCErygwHIwF8WmFNRaPVwwsbW2yyaQUP6CgjZHoqpxhagNDofcz4hCglwV0ZrJ0gVp1Qp1r5dQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-node/core-linux-x64-gnu@1.0.0': - resolution: {integrity: sha512-p766aCT9WbKzTuTmtCVowcs/0EoqDNj/PAGpDClwpAIc7Y71MurdJrEphk+tQtbQLNDFaDFFxq83c9J4fcNACQ==} + '@oxc-node/core-linux-x64-gnu@1.0.1': + resolution: {integrity: sha512-kg8Ug1VCvgelsPBdA5iWH+qjtUCWtLX1F+zy9fk9Hg9AxJMUJ7HJxssxuS+d8nLe28GnQ6+1jnWhoP8zh+0rgw==} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-node/core-linux-x64-musl@1.0.0': - resolution: {integrity: sha512-Pen9BD9MFCcKyYV/mDTdf0QaHWqMZiMV2LcJZ5KCdy1QrLnR9NvsEg3AcdXBtPVXR3OmVQOKArpSUMczHtcd6w==} + '@oxc-node/core-linux-x64-musl@1.0.1': + resolution: {integrity: sha512-x2QE5k1t8AjHa7OGnQgM1wLEblcxcraqpUlWvH8VAI+fK1X0km/4ti+CBBZmtYXnS11Dy4GUHdKgdyXWjPCyEg==} cpu: [x64] os: [linux] libc: [musl] - '@oxc-node/core-openharmony-arm64@1.0.0': - resolution: {integrity: sha512-ZeaLExSFnGuzEeXPgDPwz/zB8on8ubuRN52AkQs/qvrK49kTgrJ2OYQvwHSGy/dxyQoYQtRaQ9VgFPCxNykezg==} + '@oxc-node/core-openharmony-arm64@1.0.1': + resolution: {integrity: sha512-/Cqh4axl3LcULk2eF4lWH0JS9cYecRAfNasRA6KL5lOyeqoKfbU32P7T1GvOxYSddLxdAwEKDj+6HzERRL9ELQ==} cpu: [arm64] os: [openharmony] - '@oxc-node/core-win32-arm64-msvc@1.0.0': - resolution: {integrity: sha512-UV3pMtSyov7pzHbhU8YOOcw4uTaJsA52DvJ4H+hDc/Ltcec4wlxR4o50Hk5upoqP5Wyx7WnkU8v+I82OHVLOFA==} + '@oxc-node/core-win32-arm64-msvc@1.0.1': + resolution: {integrity: sha512-D04L8Q8P50eb8St1+6Ok4HqNg4aWsY3C2+o5gq3UFHp7zl3HT6nxVQdT1mEM1ueWqqhf2Mv0rrVcMkgXRJGUSA==} cpu: [arm64] os: [win32] - '@oxc-node/core-win32-ia32-msvc@1.0.0': - resolution: {integrity: sha512-p/vcWoVb66CjbMyNnsEzeidEIwWoIRZiK4aiatPpFinhVrELwIOdXp5bvZbyCWFiLgRsf5mIVAOn/b4+8xIonw==} + '@oxc-node/core-win32-ia32-msvc@1.0.1': + resolution: {integrity: sha512-DQV7jzQw/WQ7M53Gqv3Jhel5gYHoatO2Ex8yXzbIYfZgcr/2H0itNq/QoseaMpTi0nKn7pG5xPZz6/DhJEfLow==} cpu: [ia32] os: [win32] - '@oxc-node/core-win32-x64-msvc@1.0.0': - resolution: {integrity: sha512-ImW5mFR7UmZh9RkCArnUaAusmSgsHY75HHI+UZw+eh+55m5KSHcWZUJ+9Kg4456+7bjWychzl+cH3UcVfRqILQ==} + '@oxc-node/core-win32-x64-msvc@1.0.1': + resolution: {integrity: sha512-LYd6Qs1wfnSGj6Ma3xfYlVew0DhO+jIB/OCqhKymhcko5YPNmrn/sjWCikbrfx1qmF/gkx+Nfq70FF29WAfi/Q==} cpu: [x64] os: [win32] - '@oxc-node/core@1.0.0': - resolution: {integrity: sha512-D0GZSTXq2V5ef05wLE4lHTZ9ahzZrLNhOJpAUMCPQH2ElvDyJBi9Y61nMUTXuQPb4PfJ7g8SkXr9CQ2qgiVltw==} + '@oxc-node/core@1.0.1': + resolution: {integrity: sha512-CcUa/itqt0StKfxHyZfLXipaw3bYnWR8t/ypBZOOFYgY1q/CsXJaOlera2pixgZNd/k2bK5MFjcD03rm5Y4Vug==} '@oxc-parser/binding-android-arm-eabi@0.150.0': resolution: {integrity: sha512-oQef2Zu4Prz1KLKznz3HqZzU9uVoA5PMoDZuuLmqms7hKmKSAPzlaMnLllJq3t+rgKmfJJ2siPrpZfFrW06btw==} @@ -4318,8 +4318,8 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@tsdown/css@0.23.1': - resolution: {integrity: sha512-FLdllF5r22So3zwAuCRCLaxOCJqiN1SzihAncdoxHfe59Zj8nHDfaCBQBGYVDUJaHbr6fshSAcUXrgkJIr9dcA==} + '@tsdown/css@0.23.2': + resolution: {integrity: sha512-/g3suzAD7kRLpguMTjScPHfduefpQTc7YqLCJvMJ5cZ8s+viVgpLxsM12J97ym8aN7JY3yQsDZHifvA/fD+GPg==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} peerDependencies: postcss: ^8.4.0 @@ -4327,7 +4327,7 @@ packages: postcss-modules: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 sass: '*' sass-embedded: '*' - tsdown: 0.23.1 + tsdown: 0.23.2 peerDependenciesMeta: postcss: optional: true @@ -4340,11 +4340,11 @@ packages: sass-embedded: optional: true - '@tsdown/exe@0.23.1': - resolution: {integrity: sha512-CD/VDDxIaw7eBBprYgNRFPha0ghRrFVtBavh8eE8sKPQm+SmkLVtVlsL2Vr7th4AtB//gofWdYJTvQiWKZqzOg==} + '@tsdown/exe@0.23.2': + resolution: {integrity: sha512-7D9n8V1TEo0Os+T1RZT8omj3Xcyp7CuKnD3wyHpaE81Yb/uERtmJnCmc0AhQmjAOrXeCRT7h+r/Ht/lVLUg1kQ==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} peerDependencies: - tsdown: 0.23.1 + tsdown: 0.23.2 '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -4514,120 +4514,246 @@ packages: cpu: [ppc64] os: [aix] + '@typescript/typescript-aix-ppc64@7.1.0-beta': + resolution: {integrity: sha512-DXDG+jIWxBHGdoO70tcHON33rCnSzsEZj9P13oyf/r/KEGIo6awsdSNVNjAw0uMwEpqRu75IrgCcW58YcVkZHg==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-android-arm64@7.1.0-beta': + resolution: {integrity: sha512-UZx6PxoQavuvaVTrSf3aw0Oy/J/uJpRylipA0kzc038jMvZXh0UtE8vnQp20FqtdgD5bhXZ0aJrRJyoTSUO58Q==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [android] + '@typescript/typescript-darwin-arm64@7.0.2': resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [darwin] + '@typescript/typescript-darwin-arm64@7.1.0-beta': + resolution: {integrity: sha512-q7mxblcyX0E7hXsY4k+Q6KWKK5mGmfVq+BDesdTgRVgjodk27aIxER77Zyj9+TgSTlCje8F7+JM6f6hl2BuNdw==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + '@typescript/typescript-darwin-x64@7.0.2': resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} engines: {node: '>=16.20.0'} cpu: [x64] os: [darwin] + '@typescript/typescript-darwin-x64@7.1.0-beta': + resolution: {integrity: sha512-D5EYqG5Wm/guw9+0j8+Mn1Jbr/gfS/VtFTuoH8PJtFbcqeDaQGMulc7SW8q51QG6Y3wGOGX3nbsTOw6fIKWWAA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + '@typescript/typescript-freebsd-arm64@7.0.2': resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [freebsd] + '@typescript/typescript-freebsd-arm64@7.1.0-beta': + resolution: {integrity: sha512-9A0XX0tcnH9qPdolSKKzSjTb93dlB0UEcAJbHYEsrFX2fkFNSum9+dvkQQJ9vLc+7vxHetDPujq9Qe6wx+Xhow==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + '@typescript/typescript-freebsd-x64@7.0.2': resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} engines: {node: '>=16.20.0'} cpu: [x64] os: [freebsd] + '@typescript/typescript-freebsd-x64@7.1.0-beta': + resolution: {integrity: sha512-EDf/dBHfY0TxX3NmUTek0hbffeyZlh3+ls6WQW3ICB8vYxwYLFnzg7wkgEUvl9eRlpiJ/nmc2S8arPMzINJ7rg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + '@typescript/typescript-linux-arm64@7.0.2': resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [linux] + '@typescript/typescript-linux-arm64@7.1.0-beta': + resolution: {integrity: sha512-hNqQBgQ5b5oGqN76QqbAU6CwYhJZ6iOcWc2kPTUs2OentgpxZktETziH6KIyRFJPaiBncognwn2ZLu3DNhHiWw==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + '@typescript/typescript-linux-arm@7.0.2': resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] + '@typescript/typescript-linux-arm@7.1.0-beta': + resolution: {integrity: sha512-AvN9HmzOQh46G4312ooSgMHhbB7DtnLwg8D9mo324X49B7weMwtJrBG1MxT9IyI8kzDd7YRtW+1hWGun7WG7Qw==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + '@typescript/typescript-linux-loong64@7.0.2': resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} engines: {node: '>=16.20.0'} cpu: [loong64] os: [linux] + '@typescript/typescript-linux-loong64@7.1.0-beta': + resolution: {integrity: sha512-xbUustlBrFflt2pNEyG5ye+d4WGPc/rfr2xK29MXeobPSw297JqwuKRrvbKM5o3fE/eUM/c+urVm6jQ3IaMVTw==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + '@typescript/typescript-linux-mips64el@7.0.2': resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} engines: {node: '>=16.20.0'} cpu: [mips64el] os: [linux] + '@typescript/typescript-linux-mips64el@7.1.0-beta': + resolution: {integrity: sha512-fS4/G7/0bXZ3NSq3nBMAXyg65I3tO4S7j08VNQ2g1aNC/qq79gE7Qne1BNjVsjMFfHBVBFjQYoTQCjmVU2iFlg==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + '@typescript/typescript-linux-ppc64@7.0.2': resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} engines: {node: '>=16.20.0'} cpu: [ppc64] os: [linux] + '@typescript/typescript-linux-ppc64@7.1.0-beta': + resolution: {integrity: sha512-0upCCxYPX8X6gOwkvfv+Ee7/ufyy7k97mTrGE0e5BxLlnUEa+w+rtgnv2dsKcxFdwdeZYVlZKCqgN/xCBV08+A==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + '@typescript/typescript-linux-riscv64@7.0.2': resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} engines: {node: '>=16.20.0'} cpu: [riscv64] os: [linux] + '@typescript/typescript-linux-riscv64@7.1.0-beta': + resolution: {integrity: sha512-0jKU9YRgOPRgiy5V/UWv37kB53PaTpIbwGCbbOMUPPAkrjVRNOIAJaz7Wa7s3H7mdDebX1LopUEPEJR+7Xa7zg==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + '@typescript/typescript-linux-s390x@7.0.2': resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} engines: {node: '>=16.20.0'} cpu: [s390x] os: [linux] + '@typescript/typescript-linux-s390x@7.1.0-beta': + resolution: {integrity: sha512-j+d04s2kxaPQh6DLPb01sknAQfzsrdSZy15jBRHyLEZoaaQ19dVjbFRlkNVvYwUG7ZdP8+y5b/7RmPxdtHUKdQ==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + '@typescript/typescript-linux-x64@7.0.2': resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] + '@typescript/typescript-linux-x64@7.1.0-beta': + resolution: {integrity: sha512-kcD51ihf+pnI5KT4uQQYG04OpwznaZYBlIQhDhl8fflFd27NktxXsUeguxZyvUMyWfum7IF2bBS6Jv7ox0AgFQ==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + '@typescript/typescript-netbsd-arm64@7.0.2': resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [netbsd] + '@typescript/typescript-netbsd-arm64@7.1.0-beta': + resolution: {integrity: sha512-8W85YyoGK+rgGoSU9jJQUpELbrKcZcbdJk2jPNQ6UKDKI7ryPlPFTrV2jCE5RQuv4Tt96hMDTc33s4YfRrLFBA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + '@typescript/typescript-netbsd-x64@7.0.2': resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} engines: {node: '>=16.20.0'} cpu: [x64] os: [netbsd] + '@typescript/typescript-netbsd-x64@7.1.0-beta': + resolution: {integrity: sha512-iGsTE0ve2PG0AcyZinwAR0LnGEZhu/y4dceS0hZsYCaKdYETvQtvtlNWlmYKempsBr6C7Il7dMXHVk+VFm9u0g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + '@typescript/typescript-openbsd-arm64@7.0.2': resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [openbsd] + '@typescript/typescript-openbsd-arm64@7.1.0-beta': + resolution: {integrity: sha512-Z2FERdHB9fAKI+KGqdWn04O7uNlnB+VYiEm6INE1aZuzzLNd3KBqQ6IpKUJF2ny4GigGU6nVu75XD9tAUODPng==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + '@typescript/typescript-openbsd-x64@7.0.2': resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} engines: {node: '>=16.20.0'} cpu: [x64] os: [openbsd] + '@typescript/typescript-openbsd-x64@7.1.0-beta': + resolution: {integrity: sha512-NVG3qeyCq/rJEOhaRjR3LsWgjrjo5vJW25omVLeHAVnpKIG4pE4cenwwKGR06DiJ1s0QTOymcJeKXMEpsiNBVg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + '@typescript/typescript-sunos-x64@7.0.2': resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} engines: {node: '>=16.20.0'} cpu: [x64] os: [sunos] + '@typescript/typescript-sunos-x64@7.1.0-beta': + resolution: {integrity: sha512-ovAdoWXEn2B5/fyWG69pLU3FWmQwPWOjQV5TFbcxtpnOv+R3g8ySGHl1NYRq7Lb/GYdFDvaGcZ+SiU7iKuiMsA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + '@typescript/typescript-win32-arm64@7.0.2': resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [win32] + '@typescript/typescript-win32-arm64@7.1.0-beta': + resolution: {integrity: sha512-lJbo71IEOfL7ZZIZnArRaOLqjn9BAfoSzyUQn0aSjfSpDZL4ru0afUsdBfo6PQEjD6ssdmi0n/RwaPADX6bsvQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + '@typescript/typescript-win32-x64@7.0.2': resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] + '@typescript/typescript-win32-x64@7.1.0-beta': + resolution: {integrity: sha512-UKcHvbybY2tDTvFW2b1vwiAvDlIRooo69lh8CXWVhOQejcvpM5+IgbiFW9EIwR5Wi5X/v+BdN7gdWbigBuJ3rw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@vitejs/devtools-kit@0.8.0': resolution: {integrity: sha512-R4bXaPpKXbNY2sUuJMhnsSSgHkxOorkMa1gFI6I8ISSARW6TjXbj+GZK6JRdmn9TTn/kKMCGUhREHr/UcHXLAw==} peerDependencies: @@ -7078,6 +7204,25 @@ packages: vue-tsc: optional: true + rolldown-plugin-dts@0.29.0-beta.2: + resolution: {integrity: sha512-0NT4q7HMRIpQv47+SfZB5IhEWJh0gp2rDEZPu2ry+LeJFb9tlMB08Sy+sl1+cqcCXnHpkd9dvBy3rZDCBF1JIg==} + engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} + peerDependencies: + '@volar/typescript': ~2.4.0 + '@vue/language-core': ~3.2.0 || ~3.3.0 + rolldown: workspace:rolldown@* + typescript: ^5.0.0 || ^6.0.0 || ~7.0.0 || ~7.1.0-0 + vue-tsc: ~3.2.0 || ~3.3.0 + peerDependenciesMeta: + '@volar/typescript': + optional: true + '@vue/language-core': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + rollup-plugin-license@3.7.1: resolution: {integrity: sha512-FcGXUbAmPvRSLxjVdjp/r/MUtKBlttVQd+ApUyvKfREnsoAfAZA6Ic2fE1Tz4RL0f9XqEQU9UIRNUMdtQtliDw==} engines: {node: '>=14.0.0'} @@ -7585,14 +7730,14 @@ packages: peerDependencies: typescript: '>=4.0.0' - tsdown@0.23.1: - resolution: {integrity: sha512-MSC2WSOts3in95J334/VIS7KPfor3eCSvndJ6KdoVj9Aak9Kh1aNfz9ws5owhdukuTNSXRdfkPEzA/ihpDD6SA==} + tsdown@0.23.2: + resolution: {integrity: sha512-om1OoDykFlv07uM98WAX3ZNmu02FBmHqZYLW1hm+IMktb92r7VMNKgQ/G8dknECI1Q2huPrFJ+sggdYk8efsQg==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.23.1 - '@tsdown/exe': 0.23.1 + '@tsdown/css': 0.23.2 + '@tsdown/exe': 0.23.2 '@vitejs/devtools': '*' publint: ^0.3.8 tsx: '*' @@ -7661,6 +7806,11 @@ packages: engines: {node: '>=16.20.0'} hasBin: true + typescript@7.1.0-beta: + resolution: {integrity: sha512-cjWjZAJDsmZzsNC5GwHNlW0YPM65jZa5oR0KyQcYX3KSVIfTvtBq//vewISyatKk4OLi5grZjHhIVE9fdrw1UQ==} + engines: {node: '>=16.20.0'} + hasBin: true + ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} @@ -9989,78 +10139,78 @@ snapshots: '@opentelemetry/api@1.9.0': optional: true - '@oxc-node/cli@1.0.0': + '@oxc-node/cli@1.0.1': dependencies: - '@oxc-node/core': 1.0.0 + '@oxc-node/core': 1.0.1 - '@oxc-node/core-android-arm-eabi@1.0.0': + '@oxc-node/core-android-arm-eabi@1.0.1': optional: true - '@oxc-node/core-android-arm64@1.0.0': + '@oxc-node/core-android-arm64@1.0.1': optional: true - '@oxc-node/core-darwin-arm64@1.0.0': + '@oxc-node/core-darwin-arm64@1.0.1': optional: true - '@oxc-node/core-darwin-x64@1.0.0': + '@oxc-node/core-darwin-x64@1.0.1': optional: true - '@oxc-node/core-freebsd-x64@1.0.0': + '@oxc-node/core-freebsd-x64@1.0.1': optional: true - '@oxc-node/core-linux-arm-gnueabihf@1.0.0': + '@oxc-node/core-linux-arm-gnueabihf@1.0.1': optional: true - '@oxc-node/core-linux-arm64-gnu@1.0.0': + '@oxc-node/core-linux-arm64-gnu@1.0.1': optional: true - '@oxc-node/core-linux-arm64-musl@1.0.0': + '@oxc-node/core-linux-arm64-musl@1.0.1': optional: true - '@oxc-node/core-linux-ppc64-gnu@1.0.0': + '@oxc-node/core-linux-ppc64-gnu@1.0.1': optional: true - '@oxc-node/core-linux-s390x-gnu@1.0.0': + '@oxc-node/core-linux-s390x-gnu@1.0.1': optional: true - '@oxc-node/core-linux-x64-gnu@1.0.0': + '@oxc-node/core-linux-x64-gnu@1.0.1': optional: true - '@oxc-node/core-linux-x64-musl@1.0.0': + '@oxc-node/core-linux-x64-musl@1.0.1': optional: true - '@oxc-node/core-openharmony-arm64@1.0.0': + '@oxc-node/core-openharmony-arm64@1.0.1': optional: true - '@oxc-node/core-win32-arm64-msvc@1.0.0': + '@oxc-node/core-win32-arm64-msvc@1.0.1': optional: true - '@oxc-node/core-win32-ia32-msvc@1.0.0': + '@oxc-node/core-win32-ia32-msvc@1.0.1': optional: true - '@oxc-node/core-win32-x64-msvc@1.0.0': + '@oxc-node/core-win32-x64-msvc@1.0.1': optional: true - '@oxc-node/core@1.0.0': + '@oxc-node/core@1.0.1': dependencies: pirates: 4.0.7 optionalDependencies: - '@oxc-node/core-android-arm-eabi': 1.0.0 - '@oxc-node/core-android-arm64': 1.0.0 - '@oxc-node/core-darwin-arm64': 1.0.0 - '@oxc-node/core-darwin-x64': 1.0.0 - '@oxc-node/core-freebsd-x64': 1.0.0 - '@oxc-node/core-linux-arm-gnueabihf': 1.0.0 - '@oxc-node/core-linux-arm64-gnu': 1.0.0 - '@oxc-node/core-linux-arm64-musl': 1.0.0 - '@oxc-node/core-linux-ppc64-gnu': 1.0.0 - '@oxc-node/core-linux-s390x-gnu': 1.0.0 - '@oxc-node/core-linux-x64-gnu': 1.0.0 - '@oxc-node/core-linux-x64-musl': 1.0.0 - '@oxc-node/core-openharmony-arm64': 1.0.0 - '@oxc-node/core-win32-arm64-msvc': 1.0.0 - '@oxc-node/core-win32-ia32-msvc': 1.0.0 - '@oxc-node/core-win32-x64-msvc': 1.0.0 + '@oxc-node/core-android-arm-eabi': 1.0.1 + '@oxc-node/core-android-arm64': 1.0.1 + '@oxc-node/core-darwin-arm64': 1.0.1 + '@oxc-node/core-darwin-x64': 1.0.1 + '@oxc-node/core-freebsd-x64': 1.0.1 + '@oxc-node/core-linux-arm-gnueabihf': 1.0.1 + '@oxc-node/core-linux-arm64-gnu': 1.0.1 + '@oxc-node/core-linux-arm64-musl': 1.0.1 + '@oxc-node/core-linux-ppc64-gnu': 1.0.1 + '@oxc-node/core-linux-s390x-gnu': 1.0.1 + '@oxc-node/core-linux-x64-gnu': 1.0.1 + '@oxc-node/core-linux-x64-musl': 1.0.1 + '@oxc-node/core-openharmony-arm64': 1.0.1 + '@oxc-node/core-win32-arm64-msvc': 1.0.1 + '@oxc-node/core-win32-ia32-msvc': 1.0.1 + '@oxc-node/core-win32-x64-msvc': 1.0.1 '@oxc-parser/binding-android-arm-eabi@0.150.0': optional: true @@ -10685,12 +10835,12 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@tsdown/css@0.23.1(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.1)(tsx@4.23.15)(yaml@2.9.1)': + '@tsdown/css@0.23.2(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.2)(tsx@4.23.15)(yaml@2.9.1)': dependencies: lightningcss: 1.33.0 postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.31)(tsx@4.23.15)(yaml@2.9.1) rolldown: link:rolldown/packages/rolldown - tsdown: 0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + tsdown: 0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)) optionalDependencies: postcss: 8.5.31 postcss-import: 16.2.0(postcss@8.5.31) @@ -10702,11 +10852,11 @@ snapshots: - tsx - yaml - '@tsdown/exe@0.23.1(tsdown@0.23.1)': + '@tsdown/exe@0.23.2(tsdown@0.23.2)': dependencies: obug: 3.0.0 tinyexec: 1.3.1 - tsdown: 0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)) + tsdown: 0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)) verkit: 0.5.0 '@tybys/wasm-util@0.10.3': @@ -10864,63 +11014,126 @@ snapshots: '@typescript/typescript-aix-ppc64@7.0.2': optional: true + '@typescript/typescript-aix-ppc64@7.1.0-beta': + optional: true + + '@typescript/typescript-android-arm64@7.1.0-beta': + optional: true + '@typescript/typescript-darwin-arm64@7.0.2': optional: true + '@typescript/typescript-darwin-arm64@7.1.0-beta': + optional: true + '@typescript/typescript-darwin-x64@7.0.2': optional: true + '@typescript/typescript-darwin-x64@7.1.0-beta': + optional: true + '@typescript/typescript-freebsd-arm64@7.0.2': optional: true + '@typescript/typescript-freebsd-arm64@7.1.0-beta': + optional: true + '@typescript/typescript-freebsd-x64@7.0.2': optional: true + '@typescript/typescript-freebsd-x64@7.1.0-beta': + optional: true + '@typescript/typescript-linux-arm64@7.0.2': optional: true + '@typescript/typescript-linux-arm64@7.1.0-beta': + optional: true + '@typescript/typescript-linux-arm@7.0.2': optional: true + '@typescript/typescript-linux-arm@7.1.0-beta': + optional: true + '@typescript/typescript-linux-loong64@7.0.2': optional: true + '@typescript/typescript-linux-loong64@7.1.0-beta': + optional: true + '@typescript/typescript-linux-mips64el@7.0.2': optional: true + '@typescript/typescript-linux-mips64el@7.1.0-beta': + optional: true + '@typescript/typescript-linux-ppc64@7.0.2': optional: true + '@typescript/typescript-linux-ppc64@7.1.0-beta': + optional: true + '@typescript/typescript-linux-riscv64@7.0.2': optional: true + '@typescript/typescript-linux-riscv64@7.1.0-beta': + optional: true + '@typescript/typescript-linux-s390x@7.0.2': optional: true + '@typescript/typescript-linux-s390x@7.1.0-beta': + optional: true + '@typescript/typescript-linux-x64@7.0.2': optional: true + '@typescript/typescript-linux-x64@7.1.0-beta': + optional: true + '@typescript/typescript-netbsd-arm64@7.0.2': optional: true + '@typescript/typescript-netbsd-arm64@7.1.0-beta': + optional: true + '@typescript/typescript-netbsd-x64@7.0.2': optional: true + '@typescript/typescript-netbsd-x64@7.1.0-beta': + optional: true + '@typescript/typescript-openbsd-arm64@7.0.2': optional: true + '@typescript/typescript-openbsd-arm64@7.1.0-beta': + optional: true + '@typescript/typescript-openbsd-x64@7.0.2': optional: true + '@typescript/typescript-openbsd-x64@7.1.0-beta': + optional: true + '@typescript/typescript-sunos-x64@7.0.2': optional: true + '@typescript/typescript-sunos-x64@7.1.0-beta': + optional: true + '@typescript/typescript-win32-arm64@7.0.2': optional: true + '@typescript/typescript-win32-arm64@7.1.0-beta': + optional: true + '@typescript/typescript-win32-x64@7.0.2': optional: true + '@typescript/typescript-win32-x64@7.1.0-beta': + optional: true + '@vitejs/devtools-kit@0.8.0(@devframes/agentic@1.2.6)(cac@7.1.0)(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core)': dependencies: '@devframes/hub': 1.2.6(@devframes/agentic@1.2.6)(crossws@0.4.12(srvx@1.0.6))(devframe@1.2.6) @@ -11091,7 +11304,7 @@ snapshots: typescript: 6.0.3 vscode-uri: 3.2.0 - '@vue-macros/common@3.1.4(vue@3.5.40(typescript@7.0.2))': + '@vue-macros/common@3.1.4(vue@3.5.40(typescript@7.1.0-beta))': dependencies: '@vue/compiler-sfc': 3.5.40 ast-kit: 2.2.0 @@ -11099,7 +11312,7 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.2 optionalDependencies: - vue: 3.5.40(typescript@7.0.2) + vue: 3.5.40(typescript@7.1.0-beta) '@vue/compiler-core@3.5.40': dependencies: @@ -13525,7 +13738,7 @@ snapshots: rgb2hex@0.2.5: {} - rolldown-plugin-dts@0.28.8(@typescript/native-preview@7.0.0-dev.20260707.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@6.0.3)(vue-tsc@3.3.12(typescript@6.0.3)): + rolldown-plugin-dts@0.28.8(@typescript/native-preview@7.0.0-dev.20260707.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.0.2)(vue-tsc@3.3.12(typescript@7.0.2)): dependencies: dts-resolver: 3.0.0(oxc-resolver@11.24.2) get-tsconfig: 5.0.0-beta.6 @@ -13536,6 +13749,23 @@ snapshots: yuku-parser: 0.19.0 optionalDependencies: '@typescript/native-preview': 7.0.0-dev.20260707.2 + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.3.12 + typescript: 7.0.2 + vue-tsc: 3.3.12(typescript@7.0.2) + transitivePeerDependencies: + - oxc-resolver + + rolldown-plugin-dts@0.29.0-beta.2(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@6.0.3)(vue-tsc@3.3.12(typescript@6.0.3)): + dependencies: + dts-resolver: 3.0.0(oxc-resolver@11.24.2) + get-tsconfig: 5.0.0-beta.6 + obug: 3.0.0 + rolldown: link:rolldown/packages/rolldown + yuku-ast: 0.19.0 + yuku-codegen: 0.19.0 + yuku-parser: 0.19.0 + optionalDependencies: '@volar/typescript': 2.4.28 '@vue/language-core': 3.3.12 typescript: 6.0.3 @@ -13543,7 +13773,7 @@ snapshots: transitivePeerDependencies: - oxc-resolver - rolldown-plugin-dts@0.28.8(@typescript/native-preview@7.0.0-dev.20260707.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.0.2)(vue-tsc@3.3.12(typescript@7.0.2)): + rolldown-plugin-dts@0.29.0-beta.2(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.1.0-beta)(vue-tsc@3.3.12(typescript@7.1.0-beta)): dependencies: dts-resolver: 3.0.0(oxc-resolver@11.24.2) get-tsconfig: 5.0.0-beta.6 @@ -13553,11 +13783,10 @@ snapshots: yuku-codegen: 0.19.0 yuku-parser: 0.19.0 optionalDependencies: - '@typescript/native-preview': 7.0.0-dev.20260707.2 '@volar/typescript': 2.4.28 '@vue/language-core': 3.3.12 - typescript: 7.0.2 - vue-tsc: 3.3.12(typescript@7.0.2) + typescript: 7.1.0-beta + vue-tsc: 3.3.12(typescript@7.1.0-beta) transitivePeerDependencies: - oxc-resolver @@ -14061,7 +14290,7 @@ snapshots: typescript: 7.0.2 optional: true - tsdown@0.23.1(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.1)(@tsdown/exe@0.23.1)(@typescript/native-preview@7.0.0-dev.20260707.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.0.2)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.0.2)): + tsdown@0.23.2(@arethetypeswrong/core@0.18.2)(@tsdown/css@0.23.2)(@tsdown/exe@0.23.2)(@vitejs/devtools@0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core))(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(publint@0.3.24)(tsx@4.23.15)(typescript@7.1.0-beta)(unplugin-unused@0.5.6)(unrun@0.3.1)(vue-tsc@3.3.12(typescript@7.1.0-beta)): dependencies: cac: 7.1.0 defu: 6.1.7 @@ -14071,7 +14300,7 @@ snapshots: obug: 3.0.0 picomatch: 4.0.7 rolldown: link:rolldown/packages/rolldown - rolldown-plugin-dts: 0.28.8(@typescript/native-preview@7.0.0-dev.20260707.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.0.2)(vue-tsc@3.3.12(typescript@7.0.2)) + rolldown-plugin-dts: 0.29.0-beta.2(@volar/typescript@2.4.28)(@vue/language-core@3.3.12)(oxc-resolver@11.24.2)(rolldown@rolldown+packages+rolldown)(typescript@7.1.0-beta)(vue-tsc@3.3.12(typescript@7.1.0-beta)) tinyexec: 1.3.1 tinyglobby: 0.2.17 tree-kill: 1.2.2 @@ -14079,16 +14308,15 @@ snapshots: verkit: 0.5.0 optionalDependencies: '@arethetypeswrong/core': 0.18.2 - '@tsdown/css': 0.23.1(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.1)(tsx@4.23.15)(yaml@2.9.1) - '@tsdown/exe': 0.23.1(tsdown@0.23.1) + '@tsdown/css': 0.23.2(jiti@2.7.0)(postcss-import@16.2.0(postcss@8.5.31))(postcss-modules@9.0.1(postcss@8.5.31))(postcss@8.5.31)(sass-embedded@1.105.2(source-map-js@1.2.2))(sass@1.105.2)(tsdown@0.23.2)(tsx@4.23.15)(yaml@2.9.1) + '@tsdown/exe': 0.23.2(tsdown@0.23.2) '@vitejs/devtools': 0.8.0(crossws@0.4.12(srvx@1.0.6))(srvx@1.0.6)(vite@packages+core) publint: 0.3.24 tsx: 4.23.15 - typescript: 7.0.2 + typescript: 7.1.0-beta unplugin-unused: 0.5.6 unrun: 0.3.1 transitivePeerDependencies: - - '@typescript/native-preview' - '@volar/typescript' - '@vue/language-core' - oxc-resolver @@ -14143,6 +14371,30 @@ snapshots: '@typescript/typescript-win32-arm64': 7.0.2 '@typescript/typescript-win32-x64': 7.0.2 + typescript@7.1.0-beta: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.1.0-beta + '@typescript/typescript-android-arm64': 7.1.0-beta + '@typescript/typescript-darwin-arm64': 7.1.0-beta + '@typescript/typescript-darwin-x64': 7.1.0-beta + '@typescript/typescript-freebsd-arm64': 7.1.0-beta + '@typescript/typescript-freebsd-x64': 7.1.0-beta + '@typescript/typescript-linux-arm': 7.1.0-beta + '@typescript/typescript-linux-arm64': 7.1.0-beta + '@typescript/typescript-linux-loong64': 7.1.0-beta + '@typescript/typescript-linux-mips64el': 7.1.0-beta + '@typescript/typescript-linux-ppc64': 7.1.0-beta + '@typescript/typescript-linux-riscv64': 7.1.0-beta + '@typescript/typescript-linux-s390x': 7.1.0-beta + '@typescript/typescript-linux-x64': 7.1.0-beta + '@typescript/typescript-netbsd-arm64': 7.1.0-beta + '@typescript/typescript-netbsd-x64': 7.1.0-beta + '@typescript/typescript-openbsd-arm64': 7.1.0-beta + '@typescript/typescript-openbsd-x64': 7.1.0-beta + '@typescript/typescript-sunos-x64': 7.1.0-beta + '@typescript/typescript-win32-arm64': 7.1.0-beta + '@typescript/typescript-win32-x64': 7.1.0-beta + ufo@1.6.4: {} unbash@4.0.11: {} @@ -14325,9 +14577,9 @@ snapshots: vscode-uri@3.2.0: {} - vue-router@5.3.1(@vue/compiler-sfc@3.5.40)(esbuild@0.28.2)(rolldown@rolldown+packages+rolldown)(rollup@4.63.1)(vite@packages+core)(vue@3.5.40(typescript@7.0.2)): + vue-router@5.3.1(@vue/compiler-sfc@3.5.40)(esbuild@0.28.2)(rolldown@rolldown+packages+rolldown)(rollup@4.63.1)(vite@packages+core)(vue@3.5.40(typescript@7.1.0-beta)): dependencies: - '@vue-macros/common': 3.1.4(vue@3.5.40(typescript@7.0.2)) + '@vue-macros/common': 3.1.4(vue@3.5.40(typescript@7.1.0-beta)) '@vue/devtools-api': 8.2.1 ast-walker-scope: 0.9.0 chokidar: 5.0.0 @@ -14343,7 +14595,7 @@ snapshots: tinyglobby: 0.2.17 unplugin: 3.3.0(esbuild@0.28.2)(rolldown@rolldown+packages+rolldown)(rollup@4.63.1)(vite@packages+core) unplugin-utils: 0.3.2 - vue: 3.5.40(typescript@7.0.2) + vue: 3.5.40(typescript@7.1.0-beta) optionalDependencies: '@vue/compiler-sfc': 3.5.40 vite: link:packages/core @@ -14369,8 +14621,15 @@ snapshots: '@volar/typescript': 2.4.28 '@vue/language-core': 3.3.12 typescript: 7.0.2 + optional: true + + vue-tsc@3.3.12(typescript@7.1.0-beta): + dependencies: + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.3.12 + typescript: 7.1.0-beta - vue@3.5.40(typescript@7.0.2): + vue@3.5.40(typescript@7.1.0-beta): dependencies: '@vue/compiler-dom': 3.5.40 '@vue/compiler-sfc': 3.5.40 @@ -14378,7 +14637,7 @@ snapshots: '@vue/server-renderer': 3.5.40 '@vue/shared': 3.5.40 optionalDependencies: - typescript: 7.0.2 + typescript: 7.1.0-beta w3c-xmlserializer@5.0.0: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 777e6caf1a..1a09d59ed7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -19,8 +19,8 @@ catalog: '@napi-rs/cli': ^3.10.0 '@napi-rs/wasm-runtime': ~1.2.5 '@nkzw/safe-word-list': ^3.1.0 - '@oxc-node/cli': ^1.0.0 - '@oxc-node/core': ^1.0.0 + '@oxc-node/cli': ^1.0.1 + '@oxc-node/core': ^1.0.1 '@oxc-project/runtime': =0.155.0 '@oxc-project/types': =0.155.0 # Kept at the oxlint version by .github/scripts/upgrade-deps.ts @@ -30,8 +30,8 @@ catalog: '@rollup/plugin-commonjs': ^29.0.0 '@rollup/plugin-json': ^6.1.0 '@rollup/plugin-node-resolve': ^16.0.0 - '@tsdown/css': ^0.23.1 - '@tsdown/exe': ^0.23.1 + '@tsdown/css': ^0.23.2 + '@tsdown/exe': ^0.23.2 '@types/babel__core': 7.20.5 '@types/connect': ^3.4.38 '@types/cross-spawn': ^6.0.6 @@ -106,7 +106,7 @@ catalog: react-dom: ^19.1.0 remark-parse: ^11.0.0 remeda: ^2.50.0 - rolldown-plugin-dts: ^0.28.0 + rolldown-plugin-dts: ^0.29.0-beta.2 rollup: ^4.63.0 semver: ^7.8.0 serve-static: ^2.0.0 @@ -118,9 +118,9 @@ catalog: tinybench: ^6.0.0 tinyexec: ^1.0.1 tinyglobby: ^0.2.15 - tsdown: ^0.23.1 + tsdown: ^0.23.2 tsx: ^4.22.0 - typescript: ~7.0.2 + typescript: 7.1.0-beta unified: ^11.0.5 valibot: 1.5.0 validate-npm-package-name: ^8.0.0 From 196192f062b2ac4759090c50e3433a72c2995396 Mon Sep 17 00:00:00 2001 From: MK Date: Mon, 26 Oct 2026 11:57:02 +0900 Subject: [PATCH 2/2] fix: preserve compatibility in upstream dependency updates --- .github/workflows/upgrade-deps.yml | 55 ++- .../command_pack_dts_compat/package.json | 12 + .../pnpm-workspace.yaml | 2 + .../command_pack_dts_compat/snapshots.toml | 24 ++ .../command_pack_dts_native_preview.md | 37 ++ .../command_pack_dts_typescript_7.md | 31 ++ .../command_pack_dts_compat/src/format.ts | 3 + .../command_pack_dts_compat/src/index.ts | 6 + .../command_pack_dts_compat/tsconfig.json | 9 + .../command_pack_dts_compat/vite.config.ts | 8 + .../snapshots/command_pack_monorepo.md | 8 +- .../command_vpx_script/snapshots.toml | 14 + ...vpx_script_async_loader_settings.global.md | 41 +++ .../vpx_script_async_loader_settings.local.md | 41 +++ packages/cli/BUNDLING.md | 4 +- packages/cli/binding/index.d.cts | 8 + packages/cli/binding/src/oxc_node.rs | 21 +- .../cli/src/__tests__/exports-map.spec.ts | 19 +- .../__tests__/register-template.spec.ts | 7 +- packages/cli/src/define-config.ts | 2 +- packages/cli/src/oxlint-plugin.ts | 6 +- packages/cli/src/script-esm-hooks.ts | 16 +- packages/cli/src/script-preload.ts | 5 +- packages/cli/src/script-register.ts | 11 +- packages/cli/src/version.ts | 2 +- packages/cli/tsdown.config.ts | 7 +- packages/core/build.ts | 7 +- packages/core/package.json | 4 + packages/prompts/src/box.ts | 2 +- packages/prompts/src/common.ts | 80 ++--- packages/prompts/src/log.ts | 14 +- packages/prompts/src/messages.ts | 6 +- packages/prompts/src/note.ts | 2 +- packages/prompts/src/stream.ts | 14 +- packages/prompts/src/task-log.ts | 15 +- packages/prompts/src/task.ts | 2 +- packages/prompts/tsdown.config.ts | 6 - .../src/__tests__/patch-oxc-node.spec.ts | 31 +- .../src/__tests__/sync-remote-deps.spec.ts | 2 +- .../src/__tests__/sync-remote-yaml.spec.ts | 31 +- packages/tools/src/patch-oxc-node.ts | 30 +- packages/tools/src/sync-remote-deps.ts | 23 +- pnpm-lock.yaml | 330 ++---------------- pnpm-workspace.yaml | 8 +- 44 files changed, 517 insertions(+), 489 deletions(-) create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/package.json create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/pnpm-workspace.yaml create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots.toml create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_native_preview.md create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_typescript_7.md create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/format.ts create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/index.ts create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/tsconfig.json create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/vite.config.ts create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.global.md create mode 100644 crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.local.md diff --git a/.github/workflows/upgrade-deps.yml b/.github/workflows/upgrade-deps.yml index 571d517ee9..2ac25b2181 100644 --- a/.github/workflows/upgrade-deps.yml +++ b/.github/workflows/upgrade-deps.yml @@ -190,21 +190,23 @@ jobs: incorrect source-level fix, fix the source and regenerate until the diff is either gone or intentionally kept. - ### Final validation (this step is complete ONLY when all pass) - 1. `just build` exits 0. - 2. `pnpm bootstrap-cli:ci && pnpm test:unit` exits 0. - 3. `just snapshot-test` exits 0. Snapshot mismatches fail the run with a - unified diff. Re-record with `UPDATE_SNAPSHOTS=1` only for cosmetic - drift from the upgrade (e.g. a bumped version string in help output); - unexpected stack traces, missing output, or diverging CLI behavior are - regressions to fix. - 4. `git status --short` and `git diff --stat` have been inspected, and - every changed file is intentional for the upgrade PR. Pay special - attention to generated NAPI binding files, because later CI runs fail - if a build produces uncommitted binding output changes. - - If any of the four above fails, diagnose the root cause, fix it, and re-run - the final validation. Do not exit with the task marked complete otherwise. + ### Validation during fixups + Rebuild the affected packages and run focused tests for each fix. For + tsdown or declaration-generator changes, run `just snapshot-test + command_pack_dts_compat`, `just snapshot-test command_pack_monorepo`, + and `just snapshot-test migration_from_tsup_monorepo_success`. + A successful internal build does + not prove that `vp pack` works with consumers' TypeScript versions. + + Re-record with `UPDATE_SNAPSHOTS=1` only for cosmetic drift from the + upgrade (e.g. a bumped version string in help output). Unexpected stack + traces, missing output, or diverging CLI behavior are regressions to fix. + Inspect `git status --short` and `git diff --stat` before finishing; + every changed file, including generated NAPI bindings, must be intentional. + + The workflow's separate Final validation step runs the full build, unit + tests, and snapshot suite after this action. Do not launch the full + snapshot suite here or leave any validation command running in the background. ### Running long commands (IMPORTANT) Run every long-running command (`just build`, `pnpm bootstrap-cli:ci`, @@ -245,6 +247,21 @@ jobs: continue-on-error: true run: pnpm fmt + - name: Final validation + id: final-validation + timeout-minutes: 90 + # Keep broken upgrades available for review, but only as draft PRs. + continue-on-error: true + shell: bash + env: + RELEASE_BUILD: 'true' + run: | + set -euo pipefail + pnpm bootstrap-cli + export PATH="$HOME/.vite-plus/bin:$PATH" + pnpm test:unit + just snapshot-test + - name: Enhance PR description with Kimi K3 id: enhance-pr-description continue-on-error: true @@ -400,6 +417,7 @@ jobs: base: main branch: deps/upstream-update title: 'feat(deps): upgrade upstream dependencies' + draft: ${{ steps.final-validation.outcome != 'success' }} sign-commits: true token: ${{ steps.app-token.outputs.token }} body: ${{ steps.pr-content.outputs.body }} @@ -411,3 +429,10 @@ jobs: GH_TOKEN: ${{ steps.app-token.outputs.token }} PR_NUMBER: ${{ steps.create-pr.outputs.pull-request-number }} run: gh pr comment "${PR_NUMBER}" --repo "${GITHUB_REPOSITORY}" --body-file "${UPGRADE_DEPS_META_DIR}/cli-help-report.md" + + - name: Report validation failure + if: always() && steps.final-validation.outcome != 'success' + shell: bash + run: | + echo '::error::The upgraded dependencies did not pass final validation.' + exit 1 diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/package.json b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/package.json new file mode 100644 index 0000000000..8d8d3c67dc --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/package.json @@ -0,0 +1,12 @@ +{ + "name": "command-pack-dts-compat", + "version": "1.0.0", + "private": true, + "type": "module", + "types": "./dist/index.d.mts", + "devDependencies": { + "typescript": "7.0.2", + "vite-plus": "latest" + }, + "packageManager": "pnpm@11.24.0" +} diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/pnpm-workspace.yaml b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/pnpm-workspace.yaml new file mode 100644 index 0000000000..6739b220f6 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +hoist: false +minimumReleaseAge: 0 diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots.toml b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots.toml new file mode 100644 index 0000000000..e282c45345 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots.toml @@ -0,0 +1,24 @@ +[[case]] +name = "command_pack_dts_typescript_7" +vp = "global" +local-registry = true +comment = "The packed CLI generates inferred declarations with stable TypeScript 7.0.2 and automatic generator selection." +steps = [ + { argv = ["vp", "install", "--ignore-scripts"], snapshot = false }, + ["vp", "pack"], + ["vpt", "print-file", "dist/index.d.mts"], +] + +[[case]] +name = "command_pack_dts_native_preview" +vp = "global" +local-registry = true +env = { PACK_DTS_GENERATOR = "tsgo" } +comment = "An explicit tsgo generator uses native-preview with TypeScript 5.9.3. pnpm hoist:false also verifies core declares the optional native-preview peer." +steps = [ + { argv = ["vpt", "json-edit", "package.json", "devDependencies.typescript", "5.9.3"], snapshot = false }, + { argv = ["vpt", "json-edit", "package.json", "devDependencies.@typescript/native-preview", "7.0.0-dev.20260707.2"], snapshot = false }, + { argv = ["vp", "install", "--ignore-scripts"], snapshot = false }, + ["vp", "pack"], + ["vpt", "print-file", "dist/index.d.mts"], +] diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_native_preview.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_native_preview.md new file mode 100644 index 0000000000..4041b06a68 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_native_preview.md @@ -0,0 +1,37 @@ +# command_pack_dts_native_preview + +An explicit tsgo generator uses native-preview with TypeScript 5.9.3. pnpm hoist:false also verifies core declares the optional native-preview peer. + +## `vpt json-edit package.json devDependencies.typescript 5.9.3` + + +## `vpt json-edit package.json devDependencies.@typescript/native-preview 7.0.0-dev.20260707.2` + + +## `vp install --ignore-scripts` + + +## `vp pack` + +``` +VITE+ - The Unified Toolchain for the Web + +ℹ entry: src/index.ts +ℹ tsconfig: tsconfig.json +ℹ Build start +warn: TypeScript 7.0 does not yet have a stable API and is experimental. Some options will be unavailable. +ℹ Emit types with @typescript/native-preview@7.0.0-dev.20260707.2 +ℹ dist/index.mjs kB │ gzip: kB +ℹ dist/index.d.mts kB │ gzip: kB +ℹ 2 files, total: kB +✔ Build complete in +``` + +## `vpt print-file dist/index.d.mts` + +``` +export declare function greet(name: string): { + message: string; + length: number; +}; +``` diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_typescript_7.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_typescript_7.md new file mode 100644 index 0000000000..3c79d1a935 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/snapshots/command_pack_dts_typescript_7.md @@ -0,0 +1,31 @@ +# command_pack_dts_typescript_7 + +The packed CLI generates inferred declarations with stable TypeScript 7.0.2 and automatic generator selection. + +## `vp install --ignore-scripts` + + +## `vp pack` + +``` +VITE+ - The Unified Toolchain for the Web + +ℹ entry: src/index.ts +ℹ tsconfig: tsconfig.json +ℹ Build start +warn: TypeScript 7.0 does not yet have a stable API and is experimental. Some options will be unavailable. +ℹ Emit types with typescript@7.0.2 +ℹ dist/index.mjs kB │ gzip: kB +ℹ dist/index.d.mts kB │ gzip: kB +ℹ 2 files, total: kB +✔ Build complete in +``` + +## `vpt print-file dist/index.d.mts` + +``` +export declare function greet(name: string): { + message: string; + length: number; +}; +``` diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/format.ts b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/format.ts new file mode 100644 index 0000000000..72b05501b5 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/format.ts @@ -0,0 +1,3 @@ +export function format(name: string) { + return `Hello, ${name}!`; +} diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/index.ts b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/index.ts new file mode 100644 index 0000000000..62350dd8d8 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/src/index.ts @@ -0,0 +1,6 @@ +import { format } from './format.js'; + +// The declaration generator must infer exported types across module boundaries. +export function greet(name: string) { + return { message: format(name), length: name.length }; +} diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/tsconfig.json b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/tsconfig.json new file mode 100644 index 0000000000..9f829f8194 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "NodeNext", + "strict": true, + "declaration": true + }, + "include": ["src"] +} diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/vite.config.ts b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/vite.config.ts new file mode 100644 index 0000000000..f5a152ca92 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_dts_compat/vite.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite-plus'; + +export default defineConfig({ + pack: { + entry: ['src/index.ts'], + dts: process.env.PACK_DTS_GENERATOR === 'tsgo' ? { generator: 'tsgo' } : true, + }, +}); diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md index a6980f9ba8..e1a364cf1e 100644 --- a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_pack_monorepo/snapshots/command_pack_monorepo.md @@ -106,8 +106,8 @@ should hit cache from sub dir ℹ entry: ./src/sub/index.ts ℹ tsconfig: tsconfig.json ℹ Build start -warn: TypeScript Go is experimental. Some options will be unavailable. -ℹ Emit types with TypeScript Go +warn: TypeScript 7.0 does not yet have a stable API and is experimental. Some options will be unavailable. +ℹ Emit types with typescript@7.0.2 ℹ dist/index.mjs kB │ gzip: kB ℹ dist/index.d.mts kB │ gzip: kB ℹ 2 files, total: kB @@ -126,8 +126,8 @@ should hit cache from root after sub dir build ℹ entry: ./src/sub/index.ts ℹ tsconfig: tsconfig.json ℹ Build start -warn: TypeScript Go is experimental. Some options will be unavailable. -ℹ Emit types with TypeScript Go +warn: TypeScript 7.0 does not yet have a stable API and is experimental. Some options will be unavailable. +ℹ Emit types with typescript@7.0.2 ℹ dist/index.mjs kB │ gzip: kB ℹ dist/index.d.mts kB │ gzip: kB ℹ 2 files, total: kB diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots.toml b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots.toml index 07ddd0997e..23660de5d9 100644 --- a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots.toml +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots.toml @@ -77,6 +77,20 @@ steps = [ { argv = ["vpx", "./src/require-ts-dependency.cts"], comment = "A CommonJS TypeScript dependency loaded with require()" }, ] +[[case]] +name = "vpx_script_async_loader_settings" +vp = ["local", "global"] +env = { VP_NODE_VERSION = "22.18.0" } +comment = "Off-thread ESM hooks receive the CommonJS preload's tsconfig selection and TypeScript dependency policy." +steps = [ + { argv = ["vpx", "--tsconfig", "tsconfig.alt.json", "src/resolution.ts"], comment = "The loader thread honors --tsconfig instead of discovering the default config" }, + { argv = ["vpx", "./src/print-setup.ts"], envs = [["TS_NODE_PROJECT", "missing.json"]], comment = "A missing environment-selected config keeps its TS_NODE_PROJECT diagnostic label" }, + { argv = ["vpt", "mkdir", "-p", "node_modules/ts-dep"], snapshot = false }, + { argv = ["vpt", "write-file", "node_modules/ts-dep/package.json", "{ \"name\": \"ts-dep\", \"type\": \"module\", \"exports\": \"./index.ts\" }\n"], snapshot = false }, + { argv = ["vpt", "write-file", "node_modules/ts-dep/index.ts", "export enum Level { High = 'high' }\nexport const level: Level = Level.High;\n"], snapshot = false }, + { argv = ["vpx", "./src/ts-dependency.ts"], comment = "The loader thread transforms published TypeScript dependencies" }, +] + [[case]] name = "vpx_script_tsconfig_transforms" vp = ["local", "global"] diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.global.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.global.md new file mode 100644 index 0000000000..8859ed48c2 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.global.md @@ -0,0 +1,41 @@ +# vpx_script_async_loader_settings + +Off-thread ESM hooks receive the CommonJS preload's tsconfig selection and TypeScript dependency policy. + +## `vpx --tsconfig tsconfig.alt.json src/resolution.ts` + +The loader thread honors --tsconfig instead of discovering the default config + +``` +hello vpx from alt +4 6 42 cts counter=1 +``` + +## `TS_NODE_PROJECT=missing.json vpx ./src/print-setup.ts` + +A missing environment-selected config keeps its TS_NODE_PROJECT diagnostic label + +``` +oxc-node: warning: the tsconfig TS_NODE_PROJECT names, /missing.json, does not exist; running without a tsconfig +no preload +``` + +## `vpt mkdir -p node_modules/ts-dep` + + +## `vpt write-file node_modules/ts-dep/package.json '{ "name": "ts-dep", "type": "module", "exports": "./index.ts" } +'` + + +## `vpt write-file node_modules/ts-dep/index.ts 'export enum Level { High = '\''high'\'' } +export const level: Level = Level.High; +'` + + +## `vpx ./src/ts-dependency.ts` + +The loader thread transforms published TypeScript dependencies + +``` +ts-dep: high +``` diff --git a/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.local.md b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.local.md new file mode 100644 index 0000000000..8859ed48c2 --- /dev/null +++ b/crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_vpx_script/snapshots/vpx_script_async_loader_settings.local.md @@ -0,0 +1,41 @@ +# vpx_script_async_loader_settings + +Off-thread ESM hooks receive the CommonJS preload's tsconfig selection and TypeScript dependency policy. + +## `vpx --tsconfig tsconfig.alt.json src/resolution.ts` + +The loader thread honors --tsconfig instead of discovering the default config + +``` +hello vpx from alt +4 6 42 cts counter=1 +``` + +## `TS_NODE_PROJECT=missing.json vpx ./src/print-setup.ts` + +A missing environment-selected config keeps its TS_NODE_PROJECT diagnostic label + +``` +oxc-node: warning: the tsconfig TS_NODE_PROJECT names, /missing.json, does not exist; running without a tsconfig +no preload +``` + +## `vpt mkdir -p node_modules/ts-dep` + + +## `vpt write-file node_modules/ts-dep/package.json '{ "name": "ts-dep", "type": "module", "exports": "./index.ts" } +'` + + +## `vpt write-file node_modules/ts-dep/index.ts 'export enum Level { High = '\''high'\'' } +export const level: Level = Level.High; +'` + + +## `vpx ./src/ts-dependency.ts` + +The loader thread transforms published TypeScript dependencies + +``` +ts-dep: high +``` diff --git a/packages/cli/BUNDLING.md b/packages/cli/BUNDLING.md index 58e854fb7a..6c29cac777 100644 --- a/packages/cli/BUNDLING.md +++ b/packages/cli/BUNDLING.md @@ -312,8 +312,8 @@ A binding built by `pnpm build` contains: `vpx