Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

# <a href="https://github.com/nodeca/js-yaml/compare/3.13.1...3.14.0">3.14.0</a> - 2020-05-22

## Changed

- Support `safe/loadAll(input, options)` variant of call.
- CI: drop outdated nodejs versions.
- Dev deps bump.

## Fixed

- Quote `=` in plain scalars #519.
- Check the node type for `!<?>` tag in case user manually specifies it.
- Verify that there are no null-bytes in input.
- Fix wrong quote position when writing condensed flow, #526.

# <a href="https://github.com/nodeca/js-yaml/compare/3.13.0...3.13.1">3.13.1</a> - 2019-04-05

## Security

- Fix possible code execution in (already unsafe) `.load()`, #480.

# <a href="https://github.com/nodeca/js-yaml/compare/3.12.2...3.13.0">3.13.0</a> - 2019-03-20

## Security

- Security fix: `safeLoad()` can hang when arrays with nested refs used as key. Now throws exception for nested arrays. #475.

# <a href="https://github.com/nodeca/js-yaml/compare/3.12.1...3.12.2">3.12.2</a> - 2019-02-26

## Fixed

- Fix `noArrayIndent` option for root level, #468.

# <a href="https://github.com/nodeca/js-yaml/compare/3.12.0...3.12.1">3.12.1</a> - 2019-01-05

## Added

- Added `noArrayIndent` option, #432.

# <a href="https://github.com/nodeca/js-yaml/compare/3.11.0...3.12.0">3.12.0</a> - 2018-06-02

## Changed

- Support arrow functions without a block statement, #421.

# <a href="https://github.com/nodeca/js-yaml/compare/3.10.0...3.11.0">3.11.0</a> - 2018-03-05

## Added

- Add arrow functions suport for `!!js/function`.

## Fixed

- Fix dump in bin/octal/hex formats for negative integers, #399.

# <a href="https://github.com/nodeca/js-yaml/compare/3.9.1...3.10.0">3.10.0</a> - 2017-09-10

## Fixed

- Fix `condenseFlow` output (quote keys for sure, instead of spaces), #371, #370.
- Dump astrals as codepoints instead of surrogate pair, #368.

# <a href="https://github.com/nodeca/js-yaml/compare/3.9.0...3.9.1">3.9.1</a> - 2017-07-08

## Fixed

- Ensure stack is present for custom errors in node 7.+, #351.

# <a href="https://github.com/nodeca/js-yaml/compare/3.8.4...3.9.0">3.9.0</a> - 2017-07-08

## Added

- Add `condenseFlow` option (to create pretty URL query params), #346.

## Fixed

- Support array return from safeLoadAll/loadAll, #350.

# <a href="https://github.com/nodeca/js-yaml/compare/3.8.3...3.8.4">3.8.4</a> - 2017-05-08

## Fixed

- Dumper: prevent space after dash for arrays that wrap, #343.

# <a href="https://github.com/nodeca/js-yaml/compare/3.8.2...3.8.3">3.8.3</a> - 2017-04-05

## Fixed

- Should not allow numbers to begin and end with underscore, #335.

# <a href="https://github.com/nodeca/js-yaml/compare/3.8.1...3.8.2">3.8.2</a> - 2017-03-02

## Fixed

- Fix `!!float 123` (integers) parse, #333.
- Don't allow leading zeros in floats (except 0, 0.xxx).
- Allow positive exponent without sign in floats.

# <a href="https://github.com/nodeca/js-yaml/compare/3.8.0...3.8.1">3.8.1</a> - 2017-02-07

## Changed

- Maintenance: update browserified build.

# <a href="https://github.com/nodeca/js-yaml/compare/3.7.0...3.8.0">3.8.0</a> - 2017-02-07

## Fixed

- Fix reported position for `duplicated mapping key` errors. Now points to block start instead of block end. (#243, thanks to @shockey).

# <a href="https://github.com/nodeca/js-yaml/compare/3.6.1...3.7.0">3.7.0</a> - 2016-11-12

## Added

- Support polymorphism for tags (#300, thanks to @monken).

## Fixed

- Fix parsing of quotes followed by newlines (#304, thanks to @dplepage).

# <a href="https://github.com/nodeca/js-yaml/compare/3.6.0...3.6.1">3.6.1</a> - 2016-05-11

## Fixed

- Fix output cut on a pipe, #286.

# <a href="https://github.com/nodeca/js-yaml/compare/3.5.5...3.6.0">3.6.0</a> - 2016-04-16

## Fixed

- Dumper rewrite, fix multiple bugs with trailing `\n`. Big thanks to @aepsilon!
- Loader: fix leading/trailing newlines in block scalars, @aepsilon.

# <a href="https://github.com/nodeca/js-yaml/compare/3.5.4...3.5.5">3.5.5</a> - 2016-03-17

## Fixed

- Date parse fix: don't allow dates with on digit in month and day, #268.

# <a href="https://github.com/nodeca/js-yaml/compare/3.5.3...3.5.4">3.5.4</a> - 2016-03-09

## Added

- `noCompatMode` for dumper, to disable quoting YAML 1.1 values.

# <a href="https://github.com/nodeca/js-yaml/compare/3.5.2...3.5.3">3.5.3</a> - 2016-02-11

## Changed

- Maintenance release.

# <a href="https://github.com/nodeca/js-yaml/compare/3.5.1...3.5.2">3.5.2</a> - 2016-01-11

## Changed

- Maintenance: missed comma in bower config.

# <a href="https://github.com/nodeca/js-yaml/compare/3.5.0...3.5.1">3.5.1</a> - 2016-01-11

## Changed

- Removed `inherit` dependency, #239.
- Better browserify workaround for esprima load.
- Demo rewrite.

# <a href="https://github.com/nodeca/js-yaml/compare/3.4.6...3.5.0">3.5.0</a> - 2016-01-10

## Fixed

- Dumper. Fold strings only, #217.
- Dumper. `norefs` option, to clone linked objects, #229.
- Loader. Throw a warning for duplicate keys, #166.
- Improved browserify support (mark `esprima` & `Buffer` excluded).

# <a href="https://github.com/nodeca/js-yaml/compare/3.4.5...3.4.6">3.4.6</a> - 2015-11-26

## Changed

- Use standalone `inherit` to keep browserified files clear.

# <a href="https://github.com/nodeca/js-yaml/compare/3.4.4...3.4.5">3.4.5</a> - 2015-11-23

## Added

- Added `lineWidth` option to dumper.

# <a href="https://github.com/nodeca/js-yaml/compare/3.4.3...3.4.4">3.4.4</a> - 2015-11-21

## Fixed

- Fixed floats dump (missed dot for scientific format), #220.
- Allow non-printable characters inside quoted scalars, #192.

# <a href="https://github.com/nodeca/js-yaml/compare/3.4.2...3.4.3">3.4.3</a> - 2015-10-10

## Changed

- Maintenance release - deps bump (esprima, argparse).

# <a href="https://github.com/nodeca/js-yaml/compare/3.4.1...3.4.2">3.4.2</a> - 2015-09-09

## Fixed

- Fixed serialization of duplicated entries in sequences, #205. Thanks to @vogelsgesang.

# <a href="https://github.com/nodeca/js-yaml/compare/3.4.0...3.4.1">3.4.1</a> - 2015-09-05

## Fixed

- Fixed stacktrace handling in generated errors, for browsers (FF/IE).

# <a href="https://github.com/nodeca/js-yaml/compare/3.3.1...3.4.0">3.4.0</a> - 2015-08-23

## Changed

- Don't throw on warnings anymore. Use `onWarning` option to catch.
- Throw error on unknown tags (was warning before).
- Reworked internals of error class.

## Fixed

- Fixed multiline keys dump, #197. Thanks to @tcr.
- Fixed heading line breaks in some scalars (regression).

# <a href="https://github.com/nodeca/js-yaml/compare/3.3.0...3.3.1">3.3.1</a> - 2015-05-13

## Added

- Added `.sortKeys` dumper option, thanks to @rjmunro.

## Fixed

- Fixed astral characters support, #191.

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.7...3.3.0">3.3.0</a> - 2015-04-26

## Changed

- Significantly improved long strings formatting in dumper, thanks to @isaacs.
- Strip BOM if exists.

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.6...3.2.7">3.2.7</a> - 2015-02-19

## Changed

- Maintenance release.
- Updated dependencies.
- HISTORY.md -> CHANGELOG.md

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.5...3.2.6">3.2.6</a> - 2015-02-07

## Fixed

- Fixed encoding of UTF-16 surrogate pairs. (e.g. "\U0001F431" CAT FACE).
- Fixed demo dates dump (#113, thanks to @Hypercubed).

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.4...3.2.5">3.2.5</a> - 2014-12-28

## Fixed

- Fixed resolving of all built-in types on empty nodes.
- Fixed invalid warning on empty lines within quoted scalars and flow collections.
- Fixed bug: Tag on an empty node didn't resolve in some cases.

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.3...3.2.4">3.2.4</a> - 2014-12-19

## Fixed

- Fixed resolving of !!null tag on an empty node.

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.2...3.2.3">3.2.3</a> - 2014-11-08

## Fixed

- Implemented dumping of objects with circular and cross references.
- Partially fixed aliasing of constructed objects. (see issue #141 for details)

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.1...3.2.2">3.2.2</a> - 2014-09-07

## Fixed

- Fixed infinite loop on unindented block scalars.
- Rewritten base64 encode/decode in binary type, to keep code licence clear.

# <a href="https://github.com/nodeca/js-yaml/compare/3.2.0...3.2.1">3.2.1</a> - 2014-08-24

## Fixed

- Nothig new. Just fix npm publish error.

# <a href="https://github.com/nodeca/js-yaml/compare/3.1.0...3.2.0">3.2.0</a> - 2014-08-24

## Added

- Added input piping support to CLI.

## Fixed

- Fixed typo, that could cause hand on initial indent (#139).

# <a href="https://github.com/nodeca/js-yaml/compare/3.0.2...3.1.0">3.1.0</a> - 2014-07-07

## Changed

- 1.5x-2x speed boost.
- Removed deprecated ‘require('xxx.yml’)` support.
- Significant code cleanup and refactoring.
- Internal API changed. If you used custom types - see updated examples. Others are not affected.
- Even if the input string has no trailing line break character, it will be parsed as if it has one.
- Added benchmark scripts.
- Moved bower files to /dist folder
- Bugfixes.

# <a href="https://github.com/nodeca/js-yaml/compare/3.0.1...3.0.2">3.0.2</a> - 2014-02-27

## Fixed

- Fixed bug: "constructor" string parsed as `null`.

# <a href="https://github.com/nodeca/js-yaml/compare/3.0.0...3.0.1">3.0.1</a> - 2013-12-22

## Fixed

- Fixed parsing of literal scalars. (issue #108)
- Prevented adding unnecessary spaces in object dumps. (issue #68)
- Fixed dumping of objects with very long (> 1024 in length) keys.

# <a href="https://github.com/nodeca/js-yaml/compare/2.1.3...3.0.0">3.0.0</a> - 2013-12-16

## Changed

- Refactored code. Changed API for custom types.
- Removed output colors in CLI, dump json by default.
- Removed big dependencies from browser version (esprima, buffer). Load `esprima` manually, if `!!js/function` needed. `!!bin` now returns Array in browser
- AMD support.
- Don't quote dumped strings because of `-` & `?` (if not first char).
- Deprecated loading yaml files via `require()`, as not recommended behaviour for node.

# <a href="https://github.com/nodeca/js-yaml/compare/2.1.2...2.1.3">2.1.3</a> - 2013-10-16

## Fixed

- Fix wrong loading of empty block scalars.

# <a href="https://github.com/nodeca/js-yaml/compare/2.1.1...2.1.2">2.1.2</a> - 2013-10-07

## Fixed

- Fix unwanted line breaks in folded scalars.

# <a href="https://github.com/nodeca/js-yaml/compare/2.1.0...2.1.1">2.1.1</a> - 2013-10-02

## Fixed

- Dumper now respects deprecated booleans syntax from YAML 1.0/1.1
- Fixed reader bug in JSON-like sequences/mappings.

# <a href="https://github.com/nodeca/js-yaml/compare/2.0.5...2.1.0">2.1.0</a> - 2013-06-05

## Added

- Add standard YAML schemas: Failsafe (`FAILSAFE_SCHEMA`), JSON (`JSON_SCHEMA`) and Core (`CORE_SCHEMA`).
- Add `skipInvalid` dumper option.

## Changed

- Rename `DEFAULT_SCHEMA` to `DEFAULT_FULL_SCHEMA` and `SAFE_SCHEMA` to `DEFAULT_SAFE_SCHEMA`.
- Use `safeLoad` for `require` extension.

## Fixed

- Bug fix: export `NIL` constant from the public interface.

# <a href="https://github.com/nodeca/js-yaml/compare/2.0.4...2.0.5">2.0.5</a> - 2013-04-26

## Security

- Close security issue in !!js/function constructor. Big thanks to @nealpoole for security audit.

# <a href="https://github.com/nodeca/js-yaml/compare/2.0.3...2.0.4">2.0.4</a> - 2013-04-08

## Changed

- Updated .npmignore to reduce package size

# <a href="https://github.com/nodeca/js-yaml/compare/2.0.2...2.0.3">2.0.3</a> - 2013-02-26

## Fixed

- Fixed dumping of empty arrays ans objects. ([] and {} instead of null)

# <a href="https://github.com/nodeca/js-yaml/compare/2.0.1...2.0.2">2.0.2</a> - 2013-02-15

## Fixed

- Fixed input validation: tabs are printable characters.

# <a href="https://github.com/nodeca/js-yaml/compare/2.0.0...2.0.1">2.0.1</a> - 2013-02-09

## Fixed

- Fixed error, when options not passed to function cass

# <a href="https://github.com/nodeca/js-yaml/compare/1.0.3...2.0.0">2.0.0</a> - 2013-02-09

## Changed

- Full rewrite. New architecture. Fast one-stage parsing.
- Changed custom types API.
- Added YAML dumper.

# <a href="https://github.com/nodeca/js-yaml/compare/1.0.2...1.0.3">1.0.3</a> - 2012-11-05

## Fixed

- Fixed utf-8 files loading.

# <a href="https://github.com/nodeca/js-yaml/compare/1.0.1...1.0.2">1.0.2</a> - 2012-08-02

## Fixed

- Pull out hand-written shims. Use ES5-Shims for old browsers support. See #44.
- Fix timstamps incorectly parsed in local time when no time part specified.

# <a href="https://github.com/nodeca/js-yaml/compare/1.0.0...1.0.1">1.0.1</a> - 2012-07-07

## Fixed

- Fixes ‘TypeError: 'undefined’ is not an object` under Safari. Thanks Phuong.
- Fix timestamps incorrectly parsed in local time. Thanks @caolan. Closes #46.

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.7...1.0.0">1.0.0</a> - 2012-07-01

## Changed

- `y`, `yes`, `n`, `no`, `on`, `off` are not converted to Booleans anymore. Fixes #42.
- `require(filename)` now returns a single document and throws an Error if file contains more than one document.
- CLI was merged back from js-yaml.bin

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.6...0.3.7">0.3.7</a> - 2012-02-28

## Fixed

- Fix export of `addConstructor()`. Closes #39.

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.5...0.3.6">0.3.6</a> - 2012-02-22

## Changed

- Removed AMD parts - too buggy to use. Need help to rewrite from scratch

## Fixed

- Removed YUI compressor warning (renamed `double` variable). Closes #40.

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.4...0.3.5">0.3.5</a> - 2012-01-10

## Fixed

- Workagound for .npmignore fuckup under windows. Thanks to airportyh.

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.3...0.3.4">0.3.4</a> - 2011-12-24

## Fixed

- Fixes str[] for oldIEs support.
- Adds better has change support for browserified demo.
- improves compact output of Error. Closes #33.

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.2...0.3.3">0.3.3</a> - 2011-12-20

## Added

- adds `compact` stringification of Errors.

## Changed

- jsyaml executable moved to separate module.

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.1...0.3.2">0.3.2</a> - 2011-12-16

## Added

- Added jsyaml executable.
- Added !!js/function support. Closes #12.

## Fixed

- Fixes ug with block style scalars. Closes #26.
- All sources are passing JSLint now.
- Fixes bug in Safari. Closes #28.
- Fixes bug in Opers. Closes #29.
- Improves browser support. Closes #20.

# <a href="https://github.com/nodeca/js-yaml/compare/0.3.0...0.3.1">0.3.1</a> - 2011-11-18

## Added

- Added AMD support for browserified version.
- Added permalinks for online demo YAML snippets. Now we have YPaste service, lol.
- Added !!js/regexp and !!js/undefined types. Partially solves #12.

## Changed

- Wrapped browserified js-yaml into closure.

## Fixed

- Fixed the resolvement of non-specific tags. Closes #17.
- Fixed !!set mapping.
- Fixed month parse in dates. Closes #19.

# <a href="https://github.com/nodeca/js-yaml/compare/0.2.2...0.3.0">0.3.0</a> - 2011-11-09

## Added

- Added browserified version. Closes #13.
- Added live demo of browserified version.
- Ported some of the PyYAML tests. See #14.

## Fixed

- Removed JS.Class dependency. Closes #3.
- Fixed timestamp bug when fraction was given.

# <a href="https://github.com/nodeca/js-yaml/compare/0.2.1...0.2.2">0.2.2</a> - 2011-11-06

## Fixed

- Fixed crash on docs without —. Closes #8.
- Fixed multiline string parse
- Fixed tests/comments for using array as key

# <a href="https://github.com/nodeca/js-yaml/compare/0.2.0...0.2.1">0.2.1</a> - 2011-11-02

## Fixed

- Fixed short file read (<4k). Closes #9.

# <a href="https://github.com/nodeca/js-yaml/releases/tag/0.2.0">0.2.0</a> - 2011-11-02

## Changed

- First public release