### Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

#### [v2.1.6](https://github.com/shepherdwind/velocity.js/compare/v2.1.5...v2.1.6)

- fix: guard #set paths against prototype pollution [`#188`](https://github.com/shepherdwind/velocity.js/pull/188)
- chore(deps): bump postcss from 8.5.3 to 8.5.14 [`#187`](https://github.com/shepherdwind/velocity.js/pull/187)
- chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 [`#182`](https://github.com/shepherdwind/velocity.js/pull/182)
- chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9 [`#183`](https://github.com/shepherdwind/velocity.js/pull/183)
- chore(deps-dev): bump vite from 6.4.1 to 6.4.2 [`#184`](https://github.com/shepherdwind/velocity.js/pull/184)
- chore(deps): bump lodash and @microsoft/api-extractor [`#185`](https://github.com/shepherdwind/velocity.js/pull/185)
- chore(deps): bump minimatch and @microsoft/api-extractor [`#180`](https://github.com/shepherdwind/velocity.js/pull/180)
- chore(deps): bump rollup from 4.40.0 to 4.59.0 [`#179`](https://github.com/shepherdwind/velocity.js/pull/179)
- chore(deps-dev): bump vite from 6.3.6 to 6.4.1 [`#175`](https://github.com/shepherdwind/velocity.js/pull/175)
- chore(deps-dev): bump lodash from 4.17.21 to 4.17.23 [`#177`](https://github.com/shepherdwind/velocity.js/pull/177)
- Chore: Update github action node versions [`#178`](https://github.com/shepherdwind/velocity.js/pull/178)
- chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 [`#176`](https://github.com/shepherdwind/velocity.js/pull/176)
- chore(deps-dev): bump vite from 6.3.4 to 6.3.6 [`#174`](https://github.com/shepherdwind/velocity.js/pull/174)
- chore(deps-dev): bump vite from 6.2.6 to 6.3.4 [`#173`](https://github.com/shepherdwind/velocity.js/pull/173)
- fix: guard set paths against prototype pollution [`b9a030d`](https://github.com/shepherdwind/velocity.js/commit/b9a030d02a579b31ada6670a82acc03d308d35fc)
- fix: preserve set assignments after rhs side effects [`6c7e6f0`](https://github.com/shepherdwind/velocity.js/commit/6c7e6f0d0540a94112cb90ea2e31360889fab109)
- docs: explain set path prototype guards [`221d197`](https://github.com/shepherdwind/velocity.js/commit/221d197e1b77564cc5661d69cedce5b321bae940)

#### [v2.1.5](https://github.com/shepherdwind/velocity.js/compare/v2.1.4...v2.1.5)

> 23 April 2025

- chore: update type definitions path in package.json to point to src directory [`52c651a`](https://github.com/shepherdwind/velocity.js/commit/52c651aea4ac6e0d07483afb924d257363d5763b)

#### [v2.1.4](https://github.com/shepherdwind/velocity.js/compare/v2.1.3...v2.1.4)

> 23 April 2025

- chore: update type definitions path in package.json and remove install script from package-lock.json [`6b44cbb`](https://github.com/shepherdwind/velocity.js/commit/6b44cbb2b5b4ccee6dcc14e2ddd5b43efc8b8f2e)

#### [v2.1.3](https://github.com/shepherdwind/velocity.js/compare/v2.1.2...v2.1.3)

> 14 April 2025

- feat: add default export for velocity object [`#169`](https://github.com/shepherdwind/velocity.js/issues/169)
- chore: remove Chinese README and update English documentation [`dcc646e`](https://github.com/shepherdwind/velocity.js/commit/dcc646ed3066f15a53013d541345589840c81567)

#### [v2.1.2](https://github.com/shepherdwind/velocity.js/compare/v2.1.1...v2.1.2)

> 14 April 2025

- chore: update package-lock.json to use npm registry [`cbeaab3`](https://github.com/shepherdwind/velocity.js/commit/cbeaab38e89d49ff8a0d08af5412eb919a1a80d8)
- chore: update dependencies in package.json and package-lock.json [`456e6d2`](https://github.com/shepherdwind/velocity.js/commit/456e6d2210ebb0740c00ee894f9155c85d52dec4)
- chore: modify publish script in package.json [`0f7fa8f`](https://github.com/shepherdwind/velocity.js/commit/0f7fa8fe5599198593b1ffd85ff46e92e6f71f6d)

#### [v2.1.1](https://github.com/shepherdwind/velocity.js/compare/v2.1.0...v2.1.1)

> 13 April 2025

- chore: update dependencies [`c299117`](https://github.com/shepherdwind/velocity.js/commit/c299117c549644e5990e22c4dd15b51f26ac111d)
- chore: remove package-lock.json and update README and VSCode settings [`2cdd37f`](https://github.com/shepherdwind/velocity.js/commit/2cdd37f162c30d5154c70d87ecdfe9397a15f75f)

#### [v2.1.0](https://github.com/shepherdwind/velocity.js/compare/v2.0.6...v2.1.0)

> 13 April 2025

- TypeScript support [`#158`](https://github.com/shepherdwind/velocity.js/pull/158)
- chore(deps-dev): bump express from 4.18.2 to 4.19.2 [`#163`](https://github.com/shepherdwind/velocity.js/pull/163)
- chore(deps-dev): bump @babel/traverse from 7.16.8 to 7.24.1 [`#162`](https://github.com/shepherdwind/velocity.js/pull/162)
- chore(deps-dev): bump ip from 1.1.5 to 1.1.9 [`#161`](https://github.com/shepherdwind/velocity.js/pull/161)
- chore(deps): bump xml2js and aws-sdk [`#159`](https://github.com/shepherdwind/velocity.js/pull/159)
- chore(deps): bump async from 2.6.3 to 2.6.4 [`#150`](https://github.com/shepherdwind/velocity.js/pull/150)
- chore(deps): bump minimatch from 3.0.4 to 3.1.2 [`#152`](https://github.com/shepherdwind/velocity.js/pull/152)
- chore(deps): bump qs and express [`#154`](https://github.com/shepherdwind/velocity.js/pull/154)
- chore(deps): bump moment from 2.29.2 to 2.29.4 [`#157`](https://github.com/shepherdwind/velocity.js/pull/157)
- chore(deps): bump express from 4.17.2 to 4.18.2 [`#155`](https://github.com/shepherdwind/velocity.js/pull/155)
- chore(deps): bump json5 from 2.2.0 to 2.2.3 [`#156`](https://github.com/shepherdwind/velocity.js/pull/156)
- chore(deps): bump node-fetch from 2.6.6 to 2.6.7 [`#148`](https://github.com/shepherdwind/velocity.js/pull/148)
- chore(deps): bump moment from 2.29.1 to 2.29.2 [`#149`](https://github.com/shepherdwind/velocity.js/pull/149)
- chore(deps): bump minimist from 1.2.5 to 1.2.6 [`#147`](https://github.com/shepherdwind/velocity.js/pull/147)
- fix: restore project to stable state, remove ESM configuration, fix build and tests [`fcbbf37`](https://github.com/shepherdwind/velocity.js/commit/fcbbf372e942d7be224012291ad51c91bb3b9c16)
- chore: update package.json and GitHub Actions for Node.js version compatibility [`9d3840a`](https://github.com/shepherdwind/velocity.js/commit/9d3840a5763f74a5a7708a97c971c30ea80700f4)
- feat: upgrade all test and source code to typescript [`b749a27`](https://github.com/shepherdwind/velocity.js/commit/b749a27d83a283ada8e23abc21f6293963128148)

#### [v2.0.6](https://github.com/shepherdwind/velocity.js/compare/v2.0.5...v2.0.6)

> 16 January 2022

- feat: add custom method handlers support, refactor references.js [`#146`](https://github.com/shepherdwind/velocity.js/pull/146)
- chore: add npm ci support [`91baab1`](https://github.com/shepherdwind/velocity.js/commit/91baab1cbd3979f1cc4f1ad850433541fdf6566d)
- chore: update readme.md [`eb8c93a`](https://github.com/shepherdwind/velocity.js/commit/eb8c93a4d0a3e98d2c0d345e3e37f5c7dd3c1918)

#### [v2.0.5](https://github.com/shepherdwind/velocity.js/compare/v2.0.4...v2.0.5)

> 12 November 2021

- chore: better error handler [`#142`](https://github.com/shepherdwind/velocity.js/pull/142)
- Addressing #140, also added a bit more defensive code in case pos is missing in error situations [`#141`](https://github.com/shepherdwind/velocity.js/pull/141)
- Fixing #140, also added a bit more defensive code in case pos is missing in error situations [`eed1a16`](https://github.com/shepherdwind/velocity.js/commit/eed1a161a0ac050fc906201cd3f02f1e1f3c15d2)
- chore: update history script [`585bdab`](https://github.com/shepherdwind/velocity.js/commit/585bdab69b67eb3b0178efc87c9db6898f0d45c8)

#### [v2.0.4](https://github.com/shepherdwind/velocity.js/compare/v2.0.3...v2.0.4)

> 27 October 2021

- fix: support null as var, fix #139 [`#139`](https://github.com/shepherdwind/velocity.js/issues/139)
- chore: support auto changelog [`984fc38`](https://github.com/shepherdwind/velocity.js/commit/984fc387b9dd1b09887a622af49005b4bd27de93)

#### [v2.0.3](https://github.com/shepherdwind/velocity.js/compare/v2.0.2...v2.0.3)

> 2 December 2020

- fix: issue with loop variable access inside nested foreach statements [`#136`](https://github.com/shepherdwind/velocity.js/pull/136)
- fix: issue with loop variable access inside nested foreach statements [`#135`](https://github.com/shepherdwind/velocity.js/issues/135)
- chore: 2.0.3 [`93245a5`](https://github.com/shepherdwind/velocity.js/commit/93245a5e539c829e707f32ae1bcae600bfb7280d)

<!-- auto-changelog-above -->

## 2.0.3 2020-12-02

- fix: issue with loop variable access inside nested foreach statements [136](https://github.com/shepherdwind/velocity.js/pull/136)

## 2.0.2 2020-10-19

- add default set and get method for array and map object [133](https://github.com/shepherdwind/velocity.js/pull/133)

## 2.0.1 2020-09-02

- fix Bug with #set inside #foreach [129](https://github.com/shepherdwind/velocity.js/issues/129)

## 2.0.0 2019-09-26

Break change

First, default escape config set to false. For example

```
#set($foo = '<div>') $foo
```

At 1.x , result is `&lt;div&gt;`, for 2.x, output result `<div>`, no escapeHtml variable.

- add quotes to escape when escape option set true [125](https://github.com/shepherdwind/velocity.js/pull/125)

## 1.1.4 2019-08-27

- Added support for remove in ArrayList and Map @mdrewt [#124](https://github.com/shepherdwind/velocity.js/pull/124)
- Support format quiet syntax ${ ref }, fix [#120](https://github.com/shepherdwind/velocity.js/pull/120)

## 1.1.3 2018-09-18

- fixes issue#113 support for add method on arrays by @gauravlanjekar [#114](https://github.com/shepherdwind/velocity.js/pull/114/)

## 1.1.2 2018-08-09

- fix Velocity cli error fix [#109](https://github.com/shepherdwind/velocity.js/issues/109)

## 1.1.1 2018-06-14

- fix: Allow own keySet, entrySet, put and size methods on objects by @lightsofapollo [!106](https://github.com/shepherdwind/velocity.js/pull/106)

## 1.1.0 2018-06-12

- feat: Add support for .put, fix issue [#103](https://github.com/shepherdwind/velocity.js/issues/103) by @lightsofapollo
- feat: add config.valueMapper support by @lightsofapollo [#105](https://github.com/shepherdwind/velocity.js/pull/105)

## 1.0.2 2018-06-06

- fix: ignore path where build on broswer, fix issue [#102](https://github.com/shepherdwind/velocity.js/issues/102)

## 1.0.1 2018-03-08

- fix: #set bug in nested #foreach loops [#100](https://github.com/shepherdwind/velocity.js/issues/100)

## 1.0.0 2018-01-13

- feat: support macro bodyContext [!97](https://github.com/shepherdwind/velocity.js/pull/97)

## 0.10.1 2017-11-10

- fix: #set variable key not work [!91](https://github.com/shepherdwind/velocity.js/issues/92)

## 0.10.0 2017-11-08

- feat: support text version of logical operators [!90](https://github.com/shepherdwind/velocity.js/pull/90)

## 0.9.6 2017-04-14

- fix: keep newline after unparse block [!83](https://github.com/shepherdwind/velocity.js/pull/83)

## 0.9.5 2017-04-07

- fix: support foreach.hasnext when iterating objects [!81](https://github.com/shepherdwind/velocity.js/pull/81)

## 0.9.4 2017-01-16

- fix: #set bug with eval string [#79](https://github.com/shepherdwind/velocity.js/issues/79)

## 0.9.3 2017-01-04

- fix: #set false when in forEach statement [#77](https://github.com/shepherdwind/velocity.js/issues/77)

## 0.9.1 2016-11-22

- add typescript DefinitelyTyped index.d.ts

## 0.9.0 2016-09-20

- feat: support to throw errors in case null values are used [!71](https://github.com/shepherdwind/velocity.js/issues/71)
- fix: support {end} [!70](https://github.com/shepherdwind/velocity.js/issues/71)

## 0.8.5 2016-07-16

- fix bug #foreach with nest empty foreach [!70](https://github.com/shepherdwind/velocity.js/pull/70)

## 0.8.4 2016-07-04

- fix bug when render `#foreach(${itemData} in ${defaultData})`, see
  [#69](https://github.com/shepherdwind/velocity.js/issues/69#issuecomment-230152986)

## 0.8.3 2016-06-15

- fix comment bug [#67](https://github.com/shepherdwind/velocity.js/pull/67)

## 0.8.2 2016-05-28

- nothing change, just update npm page readme

## 0.8.0 2016-04-20

- set bug fix [#63](https://github.com/shepherdwind/velocity.js/issues/63)

### Break api change

Before set value will set undefined node as plan object

```
#set($a = {}) #set($a.c.d = 1) $a.c.d
```

This will output `1` .

But now, in 0.8.0 version, a.c will not set as {}, so output is `$a.c.d`.

## 0.7.5

- toString rewrite only when toString equal function { [native code]} [57](https://github.com/shepherdwind/velocity.js/pull/57)

## 0.7.4

- toString like org.apache.velocity when render [56](https://github.com/shepherdwind/velocity.js/pull/56)

## 0.7.3

- fix [53](https://github.com/shepherdwind/velocity.js/issues/52)
- runt support [54](https://github.com/shepherdwind/velocity.js/pull/54)

## 0.7.2

- fix: merge [52](https://github.com/shepherdwind/velocity.js/pull/52)

## 0.7.1

- fix: merge [51](https://github.com/shepherdwind/velocity.js/pull/51)

## 0.7.0

- feat: merge [49](https://github.com/shepherdwind/velocity.js/pull/49) and [#50](https://github.com/shepherdwind/velocity.js/pull/50)

## 0.6.2

- feat: merge [47](https://github.com/shepherdwind/velocity.js/pull/47)

## 0.6.1

- feat: merge [46](https://github.com/shepherdwind/velocity.js/pull/46)

## [0.6](https://github.com/shepherdwind/velocity.js/milestones/0.6)

- change: remove Velocity.Parser, change to Velocity.parse [#43](https://github.com/shepherdwind/velocity.js/issues/43)
- feat: add custom blocks support [#44](https://github.com/shepherdwind/velocity.js/issues/44)

## 0.4

### 0.4.11 / 2015-01-24

- feat: self define macro context keep to origin object

### 0.4.10 / 2015-01-08

- fix: allow optional space after colon in map passed as parameter to macro
  ([#38](https://github.com/shepherdwind/velocity.js/pull/38) by @jamescookie)

### 0.4.9 / 2014-12-29

- feature: support friendly error stack #35
- chore: improve coverage

### 0.4.8 / 2014-12-20

- fix issue #32
- Remove useless code: Helper
- merge pull request #34

### 0.4.7 / 2014-12-18

- fix issue #32
