v5.0.0
Release[email protected] — 2026-06-25
Major release: raises the minimum Node.js to 22.18.0 and upgrades the EJS and hookified engines across major versions.
⚠ BREAKING CHANGES
-
Minimum Node.js is now
>=22.18.0. Driven by the hookified v3 upgrade;engines.nodenow declares the floor so older runtimes are warned at install time. (d628ef2, 5f72cd3, #385) Migration: upgrade your runtime to Node.js 22.18.0 or newer. Node 20 reached end-of-life in April 2026. -
EJS upgraded to v6 — template locals no longer resolve through the prototype chain by default. (5f9bba4, #384) Migration: if your EJS templates rely on inherited (prototype-chain) properties from class-instance or
Object.create()locals, opt back in via the ejs option:import { Ecto } from "ecto"; // ecto 4.x (ejs 5): inherited locals resolved automatically // ecto 5.x (ejs 6): opt back in for prototype-chain locals const ecto = new Ecto({ engineOptions: { ejs: { unsafePrototypeLocals: true } } });Plain-object locals (the common case) need no change.
Bug Fixes
- remove post-render entity decoding on Handlebars output —
{{var}}/{{{var}}}now follow standard Handlebars escaping semantics; the previous blanket decode could corrupt legitimately escaped content such as<inside pre-rendered code blocks. (b32cc50, #379)
Internal
- upgrade GitHub Actions to latest majors:
actions/checkoutv7,codecov/codecov-actionv7 (6cab886, #382) - upgrade build tooling:
vite8.0.14 → 8.0.16 (0147b61, #381) - upgrade code-quality tooling:
vitest4.1.9,@biomejs/biome2.5.0,@faker-js/faker10.5.0 (30c366f, #380) - upgrade
wrangler4.92.0 → 4.102.0 for the docs-site deploy (e623c9e, #383) - add
CLOUDFLARE_ACCOUNT_IDto the deploy-site workflow (52d9fe3, #378) - add
wrangleras a devDependency for the deploy workflow (396ad11, #377)
Contributors
- @jaredwray (9 PRs)
Full List of Changes
- ecto - fix: add wrangler as devDependency for deploy workflow by @jaredwray in #377
- ecto - fix: add CLOUDFLARE_ACCOUNT_ID to deploy workflow by @jaredwray in #378
- fix: remove post-render entity on handlebars by @jaredwray in #379
- root - chore: upgrade code quality dependencies by @jaredwray in #380
- root - chore: upgrade build tooling (vite) by @jaredwray in #381
- root - chore: upgrade GitHub Actions (breaking) by @jaredwray in #382
- root - chore: upgrade wrangler by @jaredwray in #383
- root - chore: upgrade ejs to v6 (breaking) by @jaredwray in #384
- root - chore: upgrade hookified to v3 (breaking) by @jaredwray in #385
Full diff: https://github.com/jaredwray/ecto/compare/v4.8.7...v5.0.0