yaml 1.9.2 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/browser/dist/PlainValue-ff5147c6.js +1277 -0
- package/browser/dist/Schema-2bf2c74e.js +679 -0
- package/browser/dist/index.js +869 -34
- package/browser/dist/legacy-exports.js +3 -0
- package/browser/dist/parse-cst.js +1904 -0
- package/browser/dist/resolveSeq-04825f30.js +2373 -0
- package/browser/dist/types.js +4 -0
- package/browser/dist/util.js +2 -0
- package/browser/dist/warnings-0e4b70d3.js +499 -0
- package/browser/index.js +1 -1
- package/browser/map.js +2 -4
- package/browser/pair.js +2 -4
- package/browser/parse-cst.js +1 -1
- package/browser/scalar.js +2 -4
- package/browser/schema.js +7 -10
- package/browser/seq.js +2 -4
- package/browser/types/binary.js +7 -5
- package/browser/types/omap.js +3 -4
- package/browser/types/pairs.js +3 -4
- package/browser/types/set.js +3 -4
- package/browser/types/timestamp.js +9 -5
- package/browser/types.js +1 -13
- package/browser/util.js +1 -18
- package/dist/Document-2cf6b08c.js +757 -0
- package/dist/PlainValue-ec8e588e.js +876 -0
- package/dist/Schema-42e9705c.js +522 -0
- package/dist/index.js +20 -84
- package/dist/legacy-exports.js +16 -0
- package/dist/parse-cst.js +1747 -0
- package/dist/resolveSeq-4a68b39b.js +2115 -0
- package/dist/test-events.js +11 -9
- package/dist/types.js +23 -0
- package/dist/util.js +19 -0
- package/dist/warnings-39684f17.js +416 -0
- package/index.d.ts +22 -8
- package/map.js +2 -2
- package/package.json +22 -39
- package/pair.js +2 -2
- package/parse-cst.js +1 -1
- package/scalar.js +2 -2
- package/schema.js +8 -6
- package/seq.js +2 -2
- package/types/binary.js +3 -2
- package/types/omap.js +3 -2
- package/types/pairs.js +3 -2
- package/types/set.js +3 -2
- package/types/timestamp.js +6 -6
- package/types.d.ts +113 -99
- package/types.js +16 -11
- package/types.mjs +15 -19
- package/util.js +14 -14
- package/util.mjs +13 -20
- package/browser/dist/Anchors.js +0 -130
- package/browser/dist/Document.js +0 -824
- package/browser/dist/addComment.js +0 -8
- package/browser/dist/constants.js +0 -26
- package/browser/dist/cst/Alias.js +0 -46
- package/browser/dist/cst/BlankLine.js +0 -52
- package/browser/dist/cst/BlockValue.js +0 -251
- package/browser/dist/cst/Collection.js +0 -278
- package/browser/dist/cst/CollectionItem.js +0 -140
- package/browser/dist/cst/Comment.js +0 -44
- package/browser/dist/cst/Directive.js +0 -76
- package/browser/dist/cst/Document.js +0 -286
- package/browser/dist/cst/FlowCollection.js +0 -220
- package/browser/dist/cst/Node.js +0 -386
- package/browser/dist/cst/ParseContext.js +0 -246
- package/browser/dist/cst/PlainValue.js +0 -170
- package/browser/dist/cst/QuoteDouble.js +0 -245
- package/browser/dist/cst/QuoteSingle.js +0 -120
- package/browser/dist/cst/Range.js +0 -64
- package/browser/dist/cst/parse.js +0 -48
- package/browser/dist/cst/source-utils.js +0 -168
- package/browser/dist/errors.js +0 -127
- package/browser/dist/foldFlowLines.js +0 -138
- package/browser/dist/listTagNames.js +0 -28
- package/browser/dist/schema/Alias.js +0 -135
- package/browser/dist/schema/Collection.js +0 -260
- package/browser/dist/schema/Map.js +0 -161
- package/browser/dist/schema/Merge.js +0 -118
- package/browser/dist/schema/Node.js +0 -4
- package/browser/dist/schema/Pair.js +0 -194
- package/browser/dist/schema/Scalar.js +0 -42
- package/browser/dist/schema/Seq.js +0 -116
- package/browser/dist/schema/index.js +0 -368
- package/browser/dist/schema/parseMap.js +0 -312
- package/browser/dist/schema/parseSeq.js +0 -168
- package/browser/dist/schema/parseUtils.js +0 -106
- package/browser/dist/stringify.js +0 -332
- package/browser/dist/tags/core.js +0 -141
- package/browser/dist/tags/failsafe/index.js +0 -4
- package/browser/dist/tags/failsafe/map.js +0 -53
- package/browser/dist/tags/failsafe/seq.js +0 -39
- package/browser/dist/tags/failsafe/string.js +0 -28
- package/browser/dist/tags/index.js +0 -36
- package/browser/dist/tags/json.js +0 -77
- package/browser/dist/tags/options.js +0 -26
- package/browser/dist/tags/yaml-1.1/binary.js +0 -87
- package/browser/dist/tags/yaml-1.1/index.js +0 -189
- package/browser/dist/tags/yaml-1.1/omap.js +0 -137
- package/browser/dist/tags/yaml-1.1/pairs.js +0 -78
- package/browser/dist/tags/yaml-1.1/set.js +0 -118
- package/browser/dist/tags/yaml-1.1/timestamp.js +0 -97
- package/browser/dist/test-events.js +0 -163
- package/browser/dist/toJSON.js +0 -19
- package/browser/dist/warnings.js +0 -39
- package/dist/Anchors.js +0 -120
- package/dist/Document.js +0 -714
- package/dist/addComment.js +0 -14
- package/dist/constants.js +0 -31
- package/dist/cst/Alias.js +0 -33
- package/dist/cst/BlankLine.js +0 -40
- package/dist/cst/BlockValue.js +0 -243
- package/dist/cst/Collection.js +0 -266
- package/dist/cst/CollectionItem.js +0 -135
- package/dist/cst/Comment.js +0 -33
- package/dist/cst/Directive.js +0 -59
- package/dist/cst/Document.js +0 -276
- package/dist/cst/FlowCollection.js +0 -213
- package/dist/cst/Node.js +0 -360
- package/dist/cst/ParseContext.js +0 -253
- package/dist/cst/PlainValue.js +0 -156
- package/dist/cst/QuoteDouble.js +0 -232
- package/dist/cst/QuoteSingle.js +0 -108
- package/dist/cst/Range.js +0 -60
- package/dist/cst/parse.js +0 -50
- package/dist/cst/source-utils.js +0 -175
- package/dist/errors.js +0 -97
- package/dist/foldFlowLines.js +0 -143
- package/dist/listTagNames.js +0 -33
- package/dist/schema/Alias.js +0 -105
- package/dist/schema/Collection.js +0 -184
- package/dist/schema/Map.js +0 -98
- package/dist/schema/Merge.js +0 -75
- package/dist/schema/Node.js +0 -7
- package/dist/schema/Pair.js +0 -174
- package/dist/schema/Scalar.js +0 -26
- package/dist/schema/Seq.js +0 -73
- package/dist/schema/index.js +0 -310
- package/dist/schema/parseMap.js +0 -334
- package/dist/schema/parseSeq.js +0 -175
- package/dist/schema/parseUtils.js +0 -101
- package/dist/stringify.js +0 -352
- package/dist/tags/core.js +0 -121
- package/dist/tags/failsafe/index.js +0 -12
- package/dist/tags/failsafe/map.js +0 -32
- package/dist/tags/failsafe/seq.js +0 -29
- package/dist/tags/failsafe/string.js +0 -37
- package/dist/tags/index.js +0 -53
- package/dist/tags/json.js +0 -64
- package/dist/tags/options.js +0 -36
- package/dist/tags/yaml-1.1/binary.js +0 -94
- package/dist/tags/yaml-1.1/index.js +0 -162
- package/dist/tags/yaml-1.1/omap.js +0 -100
- package/dist/tags/yaml-1.1/pairs.js +0 -75
- package/dist/tags/yaml-1.1/set.js +0 -82
- package/dist/tags/yaml-1.1/timestamp.js +0 -90
- package/dist/toJSON.js +0 -21
- package/dist/warnings.js +0 -48
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _get from "@babel/runtime/helpers/get";
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
-
|
|
8
|
-
function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
9
|
-
|
|
10
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
-
|
|
12
|
-
import { Type } from '../constants';
|
|
13
|
-
import { YAMLSemanticError } from '../errors';
|
|
14
|
-
import { BlankLine } from './BlankLine';
|
|
15
|
-
import { Node } from './Node';
|
|
16
|
-
import { Range } from './Range';
|
|
17
|
-
export var CollectionItem = /*#__PURE__*/function (_Node) {
|
|
18
|
-
_inherits(CollectionItem, _Node);
|
|
19
|
-
|
|
20
|
-
var _super = _createSuper(CollectionItem);
|
|
21
|
-
|
|
22
|
-
function CollectionItem(type, props) {
|
|
23
|
-
var _this;
|
|
24
|
-
|
|
25
|
-
_classCallCheck(this, CollectionItem);
|
|
26
|
-
|
|
27
|
-
_this = _super.call(this, type, props);
|
|
28
|
-
_this.node = null;
|
|
29
|
-
return _this;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
_createClass(CollectionItem, [{
|
|
33
|
-
key: "parse",
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @param {ParseContext} context
|
|
37
|
-
* @param {number} start - Index of first character
|
|
38
|
-
* @returns {number} - Index of the character after this
|
|
39
|
-
*/
|
|
40
|
-
value: function parse(context, start) {
|
|
41
|
-
this.context = context;
|
|
42
|
-
var parseNode = context.parseNode,
|
|
43
|
-
src = context.src;
|
|
44
|
-
var atLineStart = context.atLineStart,
|
|
45
|
-
lineStart = context.lineStart;
|
|
46
|
-
if (!atLineStart && this.type === Type.SEQ_ITEM) this.error = new YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line');
|
|
47
|
-
var indent = atLineStart ? start - lineStart : context.indent;
|
|
48
|
-
var offset = Node.endOfWhiteSpace(src, start + 1);
|
|
49
|
-
var ch = src[offset];
|
|
50
|
-
var inlineComment = ch === '#';
|
|
51
|
-
var comments = [];
|
|
52
|
-
var blankLine = null;
|
|
53
|
-
|
|
54
|
-
while (ch === '\n' || ch === '#') {
|
|
55
|
-
if (ch === '#') {
|
|
56
|
-
var _end = Node.endOfLine(src, offset + 1);
|
|
57
|
-
|
|
58
|
-
comments.push(new Range(offset, _end));
|
|
59
|
-
offset = _end;
|
|
60
|
-
} else {
|
|
61
|
-
atLineStart = true;
|
|
62
|
-
lineStart = offset + 1;
|
|
63
|
-
var wsEnd = Node.endOfWhiteSpace(src, lineStart);
|
|
64
|
-
|
|
65
|
-
if (src[wsEnd] === '\n' && comments.length === 0) {
|
|
66
|
-
blankLine = new BlankLine();
|
|
67
|
-
lineStart = blankLine.parse({
|
|
68
|
-
src: src
|
|
69
|
-
}, lineStart);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
offset = Node.endOfIndent(src, lineStart);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
ch = src[offset];
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== Type.SEQ_ITEM)) {
|
|
79
|
-
this.node = parseNode({
|
|
80
|
-
atLineStart: atLineStart,
|
|
81
|
-
inCollection: false,
|
|
82
|
-
indent: indent,
|
|
83
|
-
lineStart: lineStart,
|
|
84
|
-
parent: this
|
|
85
|
-
}, offset);
|
|
86
|
-
} else if (ch && lineStart > start + 1) {
|
|
87
|
-
offset = lineStart - 1;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
if (this.node) {
|
|
91
|
-
if (blankLine) {
|
|
92
|
-
// Only blank lines preceding non-empty nodes are captured. Note that
|
|
93
|
-
// this means that collection item range start indices do not always
|
|
94
|
-
// increase monotonically. -- eemeli/yaml#126
|
|
95
|
-
var items = context.parent.items || context.parent.contents;
|
|
96
|
-
if (items) items.push(blankLine);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (comments.length) Array.prototype.push.apply(this.props, comments);
|
|
100
|
-
offset = this.node.range.end;
|
|
101
|
-
} else {
|
|
102
|
-
if (inlineComment) {
|
|
103
|
-
var c = comments[0];
|
|
104
|
-
this.props.push(c);
|
|
105
|
-
offset = c.end;
|
|
106
|
-
} else {
|
|
107
|
-
offset = Node.endOfLine(src, start + 1);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var end = this.node ? this.node.valueRange.end : offset;
|
|
112
|
-
this.valueRange = new Range(start, end);
|
|
113
|
-
return offset;
|
|
114
|
-
}
|
|
115
|
-
}, {
|
|
116
|
-
key: "setOrigRanges",
|
|
117
|
-
value: function setOrigRanges(cr, offset) {
|
|
118
|
-
offset = _get(_getPrototypeOf(CollectionItem.prototype), "setOrigRanges", this).call(this, cr, offset);
|
|
119
|
-
return this.node ? this.node.setOrigRanges(cr, offset) : offset;
|
|
120
|
-
}
|
|
121
|
-
}, {
|
|
122
|
-
key: "toString",
|
|
123
|
-
value: function toString() {
|
|
124
|
-
var src = this.context.src,
|
|
125
|
-
node = this.node,
|
|
126
|
-
range = this.range,
|
|
127
|
-
value = this.value;
|
|
128
|
-
if (value != null) return value;
|
|
129
|
-
var str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);
|
|
130
|
-
return Node.addStringTerminator(src, range.end, str);
|
|
131
|
-
}
|
|
132
|
-
}, {
|
|
133
|
-
key: "includesTrailingLines",
|
|
134
|
-
get: function get() {
|
|
135
|
-
return !!this.node && this.node.includesTrailingLines;
|
|
136
|
-
}
|
|
137
|
-
}]);
|
|
138
|
-
|
|
139
|
-
return CollectionItem;
|
|
140
|
-
}(Node);
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
4
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
-
|
|
7
|
-
function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
-
|
|
9
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
10
|
-
|
|
11
|
-
import { Type } from '../constants';
|
|
12
|
-
import { Node } from './Node';
|
|
13
|
-
import { Range } from './Range';
|
|
14
|
-
export var Comment = /*#__PURE__*/function (_Node) {
|
|
15
|
-
_inherits(Comment, _Node);
|
|
16
|
-
|
|
17
|
-
var _super = _createSuper(Comment);
|
|
18
|
-
|
|
19
|
-
function Comment() {
|
|
20
|
-
_classCallCheck(this, Comment);
|
|
21
|
-
|
|
22
|
-
return _super.call(this, Type.COMMENT);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Parses a comment line from the source
|
|
26
|
-
*
|
|
27
|
-
* @param {ParseContext} context
|
|
28
|
-
* @param {number} start - Index of first character
|
|
29
|
-
* @returns {number} - Index of the character after this scalar
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
_createClass(Comment, [{
|
|
34
|
-
key: "parse",
|
|
35
|
-
value: function parse(context, start) {
|
|
36
|
-
this.context = context;
|
|
37
|
-
var offset = this.parseComment(start);
|
|
38
|
-
this.range = new Range(start, offset);
|
|
39
|
-
return offset;
|
|
40
|
-
}
|
|
41
|
-
}]);
|
|
42
|
-
|
|
43
|
-
return Comment;
|
|
44
|
-
}(Node);
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
4
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
-
|
|
7
|
-
function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
-
|
|
9
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
10
|
-
|
|
11
|
-
import { Type } from '../constants';
|
|
12
|
-
import { Node } from './Node';
|
|
13
|
-
import { Range } from './Range';
|
|
14
|
-
export var Directive = /*#__PURE__*/function (_Node) {
|
|
15
|
-
_inherits(Directive, _Node);
|
|
16
|
-
|
|
17
|
-
var _super = _createSuper(Directive);
|
|
18
|
-
|
|
19
|
-
function Directive() {
|
|
20
|
-
var _this;
|
|
21
|
-
|
|
22
|
-
_classCallCheck(this, Directive);
|
|
23
|
-
|
|
24
|
-
_this = _super.call(this, Type.DIRECTIVE);
|
|
25
|
-
_this.name = null;
|
|
26
|
-
return _this;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
_createClass(Directive, [{
|
|
30
|
-
key: "parseName",
|
|
31
|
-
value: function parseName(start) {
|
|
32
|
-
var src = this.context.src;
|
|
33
|
-
var offset = start;
|
|
34
|
-
var ch = src[offset];
|
|
35
|
-
|
|
36
|
-
while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') {
|
|
37
|
-
ch = src[offset += 1];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
this.name = src.slice(start, offset);
|
|
41
|
-
return offset;
|
|
42
|
-
}
|
|
43
|
-
}, {
|
|
44
|
-
key: "parseParameters",
|
|
45
|
-
value: function parseParameters(start) {
|
|
46
|
-
var src = this.context.src;
|
|
47
|
-
var offset = start;
|
|
48
|
-
var ch = src[offset];
|
|
49
|
-
|
|
50
|
-
while (ch && ch !== '\n' && ch !== '#') {
|
|
51
|
-
ch = src[offset += 1];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
this.valueRange = new Range(start, offset);
|
|
55
|
-
return offset;
|
|
56
|
-
}
|
|
57
|
-
}, {
|
|
58
|
-
key: "parse",
|
|
59
|
-
value: function parse(context, start) {
|
|
60
|
-
this.context = context;
|
|
61
|
-
var offset = this.parseName(start + 1);
|
|
62
|
-
offset = this.parseParameters(offset);
|
|
63
|
-
offset = this.parseComment(offset);
|
|
64
|
-
this.range = new Range(start, offset);
|
|
65
|
-
return offset;
|
|
66
|
-
}
|
|
67
|
-
}, {
|
|
68
|
-
key: "parameters",
|
|
69
|
-
get: function get() {
|
|
70
|
-
var raw = this.rawValue;
|
|
71
|
-
return raw ? raw.trim().split(/[ \t]+/) : [];
|
|
72
|
-
}
|
|
73
|
-
}]);
|
|
74
|
-
|
|
75
|
-
return Directive;
|
|
76
|
-
}(Node);
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _get from "@babel/runtime/helpers/get";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
-
|
|
8
|
-
function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
9
|
-
|
|
10
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
-
|
|
12
|
-
import { Char, Type } from '../constants';
|
|
13
|
-
import { YAMLSemanticError, YAMLSyntaxError } from '../errors';
|
|
14
|
-
import { BlankLine } from './BlankLine';
|
|
15
|
-
import { grabCollectionEndComments } from './Collection';
|
|
16
|
-
import { Comment } from './Comment';
|
|
17
|
-
import { Directive } from './Directive';
|
|
18
|
-
import { Node } from './Node';
|
|
19
|
-
import { Range } from './Range';
|
|
20
|
-
export var Document = /*#__PURE__*/function (_Node) {
|
|
21
|
-
_inherits(Document, _Node);
|
|
22
|
-
|
|
23
|
-
var _super = _createSuper(Document);
|
|
24
|
-
|
|
25
|
-
_createClass(Document, null, [{
|
|
26
|
-
key: "startCommentOrEndBlankLine",
|
|
27
|
-
value: function startCommentOrEndBlankLine(src, start) {
|
|
28
|
-
var offset = Node.endOfWhiteSpace(src, start);
|
|
29
|
-
var ch = src[offset];
|
|
30
|
-
return ch === '#' || ch === '\n' ? offset : start;
|
|
31
|
-
}
|
|
32
|
-
}]);
|
|
33
|
-
|
|
34
|
-
function Document() {
|
|
35
|
-
var _this;
|
|
36
|
-
|
|
37
|
-
_classCallCheck(this, Document);
|
|
38
|
-
|
|
39
|
-
_this = _super.call(this, Type.DOCUMENT);
|
|
40
|
-
_this.directives = null;
|
|
41
|
-
_this.contents = null;
|
|
42
|
-
_this.directivesEndMarker = null;
|
|
43
|
-
_this.documentEndMarker = null;
|
|
44
|
-
return _this;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
_createClass(Document, [{
|
|
48
|
-
key: "parseDirectives",
|
|
49
|
-
value: function parseDirectives(start) {
|
|
50
|
-
var src = this.context.src;
|
|
51
|
-
this.directives = [];
|
|
52
|
-
var atLineStart = true;
|
|
53
|
-
var hasDirectives = false;
|
|
54
|
-
var offset = start;
|
|
55
|
-
|
|
56
|
-
while (!Node.atDocumentBoundary(src, offset, Char.DIRECTIVES_END)) {
|
|
57
|
-
offset = Document.startCommentOrEndBlankLine(src, offset);
|
|
58
|
-
|
|
59
|
-
switch (src[offset]) {
|
|
60
|
-
case '\n':
|
|
61
|
-
if (atLineStart) {
|
|
62
|
-
var blankLine = new BlankLine();
|
|
63
|
-
offset = blankLine.parse({
|
|
64
|
-
src: src
|
|
65
|
-
}, offset);
|
|
66
|
-
|
|
67
|
-
if (offset < src.length) {
|
|
68
|
-
this.directives.push(blankLine);
|
|
69
|
-
}
|
|
70
|
-
} else {
|
|
71
|
-
offset += 1;
|
|
72
|
-
atLineStart = true;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
break;
|
|
76
|
-
|
|
77
|
-
case '#':
|
|
78
|
-
{
|
|
79
|
-
var comment = new Comment();
|
|
80
|
-
offset = comment.parse({
|
|
81
|
-
src: src
|
|
82
|
-
}, offset);
|
|
83
|
-
this.directives.push(comment);
|
|
84
|
-
atLineStart = false;
|
|
85
|
-
}
|
|
86
|
-
break;
|
|
87
|
-
|
|
88
|
-
case '%':
|
|
89
|
-
{
|
|
90
|
-
var directive = new Directive();
|
|
91
|
-
offset = directive.parse({
|
|
92
|
-
parent: this,
|
|
93
|
-
src: src
|
|
94
|
-
}, offset);
|
|
95
|
-
this.directives.push(directive);
|
|
96
|
-
hasDirectives = true;
|
|
97
|
-
atLineStart = false;
|
|
98
|
-
}
|
|
99
|
-
break;
|
|
100
|
-
|
|
101
|
-
default:
|
|
102
|
-
if (hasDirectives) {
|
|
103
|
-
this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line');
|
|
104
|
-
} else if (this.directives.length > 0) {
|
|
105
|
-
this.contents = this.directives;
|
|
106
|
-
this.directives = [];
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return offset;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (src[offset]) {
|
|
114
|
-
this.directivesEndMarker = new Range(offset, offset + 3);
|
|
115
|
-
return offset + 3;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (hasDirectives) {
|
|
119
|
-
this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line');
|
|
120
|
-
} else if (this.directives.length > 0) {
|
|
121
|
-
this.contents = this.directives;
|
|
122
|
-
this.directives = [];
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return offset;
|
|
126
|
-
}
|
|
127
|
-
}, {
|
|
128
|
-
key: "parseContents",
|
|
129
|
-
value: function parseContents(start) {
|
|
130
|
-
var _this$context = this.context,
|
|
131
|
-
parseNode = _this$context.parseNode,
|
|
132
|
-
src = _this$context.src;
|
|
133
|
-
if (!this.contents) this.contents = [];
|
|
134
|
-
var lineStart = start;
|
|
135
|
-
|
|
136
|
-
while (src[lineStart - 1] === '-') {
|
|
137
|
-
lineStart -= 1;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
var offset = Node.endOfWhiteSpace(src, start);
|
|
141
|
-
var atLineStart = lineStart === start;
|
|
142
|
-
this.valueRange = new Range(offset);
|
|
143
|
-
|
|
144
|
-
while (!Node.atDocumentBoundary(src, offset, Char.DOCUMENT_END)) {
|
|
145
|
-
switch (src[offset]) {
|
|
146
|
-
case '\n':
|
|
147
|
-
if (atLineStart) {
|
|
148
|
-
var blankLine = new BlankLine();
|
|
149
|
-
offset = blankLine.parse({
|
|
150
|
-
src: src
|
|
151
|
-
}, offset);
|
|
152
|
-
|
|
153
|
-
if (offset < src.length) {
|
|
154
|
-
this.contents.push(blankLine);
|
|
155
|
-
}
|
|
156
|
-
} else {
|
|
157
|
-
offset += 1;
|
|
158
|
-
atLineStart = true;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
lineStart = offset;
|
|
162
|
-
break;
|
|
163
|
-
|
|
164
|
-
case '#':
|
|
165
|
-
{
|
|
166
|
-
var comment = new Comment();
|
|
167
|
-
offset = comment.parse({
|
|
168
|
-
src: src
|
|
169
|
-
}, offset);
|
|
170
|
-
this.contents.push(comment);
|
|
171
|
-
atLineStart = false;
|
|
172
|
-
}
|
|
173
|
-
break;
|
|
174
|
-
|
|
175
|
-
default:
|
|
176
|
-
{
|
|
177
|
-
var iEnd = Node.endOfIndent(src, offset);
|
|
178
|
-
var context = {
|
|
179
|
-
atLineStart: atLineStart,
|
|
180
|
-
indent: -1,
|
|
181
|
-
inFlow: false,
|
|
182
|
-
inCollection: false,
|
|
183
|
-
lineStart: lineStart,
|
|
184
|
-
parent: this
|
|
185
|
-
};
|
|
186
|
-
var node = parseNode(context, iEnd);
|
|
187
|
-
if (!node) return this.valueRange.end = iEnd; // at next document start
|
|
188
|
-
|
|
189
|
-
this.contents.push(node);
|
|
190
|
-
offset = node.range.end;
|
|
191
|
-
atLineStart = false;
|
|
192
|
-
var ec = grabCollectionEndComments(node);
|
|
193
|
-
if (ec) Array.prototype.push.apply(this.contents, ec);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
offset = Document.startCommentOrEndBlankLine(src, offset);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
this.valueRange.end = offset;
|
|
201
|
-
|
|
202
|
-
if (src[offset]) {
|
|
203
|
-
this.documentEndMarker = new Range(offset, offset + 3);
|
|
204
|
-
offset += 3;
|
|
205
|
-
|
|
206
|
-
if (src[offset]) {
|
|
207
|
-
offset = Node.endOfWhiteSpace(src, offset);
|
|
208
|
-
|
|
209
|
-
if (src[offset] === '#') {
|
|
210
|
-
var _comment = new Comment();
|
|
211
|
-
|
|
212
|
-
offset = _comment.parse({
|
|
213
|
-
src: src
|
|
214
|
-
}, offset);
|
|
215
|
-
this.contents.push(_comment);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
switch (src[offset]) {
|
|
219
|
-
case '\n':
|
|
220
|
-
offset += 1;
|
|
221
|
-
break;
|
|
222
|
-
|
|
223
|
-
case undefined:
|
|
224
|
-
break;
|
|
225
|
-
|
|
226
|
-
default:
|
|
227
|
-
this.error = new YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
return offset;
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* @param {ParseContext} context
|
|
236
|
-
* @param {number} start - Index of first character
|
|
237
|
-
* @returns {number} - Index of the character after this
|
|
238
|
-
*/
|
|
239
|
-
|
|
240
|
-
}, {
|
|
241
|
-
key: "parse",
|
|
242
|
-
value: function parse(context, start) {
|
|
243
|
-
context.root = this;
|
|
244
|
-
this.context = context;
|
|
245
|
-
var src = context.src;
|
|
246
|
-
var offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM
|
|
247
|
-
|
|
248
|
-
offset = this.parseDirectives(offset);
|
|
249
|
-
offset = this.parseContents(offset);
|
|
250
|
-
return offset;
|
|
251
|
-
}
|
|
252
|
-
}, {
|
|
253
|
-
key: "setOrigRanges",
|
|
254
|
-
value: function setOrigRanges(cr, offset) {
|
|
255
|
-
offset = _get(_getPrototypeOf(Document.prototype), "setOrigRanges", this).call(this, cr, offset);
|
|
256
|
-
this.directives.forEach(function (node) {
|
|
257
|
-
offset = node.setOrigRanges(cr, offset);
|
|
258
|
-
});
|
|
259
|
-
if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset);
|
|
260
|
-
this.contents.forEach(function (node) {
|
|
261
|
-
offset = node.setOrigRanges(cr, offset);
|
|
262
|
-
});
|
|
263
|
-
if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset);
|
|
264
|
-
return offset;
|
|
265
|
-
}
|
|
266
|
-
}, {
|
|
267
|
-
key: "toString",
|
|
268
|
-
value: function toString() {
|
|
269
|
-
var contents = this.contents,
|
|
270
|
-
directives = this.directives,
|
|
271
|
-
value = this.value;
|
|
272
|
-
if (value != null) return value;
|
|
273
|
-
var str = directives.join('');
|
|
274
|
-
|
|
275
|
-
if (contents.length > 0) {
|
|
276
|
-
if (directives.length > 0 || contents[0].type === Type.COMMENT) str += '---\n';
|
|
277
|
-
str += contents.join('');
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
if (str[str.length - 1] !== '\n') str += '\n';
|
|
281
|
-
return str;
|
|
282
|
-
}
|
|
283
|
-
}]);
|
|
284
|
-
|
|
285
|
-
return Document;
|
|
286
|
-
}(Node);
|