/** * Pure projection: `BuildxBuildResult` → consumer-facing * `DockerBuildResultLike`. PR 1 (CLI adapter) and PR 2 (worker adapter) * both call this single function so the deploy-core `DockerBuildResult` * shape is produced symmetrically from either side; parity tests assert * byte-identical output for matching inputs. * * `DockerBuildResultLike` is a structural mirror of deploy-core's * `DockerBuildResult` (orchestration/dockerInterface.ts). Defined locally * to keep `@fjall/util` at the root of the workspace dep graph — adapters * upcast structurally at their boundary. * * Required digest source: `BuildxBuildResult.imageDigests` (one entry per * pushed/loaded tag). When the primary tag has no digest in the map we * fail with `metadata_missing_digest` per design § 3.1.1. */ import type { BuildxBuildResult, DockerCliError } from "./dockerCliSchemas.js"; import { type Result } from "./result.js"; export interface DockerBuildResultLike { readonly imageUri: string; readonly imageTag: string; readonly services?: ReadonlyArray<{ name: string; imageUri: string; }>; } export interface ProjectBuildxResultArgs { readonly result: BuildxBuildResult; readonly primaryTag: string; readonly services?: ReadonlyArray<{ name: string; tag: string; }>; } export declare function projectBuildxResult(args: ProjectBuildxResultArgs): Result;