Vigia

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 paths0
Removed exports61
Changed signatures2
Removed class or interface members0
Changed class or interface members0
Newly deprecated0
Requirement changes (engines, peer dependencies)0
New exports0

Removed exports

importexportkindBefore
@vercel/build-utilsmd5function(value: Buffer): string
@vercel/build-utilsTraceFntype<T>(name: string, fn: () => Promise<T>, tags?: Record<string, string> | undefined) => Promise<T>
@vercel/build-utilsPropertiestype{ [P in keyof T as T[P] extends (...args: any[]) => any ? never : P]: T[P]; }
@vercel/build-utilsCreateZipFntype(lambda: Lambda | NodejsLambda) => Promise<CreateZipResult>
@vercel/build-utilsmaybeReadJSONfunction<T = any>(path: string): Promise<T | undefined>
@vercel/build-utilsfinalizeLambdafunction(params: FinalizeLambdaParams): Promise<FinalizeLambdaResult>
@vercel/build-utilsgetContentTypefunction(path: string): string
@vercel/build-utilsBuildOutputFileinterfaceinterface
@vercel/build-utilsCreateZipResultinterfaceinterface
@vercel/build-utilsExtendedPayloadinterfaceinterface
@vercel/build-utilsMAX_LAMBDA_SIZEvariablenumber
@vercel/build-utilsgetEncryptedEnvfunction(envFilename: string | undefined, envContent: string | undefined): EncryptedEnvFile | undefined
@vercel/build-utilshydrateFilesMapfunction(files: Files, filesMap: Record<string, string>, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>): Promise<void>
@vercel/build-utilsEncryptedEnvFiletype[string, FileBlob]
@vercel/build-utilsSerializedLambdatypeProperties<Omit<T, "files" | "zipBuffer">> & FilesMapProp
@vercel/build-utilsFunctionSizeErrorclassclass
@vercel/build-utilsdeserializeLambdafunction(files: Files, config: SerializedLambda | SerializedNodejsLambda, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>, options?: DeserializeLambdaOptions | undefined): Promise<Lambda>
@vercel/build-utilsgetPrerenderChainfunction(prerender: Prerender): Chain | undefined
@vercel/build-utilsisRouteMiddlewarefunction(route: Route): route is any
@vercel/build-utilsvalidatePrerenderfunction(prerender: PrerenderLike): asserts prerender is { lambda: Lambda; }
@vercel/build-utilsvalidateLambdaSizefunction(outputPath: string, runtime: string, size: number): void
@vercel/build-utilsBuildResultMetadatainterfaceinterface
@vercel/build-utilsGroupLambdasOptionstype{ force: "all" | undefined; maxBundleSizeMb: number | undefined; debug: boolean | undefined; }
@vercel/build-utilsSerializedFileFsReftype{ type: "FileFsRef"; mode: number; fsPath: string; size?: number | undefined; contentType: string | undefined; }
@vercel/build-utilsSerializedPrerendertypeProperties<Omit<Prerender, "lambda" | "fallback">> & { fallback: Properties<FileFsRef> | null; }
@vercel/build-utilsvalidateBuildResultfunction({ allowInvalidRuntime, buildConfig, buildResponse, vercelBaseUrl, }: ValidateBuildResultParams): Promise<ValidateBuildResultResult>
@vercel/build-utilsvalidateRegularFilefunction(file: FileFsRef): Promise<Stats> | <T extends object>(file: T | FileLike): Promise<any>
@vercel/build-utilsFinalizeLambdaParamsinterfaceinterface
@vercel/build-utilsFinalizeLambdaResultinterfaceinterface
@vercel/build-utilsgetLambdaEnvironmentfunction(lambda: LambdaLike, buffer: { byteLength: number; }, options: BytecodeCachingOptions): Record<string, string>
@vercel/build-utilsvalidateDeploymentIdfunction(deploymentId?: string | undefined): void
@vercel/build-utilsfileToBuildOutputFilefunction(params: { buildResult: FileRef | FileFsRef | FileBlob; extendedBody?: { prefix: string; suffix: string; } | undefined; outputPath: string; }): Promise<{ output: BuildOutputFile; digest: FileDigest; }>
@vercel/build-utilsgetLambdaByOutputPathfunction(params: { buildOutputMap: Record<string, File | Lambda | Prerender | EdgeFunction>; outputPath: string; }): Lambda | undefined
@vercel/build-utilsBytecodeCachingOptionsinterfaceinterface
@vercel/build-utilsSerializedEdgeFunctiontypeProperties<Omit<EdgeFunction, "name" | "deploymentTarget" | "files">> & FilesMapProp
@vercel/build-utilsSerializedNodejsLambdatypeProperties<Omit<T, "files" | "zipBuffer">> & FilesMapProp
@vercel/build-utilsdeserializeBuildOutputfunction<TFlags = unknown, TMeta = unknown, TLambda extends Lambda = Lambda>(options: DeserializeBuildOutputOptions<TMeta, TLambda>): Promise<DeserializeBuildOutputResult<TFlags, TMeta>>
@vercel/build-utilsgetBuildResultMetadatafunction(params: { buildOutputMap: Record<string, File | Lambda | Prerender | EdgeFunction>; routes: Route[]; }): BuildResultMetadata
@vercel/build-utilscollectUncompressedSizevariable(files: Files, ignoreFn?: ((fileKey: string) => boolean) | undefined): Promise<number>
@vercel/build-utilscreateFunctionsIteratorfunction(dir: string, root?: string | undefined): AsyncIterable<string>
@vercel/build-utilsdeserializeEdgeFunctionfunction(files: Files, config: SerializedEdgeFunction, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>): Promise<EdgeFunction>
@vercel/build-utilsgetLambdaPreloadScriptsfunction(lambda: LambdaLike, buffer: { byteLength: number; }, options: BytecodeCachingOptions): string[]
@vercel/build-utilsDeserializeLambdaOptionsinterfaceinterface
@vercel/build-utilsvalidateFrameworkVersionfunction(framework: FrameworkMeta | undefined): FrameworkMeta | undefined
@vercel/build-utilsSUPPORTED_AL2023_RUNTIMESvariablereadonly ["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-utilsValidateBuildResultParamsinterfaceinterface
@vercel/build-utilsValidateBuildResultResultinterfaceinterface
@vercel/build-utilsstreamWithExtendedPayloadfunction(stream: NodeJS.ReadableStream, data?: ExtendedBodyData | undefined): NodeJS.ReadableStream
@vercel/build-utilsvalidateEnvWrapperSupportfunction(encryptedEnvFilename: string | undefined, encryptedEnvContent: string | undefined, lambda: LambdaLikeForEnvWrapper): void
@vercel/build-utilsgetLambdaSupportsStreamingfunction(lambda: LambdaLike, forceStreamingRuntime: boolean): boolean | undefined
@vercel/build-utilsprerenderToBuildOutputFilefunction(params: { buildResult: Prerender; outputPath: string; }): Promise<PrerenderToBuildOutputFileResult | null>
@vercel/build-utilsDeserializeBuildOutputConfiginterfaceinterface
@vercel/build-utilsDeserializeBuildOutputResulttypeOmit<BuildResultV2Typical, "flags"> & { flags?: TFlags | undefined; meta?: TMeta | undefined; }
@vercel/build-utilsMAX_LAMBDA_UNCOMPRESSED_SIZEvariablenumber
@vercel/build-utilsDeserializeBuildOutputOptionsinterfaceinterface
@vercel/build-utilsENV_WRAPPER_SUPPORTED_FAMILIESvariablestring[]
@vercel/build-utilsvalidateUncompressedLambdaSizefunction(outputPath: string, uncompressedBytes: number): void
@vercel/build-utilsDeserializeBuildOutputPathOverrideinterfaceinterface
@vercel/build-utilsDeserializeBuildOutputLambdaOptionstype{ forceNodejsStreaming?: boolean | undefined; useOnlyStreamingLambda?: boolean | undefined; }
@vercel/build-utilsDeserializeBuildOutputSerializedConfigtypeSerializedLambda | SerializedNodejsLambda | SerializedEdgeFunction
@vercel/build-utilsDeserializeBuildOutputSerializedPrerendertypeProperties<Omit<Prerender, "lambda" | "fallback">> & { fallback: Properties<FileFsRef> | null; }

Changed signatures

exportBeforeAfter
@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 · VercelJsonScheduleDefinitionScheduleDefinition | (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