All Versions
Latest Version
Avg Release Cycle
70 days
Latest Release
82 days ago

Changelog History

  • v0.1.9

    March 05, 2020

    Language changes:

    • 🆕 New functions min() and max() added
    • 🆕 New function hash-int added (thanks to @ecerulm)
    • null + object now produces the object (not null)
    • null + array now produces the array (not null)

    API changes:

    • FileSystemResourceResolver added (thanks to @ngsoftwaredev)
    • 🔧 Made it possible to configure encoding on resolvers

    🐛 Bug fixes:

    • 👌 Support leading zeroes in strings passed to number() (issue #112)
    • 👌 Support Cyrillic characters in string literals (issue #115)
    • 🔒 Upgraded to Jackson 2.10.3 (security fixes)
    • 🖐 Handle null being returned from Java extension functions
    • Avoid NullPointerException when statically wrapped method does not exist
  • v0.1.8

    June 01, 2019

    🚀 Not so many changes in this version, which is being released because of the bug fix:

    • 🐛 Bug fix for issue #70: variable optimization issue in for loops
    • 👍 Allow trailing commas in objects and arrays (thanks to @ecerulm for this change (see #72))
    • ⬆️ Upgraded to Jackson 2.9.9
  • v0.1.7

    April 06, 2019

    The following extensions have been made:

    • 🔧 Which values are included in JSON objects is now configurable (by default keys = null are omitted),
    • The replace function was added
    • The trim function was added

    🛠 The following bugs have been fixed:

    • Made JSLT work on JDK 11 by removing javax.* dependency
    • 🛠 Fixed a bug with variable references and array slicers
  • v0.1.6

    January 28, 2019

    Some language improvements:

    • it used to be impossible to declare global variables in modules and then refer to them from functions. This now works.
    • JSLT now forbids object literals that contain the same key twice.
    • JSLT now depends on Jackson 2.9.8.

    One function has been added:

    • mod(a, b) to compute a modulo b. (Thank you to @ecerulm for work on this!)

    ⚡️ This version has been optimized in several ways:

    • ⚡️ variables that are used only once, or that have constant values, are now optimized away completely
    • operations involving two literals are now performed at compile-time,
    • the internal representation of variables is now much faster, and
    • ⚡️ if b in contains(a, b) is a large array literal, the optimizer now replaces this with a hashset lookup, instead of doing a linear search.
  • v0.1.5

    December 03, 2018

    Functions added:

    🐛 Bugs fixed:

    • number(<input>, <fallback>) now handles the input not being a string or a number,
    • issue #41: NullpointerException in object matcher, and
    • issue #9: Make operators left-associative instead of right-associative
  • v0.1.4

    October 08, 2018

    Language extensions:

    • ➕ Added the experimental module, with the group-by macro
    • ➕ Added the is-decimal and is-integer functions (PR #27 by @ecerulm)

    API extensions:

    • 👌 Support for named modules

    🐛 Bug fixes:

  • v0.1.3

    August 14, 2018

    🚀 This release sees one language extension, a new function, one optimization, and bug fixes. Huge thanks to @vectro for contributions.

    Language changes:

    • ➕ Added if filters in array and object comprehensions
    • The flatten() function was added


    • Tiny optimization in object comprehensions

    🐛 Bug fixes:

    • Implemented let inside object comprehensions
    • 🛠 Fix round-tripping bug in date parsing/formatting (resolved #8), thanks to @vectro
    • 🐛 Bug fix and improvement to the number() function, thanks to @vectro
    • 🐛 Bug fix in date parsing/formatting (2 milliseconds off), thanks to @vectro
  • v0.1.2

    July 12, 2018

    🛠 This version fixes a number of bugs and some cases of bad behaviour. One extra argument was added to the get-key function. Otherwise no language changes.

    The changes:

    • Implemented size bounds on the regexp cache to prevent it from
      consuming too much memory
    • 🛠 Fixed error parsing float literals ending with E9 and similar
    • 🛠 Fixed bad behaviour causing order of keys in JSLT template
      to be reversed
    • 🛠 Fixed bug when comparing with null
    • 🛠 Fixed bug in to-json function
    • 🛠 Fixed bug in format-time function
    • ➕ Added fallback argument to get-key function
    • 👌 Support for more types in FunctionWrapper
    • ⬆️ Upgraded to Jackson 2.9.6

    🚀 The released version is available from Maven Central.

  • v0.1.1

    June 14, 2018

    0️⃣ Minor feature extension allowing clients to control how references to JSLT modules are resolved. Earlier they were only loaded from the classpath, but now clients can resolve them any way they wish. The default remains to load them from classpath.

  • v0.1.0

    June 14, 2018

    🚀 The first official release, available from Maven Central at: