Browse packages

Changelog · v0.24.0

runtime

0.24.0 (2026-11-07)#

Added runtime.on.interrupt(), runtime.on.terminate(), runtime.on.hangup(), runtime.before.exit(), and matching self-signal actions runtime.interrupt(), runtime.terminate(), and runtime.hangup() for portable current-process lifecycle handling on POSIX Node, Bun, and Deno. Subscriptions return idempotent removal functions; browser calls throw unimplemented. Consumers own bounded cleanup and must remove intercepting listeners before re-signalling for default termination. Before-exit callbacks retain the process until their returned promises settle.

0.23.0 (2026-10-30)#

Portable ESM package resolution#

Changed runtime.resolve() to resolve bare packages with ESM import semantics instead of CommonJS require.resolve() semantics. It now applies active host conditions to package exports and imports, preserves nested package ownership and self references, and supports package subpath patterns. Relative and absolute paths retain their existing direct path resolution behavior.

Packages that expose different import and require targets now resolve to the import target. Call runtime.toRequire(path).resolve(specifier) when the CommonJS target is intentionally required.

Node resolution applies observable startup conditions, including NODE_OPTIONS, --conditions, and --no-addons. Bun uses native resolution first. Deno applies its built-in conditions and readable DENO_CONDITIONS, but cannot reproduce CLI --conditions because Deno does not expose those startup values to the running program.