Releases: eemeli/yaml
Releases · eemeli/yaml
v1.3.1
v1.3.0
New Features
- Add
context.root
andrangeAsLinePos
to CST nodes (#67, #68) - Add collection accessor methods (#74)
- New methods: add/delete/get/has/set and addIn/deleteIn/getIn/hasIn/setIn
- Available on all collections as well as documents containing a collection
- Include a separate browser build in the release (#73)
- Used by Webpack, Rollup, etc. via the
"browser"
value in package.json - Uses a Browserslist config of
> 0.5%, not dead
to (currently) support at least IE 11 - Has a dependency on
@babel/runtime
that is not included in the package.json dependencies
- Used by Webpack, Rollup, etc. via the
- Optimise the Node.js release to leave out unnecessary polyfills (87beb89)
- Run CI tests on latest, LTS & 6.0.0 versions of Node.js (#70, #73)
- Move & reorganise test files under
tests/
(12876df) - Add
.editorconfig
(#69)
Bugfixes
v1.2.1
v1.2.0
New Features
- Support blank lines (#64)
- Add
BLANK_LINE
nodes to the CST - Add a boolean property
spaceBefore
for all AST nodes - cst: Assign comments & blank lines at end of collection to parent unless sufficiently indented
- Always separate document comments from the rest by a blank line
- Add
- Add missing YAML 1.1 collections:
!!omap
,!!pairs
, and!!set
(#65) - Add
tag
argument forcreateNode()
, along with its refactored schema-specific implementation (29f399b) - Add optional
createNode
andnodeClass
properties to tag objects (bcb8d9c, 3ae63bc) - Add property based tests using fast-check, thanks to @dubzzz (#62)
Bugfixes
- Fix parsing of minimal strings: '', '-', '?', ':' (#61)
- Revert earlier fix for #48, which is now properly handled thanks to the fix for #57 (#59)
- cst/ParseContext: Stop advancing node.range.end past newline (08571ff)
- cst/PlainValue: Limit
valueRange.end
to actual value end (0001333) - cst: Stop breaking the spec by allowing tab indents for map values (572f540)
- Stop aliasing Pair comment to the comment of its value (9b49ddb, 6d3cb36):
key: # this is now a pair comment value
- Render maps with all null values as
? a\n? b\n
or{ a, b }
(40b7a2a)
v1.1.0
New Features
- Support for JavaScript
Set
,Map
and other iterable objects. When stringifying or creating nodes, this is automatic; Map and its descendants turn into YAML mappings, while other iterables become sequences. When parsing, a new optionmapAsMap
creates Maps rather than Objects from YAML mappings. (#46, #49, #50, #51) - Add a new public export at
'yaml/schema'
, providing easier-to-use stringifier options (#58)
Bugfixes
- Stop including end comments in collections if next content is not sufficiently indented (#41, #54)
- Stop folding more-indented lines at start of folded block scalars (#55)
- cst/PlainValue: Allow
:,
to start a plain value in flow-out (#56) - Only advance to end of escape during double-quoted scalar folding (#57)
v1.0.3
v1.0.2
v1.0.1
v1.0.0
Whoa. It's like, ready? Just one minor bug has been reported in the last month, so now's as good a time as any to officially release this thing. A few small changes compared to the last RC:
v1.0.0-rc.8
More eyes reveal more bugs. Many of which have been fixed, thanks in particular to @ikatyang:
- schema/parseMap: Don't drop comments on empty value nodes (#19)
- cst/CollectionItem: Don't reset offset at end of document (#19)
- fix(document): add missing cstNode (#26)
- fix(document): add missing type (#27)
- fix(merge): no error when key is null (#29)
- fix(cst): correct document.valueRange.end (#30)
- Add
setOrigRanges()
to YAML.parseCST() output (#31) - fix(flowSeq): explicit key with empty value (#33)
- fix: empty blockValue as empty string (#35)
- fix: checkKeyLength false positive (#37)
- cst/Collection: Set atLineStart during lineStart reset (#38)
In addition to the above bugfixes, the opinions of the string stringifier have been updated (2ab3eab):
- Quote
"x"
as'"x"'
- Prefer quoted over block for single line values
- Prefer block style for multiline
- Prefer literal over folded block style for short lines
Finally, dev dependencies have been updated, including an update to Babel 7 rc.2 that drops @babel/preset-stage-3
in favor of the specific required plugins.