19 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			19 KiB
		
	
	
	
	
	
	
	
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.
4.1.0 - 2021-04-15
Added
- Types are now exported as 
yaml.types.XXX. - Every type now has 
optionsproperty with original arguments kept as they were (seeyaml.types.int.optionsas an example). 
Changed
Schema.extend()now keeps old type order in case of conflicts (e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered asabcdinstead ofcbad).
4.0.0 - 2021-01-03
Changed
- Check migration guide to see details for all breaking changes.
 - Breaking: "unsafe" tags 
!!js/function,!!js/regexp,!!js/undefinedare moved to js-yaml-js-types package. - Breaking: removed 
safe*functions. Useload,loadAll,dumpinstead which are all now safe by default. yaml.DEFAULT_SAFE_SCHEMAandyaml.DEFAULT_FULL_SCHEMAare removed, useyaml.DEFAULT_SCHEMAinstead.yaml.Schema.create(schema, tags)is removed, useschema.extend(tags)instead.!!binarynow always mapped toUint8Arrayon load.- Reduced nesting of 
/libfolder. - Parse numbers according to YAML 1.2 instead of YAML 1.1 (
01234is now decimal,0o1234is octal,1:23is parsed as string instead of base60). dump()no longer quotes:,[,],(,)except when necessary, #470, #557.- Line and column in exceptions are now formatted as 
(X:Y)instead ofat line X, column Y(also present in compact format), #332. - Code snippet created in exceptions now contains multiple lines with line numbers.
 dump()now serializesundefinedasnullin collections and removes keys withundefinedin mappings, #571.dump()withskipInvalid=truenow serializes invalid items in collections as null.- Custom tags starting with 
!are now dumped as!taginstead of!<!tag>, #576. - Custom tags starting with 
tag:yaml.org,2002:are now shorthanded using!!, #258. 
Added
- Added 
.mjs(es modules) support. - Added 
quotingTypeandforceQuotesoptions for dumper to configure string literal style, #290, #529. - Added 
styles: { '!!null': 'empty' }option for dumper (serializes{ foo: null }as "foo:"), #570. - Added 
replaceroption (similar to option in JSON.stringify), #339. - Custom 
Tagcan now handle all tags or multiple tags with the same prefix, #385. 
Fixed
- Astral characters are no longer encoded by 
dump(), #587. - "duplicate mapping key" exception now points at the correct column, #452.
 - Extra commas in flow collections (e.g. 
[foo,,bar]) now throw an exception instead of producing null, #321. __proto__key no longer overrides object prototype, #164.- Removed 
bower.json. - Tags are now url-decoded in 
load()and url-encoded indump()(previously usage of custom non-ascii tags may have led to invalid YAML that can't be parsed). - Anchors now work correctly with empty nodes, #301.
 - Fix incorrect parsing of invalid block mapping syntax, #418.
 - Throw an error if block sequence/mapping indent contains a tab, #80.
 
[3.14.1] - 2020-12-07
Security
- Fix possible code execution in (already unsafe) 
.load()(in &anchor). 
3.14.0 - 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.
 
3.13.1 - 2019-04-05
Security
- Fix possible code execution in (already unsafe) 
.load(), #480. 
3.13.0 - 2019-03-20
Security
- Security fix: 
safeLoad()can hang when arrays with nested refs used as key. Now throws exception for nested arrays. #475. 
3.12.2 - 2019-02-26
Fixed
- Fix 
noArrayIndentoption for root level, #468. 
3.12.1 - 2019-01-05
Added
- Added 
noArrayIndentoption, #432. 
3.12.0 - 2018-06-02
Changed
- Support arrow functions without a block statement, #421.
 
3.11.0 - 2018-03-05
Added
- Add arrow functions suport for 
!!js/function. 
Fixed
- Fix dump in bin/octal/hex formats for negative integers, #399.
 
3.10.0 - 2017-09-10
Fixed
- Fix 
condenseFlowoutput (quote keys for sure, instead of spaces), #371, #370. - Dump astrals as codepoints instead of surrogate pair, #368.
 
3.9.1 - 2017-07-08
Fixed
- Ensure stack is present for custom errors in node 7.+, #351.
 
3.9.0 - 2017-07-08
Added
- Add 
condenseFlowoption (to create pretty URL query params), #346. 
Fixed
- Support array return from safeLoadAll/loadAll, #350.
 
3.8.4 - 2017-05-08
Fixed
- Dumper: prevent space after dash for arrays that wrap, #343.
 
3.8.3 - 2017-04-05
Fixed
- Should not allow numbers to begin and end with underscore, #335.
 
3.8.2 - 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.
 
3.8.1 - 2017-02-07
Changed
- Maintenance: update browserified build.
 
3.8.0 - 2017-02-07
Fixed
- Fix reported position for 
duplicated mapping keyerrors. Now points to block start instead of block end. (#243, thanks to @shockey). 
3.7.0 - 2016-11-12
Added
- Support polymorphism for tags (#300, thanks to @monken).
 
Fixed
- Fix parsing of quotes followed by newlines (#304, thanks to @dplepage).
 
3.6.1 - 2016-05-11
Fixed
- Fix output cut on a pipe, #286.
 
3.6.0 - 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.
 
3.5.5 - 2016-03-17
Fixed
- Date parse fix: don't allow dates with on digit in month and day, #268.
 
3.5.4 - 2016-03-09
Added
noCompatModefor dumper, to disable quoting YAML 1.1 values.
3.5.3 - 2016-02-11
Changed
- Maintenance release.
 
3.5.2 - 2016-01-11
Changed
- Maintenance: missed comma in bower config.
 
3.5.1 - 2016-01-11
Changed
- Removed 
inheritdependency, #239. - Better browserify workaround for esprima load.
 - Demo rewrite.
 
3.5.0 - 2016-01-10
Fixed
- Dumper. Fold strings only, #217.
 - Dumper. 
norefsoption, to clone linked objects, #229. - Loader. Throw a warning for duplicate keys, #166.
 - Improved browserify support (mark 
esprima&Bufferexcluded). 
3.4.6 - 2015-11-26
Changed
- Use standalone 
inheritto keep browserified files clear. 
3.4.5 - 2015-11-23
Added
- Added 
lineWidthoption to dumper. 
3.4.4 - 2015-11-21
Fixed
- Fixed floats dump (missed dot for scientific format), #220.
 - Allow non-printable characters inside quoted scalars, #192.
 
3.4.3 - 2015-10-10
Changed
- Maintenance release - deps bump (esprima, argparse).
 
3.4.2 - 2015-09-09
Fixed
- Fixed serialization of duplicated entries in sequences, #205. Thanks to @vogelsgesang.
 
3.4.1 - 2015-09-05
Fixed
- Fixed stacktrace handling in generated errors, for browsers (FF/IE).
 
3.4.0 - 2015-08-23
Changed
- Don't throw on warnings anymore. Use 
onWarningoption 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).
 
3.3.1 - 2015-05-13
Added
- Added 
.sortKeysdumper option, thanks to @rjmunro. 
Fixed
- Fixed astral characters support, #191.
 
3.3.0 - 2015-04-26
Changed
- Significantly improved long strings formatting in dumper, thanks to @isaacs.
 - Strip BOM if exists.
 
3.2.7 - 2015-02-19
Changed
- Maintenance release.
 - Updated dependencies.
 - HISTORY.md -> CHANGELOG.md
 
3.2.6 - 2015-02-07
Fixed
- Fixed encoding of UTF-16 surrogate pairs. (e.g. "\U0001F431" CAT FACE).
 - Fixed demo dates dump (#113, thanks to @Hypercubed).
 
3.2.5 - 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.
 
3.2.4 - 2014-12-19
Fixed
- Fixed resolving of !!null tag on an empty node.
 
3.2.3 - 2014-11-08
Fixed
- Implemented dumping of objects with circular and cross references.
 - Partially fixed aliasing of constructed objects. (see issue #141 for details)
 
3.2.2 - 2014-09-07
Fixed
- Fixed infinite loop on unindented block scalars.
 - Rewritten base64 encode/decode in binary type, to keep code licence clear.
 
3.2.1 - 2014-08-24
Fixed
- Nothig new. Just fix npm publish error.
 
3.2.0 - 2014-08-24
Added
- Added input piping support to CLI.
 
Fixed
- Fixed typo, that could cause hand on initial indent (#139).
 
3.1.0 - 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.
 
3.0.2 - 2014-02-27
Fixed
- Fixed bug: "constructor" string parsed as 
null. 
3.0.1 - 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.
 
3.0.0 - 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 
esprimamanually, if!!js/functionneeded.!!binnow 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. 
2.1.3 - 2013-10-16
Fixed
- Fix wrong loading of empty block scalars.
 
2.1.2 - 2013-10-07
Fixed
- Fix unwanted line breaks in folded scalars.
 
2.1.1 - 2013-10-02
Fixed
- Dumper now respects deprecated booleans syntax from YAML 1.0/1.1
 - Fixed reader bug in JSON-like sequences/mappings.
 
2.1.0 - 2013-06-05
Added
- Add standard YAML schemas: Failsafe (
FAILSAFE_SCHEMA), JSON (JSON_SCHEMA) and Core (CORE_SCHEMA). - Add 
skipInvaliddumper option. 
Changed
- Rename 
DEFAULT_SCHEMAtoDEFAULT_FULL_SCHEMAandSAFE_SCHEMAtoDEFAULT_SAFE_SCHEMA. - Use 
safeLoadforrequireextension. 
Fixed
- Bug fix: export 
NILconstant from the public interface. 
2.0.5 - 2013-04-26
Security
- Close security issue in !!js/function constructor. Big thanks to @nealpoole for security audit.
 
2.0.4 - 2013-04-08
Changed
- Updated .npmignore to reduce package size
 
2.0.3 - 2013-02-26
Fixed
- Fixed dumping of empty arrays ans objects. ([] and {} instead of null)
 
2.0.2 - 2013-02-15
Fixed
- Fixed input validation: tabs are printable characters.
 
2.0.1 - 2013-02-09
Fixed
- Fixed error, when options not passed to function cass
 
2.0.0 - 2013-02-09
Changed
- Full rewrite. New architecture. Fast one-stage parsing.
 - Changed custom types API.
 - Added YAML dumper.
 
1.0.3 - 2012-11-05
Fixed
- Fixed utf-8 files loading.
 
1.0.2 - 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.
 
1.0.1 - 2012-07-07
Fixed
- Fixes 
TypeError: 'undefined' is not an objectunder Safari. Thanks Phuong. - Fix timestamps incorrectly parsed in local time. Thanks @caolan. Closes #46.
 
1.0.0 - 2012-07-01
Changed
y,yes,n,no,on,offare 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
 
0.3.7 - 2012-02-28
Fixed
- Fix export of 
addConstructor(). Closes #39. 
0.3.6 - 2012-02-22
Changed
- Removed AMD parts - too buggy to use. Need help to rewrite from scratch
 
Fixed
- Removed YUI compressor warning (renamed 
doublevariable). Closes #40. 
0.3.5 - 2012-01-10
Fixed
- Workagound for .npmignore fuckup under windows. Thanks to airportyh.
 
0.3.4 - 2011-12-24
Fixed
- Fixes str[] for oldIEs support.
 - Adds better has change support for browserified demo.
 - improves compact output of Error. Closes #33.
 
0.3.3 - 2011-12-20
Added
- adds 
compactstringification of Errors. 
Changed
- jsyaml executable moved to separate module.
 
0.3.2 - 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.
 
0.3.1 - 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.
 
0.3.0 - 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.
 
0.2.2 - 2011-11-06
Fixed
- Fixed crash on docs without ---. Closes #8.
 - Fixed multiline string parse
 - Fixed tests/comments for using array as key
 
0.2.1 - 2011-11-02
Fixed
- Fixed short file read (<4k). Closes #9.
 
0.2.0 - 2011-11-02
Changed
- First public release