/** * Workspace-wide verification of declared `requires.telo` ranges — the CI half of * declared runtime requirements. * * The same property `verify-requires.ts` proves per module, proven for every * module at once and batched by edge: `telo check` takes many manifest paths, so * modules sharing an edge share one CLI invocation. Across a standard library * declaring one or two distinct lower bounds that is one or two runs, not sixty. * * It lives in `telo release check` rather than behind a new verb because that is * already the modules-in-a-workspace gate and this is a module-level claim. A * third party with no `telo-workspace.yaml` still gets the check at publish; the * two callers are the same function applied to different scopes. * * **Transitive propagation costs nothing.** In-repo modules import siblings by * relative path, so an old CLI checking a dependent reads the working copy of its * dependency. When a sibling adopts new syntax, every dependent fails its own * edge check until its range moves. Nothing walks a graph — the check is the * walk. * * **A forward-declared edge is not a failure here.** A module adopting new syntax * declares the release that will carry it, and on the commit that does so that * release does not exist yet — which is the point of declaring the bound before * it. Such an edge is reported `pending` and never runs; `publish` is where it * becomes fatal, by which time npm has published and the version exists. */ import type { Workspace } from "./workspace.js"; export interface EdgeCheck { /** The telo version the manifests below were checked with. */ edge: string; /** Module keys checked at this edge. */ modules: string[]; /** `pending` means the edge names a version newer than anything published, so * there was nothing to install — see `unreleasedEdge`. It is informational * here and fatal at publish. */ status: "passed" | "failed" | "pending" | "unavailable"; detail?: string; } export interface CheckRequiresResult { checks: EdgeCheck[]; /** True when an edge CLI ran and rejected manifests — the declarations are * false and CI must fail. An `unavailable` edge is unproven, not disproven. */ refuted: boolean; } /** * Verify every workspace module against the edges of its own declared range. * * A module declaring nothing contributes no edge — absent means no requirement, * permanently, for everything published before this mechanism existed. */ export declare function checkWorkspaceRequires(workspace: Workspace, currentVersion: string): Promise; //# sourceMappingURL=check-requires.d.ts.map