Upgrading @vercel/build-utils from 14.x to 15.x
Comparison of the public API of @vercel/build-utils 14.23.0 and 15.0.0, computed automatically from their TypeScript types. A changed signature is a candidate for a breaking change, not a certainty.
Summary
| Removed import paths | 0 |
|---|---|
| Removed exports | 61 |
| Changed signatures | 2 |
| Removed class or interface members | 0 |
| Changed class or interface members | 0 |
| Newly deprecated | 0 |
| Requirement changes (engines, peer dependencies) | 0 |
| New exports | 0 |
Removed exports
| import | export | kind | Before |
|---|---|---|---|
@vercel/build-utils | md5 | function | (value: Buffer): string |
@vercel/build-utils | TraceFn | type | <T>(name: string, fn: () => Promise<T>, tags?: Record<string, string> | undefined) => Promise<T> |
@vercel/build-utils | Properties | type | { [P in keyof T as T[P] extends (...args: any[]) => any ? never : P]: T[P]; } |
@vercel/build-utils | CreateZipFn | type | (lambda: Lambda | NodejsLambda) => Promise<CreateZipResult> |
@vercel/build-utils | maybeReadJSON | function | <T = any>(path: string): Promise<T | undefined> |
@vercel/build-utils | finalizeLambda | function | (params: FinalizeLambdaParams): Promise<FinalizeLambdaResult> |
@vercel/build-utils | getContentType | function | (path: string): string |
@vercel/build-utils | BuildOutputFile | interface | interface |
@vercel/build-utils | CreateZipResult | interface | interface |
@vercel/build-utils | ExtendedPayload | interface | interface |
@vercel/build-utils | MAX_LAMBDA_SIZE | variable | number |
@vercel/build-utils | getEncryptedEnv | function | (envFilename: string | undefined, envContent: string | undefined): EncryptedEnvFile | undefined |
@vercel/build-utils | hydrateFilesMap | function | (files: Files, filesMap: Record<string, string>, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>): Promise<void> |
@vercel/build-utils | EncryptedEnvFile | type | [string, FileBlob] |
@vercel/build-utils | SerializedLambda | type | Properties<Omit<T, "files" | "zipBuffer">> & FilesMapProp |
@vercel/build-utils | FunctionSizeError | class | class |
@vercel/build-utils | deserializeLambda | function | (files: Files, config: SerializedLambda | SerializedNodejsLambda, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>, options?: DeserializeLambdaOptions | undefined): Promise<Lambda> |
@vercel/build-utils | getPrerenderChain | function | (prerender: Prerender): Chain | undefined |
@vercel/build-utils | isRouteMiddleware | function | (route: Route): route is any |
@vercel/build-utils | validatePrerender | function | (prerender: PrerenderLike): asserts prerender is { lambda: Lambda; } |
@vercel/build-utils | validateLambdaSize | function | (outputPath: string, runtime: string, size: number): void |
@vercel/build-utils | BuildResultMetadata | interface | interface |
@vercel/build-utils | GroupLambdasOptions | type | { force: "all" | undefined; maxBundleSizeMb: number | undefined; debug: boolean | undefined; } |
@vercel/build-utils | SerializedFileFsRef | type | { type: "FileFsRef"; mode: number; fsPath: string; size?: number | undefined; contentType: string | undefined; } |
@vercel/build-utils | SerializedPrerender | type | Properties<Omit<Prerender, "lambda" | "fallback">> & { fallback: Properties<FileFsRef> | null; } |
@vercel/build-utils | validateBuildResult | function | ({ allowInvalidRuntime, buildConfig, buildResponse, vercelBaseUrl, }: ValidateBuildResultParams): Promise<ValidateBuildResultResult> |
@vercel/build-utils | validateRegularFile | function | (file: FileFsRef): Promise<Stats> | <T extends object>(file: T | FileLike): Promise<any> |
@vercel/build-utils | FinalizeLambdaParams | interface | interface |
@vercel/build-utils | FinalizeLambdaResult | interface | interface |
@vercel/build-utils | getLambdaEnvironment | function | (lambda: LambdaLike, buffer: { byteLength: number; }, options: BytecodeCachingOptions): Record<string, string> |
@vercel/build-utils | validateDeploymentId | function | (deploymentId?: string | undefined): void |
@vercel/build-utils | fileToBuildOutputFile | function | (params: { buildResult: FileRef | FileFsRef | FileBlob; extendedBody?: { prefix: string; suffix: string; } | undefined; outputPath: string; }): Promise<{ output: BuildOutputFile; digest: FileDigest; }> |
@vercel/build-utils | getLambdaByOutputPath | function | (params: { buildOutputMap: Record<string, File | Lambda | Prerender | EdgeFunction>; outputPath: string; }): Lambda | undefined |
@vercel/build-utils | BytecodeCachingOptions | interface | interface |
@vercel/build-utils | SerializedEdgeFunction | type | Properties<Omit<EdgeFunction, "name" | "deploymentTarget" | "files">> & FilesMapProp |
@vercel/build-utils | SerializedNodejsLambda | type | Properties<Omit<T, "files" | "zipBuffer">> & FilesMapProp |
@vercel/build-utils | deserializeBuildOutput | function | <TFlags = unknown, TMeta = unknown, TLambda extends Lambda = Lambda>(options: DeserializeBuildOutputOptions<TMeta, TLambda>): Promise<DeserializeBuildOutputResult<TFlags, TMeta>> |
@vercel/build-utils | getBuildResultMetadata | function | (params: { buildOutputMap: Record<string, File | Lambda | Prerender | EdgeFunction>; routes: Route[]; }): BuildResultMetadata |
@vercel/build-utils | collectUncompressedSize | variable | (files: Files, ignoreFn?: ((fileKey: string) => boolean) | undefined): Promise<number> |
@vercel/build-utils | createFunctionsIterator | function | (dir: string, root?: string | undefined): AsyncIterable<string> |
@vercel/build-utils | deserializeEdgeFunction | function | (files: Files, config: SerializedEdgeFunction, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>): Promise<EdgeFunction> |
@vercel/build-utils | getLambdaPreloadScripts | function | (lambda: LambdaLike, buffer: { byteLength: number; }, options: BytecodeCachingOptions): string[] |
@vercel/build-utils | DeserializeLambdaOptions | interface | interface |
@vercel/build-utils | validateFrameworkVersion | function | (framework: FrameworkMeta | undefined): FrameworkMeta | undefined |
@vercel/build-utils | SUPPORTED_AL2023_RUNTIMES | variable | readonly ["nodejs20.x", "nodejs22.x", "nodejs24.x", "nodejs26.x", "provided.al2023", "python3.12", "python3.13", "python3.14", "ruby3.3", "bun1.4.x", "bun1.x", "executable"] |
@vercel/build-utils | ValidateBuildResultParams | interface | interface |
@vercel/build-utils | ValidateBuildResultResult | interface | interface |
@vercel/build-utils | streamWithExtendedPayload | function | (stream: NodeJS.ReadableStream, data?: ExtendedBodyData | undefined): NodeJS.ReadableStream |
@vercel/build-utils | validateEnvWrapperSupport | function | (encryptedEnvFilename: string | undefined, encryptedEnvContent: string | undefined, lambda: LambdaLikeForEnvWrapper): void |
@vercel/build-utils | getLambdaSupportsStreaming | function | (lambda: LambdaLike, forceStreamingRuntime: boolean): boolean | undefined |
@vercel/build-utils | prerenderToBuildOutputFile | function | (params: { buildResult: Prerender; outputPath: string; }): Promise<PrerenderToBuildOutputFileResult | null> |
@vercel/build-utils | DeserializeBuildOutputConfig | interface | interface |
@vercel/build-utils | DeserializeBuildOutputResult | type | Omit<BuildResultV2Typical, "flags"> & { flags?: TFlags | undefined; meta?: TMeta | undefined; } |
@vercel/build-utils | MAX_LAMBDA_UNCOMPRESSED_SIZE | variable | number |
@vercel/build-utils | DeserializeBuildOutputOptions | interface | interface |
@vercel/build-utils | ENV_WRAPPER_SUPPORTED_FAMILIES | variable | string[] |
@vercel/build-utils | validateUncompressedLambdaSize | function | (outputPath: string, uncompressedBytes: number): void |
@vercel/build-utils | DeserializeBuildOutputPathOverride | interface | interface |
@vercel/build-utils | DeserializeBuildOutputLambdaOptions | type | { forceNodejsStreaming?: boolean | undefined; useOnlyStreamingLambda?: boolean | undefined; } |
@vercel/build-utils | DeserializeBuildOutputSerializedConfig | type | SerializedLambda | SerializedNodejsLambda | SerializedEdgeFunction |
@vercel/build-utils | DeserializeBuildOutputSerializedPrerender | type | Properties<Omit<Prerender, "lambda" | "fallback">> & { fallback: Properties<FileFsRef> | null; } |
Changed signatures
| export | Before | After |
|---|---|---|
@vercel/build-utils · staticFallbackRoutes | (copied: Pick<StaticMount, "fallback" | "urlPath">[], discovered: Pick<StaticMount, "urlPath">[], opts?: StaticPromotionOptions | undefined): RouteWithSrc[] | (copied: Pick<StaticMount, "urlPath" | "fallback">[], discovered: Pick<StaticMount, "urlPath">[], opts?: StaticPromotionOptions | undefined): RouteWithSrc[] |
@vercel/build-utils · VercelJsonScheduleDefinition | ScheduleDefinition | (Pick<ScheduleDefinition, "schedule" | "timezone" | "jitter"> & { entrypoint: string; }) | ScheduleDefinition | (Pick<ScheduleDefinition, "schedule" | "timezone" | "jitter"> & { entrypoint: string; command?: string[] | undefined; root?: string | undefined; }) |
Removed class or interface members
None detected.
Changed class or interface members
None detected.
Newly deprecated
None detected.
Requirement changes (engines, peer dependencies)
None detected.
Changelog between these versions
Text published by the package authors, shown as-is.
15.0.0
### Major Changes
- fec2df1: Remove the legacy BYOC extension's build-output collection and deserialization utilities, Lambda finalization and size validation, and serverless environment/streaming helpers. BYOC function preparation now uses `vercel deploy describe`.
The removed exports include `deserializeBuildOutput`, `deserializeLambda`, `deserializeEdgeFunction`, `finalizeLambda`, `collectUncompressedSize`, the `validateBuildResult` and `validateLambdaSize` families, `getEncryptedEnv`, `getLambdaEnvironment`, `getLambdaPreloadScripts`, `getLambdaSupportsStreaming`, and the associated collection/deserialization and serverless types. Also remove the unused standalone `md5` helper. Preserve `streamToDigestAsync`, `sha256`, `FileDigest`, and `ExtendedBodyData`, which still have build-container consumers.
Remove the Node builder's outdated reference to the shared streaming helper; its AWS custom-handler streaming behavior is unchanged.
### Minor Changes
- 9b1b587: Allow explicitly selecting Node.js 26 for local builds without an environment variable.
### Patch Changes
- d123652: Accept a command argument array and `root` with Dockerfile and Containerfile schedule entrypoints. This adds configuration support; building and executing these schedules will follow separately.Give your AI agent these facts
Vigia is a free MCP server: your coding agent checks versions, breaking changes and vulnerabilities before it writes code. No signup, no API key.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Add to CursorAdd to VS Code★ Star on GitHub
Any other MCP client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }Agent skill (SKILL.md): tells the agent when to use Vigia · GitHub Action for pull requests
Frequently asked questions
What are the breaking changes when upgrading @vercel/build-utils from 14 to 15?
Between @vercel/build-utils 14.23.0 and 15.0.0, Vigia found 61 removed exports, 2 changed signatures and 0 removed or changed class or interface members.
What became deprecated in @vercel/build-utils 15?
0 exports or members are newly marked as deprecated in @vercel/build-utils 15.0.0.
For agents
GET https://vigia.coredls.cloud/v1/packages/npm/@vercel/build-utils/upgrade?from=14.23.0&to=15.0.0