UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 1.45 kB
import semver from"#compiled/semver/index.js";const{Range,intersects,minVersion,subset,validRange}=semver;function isNonEmptySubset(e,t){let n=validRange(e);return n!==null&&intersects(n,t)&&subset(n,t)}function nextAllowedMajor(e,t){let n=`>=${t+1}.0.0`,r;for(let t of new Range(e).set){let e=[...t.map(e=>e.value).filter(Boolean),n].join(` `),i=minVersion(e);i!==null&&(r===void 0||i.major<r)&&(r=i.major)}return r}function pinnedNodeEngineMajor(e){let t=validRange(e);if(t===null)throw Error(`eve declares an invalid Node.js engine range: "${e}".`);let n=minVersion(t);if(n===null)throw Error(`eve declares an empty Node.js engine range: "${e}".`);let r=n.major;for(;r!==void 0;){let e=`${r}.x`;if(isNonEmptySubset(e,t))return e;r=nextAllowedMajor(t,r)}throw Error(`eve's Node.js engine range "${e}" cannot be represented by a major pin without widening it.`)}function reconcileNodeEngine(e,t){let n=pinnedNodeEngineMajor(t);return e===void 0?{kind:`added`,next:n}:typeof e==`string`&&isNonEmptySubset(e,n)?{kind:`unchanged`}:{kind:`overridden`,previous:e,next:n}}function formatPackageJsonValue(e){return JSON.stringify(e)??String(e)}function formatNodeEngineOverrideWarning(e){return`Overrode package.json engines.node from ${formatPackageJsonValue(e.previous)} to "${e.next}" because the previous value was not confined to the Node.js major selected by eve.`}export{formatNodeEngineOverrideWarning,pinnedNodeEngineMajor,reconcileNodeEngine};