# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [3.6.4](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.6.3...intl-messageformat-parser@3.6.4) (2020-01-27)

**Note:** Version bump only for package intl-messageformat-parser





## [3.6.3](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.6.2...intl-messageformat-parser@3.6.3) (2020-01-22)


### Bug Fixes

* **intl-messageformat-parser:** fix type definition for skeleton… ([#456](https://github.com/formatjs/formatjs/issues/456)) ([c208d01](https://github.com/formatjs/formatjs/commit/c208d013558789d0030782cb817562b712ed438e))
* **intl-messageformat-parser:** skip whitespaces that match unicode White_Space ([#468](https://github.com/formatjs/formatjs/issues/468)) ([d0dda6e](https://github.com/formatjs/formatjs/commit/d0dda6ebb40c58bf1fcaeea054d0a07db167d7b8)), closes [#467](https://github.com/formatjs/formatjs/issues/467)





## [3.6.2](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.6.1...intl-messageformat-parser@3.6.2) (2020-01-09)

**Note:** Version bump only for package intl-messageformat-parser





## [3.6.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.6.0...intl-messageformat-parser@3.6.1) (2020-01-08)

**Note:** Version bump only for package intl-messageformat-parser





# [3.6.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.5.3...intl-messageformat-parser@3.6.0) (2020-01-06)


### Features

* **intl-messageformat-parser:** allow unclosed apostrophe escape sequence ([54b442f](https://github.com/formatjs/formatjs/commit/54b442f8851bd6c7cbc57e2666df294f1c799bd4))
* **intl-messageformat-parser:** pound symbol escaping ([19fd028](https://github.com/formatjs/formatjs/commit/19fd028030356deba7b409af3c88ab24017556fc))





## [3.5.3](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.5.2...intl-messageformat-parser@3.5.3) (2019-12-27)

**Note:** Version bump only for package intl-messageformat-parser





## [3.5.2](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.5.1...intl-messageformat-parser@3.5.2) (2019-12-26)

**Note:** Version bump only for package intl-messageformat-parser





## [3.5.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.5.0...intl-messageformat-parser@3.5.1) (2019-12-04)


### Bug Fixes

* **intl-messageformat-parser:** specify intl-unified-numberformat as dependency ([#351](https://github.com/formatjs/formatjs/issues/351)) ([e886b61](https://github.com/formatjs/formatjs/commit/e886b61f8c0eccb06eb4c168f2a01b4e6b41a23a))





# [3.5.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.4.0...intl-messageformat-parser@3.5.0) (2019-12-02)


### Features

* **intl-messageformat-parser:** add support for unit-width ([dc4a054](https://github.com/formatjs/formatjs/commit/dc4a0547115e59198439579aadc3180b6953664d))





# [3.4.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.3.1...intl-messageformat-parser@3.4.0) (2019-12-01)


### Features

* **intl-messageformat-parser:** add parsing support for notation, signDisplay, currencyDisplay ([eaa0039](https://github.com/formatjs/formatjs/commit/eaa0039c90533b09b0c03aa9dc9cd8c605405dba))
* **intl-messageformat-parser:** add preliminary support for number skeleton ([e993e43](https://github.com/formatjs/formatjs/commit/e993e4387c522fd271996da79e99d2f85fd85b5f))





## [3.3.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.3.0...intl-messageformat-parser@3.3.1) (2019-11-26)

**Note:** Version bump only for package intl-messageformat-parser





# [3.3.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.2.6...intl-messageformat-parser@3.3.0) (2019-11-25)


### Bug Fixes

* **intl-messageformat-parser:** exclude some more unsupported pattern ([07ec1d1](https://github.com/formatjs/formatjs/commit/07ec1d119169879617f17c542d6992c31ec85856))


### Features

* **eslint-plugin-formatjs:** add supported-datetime-skeleton rules ([c121a9a](https://github.com/formatjs/formatjs/commit/c121a9a9a52f21fbe1fdfc70e31c0275efbd0f8d))
* **intl-messageformat:** add limited support for date time skeleton ([07795b9](https://github.com/formatjs/formatjs/commit/07795b9e5e0116ffaf5f410c4e1c1a375f86ba8a))





## [3.2.6](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.2.5...intl-messageformat-parser@3.2.6) (2019-11-25)

**Note:** Version bump only for package intl-messageformat-parser





## [3.2.5](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.2.4...intl-messageformat-parser@3.2.5) (2019-11-23)


### Bug Fixes

* **intl-messageformat-parser:** fix duplicate parse exports, fix [#290](https://github.com/formatjs/formatjs/issues/290) ([4e20dbd](https://github.com/formatjs/formatjs/commit/4e20dbd16f44df8c034066ba328d22be2fbc082e))





## [3.2.4](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.2.3...intl-messageformat-parser@3.2.4) (2019-11-21)


### Bug Fixes

* **intl-messageformat-parser:** use api-extractor to combine d.ts ([9d55531](https://github.com/formatjs/formatjs/commit/9d5553169c0c2d6f051b2c2e2c7708129ee81809))





## [3.2.3](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.2.2...intl-messageformat-parser@3.2.3) (2019-11-20)


### Bug Fixes

* **lint:** fix lint config and rerun ([041eb99](https://github.com/formatjs/formatjs/commit/041eb99706164048b5b8ce7079955897ce27ed70))





## [3.2.2](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.2.1...intl-messageformat-parser@3.2.2) (2019-10-23)

**Note:** Version bump only for package intl-messageformat-parser





## [3.2.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.2.0...intl-messageformat-parser@3.2.1) (2019-10-01)

**Note:** Version bump only for package intl-messageformat-parser





# [3.2.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.1.1...intl-messageformat-parser@3.2.0) (2019-09-20)


### Features

* **intl-messageformat-parser:** mark the package as side-effects free ([cfc8336](https://github.com/formatjs/formatjs/commit/cfc8336))





## [3.1.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.1.0...intl-messageformat-parser@3.1.1) (2019-09-13)

**Note:** Version bump only for package intl-messageformat-parser





# [3.1.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.8...intl-messageformat-parser@3.1.0) (2019-09-03)


### Features

* **intl-messageformat-parser:** add UMD dist, fixes [#171](https://github.com/formatjs/formatjs/issues/171) ([94458c3](https://github.com/formatjs/formatjs/commit/94458c3))





## [3.0.8](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.7...intl-messageformat-parser@3.0.8) (2019-08-29)


### Bug Fixes

* **intl-messageformat-parser:** throw when there are duplicates in select/plural, fix [#168](https://github.com/formatjs/formatjs/issues/168) ([0c3a0e0](https://github.com/formatjs/formatjs/commit/0c3a0e0))





## [3.0.7](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.6...intl-messageformat-parser@3.0.7) (2019-08-12)

**Note:** Version bump only for package intl-messageformat-parser





## [3.0.6](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.5...intl-messageformat-parser@3.0.6) (2019-08-11)


### Bug Fixes

* generate lib instead of mjs ([05e63b3](https://github.com/formatjs/formatjs/commit/05e63b3))





## [3.0.5](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.4...intl-messageformat-parser@3.0.5) (2019-08-10)


### Bug Fixes

* **intl-messageformat-parser:** allow negative in plural rule, fixes [#146](https://github.com/formatjs/formatjs/issues/146) ([50c7710](https://github.com/formatjs/formatjs/commit/50c7710))





## [3.0.4](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.3...intl-messageformat-parser@3.0.4) (2019-08-08)


### Bug Fixes

* **intl-messageformat-parser:** make date time skeleton compatib… ([#140](https://github.com/formatjs/formatjs/issues/140)) ([b6ea222](https://github.com/formatjs/formatjs/commit/b6ea222))





## [3.0.3](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.2...intl-messageformat-parser@3.0.3) (2019-08-07)


### Bug Fixes

* **intl-messageformat-parser:** normalize plural in nested select, fixes [#145](https://github.com/formatjs/formatjs/issues/145) ([215aa6d](https://github.com/formatjs/formatjs/commit/215aa6d))





## [3.0.2](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.1...intl-messageformat-parser@3.0.2) (2019-08-06)


### Bug Fixes

* generate .mjs instead of lib ([0c34ee4](https://github.com/formatjs/formatjs/commit/0c34ee4))





## [3.0.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@3.0.0...intl-messageformat-parser@3.0.1) (2019-07-29)


### Bug Fixes

* **intl-messageformat-parser:** argStyleText can contain syntax characters and quoted string now ([#136](https://github.com/formatjs/formatjs/issues/136)) ([b39ea08](https://github.com/formatjs/formatjs/commit/b39ea08)), closes [#135](https://github.com/formatjs/formatjs/issues/135)





# [3.0.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@2.1.3...intl-messageformat-parser@3.0.0) (2019-07-29)


### Bug Fixes

* **intl-messageformat-parser:** fix plural =xx grammar ([1c3c1fc](https://github.com/formatjs/formatjs/commit/1c3c1fc))


### Features

* **intl-messageformat-parser:** add parser for number skeleton and date skeleton ([#131](https://github.com/formatjs/formatjs/issues/131)) ([dbe6799](https://github.com/formatjs/formatjs/commit/dbe6799))
* **intl-messageformat-parser:** revamped quote rule ([#134](https://github.com/formatjs/formatjs/issues/134)) ([5661177](https://github.com/formatjs/formatjs/commit/5661177))
* **intl-messageformat-parser:** support argument skeleton for AST printers ([#133](https://github.com/formatjs/formatjs/issues/133)) ([f1f937d](https://github.com/formatjs/formatjs/commit/f1f937d))


### BREAKING CHANGES

* **intl-messageformat-parser:** This changes how we escape chars in messages, instead of `\` we now use apostrophe which is more aligned with ICU4J & ICU4C





## [2.1.3](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@2.1.2...intl-messageformat-parser@2.1.3) (2019-07-25)

**Note:** Version bump only for package intl-messageformat-parser





## [2.1.2](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@2.1.1...intl-messageformat-parser@2.1.2) (2019-07-23)


### Bug Fixes

* **intl-messageformat-parser:** add tests, fix offset printing ([bebdf95](https://github.com/formatjs/formatjs/commit/bebdf95))
* **intl-messageformat-parser:** Fix AST printer to print white-spaces, commas and element types… ([#120](https://github.com/formatjs/formatjs/issues/120)) ([37448e2](https://github.com/formatjs/formatjs/commit/37448e2)), closes [#117](https://github.com/formatjs/formatjs/issues/117)





## [2.1.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@2.1.0...intl-messageformat-parser@2.1.1) (2019-07-12)

**Note:** Version bump only for package intl-messageformat-parser

# [2.1.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@2.0.1...intl-messageformat-parser@2.1.0) (2019-07-12)

### Features

- **intl-messageformat-parser:** add printer to print AST to string ([ec0eaa2](https://github.com/formatjs/formatjs/commit/ec0eaa2))

## [2.0.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@2.0.0...intl-messageformat-parser@2.0.1) (2019-07-09)

**Note:** Version bump only for package intl-messageformat-parser

# [2.0.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.8.1...intl-messageformat-parser@2.0.0) (2019-07-08)

### Features

- **intl-messageformat-parser:** Rewrite grammar ([#112](https://github.com/formatjs/formatjs/issues/112)) ([093de35](https://github.com/formatjs/formatjs/commit/093de35))

### BREAKING CHANGES

- **intl-messageformat-parser:** This completely changes the AST produced by the parser

Before:

```
complex_msg AST length 12567
normal_msg AST length 2638
simple_msg AST length 567
string_msg AST length 288
complex_msg x 3,405 ops/sec ±5.44% (81 runs sampled)
normal_msg x 27,513 ops/sec ±2.14% (87 runs sampled)
simple_msg x 113,043 ops/sec ±1.20% (89 runs sampled)
string_msg x 147,838 ops/sec ±0.78% (90 runs sampled)
```

After:

```
complex_msg AST length 2053
normal_msg AST length 410
simple_msg AST length 79
string_msg AST length 36
complex_msg x 3,926 ops/sec ±2.37% (90 runs sampled)
normal_msg x 27,641 ops/sec ±3.93% (86 runs sampled)
simple_msg x 100,764 ops/sec ±5.35% (79 runs sampled)
string_msg x 120,362 ops/sec ±7.11% (74 runs sampled)
```

- feat: normalize hashtag token in plural

- feat(intl-messageformat): adapt to new AST

- feat(babel-plugin-react-intl): adapt to new AST

## [1.8.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.8.0...intl-messageformat-parser@1.8.1) (2019-06-28)

**Note:** Version bump only for package intl-messageformat-parser

# [1.8.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.7.1...intl-messageformat-parser@1.8.0) (2019-06-27)

### Features

- **intl-messageformat:** allow passing in formatters ([#107](https://github.com/formatjs/formatjs/issues/107)) ([3605693](https://github.com/formatjs/formatjs/commit/3605693))

## [1.7.1](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.7.0...intl-messageformat-parser@1.7.1) (2019-06-26)

### Bug Fixes

- **intl-messageformat-parser:** Escape double-' to a single ' ([#103](https://github.com/formatjs/formatjs/issues/103)) ([4d0cd1f](https://github.com/formatjs/formatjs/commit/4d0cd1f))

# [1.7.0](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.8...intl-messageformat-parser@1.7.0) (2019-06-27)

### Features

- **intl-utils:** Add intl-utils ([#98](https://github.com/formatjs/formatjs/issues/98)) ([2329c57](https://github.com/formatjs/formatjs/commit/2329c57))

## [1.6.8](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.7...intl-messageformat-parser@1.6.8) (2019-06-18)

**Note:** Version bump only for package intl-messageformat-parser

## [1.6.7](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.6...intl-messageformat-parser@1.6.7) (2019-06-18)

**Note:** Version bump only for package intl-messageformat-parser

## [1.6.6](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.5...intl-messageformat-parser@1.6.6) (2019-06-12)

**Note:** Version bump only for package intl-messageformat-parser

## [1.6.5](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.3...intl-messageformat-parser@1.6.5) (2019-06-03)

**Note:** Version bump only for package intl-messageformat-parser

## [1.6.4](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.3...intl-messageformat-parser@1.6.4) (2019-06-03)

**Note:** Version bump only for package intl-messageformat-parser

## [1.6.3](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.2...intl-messageformat-parser@1.6.3) (2019-05-28)

**Note:** Version bump only for package intl-messageformat-parser

## [1.6.2](https://github.com/formatjs/formatjs/compare/intl-messageformat-parser@1.6.2...intl-messageformat-parser@1.6.2) (2019-05-28)
