eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
32 lines (31 loc) • 1.49 kB
TypeScript
/** An authored Node.js engine value replaced by eve's selected scaffold major. */
export interface NodeEngineOverride {
previous: unknown;
next: string;
}
export type NodeEngineReconciliation = {
kind: "added";
next: string;
} | ({
kind: "overridden";
} & NodeEngineOverride) | {
kind: "unchanged";
};
/**
* The single-major `engines.node` value a generated project should declare,
* derived from eve's required range — e.g. `">=24"` → `"24.x"`. A scaffolded
* app is a deployment artifact, not a library: Vercel reads `engines.node` to
* pick the build's Node and resolves an open range to the newest *supported*
* major, so `">=24"` would float onto a future major as Vercel widens its set,
* whereas `"24.x"` stays on major 24 while still taking minor/patch updates.
* eve's own package keeps the open range; only generated apps pin.
*/
export declare function pinnedNodeEngineMajor(requiredRange: string): string;
/**
* Reconciles an authored `engines.node` value with the single Node.js major
* selected for scaffolded eve projects. Existing ranges are preserved only
* when every version they permit remains inside that selected major.
*/
export declare function reconcileNodeEngine(existingValue: unknown, requiredRange: string): NodeEngineReconciliation;
/** Formats the warning shown when eve replaces an incompatible Node.js engine value. */
export declare function formatNodeEngineOverrideWarning(override: NodeEngineOverride): string;