Files
tech-log-frontend/src/application/ports/release-info-port.ts
T

37 lines
901 B
TypeScript

export type ReleaseInfo = Readonly<{
schemaVersion?: number;
appVersion?: string;
buildId: string;
commitSha?: string;
configSchemaVersion: string;
/**
* §5.1. Legacy scalar, present only while a V1 release manifest is still
* accepted. A V2 manifest expresses contract identity through
* {@link ReleaseInfo.contractSetDigest}.
*/
apiContractVersion?: string;
contractSetDigest?: string;
assetManifestHash: string;
releaseId: string;
builtAt?: string;
routeChunks: Readonly<Record<string, string>>;
}>;
export type ActiveReleaseInfo = Readonly<
Pick<
ReleaseInfo,
| "buildId"
| "configSchemaVersion"
| "apiContractVersion"
| "contractSetDigest"
| "assetManifestHash"
| "releaseId"
| "routeChunks"
>
>;
export type ReleaseInfoPort = Readonly<{
getCurrent(): Promise<ReleaseInfo>;
refresh(): Promise<ActiveReleaseInfo>;
}>;