Skip to content

Releases: eta-dev/eta

Version 3.0.0

13 Jun 03:57
Compare
Choose a tag to compare

TL;DR

After months of work, I'm super excited to release Eta version 3! 🎉 🎉

The philosophy and end goal of Eta remain the same: to be a lightweight, developer-friendly, and very fast template engine. The syntax also remains almost exactly the same. Eta's API, however, has changed in some important ways. Head over to https://eta.js.org/ to learn more about the changes and begin migrating your code!

Commits

  • docs: update README.md 376deaf
  • fix: remove nonexistent dir from lint 8a9424d
  • fix: istanbul ignore empty function coverage 08b5b6c
  • test: add better error tests 4332989
  • fix: unclosed tag error message 2e51f43
  • feat: remove unnecessary promise code aeec694
  • feat: begin updating readme for eta v3 4620af9
  • chore: add attrib 41f0688
  • feat: add pretty runtime errors and functionHeader option df82f2c
  • chore: remove unnecessary line a3d4fbf
  • test: add and refine tests 33f8bd7
  • delete unnecessary templates cfb7aab
  • fix: merge body:__eta.res after ...it 83d56ef
  • feat: fix filepath caching e715f07
  • feat: add ESM browser build 5269d79
  • chore: remove examples directory a522489
  • chore: update benchmark page, remove non-embedded template engines 8e252a7
  • chore: update tests for v3 4fff2b5
  • chore: make conditional more clear ea37ebb
  • feat: changes to autoEscape and autoFilter e30a863
  • chore: update for eta v3 6eeffe9
  • chore: update for eta v3 6268397
  • chore: update test files for v3 code e7904ec
  • chore: remove deno build using denoify e16dca3
  • chore: remove denoify and unused eslint plugins d434792
  • chore: finish removing typedoc generation dca2680
  • build: remove typedoc generation cd31400
  • chore: rebuild 53beb48
  • feat: initial rewrite for version 3 f722c32

v2.2.0...v3.0.0

Version 2.2.0

17 May 02:27
Compare
Choose a tag to compare

TL;DR

  • fixed issue #227, which caused slow parsing times with very large files that didn't contain Eta embed tags

Commits

  • fix RegExp leading to slow parsing w/out tags f7ed8f6

v2.1.2...v2.2.0

Version 2.1.2

13 May 01:57
Compare
Choose a tag to compare

TL;DR

  • Updated the Deno std version to 0.186.0
  • Updated the README

Commits

v2.1.1...v2.1.2

Version 2.1.1

06 May 20:54
Compare
Choose a tag to compare

TL;DR

  • Added code comment to clarify config.parse, prompted by #135

Commits

  • docs: add note about parser options 023ef4b

v2.1.0...v2.1.1

Version 2.1.0

06 May 20:22
Compare
Choose a tag to compare

TL;DR

  • Updated the versions of the Deno std from 0.97 to 0.186

Commits

v2.0.1...v2.1.0

Version 2.0.1

28 Feb 21:55
Compare
Choose a tag to compare

TL;DR

  • Add package-lock.json to .gitignore
  • Fix link to benchmark page

Commits

v2.0.0...v2.0.1

Version 2.0.0

28 Jan 04:10
Compare
Choose a tag to compare

TL;DR

This commit includes fixes for several security vulnerabilities. Specifically, in version 1, Eta merged the data parameter of renderFile() into config -- meaning that malicious untrusted user data, passed through in a very specific way, could potentially modify the values of varName, include, includeFile, and useWith, and thus insert arbitrary code into user template functions.

With this release, such behavior is removed. Configuration cannot be passed through the data parameter to eta.renderFile().

Most users will be able to update from version 1 to version 2 without changing any code. All users are encouraged to update as soon as possible.

Practical Implications

  • Configuration must be passed to renderFile explicitly, rather than merged with the data parameter
  • Using Express.js app.set() to modify views and view cache will no longer change Eta's configuration of views and cache.
    • However, since Express still uses its own views and view cache options under the hood, users should configure both Eta and Express with desired values (example below)
  • Eta no longer recognizes the legacy Express.js settings["view options"] property

Example Code Changes

// Change THIS:
renderFile(filePath, { cache: true }) // This worked in v1 but does not work in v2
// To THIS:
renderFile(filePath, {}, { cache: true }) // This works in v1 and v2

// Change THIS:
var eta = require("eta")
app.set("view engine", "eta")
app.set("views", "./views")
app.set("view cache", true)
// To THIS:
var eta = require("eta")
app.engine("eta", eta.renderFile)
eta.configure({  views: "./views", cache: true }) // configure eta
app.set("views", "./views") // configure Express
app.set("view cache", true) // configure Express
app.set("view engine", "eta")

Commits

  • Don't use data object for Eta configuration (#214) 5651392

v1.14.2...v2.0.0

Version 1.14.2

23 Jan 20:45
Compare
Choose a tag to compare

TL;DR

  • Fixed "types" field in package.json

Commits

v1.14.1...v1.14.2

Version 1.14.1

21 Jan 17:36
Compare
Choose a tag to compare

TL;DR

  • Fixed package.json exports and type fields

Commits

v1.14.0...v1.14.1

Version 1.14.0

21 Jan 04:50
Compare
Choose a tag to compare

TL;DR

  • Refactored Eta's build process to make it more maintainable
  • Improved NodeNext support

Commits

  • Switch build process to use microbundle (#209) 3442ceb

v1.13.0...v1.14.0