3 All notable changes to this project will be documented in this file.
5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9 ## [3.14.1] - 2020-12-07
11 - Fix possible code execution in (already unsafe) `.load()` (in &anchor).
14 ## [3.14.0] - 2020-05-22
16 - Support `safe/loadAll(input, options)` variant of call.
17 - CI: drop outdated nodejs versions.
21 - Quote `=` in plain scalars #519.
22 - Check the node type for `!<?>` tag in case user manually specifies it.
23 - Verify that there are no null-bytes in input.
24 - Fix wrong quote position when writing condensed flow, #526.
27 ## [3.13.1] - 2019-04-05
29 - Fix possible code execution in (already unsafe) `.load()`, #480.
32 ## [3.13.0] - 2019-03-20
34 - Security fix: `safeLoad()` can hang when arrays with nested refs
35 used as key. Now throws exception for nested arrays. #475.
38 ## [3.12.2] - 2019-02-26
40 - Fix `noArrayIndent` option for root level, #468.
43 ## [3.12.1] - 2019-01-05
45 - Added `noArrayIndent` option, #432.
48 ## [3.12.0] - 2018-06-02
50 - Support arrow functions without a block statement, #421.
53 ## [3.11.0] - 2018-03-05
55 - Add arrow functions suport for `!!js/function`.
58 - Fix dump in bin/octal/hex formats for negative integers, #399.
61 ## [3.10.0] - 2017-09-10
63 - Fix `condenseFlow` output (quote keys for sure, instead of spaces), #371, #370.
64 - Dump astrals as codepoints instead of surrogate pair, #368.
67 ## [3.9.1] - 2017-07-08
69 - Ensure stack is present for custom errors in node 7.+, #351.
72 ## [3.9.0] - 2017-07-08
74 - Add `condenseFlow` option (to create pretty URL query params), #346.
77 - Support array return from safeLoadAll/loadAll, #350.
80 ## [3.8.4] - 2017-05-08
82 - Dumper: prevent space after dash for arrays that wrap, #343.
85 ## [3.8.3] - 2017-04-05
87 - Should not allow numbers to begin and end with underscore, #335.
90 ## [3.8.2] - 2017-03-02
92 - Fix `!!float 123` (integers) parse, #333.
93 - Don't allow leading zeros in floats (except 0, 0.xxx).
94 - Allow positive exponent without sign in floats.
97 ## [3.8.1] - 2017-02-07
99 - Maintenance: update browserified build.
102 ## [3.8.0] - 2017-02-07
104 - Fix reported position for `duplicated mapping key` errors.
105 Now points to block start instead of block end.
106 (#243, thanks to @shockey).
109 ## [3.7.0] - 2016-11-12
111 - Support polymorphism for tags (#300, thanks to @monken).
114 - Fix parsing of quotes followed by newlines (#304, thanks to @dplepage).
117 ## [3.6.1] - 2016-05-11
119 - Fix output cut on a pipe, #286.
122 ## [3.6.0] - 2016-04-16
124 - Dumper rewrite, fix multiple bugs with trailing `\n`.
125 Big thanks to @aepsilon!
126 - Loader: fix leading/trailing newlines in block scalars, @aepsilon.
129 ## [3.5.5] - 2016-03-17
131 - Date parse fix: don't allow dates with on digit in month and day, #268.
134 ## [3.5.4] - 2016-03-09
136 - `noCompatMode` for dumper, to disable quoting YAML 1.1 values.
139 ## [3.5.3] - 2016-02-11
141 - Maintenance release.
144 ## [3.5.2] - 2016-01-11
146 - Maintenance: missed comma in bower config.
149 ## [3.5.1] - 2016-01-11
151 - Removed `inherit` dependency, #239.
152 - Better browserify workaround for esprima load.
156 ## [3.5.0] - 2016-01-10
158 - Dumper. Fold strings only, #217.
159 - Dumper. `norefs` option, to clone linked objects, #229.
160 - Loader. Throw a warning for duplicate keys, #166.
161 - Improved browserify support (mark `esprima` & `Buffer` excluded).
164 ## [3.4.6] - 2015-11-26
166 - Use standalone `inherit` to keep browserified files clear.
169 ## [3.4.5] - 2015-11-23
171 - Added `lineWidth` option to dumper.
174 ## [3.4.4] - 2015-11-21
176 - Fixed floats dump (missed dot for scientific format), #220.
177 - Allow non-printable characters inside quoted scalars, #192.
180 ## [3.4.3] - 2015-10-10
182 - Maintenance release - deps bump (esprima, argparse).
185 ## [3.4.2] - 2015-09-09
187 - Fixed serialization of duplicated entries in sequences, #205.
188 Thanks to @vogelsgesang.
191 ## [3.4.1] - 2015-09-05
193 - Fixed stacktrace handling in generated errors, for browsers (FF/IE).
196 ## [3.4.0] - 2015-08-23
198 - Don't throw on warnings anymore. Use `onWarning` option to catch.
199 - Throw error on unknown tags (was warning before).
200 - Reworked internals of error class.
203 - Fixed multiline keys dump, #197. Thanks to @tcr.
204 - Fixed heading line breaks in some scalars (regression).
207 ## [3.3.1] - 2015-05-13
209 - Added `.sortKeys` dumper option, thanks to @rjmunro.
212 - Fixed astral characters support, #191.
215 ## [3.3.0] - 2015-04-26
217 - Significantly improved long strings formatting in dumper, thanks to @isaacs.
218 - Strip BOM if exists.
221 ## [3.2.7] - 2015-02-19
223 - Maintenance release.
224 - Updated dependencies.
225 - HISTORY.md -> CHANGELOG.md
228 ## [3.2.6] - 2015-02-07
230 - Fixed encoding of UTF-16 surrogate pairs. (e.g. "\U0001F431" CAT FACE).
231 - Fixed demo dates dump (#113, thanks to @Hypercubed).
234 ## [3.2.5] - 2014-12-28
236 - Fixed resolving of all built-in types on empty nodes.
237 - Fixed invalid warning on empty lines within quoted scalars and flow collections.
238 - Fixed bug: Tag on an empty node didn't resolve in some cases.
241 ## [3.2.4] - 2014-12-19
243 - Fixed resolving of !!null tag on an empty node.
246 ## [3.2.3] - 2014-11-08
248 - Implemented dumping of objects with circular and cross references.
249 - Partially fixed aliasing of constructed objects. (see issue #141 for details)
252 ## [3.2.2] - 2014-09-07
254 - Fixed infinite loop on unindented block scalars.
255 - Rewritten base64 encode/decode in binary type, to keep code licence clear.
258 ## [3.2.1] - 2014-08-24
260 - Nothig new. Just fix npm publish error.
263 ## [3.2.0] - 2014-08-24
265 - Added input piping support to CLI.
268 - Fixed typo, that could cause hand on initial indent (#139).
271 ## [3.1.0] - 2014-07-07
273 - 1.5x-2x speed boost.
274 - Removed deprecated `require('xxx.yml')` support.
275 - Significant code cleanup and refactoring.
276 - Internal API changed. If you used custom types - see updated examples.
277 Others are not affected.
278 - Even if the input string has no trailing line break character,
279 it will be parsed as if it has one.
280 - Added benchmark scripts.
281 - Moved bower files to /dist folder
285 ## [3.0.2] - 2014-02-27
287 - Fixed bug: "constructor" string parsed as `null`.
290 ## [3.0.1] - 2013-12-22
292 - Fixed parsing of literal scalars. (issue #108)
293 - Prevented adding unnecessary spaces in object dumps. (issue #68)
294 - Fixed dumping of objects with very long (> 1024 in length) keys.
297 ## [3.0.0] - 2013-12-16
299 - Refactored code. Changed API for custom types.
300 - Removed output colors in CLI, dump json by default.
301 - Removed big dependencies from browser version (esprima, buffer). Load `esprima` manually, if `!!js/function` needed. `!!bin` now returns Array in browser
303 - Don't quote dumped strings because of `-` & `?` (if not first char).
304 - __Deprecated__ loading yaml files via `require()`, as not recommended
308 ## [2.1.3] - 2013-10-16
310 - Fix wrong loading of empty block scalars.
313 ## [2.1.2] - 2013-10-07
315 - Fix unwanted line breaks in folded scalars.
318 ## [2.1.1] - 2013-10-02
320 - Dumper now respects deprecated booleans syntax from YAML 1.0/1.1
321 - Fixed reader bug in JSON-like sequences/mappings.
324 ## [2.1.0] - 2013-06-05
326 - Add standard YAML schemas: Failsafe (`FAILSAFE_SCHEMA`),
327 JSON (`JSON_SCHEMA`) and Core (`CORE_SCHEMA`).
328 - Add `skipInvalid` dumper option.
331 - Rename `DEFAULT_SCHEMA` to `DEFAULT_FULL_SCHEMA`
332 and `SAFE_SCHEMA` to `DEFAULT_SAFE_SCHEMA`.
333 - Use `safeLoad` for `require` extension.
336 - Bug fix: export `NIL` constant from the public interface.
339 ## [2.0.5] - 2013-04-26
341 - Close security issue in !!js/function constructor.
342 Big thanks to @nealpoole for security audit.
345 ## [2.0.4] - 2013-04-08
347 - Updated .npmignore to reduce package size
350 ## [2.0.3] - 2013-02-26
352 - Fixed dumping of empty arrays ans objects. ([] and {} instead of null)
355 ## [2.0.2] - 2013-02-15
357 - Fixed input validation: tabs are printable characters.
360 ## [2.0.1] - 2013-02-09
362 - Fixed error, when options not passed to function cass
365 ## [2.0.0] - 2013-02-09
367 - Full rewrite. New architecture. Fast one-stage parsing.
368 - Changed custom types API.
372 ## [1.0.3] - 2012-11-05
374 - Fixed utf-8 files loading.
377 ## [1.0.2] - 2012-08-02
379 - Pull out hand-written shims. Use ES5-Shims for old browsers support. See #44.
380 - Fix timstamps incorectly parsed in local time when no time part specified.
383 ## [1.0.1] - 2012-07-07
385 - Fixes `TypeError: 'undefined' is not an object` under Safari. Thanks Phuong.
386 - Fix timestamps incorrectly parsed in local time. Thanks @caolan. Closes #46.
389 ## [1.0.0] - 2012-07-01
391 - `y`, `yes`, `n`, `no`, `on`, `off` are not converted to Booleans anymore.
393 - `require(filename)` now returns a single document and throws an Error if
394 file contains more than one document.
395 - CLI was merged back from js-yaml.bin
398 ## [0.3.7] - 2012-02-28
400 - Fix export of `addConstructor()`. Closes #39.
403 ## [0.3.6] - 2012-02-22
405 - Removed AMD parts - too buggy to use. Need help to rewrite from scratch
408 - Removed YUI compressor warning (renamed `double` variable). Closes #40.
411 ## [0.3.5] - 2012-01-10
413 - Workagound for .npmignore fuckup under windows. Thanks to airportyh.
416 ## [0.3.4] - 2011-12-24
418 - Fixes str[] for oldIEs support.
419 - Adds better has change support for browserified demo.
420 - improves compact output of Error. Closes #33.
423 ## [0.3.3] - 2011-12-20
425 - adds `compact` stringification of Errors.
428 - jsyaml executable moved to separate module.
431 ## [0.3.2] - 2011-12-16
433 - Added jsyaml executable.
434 - Added !!js/function support. Closes #12.
437 - Fixes ug with block style scalars. Closes #26.
438 - All sources are passing JSLint now.
439 - Fixes bug in Safari. Closes #28.
440 - Fixes bug in Opers. Closes #29.
441 - Improves browser support. Closes #20.
444 ## [0.3.1] - 2011-11-18
446 - Added AMD support for browserified version.
447 - Added permalinks for online demo YAML snippets. Now we have YPaste service, lol.
448 - Added !!js/regexp and !!js/undefined types. Partially solves #12.
451 - Wrapped browserified js-yaml into closure.
454 - Fixed the resolvement of non-specific tags. Closes #17.
455 - Fixed !!set mapping.
456 - Fixed month parse in dates. Closes #19.
459 ## [0.3.0] - 2011-11-09
461 - Added browserified version. Closes #13.
462 - Added live demo of browserified version.
463 - Ported some of the PyYAML tests. See #14.
466 - Removed JS.Class dependency. Closes #3.
467 - Fixed timestamp bug when fraction was given.
470 ## [0.2.2] - 2011-11-06
472 - Fixed crash on docs without ---. Closes #8.
473 - Fixed multiline string parse
474 - Fixed tests/comments for using array as key
477 ## [0.2.1] - 2011-11-02
479 - Fixed short file read (<4k). Closes #9.
482 ## [0.2.0] - 2011-11-02
484 - First public release
487 [3.14.1]: https://github.com/nodeca/js-yaml/compare/3.14.0...3.14.1
488 [3.14.0]: https://github.com/nodeca/js-yaml/compare/3.13.1...3.14.0
489 [3.13.1]: https://github.com/nodeca/js-yaml/compare/3.13.0...3.13.1
490 [3.13.0]: https://github.com/nodeca/js-yaml/compare/3.12.2...3.13.0
491 [3.12.2]: https://github.com/nodeca/js-yaml/compare/3.12.1...3.12.2
492 [3.12.1]: https://github.com/nodeca/js-yaml/compare/3.12.0...3.12.1
493 [3.12.0]: https://github.com/nodeca/js-yaml/compare/3.11.0...3.12.0
494 [3.11.0]: https://github.com/nodeca/js-yaml/compare/3.10.0...3.11.0
495 [3.10.0]: https://github.com/nodeca/js-yaml/compare/3.9.1...3.10.0
496 [3.9.1]: https://github.com/nodeca/js-yaml/compare/3.9.0...3.9.1
497 [3.9.0]: https://github.com/nodeca/js-yaml/compare/3.8.4...3.9.0
498 [3.8.4]: https://github.com/nodeca/js-yaml/compare/3.8.3...3.8.4
499 [3.8.3]: https://github.com/nodeca/js-yaml/compare/3.8.2...3.8.3
500 [3.8.2]: https://github.com/nodeca/js-yaml/compare/3.8.1...3.8.2
501 [3.8.1]: https://github.com/nodeca/js-yaml/compare/3.8.0...3.8.1
502 [3.8.0]: https://github.com/nodeca/js-yaml/compare/3.7.0...3.8.0
503 [3.7.0]: https://github.com/nodeca/js-yaml/compare/3.6.1...3.7.0
504 [3.6.1]: https://github.com/nodeca/js-yaml/compare/3.6.0...3.6.1
505 [3.6.0]: https://github.com/nodeca/js-yaml/compare/3.5.5...3.6.0
506 [3.5.5]: https://github.com/nodeca/js-yaml/compare/3.5.4...3.5.5
507 [3.5.4]: https://github.com/nodeca/js-yaml/compare/3.5.3...3.5.4
508 [3.5.3]: https://github.com/nodeca/js-yaml/compare/3.5.2...3.5.3
509 [3.5.2]: https://github.com/nodeca/js-yaml/compare/3.5.1...3.5.2
510 [3.5.1]: https://github.com/nodeca/js-yaml/compare/3.5.0...3.5.1
511 [3.5.0]: https://github.com/nodeca/js-yaml/compare/3.4.6...3.5.0
512 [3.4.6]: https://github.com/nodeca/js-yaml/compare/3.4.5...3.4.6
513 [3.4.5]: https://github.com/nodeca/js-yaml/compare/3.4.4...3.4.5
514 [3.4.4]: https://github.com/nodeca/js-yaml/compare/3.4.3...3.4.4
515 [3.4.3]: https://github.com/nodeca/js-yaml/compare/3.4.2...3.4.3
516 [3.4.2]: https://github.com/nodeca/js-yaml/compare/3.4.1...3.4.2
517 [3.4.1]: https://github.com/nodeca/js-yaml/compare/3.4.0...3.4.1
518 [3.4.0]: https://github.com/nodeca/js-yaml/compare/3.3.1...3.4.0
519 [3.3.1]: https://github.com/nodeca/js-yaml/compare/3.3.0...3.3.1
520 [3.3.0]: https://github.com/nodeca/js-yaml/compare/3.2.7...3.3.0
521 [3.2.7]: https://github.com/nodeca/js-yaml/compare/3.2.6...3.2.7
522 [3.2.6]: https://github.com/nodeca/js-yaml/compare/3.2.5...3.2.6
523 [3.2.5]: https://github.com/nodeca/js-yaml/compare/3.2.4...3.2.5
524 [3.2.4]: https://github.com/nodeca/js-yaml/compare/3.2.3...3.2.4
525 [3.2.3]: https://github.com/nodeca/js-yaml/compare/3.2.2...3.2.3
526 [3.2.2]: https://github.com/nodeca/js-yaml/compare/3.2.1...3.2.2
527 [3.2.1]: https://github.com/nodeca/js-yaml/compare/3.2.0...3.2.1
528 [3.2.0]: https://github.com/nodeca/js-yaml/compare/3.1.0...3.2.0
529 [3.1.0]: https://github.com/nodeca/js-yaml/compare/3.0.2...3.1.0
530 [3.0.2]: https://github.com/nodeca/js-yaml/compare/3.0.1...3.0.2
531 [3.0.1]: https://github.com/nodeca/js-yaml/compare/3.0.0...3.0.1
532 [3.0.0]: https://github.com/nodeca/js-yaml/compare/2.1.3...3.0.0
533 [2.1.3]: https://github.com/nodeca/js-yaml/compare/2.1.2...2.1.3
534 [2.1.2]: https://github.com/nodeca/js-yaml/compare/2.1.1...2.1.2
535 [2.1.1]: https://github.com/nodeca/js-yaml/compare/2.1.0...2.1.1
536 [2.1.0]: https://github.com/nodeca/js-yaml/compare/2.0.5...2.1.0
537 [2.0.5]: https://github.com/nodeca/js-yaml/compare/2.0.4...2.0.5
538 [2.0.4]: https://github.com/nodeca/js-yaml/compare/2.0.3...2.0.4
539 [2.0.3]: https://github.com/nodeca/js-yaml/compare/2.0.2...2.0.3
540 [2.0.2]: https://github.com/nodeca/js-yaml/compare/2.0.1...2.0.2
541 [2.0.1]: https://github.com/nodeca/js-yaml/compare/2.0.0...2.0.1
542 [2.0.0]: https://github.com/nodeca/js-yaml/compare/1.0.3...2.0.0
543 [1.0.3]: https://github.com/nodeca/js-yaml/compare/1.0.2...1.0.3
544 [1.0.2]: https://github.com/nodeca/js-yaml/compare/1.0.1...1.0.2
545 [1.0.1]: https://github.com/nodeca/js-yaml/compare/1.0.0...1.0.1
546 [1.0.0]: https://github.com/nodeca/js-yaml/compare/0.3.7...1.0.0
547 [0.3.7]: https://github.com/nodeca/js-yaml/compare/0.3.6...0.3.7
548 [0.3.6]: https://github.com/nodeca/js-yaml/compare/0.3.5...0.3.6
549 [0.3.5]: https://github.com/nodeca/js-yaml/compare/0.3.4...0.3.5
550 [0.3.4]: https://github.com/nodeca/js-yaml/compare/0.3.3...0.3.4
551 [0.3.3]: https://github.com/nodeca/js-yaml/compare/0.3.2...0.3.3
552 [0.3.2]: https://github.com/nodeca/js-yaml/compare/0.3.1...0.3.2
553 [0.3.1]: https://github.com/nodeca/js-yaml/compare/0.3.0...0.3.1
554 [0.3.0]: https://github.com/nodeca/js-yaml/compare/0.2.2...0.3.0
555 [0.2.2]: https://github.com/nodeca/js-yaml/compare/0.2.1...0.2.2
556 [0.2.1]: https://github.com/nodeca/js-yaml/compare/0.2.0...0.2.1
557 [0.2.0]: https://github.com/nodeca/js-yaml/releases/tag/0.2.0