mirror of
https://github.com/morluto/rea.git
synced 2026-11-11 17:28:08 +00:00
* fix(cli): refuse an unsupported Node.js release before linking The dispatcher imported the compiled runtime before checking the runtime range, so a release outside `engines.node` failed while linking a module that imports `createZstdDecompress`. Callers saw a module-linking stack trace from every command, including `--version` and `doctor`, instead of the refusal the installer and `engines` already promise. Check `engines.node` from the package read the dispatcher already performs, before the first compiled import. The helper has no imports of its own: the dispatcher must admit the runtime before any dependency can be resolved. Fixes #9296 * fix(cli): ship and align runtime admission * fix(ci): cover packaged runtime admission helper * test(cli): assert Node admission with structured range results Export satisfiesNodeRange and cover caret, minimum, union, and non-release versions. The dispatcher proves the compiled runtime never loads by the absence of its marker file, and compares stderr to the helper's own message. --------- Co-authored-by: 2SinceJuly <202121119+2SinceJuly@users.noreply.github.com> Co-authored-by: morluto <76467478+morluto@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
12 lines
473 B
TypeScript
12 lines
473 B
TypeScript
/** True when `version` is a release admitted by an `engines.node` range. */
|
|
export function satisfiesNodeRange(range: string, version: string): boolean;
|
|
|
|
/** Refusal text for a release outside `range`, or undefined when it is admitted. */
|
|
export function unsupportedRuntimeMessage(
|
|
range: string,
|
|
version: string,
|
|
): string | undefined;
|
|
|
|
/** Human-readable release families for an `engines.node` range. */
|
|
export function supportedReleaseProse(range: string): string;
|