yaml 1.7.2 → 1.8.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/browser/dist/Anchors.js +24 -39
- package/browser/dist/Document.js +86 -110
- package/browser/dist/addComment.js +2 -11
- package/browser/dist/constants.js +3 -11
- package/browser/dist/cst/Alias.js +19 -36
- package/browser/dist/cst/BlankLine.js +25 -38
- package/browser/dist/cst/BlockValue.js +29 -51
- package/browser/dist/cst/Collection.js +42 -65
- package/browser/dist/cst/CollectionItem.js +33 -55
- package/browser/dist/cst/Comment.js +19 -35
- package/browser/dist/cst/Directive.js +20 -56
- package/browser/dist/cst/Document.js +47 -71
- package/browser/dist/cst/FlowCollection.js +38 -61
- package/browser/dist/cst/Node.js +26 -46
- package/browser/dist/cst/ParseContext.js +100 -140
- package/browser/dist/cst/PlainValue.js +21 -38
- package/browser/dist/cst/QuoteDouble.js +26 -42
- package/browser/dist/cst/QuoteSingle.js +25 -41
- package/browser/dist/cst/Range.js +9 -19
- package/browser/dist/cst/parse.js +5 -16
- package/browser/dist/cst/source-utils.js +3 -14
- package/browser/dist/errors.js +42 -78
- package/browser/dist/foldFlowLines.js +4 -15
- package/browser/dist/index.js +24 -44
- package/browser/dist/listTagNames.js +10 -24
- package/browser/dist/schema/Alias.js +32 -49
- package/browser/dist/schema/Collection.js +54 -65
- package/browser/dist/schema/Map.js +39 -49
- package/browser/dist/schema/Merge.js +32 -52
- package/browser/dist/schema/Node.js +3 -12
- package/browser/dist/schema/Pair.js +40 -58
- package/browser/dist/schema/Scalar.js +18 -33
- package/browser/dist/schema/Seq.js +23 -40
- package/browser/dist/schema/index.js +66 -81
- package/browser/dist/schema/parseMap.js +52 -72
- package/browser/dist/schema/parseSeq.js +30 -45
- package/browser/dist/schema/parseUtils.js +12 -25
- package/browser/dist/stringify.js +39 -45
- package/browser/dist/tags/core.js +30 -37
- package/browser/dist/tags/failsafe/index.js +4 -17
- package/browser/dist/tags/failsafe/map.js +15 -24
- package/browser/dist/tags/failsafe/seq.js +7 -18
- package/browser/dist/tags/failsafe/string.js +7 -19
- package/browser/dist/tags/index.js +35 -49
- package/browser/dist/tags/json.js +11 -38
- package/browser/dist/tags/options.js +8 -20
- package/browser/dist/tags/yaml-1.1/binary.js +16 -29
- package/browser/dist/tags/yaml-1.1/index.js +34 -54
- package/browser/dist/tags/yaml-1.1/omap.js +39 -58
- package/browser/dist/tags/yaml-1.1/pairs.js +15 -34
- package/browser/dist/tags/yaml-1.1/set.js +35 -61
- package/browser/dist/tags/yaml-1.1/timestamp.js +6 -16
- package/browser/dist/test-events.js +7 -19
- package/browser/dist/toJSON.js +1 -8
- package/browser/dist/warnings.js +3 -15
- package/dist/Document.js +1 -1
- package/dist/cst/BlankLine.js +4 -0
- package/dist/cst/BlockValue.js +1 -1
- package/dist/cst/Directive.js +0 -16
- package/dist/cst/Node.js +0 -5
- package/dist/cst/ParseContext.js +41 -55
- package/dist/schema/Alias.js +1 -0
- package/dist/schema/Collection.js +22 -5
- package/dist/schema/Map.js +12 -5
- package/dist/schema/Pair.js +1 -0
- package/dist/schema/index.js +10 -5
- package/dist/schema/parseMap.js +1 -1
- package/dist/stringify.js +15 -8
- package/dist/tags/core.js +27 -10
- package/dist/tags/failsafe/map.js +5 -1
- package/dist/tags/failsafe/seq.js +1 -1
- package/dist/tags/index.js +13 -1
- package/dist/tags/json.js +2 -9
- package/dist/tags/yaml-1.1/index.js +6 -6
- package/dist/tags/yaml-1.1/pairs.js +1 -1
- package/dist/tags/yaml-1.1/set.js +1 -1
- package/package.json +33 -16
- package/types.mjs +20 -0
- package/util.mjs +24 -0
|
@@ -1,42 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
import { Char, Type } from '../constants';
|
|
5
|
+
import { YAMLSyntaxError } from '../errors';
|
|
6
|
+
import Alias from './Alias';
|
|
7
|
+
import BlockValue from './BlockValue';
|
|
8
|
+
import Collection from './Collection';
|
|
9
|
+
import CollectionItem from './CollectionItem';
|
|
10
|
+
import FlowCollection from './FlowCollection';
|
|
11
|
+
import Node from './Node';
|
|
12
|
+
import PlainValue from './PlainValue';
|
|
13
|
+
import QuoteDouble from './QuoteDouble';
|
|
14
|
+
import QuoteSingle from './QuoteSingle';
|
|
15
|
+
import Range from './Range';
|
|
16
|
+
|
|
17
|
+
function createNewNode(type, props) {
|
|
18
|
+
switch (type) {
|
|
19
|
+
case Type.ALIAS:
|
|
20
|
+
return new Alias(type, props);
|
|
21
|
+
|
|
22
|
+
case Type.BLOCK_FOLDED:
|
|
23
|
+
case Type.BLOCK_LITERAL:
|
|
24
|
+
return new BlockValue(type, props);
|
|
25
|
+
|
|
26
|
+
case Type.FLOW_MAP:
|
|
27
|
+
case Type.FLOW_SEQ:
|
|
28
|
+
return new FlowCollection(type, props);
|
|
29
|
+
|
|
30
|
+
case Type.MAP_KEY:
|
|
31
|
+
case Type.MAP_VALUE:
|
|
32
|
+
case Type.SEQ_ITEM:
|
|
33
|
+
return new CollectionItem(type, props);
|
|
34
|
+
|
|
35
|
+
case Type.COMMENT:
|
|
36
|
+
case Type.PLAIN:
|
|
37
|
+
return new PlainValue(type, props);
|
|
38
|
+
|
|
39
|
+
case Type.QUOTE_DOUBLE:
|
|
40
|
+
return new QuoteDouble(type, props);
|
|
41
|
+
|
|
42
|
+
case Type.QUOTE_SINGLE:
|
|
43
|
+
return new QuoteSingle(type, props);
|
|
44
|
+
|
|
45
|
+
/* istanbul ignore next */
|
|
46
|
+
|
|
47
|
+
default:
|
|
48
|
+
return null;
|
|
49
|
+
// should never happen
|
|
50
|
+
}
|
|
51
|
+
}
|
|
40
52
|
/**
|
|
41
53
|
* @param {boolean} atLineStart - Node starts at beginning of line
|
|
42
54
|
* @param {boolean} inFlow - true if currently in a flow context
|
|
@@ -46,45 +58,45 @@ var _Range = _interopRequireDefault(require("./Range"));
|
|
|
46
58
|
* @param {Node} parent - The parent of the node
|
|
47
59
|
* @param {string} src - Source of the YAML document
|
|
48
60
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
function () {
|
|
52
|
-
(
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
var ParseContext = /*#__PURE__*/function () {
|
|
64
|
+
_createClass(ParseContext, null, [{
|
|
53
65
|
key: "parseType",
|
|
54
66
|
value: function parseType(src, offset, inFlow) {
|
|
55
67
|
switch (src[offset]) {
|
|
56
68
|
case '*':
|
|
57
|
-
return
|
|
69
|
+
return Type.ALIAS;
|
|
58
70
|
|
|
59
71
|
case '>':
|
|
60
|
-
return
|
|
72
|
+
return Type.BLOCK_FOLDED;
|
|
61
73
|
|
|
62
74
|
case '|':
|
|
63
|
-
return
|
|
75
|
+
return Type.BLOCK_LITERAL;
|
|
64
76
|
|
|
65
77
|
case '{':
|
|
66
|
-
return
|
|
78
|
+
return Type.FLOW_MAP;
|
|
67
79
|
|
|
68
80
|
case '[':
|
|
69
|
-
return
|
|
81
|
+
return Type.FLOW_SEQ;
|
|
70
82
|
|
|
71
83
|
case '?':
|
|
72
|
-
return !inFlow &&
|
|
84
|
+
return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_KEY : Type.PLAIN;
|
|
73
85
|
|
|
74
86
|
case ':':
|
|
75
|
-
return !inFlow &&
|
|
87
|
+
return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_VALUE : Type.PLAIN;
|
|
76
88
|
|
|
77
89
|
case '-':
|
|
78
|
-
return !inFlow &&
|
|
90
|
+
return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.SEQ_ITEM : Type.PLAIN;
|
|
79
91
|
|
|
80
92
|
case '"':
|
|
81
|
-
return
|
|
93
|
+
return Type.QUOTE_DOUBLE;
|
|
82
94
|
|
|
83
95
|
case "'":
|
|
84
|
-
return
|
|
96
|
+
return Type.QUOTE_SINGLE;
|
|
85
97
|
|
|
86
98
|
default:
|
|
87
|
-
return
|
|
99
|
+
return Type.PLAIN;
|
|
88
100
|
}
|
|
89
101
|
}
|
|
90
102
|
}]);
|
|
@@ -102,9 +114,10 @@ function () {
|
|
|
102
114
|
lineStart = _ref.lineStart,
|
|
103
115
|
parent = _ref.parent;
|
|
104
116
|
|
|
105
|
-
(
|
|
106
|
-
|
|
107
|
-
|
|
117
|
+
_classCallCheck(this, ParseContext);
|
|
118
|
+
|
|
119
|
+
_defineProperty(this, "parseNode", function (overlay, start) {
|
|
120
|
+
if (Node.atDocumentBoundary(_this.src, start)) return null;
|
|
108
121
|
var context = new ParseContext(_this, overlay);
|
|
109
122
|
|
|
110
123
|
var _context$parseProps = context.parseProps(start),
|
|
@@ -112,52 +125,14 @@ function () {
|
|
|
112
125
|
type = _context$parseProps.type,
|
|
113
126
|
valueStart = _context$parseProps.valueStart;
|
|
114
127
|
|
|
115
|
-
var node;
|
|
116
|
-
|
|
117
|
-
switch (type) {
|
|
118
|
-
case _constants.Type.ALIAS:
|
|
119
|
-
node = new _Alias.default(type, props);
|
|
120
|
-
break;
|
|
121
|
-
|
|
122
|
-
case _constants.Type.BLOCK_FOLDED:
|
|
123
|
-
case _constants.Type.BLOCK_LITERAL:
|
|
124
|
-
node = new _BlockValue.default(type, props);
|
|
125
|
-
break;
|
|
126
|
-
|
|
127
|
-
case _constants.Type.FLOW_MAP:
|
|
128
|
-
case _constants.Type.FLOW_SEQ:
|
|
129
|
-
node = new _FlowCollection.default(type, props);
|
|
130
|
-
break;
|
|
131
|
-
|
|
132
|
-
case _constants.Type.MAP_KEY:
|
|
133
|
-
case _constants.Type.MAP_VALUE:
|
|
134
|
-
case _constants.Type.SEQ_ITEM:
|
|
135
|
-
node = new _CollectionItem.default(type, props);
|
|
136
|
-
break;
|
|
137
|
-
|
|
138
|
-
case _constants.Type.COMMENT:
|
|
139
|
-
case _constants.Type.PLAIN:
|
|
140
|
-
node = new _PlainValue.default(type, props);
|
|
141
|
-
break;
|
|
142
|
-
|
|
143
|
-
case _constants.Type.QUOTE_DOUBLE:
|
|
144
|
-
node = new _QuoteDouble.default(type, props);
|
|
145
|
-
break;
|
|
146
|
-
|
|
147
|
-
case _constants.Type.QUOTE_SINGLE:
|
|
148
|
-
node = new _QuoteSingle.default(type, props);
|
|
149
|
-
break;
|
|
150
|
-
|
|
151
|
-
default:
|
|
152
|
-
node.error = new _errors.YAMLSyntaxError(node, "Unknown node type: ".concat(JSON.stringify(type)));
|
|
153
|
-
node.range = new _Range.default(start, start + 1);
|
|
154
|
-
return node;
|
|
155
|
-
}
|
|
156
|
-
|
|
128
|
+
var node = createNewNode(type, props);
|
|
157
129
|
var offset = node.parse(context, valueStart);
|
|
158
|
-
node.range = new
|
|
130
|
+
node.range = new Range(start, offset);
|
|
131
|
+
/* istanbul ignore if */
|
|
159
132
|
|
|
160
133
|
if (offset <= start) {
|
|
134
|
+
// This should never happen, but if it does, let's make sure to at least
|
|
135
|
+
// step one character forward to avoid a busy loop.
|
|
161
136
|
node.error = new Error("Node#parse consumed no characters");
|
|
162
137
|
node.error.parseEnd = offset;
|
|
163
138
|
node.error.source = node;
|
|
@@ -165,18 +140,19 @@ function () {
|
|
|
165
140
|
}
|
|
166
141
|
|
|
167
142
|
if (context.nodeStartsCollection(node)) {
|
|
168
|
-
if (!node.error && !context.atLineStart && context.parent.type ===
|
|
169
|
-
node.error = new
|
|
143
|
+
if (!node.error && !context.atLineStart && context.parent.type === Type.DOCUMENT) {
|
|
144
|
+
node.error = new YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');
|
|
170
145
|
}
|
|
171
146
|
|
|
172
|
-
var collection = new
|
|
147
|
+
var collection = new Collection(node);
|
|
173
148
|
offset = collection.parse(new ParseContext(context), offset);
|
|
174
|
-
collection.range = new
|
|
149
|
+
collection.range = new Range(start, offset);
|
|
175
150
|
return collection;
|
|
176
151
|
}
|
|
177
152
|
|
|
178
153
|
return node;
|
|
179
154
|
});
|
|
155
|
+
|
|
180
156
|
this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;
|
|
181
157
|
this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;
|
|
182
158
|
this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;
|
|
@@ -185,21 +161,20 @@ function () {
|
|
|
185
161
|
this.parent = parent != null ? parent : orig.parent || {};
|
|
186
162
|
this.root = orig.root;
|
|
187
163
|
this.src = orig.src;
|
|
188
|
-
}
|
|
189
|
-
|
|
164
|
+
}
|
|
190
165
|
|
|
191
|
-
(
|
|
166
|
+
_createClass(ParseContext, [{
|
|
192
167
|
key: "nodeStartsCollection",
|
|
193
168
|
value: function nodeStartsCollection(node) {
|
|
194
169
|
var inCollection = this.inCollection,
|
|
195
170
|
inFlow = this.inFlow,
|
|
196
171
|
src = this.src;
|
|
197
172
|
if (inCollection || inFlow) return false;
|
|
198
|
-
if (node instanceof
|
|
173
|
+
if (node instanceof CollectionItem) return true; // check for implicit key
|
|
199
174
|
|
|
200
175
|
var offset = node.range.end;
|
|
201
176
|
if (src[offset] === '\n' || src[offset - 1] === '\n') return false;
|
|
202
|
-
offset =
|
|
177
|
+
offset = Node.endOfWhiteSpace(src, offset);
|
|
203
178
|
return src[offset] === ':';
|
|
204
179
|
} // Anchor and tag are before type, which determines the node implementation
|
|
205
180
|
// class; hence this intermediate step.
|
|
@@ -212,48 +187,45 @@ function () {
|
|
|
212
187
|
src = this.src;
|
|
213
188
|
var props = [];
|
|
214
189
|
var lineHasProps = false;
|
|
215
|
-
offset =
|
|
190
|
+
offset = Node.endOfWhiteSpace(src, offset);
|
|
216
191
|
var ch = src[offset];
|
|
217
192
|
|
|
218
|
-
while (ch ===
|
|
193
|
+
while (ch === Char.ANCHOR || ch === Char.COMMENT || ch === Char.TAG || ch === '\n') {
|
|
219
194
|
if (ch === '\n') {
|
|
220
195
|
var lineStart = offset + 1;
|
|
221
|
-
|
|
222
|
-
var inEnd = _Node.default.endOfIndent(src, lineStart);
|
|
223
|
-
|
|
196
|
+
var inEnd = Node.endOfIndent(src, lineStart);
|
|
224
197
|
var indentDiff = inEnd - (lineStart + this.indent);
|
|
225
|
-
var noIndicatorAsIndent = parent.type ===
|
|
226
|
-
if (!
|
|
198
|
+
var noIndicatorAsIndent = parent.type === Type.SEQ_ITEM && parent.context.atLineStart;
|
|
199
|
+
if (!Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;
|
|
227
200
|
this.atLineStart = true;
|
|
228
201
|
this.lineStart = lineStart;
|
|
229
202
|
lineHasProps = false;
|
|
230
203
|
offset = inEnd;
|
|
231
|
-
} else if (ch ===
|
|
232
|
-
var end =
|
|
233
|
-
|
|
234
|
-
props.push(new _Range.default(offset, end));
|
|
204
|
+
} else if (ch === Char.COMMENT) {
|
|
205
|
+
var end = Node.endOfLine(src, offset + 1);
|
|
206
|
+
props.push(new Range(offset, end));
|
|
235
207
|
offset = end;
|
|
236
208
|
} else {
|
|
237
|
-
var _end =
|
|
209
|
+
var _end = Node.endOfIdentifier(src, offset + 1);
|
|
238
210
|
|
|
239
|
-
if (ch ===
|
|
211
|
+
if (ch === Char.TAG && src[_end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, _end + 13))) {
|
|
240
212
|
// Let's presume we're dealing with a YAML 1.0 domain tag here, rather
|
|
241
213
|
// than an empty but 'foo.bar' private-tagged node in a flow collection
|
|
242
214
|
// followed without whitespace by a plain string starting with a year
|
|
243
215
|
// or date divided by something.
|
|
244
|
-
_end =
|
|
216
|
+
_end = Node.endOfIdentifier(src, _end + 5);
|
|
245
217
|
}
|
|
246
218
|
|
|
247
|
-
props.push(new
|
|
219
|
+
props.push(new Range(offset, _end));
|
|
248
220
|
lineHasProps = true;
|
|
249
|
-
offset =
|
|
221
|
+
offset = Node.endOfWhiteSpace(src, _end);
|
|
250
222
|
}
|
|
251
223
|
|
|
252
224
|
ch = src[offset];
|
|
253
225
|
} // '- &a : b' has an anchor on an empty node
|
|
254
226
|
|
|
255
227
|
|
|
256
|
-
if (lineHasProps && ch === ':' &&
|
|
228
|
+
if (lineHasProps && ch === ':' && Node.atBlank(src, offset + 1, true)) offset -= 1;
|
|
257
229
|
var type = ParseContext.parseType(src, offset, inFlow);
|
|
258
230
|
return {
|
|
259
231
|
props: props,
|
|
@@ -268,21 +240,9 @@ function () {
|
|
|
268
240
|
* @returns {?Node} - null if at a document boundary
|
|
269
241
|
*/
|
|
270
242
|
|
|
271
|
-
}, {
|
|
272
|
-
key: "pretty",
|
|
273
|
-
get: function get() {
|
|
274
|
-
var obj = {
|
|
275
|
-
start: "".concat(this.lineStart, " + ").concat(this.indent),
|
|
276
|
-
in: [],
|
|
277
|
-
parent: this.parent.type
|
|
278
|
-
};
|
|
279
|
-
if (!this.atLineStart) obj.start += ' + N';
|
|
280
|
-
if (this.inCollection) obj.in.push('collection');
|
|
281
|
-
if (this.inFlow) obj.in.push('flow');
|
|
282
|
-
return obj;
|
|
283
|
-
}
|
|
284
243
|
}]);
|
|
244
|
+
|
|
285
245
|
return ParseContext;
|
|
286
246
|
}();
|
|
287
247
|
|
|
288
|
-
|
|
248
|
+
export { ParseContext as default };
|
|
@@ -1,37 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
import Node from './Node';
|
|
7
|
+
import Range from './Range';
|
|
2
8
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
-
|
|
16
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
|
-
|
|
18
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
|
-
var _Node2 = _interopRequireDefault(require("./Node"));
|
|
21
|
-
|
|
22
|
-
var _Range = _interopRequireDefault(require("./Range"));
|
|
23
|
-
|
|
24
|
-
var PlainValue =
|
|
25
|
-
/*#__PURE__*/
|
|
26
|
-
function (_Node) {
|
|
27
|
-
(0, _inherits2.default)(PlainValue, _Node);
|
|
9
|
+
var PlainValue = /*#__PURE__*/function (_Node) {
|
|
10
|
+
_inherits(PlainValue, _Node);
|
|
28
11
|
|
|
29
12
|
function PlainValue() {
|
|
30
|
-
(
|
|
31
|
-
|
|
13
|
+
_classCallCheck(this, PlainValue);
|
|
14
|
+
|
|
15
|
+
return _possibleConstructorReturn(this, _getPrototypeOf(PlainValue).apply(this, arguments));
|
|
32
16
|
}
|
|
33
17
|
|
|
34
|
-
(
|
|
18
|
+
_createClass(PlainValue, [{
|
|
35
19
|
key: "parseBlockValue",
|
|
36
20
|
value: function parseBlockValue(start) {
|
|
37
21
|
var _this$context = this.context,
|
|
@@ -42,10 +26,8 @@ function (_Node) {
|
|
|
42
26
|
var valueEnd = start;
|
|
43
27
|
|
|
44
28
|
for (var ch = src[offset]; ch === '\n'; ch = src[offset]) {
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
var end = _Node2.default.endOfBlockIndent(src, indent, offset + 1);
|
|
48
|
-
|
|
29
|
+
if (Node.atDocumentBoundary(src, offset + 1)) break;
|
|
30
|
+
var end = Node.endOfBlockIndent(src, indent, offset + 1);
|
|
49
31
|
if (end === null || src[end] === '#') break;
|
|
50
32
|
|
|
51
33
|
if (src[end] === '\n') {
|
|
@@ -99,8 +81,8 @@ function (_Node) {
|
|
|
99
81
|
offset = PlainValue.endOfLine(src, start, inFlow);
|
|
100
82
|
}
|
|
101
83
|
|
|
102
|
-
this.valueRange = new
|
|
103
|
-
offset =
|
|
84
|
+
this.valueRange = new Range(start, offset);
|
|
85
|
+
offset = Node.endOfWhiteSpace(src, offset);
|
|
104
86
|
offset = this.parseComment(offset);
|
|
105
87
|
|
|
106
88
|
if (!this.hasComment || this.valueRange.isEmpty()) {
|
|
@@ -135,7 +117,7 @@ function (_Node) {
|
|
|
135
117
|
var _ch = src[i];
|
|
136
118
|
|
|
137
119
|
if (_ch === '\n') {
|
|
138
|
-
var _Node$foldNewline =
|
|
120
|
+
var _Node$foldNewline = Node.foldNewline(src, i, -1),
|
|
139
121
|
fold = _Node$foldNewline.fold,
|
|
140
122
|
offset = _Node$foldNewline.offset;
|
|
141
123
|
|
|
@@ -177,7 +159,8 @@ function (_Node) {
|
|
|
177
159
|
return offset;
|
|
178
160
|
}
|
|
179
161
|
}]);
|
|
162
|
+
|
|
180
163
|
return PlainValue;
|
|
181
|
-
}(
|
|
164
|
+
}(Node);
|
|
182
165
|
|
|
183
|
-
|
|
166
|
+
export { PlainValue as default };
|
|
@@ -1,39 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
-
|
|
16
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
|
-
|
|
18
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
|
-
var _errors = require("../errors");
|
|
21
|
-
|
|
22
|
-
var _Node2 = _interopRequireDefault(require("./Node"));
|
|
23
|
-
|
|
24
|
-
var _Range = _interopRequireDefault(require("./Range"));
|
|
25
|
-
|
|
26
|
-
var QuoteDouble =
|
|
27
|
-
/*#__PURE__*/
|
|
28
|
-
function (_Node) {
|
|
29
|
-
(0, _inherits2.default)(QuoteDouble, _Node);
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
import { YAMLSemanticError, YAMLSyntaxError } from '../errors';
|
|
7
|
+
import Node from './Node';
|
|
8
|
+
import Range from './Range';
|
|
9
|
+
|
|
10
|
+
var QuoteDouble = /*#__PURE__*/function (_Node) {
|
|
11
|
+
_inherits(QuoteDouble, _Node);
|
|
30
12
|
|
|
31
13
|
function QuoteDouble() {
|
|
32
|
-
(
|
|
33
|
-
|
|
14
|
+
_classCallCheck(this, QuoteDouble);
|
|
15
|
+
|
|
16
|
+
return _possibleConstructorReturn(this, _getPrototypeOf(QuoteDouble).apply(this, arguments));
|
|
34
17
|
}
|
|
35
18
|
|
|
36
|
-
(
|
|
19
|
+
_createClass(QuoteDouble, [{
|
|
37
20
|
key: "parseCharCode",
|
|
38
21
|
value: function parseCharCode(offset, length, errors) {
|
|
39
22
|
var src = this.context.src;
|
|
@@ -42,7 +25,7 @@ function (_Node) {
|
|
|
42
25
|
var code = ok ? parseInt(cc, 16) : NaN;
|
|
43
26
|
|
|
44
27
|
if (isNaN(code)) {
|
|
45
|
-
errors.push(new
|
|
28
|
+
errors.push(new YAMLSyntaxError(this, "Invalid escape sequence ".concat(src.substr(offset - 2, length + 2))));
|
|
46
29
|
return src.substr(offset - 2, length + 2);
|
|
47
30
|
}
|
|
48
31
|
|
|
@@ -62,8 +45,8 @@ function (_Node) {
|
|
|
62
45
|
this.context = context;
|
|
63
46
|
var src = context.src;
|
|
64
47
|
var offset = QuoteDouble.endOfQuote(src, start + 1);
|
|
65
|
-
this.valueRange = new
|
|
66
|
-
offset =
|
|
48
|
+
this.valueRange = new Range(start, offset);
|
|
49
|
+
offset = Node.endOfWhiteSpace(src, offset);
|
|
67
50
|
offset = this.parseComment(offset);
|
|
68
51
|
return offset;
|
|
69
52
|
}
|
|
@@ -82,7 +65,7 @@ function (_Node) {
|
|
|
82
65
|
var _this$context = this.context,
|
|
83
66
|
indent = _this$context.indent,
|
|
84
67
|
src = _this$context.src;
|
|
85
|
-
if (src[end - 1] !== '"') errors.push(new
|
|
68
|
+
if (src[end - 1] !== '"') errors.push(new YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by
|
|
86
69
|
// escaped backslashes; also, this should be faster.
|
|
87
70
|
|
|
88
71
|
var str = '';
|
|
@@ -91,16 +74,16 @@ function (_Node) {
|
|
|
91
74
|
var ch = src[i];
|
|
92
75
|
|
|
93
76
|
if (ch === '\n') {
|
|
94
|
-
if (
|
|
77
|
+
if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
|
|
95
78
|
|
|
96
|
-
var _Node$foldNewline =
|
|
79
|
+
var _Node$foldNewline = Node.foldNewline(src, i, indent),
|
|
97
80
|
fold = _Node$foldNewline.fold,
|
|
98
81
|
offset = _Node$foldNewline.offset,
|
|
99
82
|
error = _Node$foldNewline.error;
|
|
100
83
|
|
|
101
84
|
str += fold;
|
|
102
85
|
i = offset;
|
|
103
|
-
if (error) errors.push(new
|
|
86
|
+
if (error) errors.push(new YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));
|
|
104
87
|
} else if (ch === '\\') {
|
|
105
88
|
i += 1;
|
|
106
89
|
|
|
@@ -214,7 +197,7 @@ function (_Node) {
|
|
|
214
197
|
break;
|
|
215
198
|
|
|
216
199
|
default:
|
|
217
|
-
errors.push(new
|
|
200
|
+
errors.push(new YAMLSyntaxError(this, "Invalid escape sequence ".concat(src.substr(i - 1, 2))));
|
|
218
201
|
str += '\\' + src[i];
|
|
219
202
|
}
|
|
220
203
|
} else if (ch === ' ' || ch === '\t') {
|
|
@@ -251,7 +234,8 @@ function (_Node) {
|
|
|
251
234
|
return offset + 1;
|
|
252
235
|
}
|
|
253
236
|
}]);
|
|
237
|
+
|
|
254
238
|
return QuoteDouble;
|
|
255
|
-
}(
|
|
239
|
+
}(Node);
|
|
256
240
|
|
|
257
|
-
|
|
241
|
+
export { QuoteDouble as default };
|