UNPKG

@beignet/core

Version:

Core framework primitives for Beignet

40 lines 2.32 kB
import type { HttpContractConfig } from "./types.js"; /** * Lifecycle metadata for an HTTP contract that external clients should stop * using. */ export type ContractDeprecationMeta = { /** UTC ISO 8601 timestamp when the contract became deprecated. */ since: string; /** Optional human-readable explanation. */ reason?: string; /** UTC ISO 8601 timestamp after which the contract may stop being served. */ sunset?: string; /** URI reference for the preferred replacement operation. */ replacement?: string; /** Absolute HTTP(S) URL with migration or deprecation documentation. */ documentation?: string; }; /** Stable code identifying invalid lifecycle or operation metadata. */ export type ContractLifecycleFindingCode = "INVALID_DEPRECATION_SINCE" | "INVALID_DEPRECATION_SUNSET" | "DEPRECATION_SUNSET_BEFORE_SINCE" | "INVALID_DEPRECATION_REASON" | "INVALID_DEPRECATION_REPLACEMENT" | "INVALID_DEPRECATION_DOCUMENTATION" | "INVALID_OPERATION_ID"; /** Error raised when contract lifecycle metadata is malformed. */ export declare class ContractLifecycleError extends Error { /** Stable machine-readable finding code. */ readonly code: ContractLifecycleFindingCode; /** Name of the invalid contract, or the group label during group setup. */ readonly contract: string; constructor(args: { code: ContractLifecycleFindingCode; contract: string; message: string; }); } /** Validate deprecation metadata supplied by builders or raw contract configs. */ export declare function assertValidContractDeprecation(deprecation: unknown, contract: string): asserts deprecation is ContractDeprecationMeta; /** Return and validate the operation ID used by OpenAPI and route registries. */ export declare function getContractOperationId(contract: Pick<HttpContractConfig, "name" | "metadata">): string; /** Validate lifecycle metadata on a complete contract definition. */ export declare function assertValidContractLifecycle(contract: Pick<HttpContractConfig, "name" | "metadata">): void; /** Build standards-based HTTP response headers for a deprecated contract. */ export declare function contractLifecycleResponseHeaders(contract: Pick<HttpContractConfig, "name" | "metadata">): Record<string, string>; //# sourceMappingURL=lifecycle.d.ts.map