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
package/dist/cst/PlainValue.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.PlainValue = void 0;
|
|
4
|
-
|
|
5
|
-
var _Node = require("./Node");
|
|
6
|
-
|
|
7
|
-
var _Range = require("./Range");
|
|
8
|
-
|
|
9
|
-
class PlainValue extends _Node.Node {
|
|
10
|
-
static endOfLine(src, start, inFlow) {
|
|
11
|
-
let ch = src[start];
|
|
12
|
-
let offset = start;
|
|
13
|
-
|
|
14
|
-
while (ch && ch !== '\n') {
|
|
15
|
-
if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;
|
|
16
|
-
const next = src[offset + 1];
|
|
17
|
-
if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break;
|
|
18
|
-
if ((ch === ' ' || ch === '\t') && next === '#') break;
|
|
19
|
-
offset += 1;
|
|
20
|
-
ch = next;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return offset;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
get strValue() {
|
|
27
|
-
if (!this.valueRange || !this.context) return null;
|
|
28
|
-
let {
|
|
29
|
-
start,
|
|
30
|
-
end
|
|
31
|
-
} = this.valueRange;
|
|
32
|
-
const {
|
|
33
|
-
src
|
|
34
|
-
} = this.context;
|
|
35
|
-
let ch = src[end - 1];
|
|
36
|
-
|
|
37
|
-
while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) ch = src[--end - 1];
|
|
38
|
-
|
|
39
|
-
ch = src[start];
|
|
40
|
-
|
|
41
|
-
while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) ch = src[++start];
|
|
42
|
-
|
|
43
|
-
let str = '';
|
|
44
|
-
|
|
45
|
-
for (let i = start; i < end; ++i) {
|
|
46
|
-
const ch = src[i];
|
|
47
|
-
|
|
48
|
-
if (ch === '\n') {
|
|
49
|
-
const {
|
|
50
|
-
fold,
|
|
51
|
-
offset
|
|
52
|
-
} = _Node.Node.foldNewline(src, i, -1);
|
|
53
|
-
|
|
54
|
-
str += fold;
|
|
55
|
-
i = offset;
|
|
56
|
-
} else if (ch === ' ' || ch === '\t') {
|
|
57
|
-
// trim trailing whitespace
|
|
58
|
-
const wsStart = i;
|
|
59
|
-
let next = src[i + 1];
|
|
60
|
-
|
|
61
|
-
while (i < end && (next === ' ' || next === '\t')) {
|
|
62
|
-
i += 1;
|
|
63
|
-
next = src[i + 1];
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
|
|
67
|
-
} else {
|
|
68
|
-
str += ch;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return str;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
parseBlockValue(start) {
|
|
76
|
-
const {
|
|
77
|
-
indent,
|
|
78
|
-
inFlow,
|
|
79
|
-
src
|
|
80
|
-
} = this.context;
|
|
81
|
-
let offset = start;
|
|
82
|
-
let valueEnd = start;
|
|
83
|
-
|
|
84
|
-
for (let ch = src[offset]; ch === '\n'; ch = src[offset]) {
|
|
85
|
-
if (_Node.Node.atDocumentBoundary(src, offset + 1)) break;
|
|
86
|
-
|
|
87
|
-
const end = _Node.Node.endOfBlockIndent(src, indent, offset + 1);
|
|
88
|
-
|
|
89
|
-
if (end === null || src[end] === '#') break;
|
|
90
|
-
|
|
91
|
-
if (src[end] === '\n') {
|
|
92
|
-
offset = end;
|
|
93
|
-
} else {
|
|
94
|
-
valueEnd = PlainValue.endOfLine(src, end, inFlow);
|
|
95
|
-
offset = valueEnd;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (this.valueRange.isEmpty()) this.valueRange.start = start;
|
|
100
|
-
this.valueRange.end = valueEnd;
|
|
101
|
-
return valueEnd;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Parses a plain value from the source
|
|
105
|
-
*
|
|
106
|
-
* Accepted forms are:
|
|
107
|
-
* ```
|
|
108
|
-
* #comment
|
|
109
|
-
*
|
|
110
|
-
* first line
|
|
111
|
-
*
|
|
112
|
-
* first line #comment
|
|
113
|
-
*
|
|
114
|
-
* first line
|
|
115
|
-
* block
|
|
116
|
-
* lines
|
|
117
|
-
*
|
|
118
|
-
* #comment
|
|
119
|
-
* block
|
|
120
|
-
* lines
|
|
121
|
-
* ```
|
|
122
|
-
* where block lines are empty or have an indent level greater than `indent`.
|
|
123
|
-
*
|
|
124
|
-
* @param {ParseContext} context
|
|
125
|
-
* @param {number} start - Index of first character
|
|
126
|
-
* @returns {number} - Index of the character after this scalar, may be `\n`
|
|
127
|
-
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
parse(context, start) {
|
|
131
|
-
this.context = context;
|
|
132
|
-
const {
|
|
133
|
-
inFlow,
|
|
134
|
-
src
|
|
135
|
-
} = context;
|
|
136
|
-
let offset = start;
|
|
137
|
-
const ch = src[offset];
|
|
138
|
-
|
|
139
|
-
if (ch && ch !== '#' && ch !== '\n') {
|
|
140
|
-
offset = PlainValue.endOfLine(src, start, inFlow);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
this.valueRange = new _Range.Range(start, offset);
|
|
144
|
-
offset = _Node.Node.endOfWhiteSpace(src, offset);
|
|
145
|
-
offset = this.parseComment(offset);
|
|
146
|
-
|
|
147
|
-
if (!this.hasComment || this.valueRange.isEmpty()) {
|
|
148
|
-
offset = this.parseBlockValue(offset);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return offset;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
exports.PlainValue = PlainValue;
|
package/dist/cst/QuoteDouble.js
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.QuoteDouble = void 0;
|
|
4
|
-
|
|
5
|
-
var _errors = require("../errors");
|
|
6
|
-
|
|
7
|
-
var _Node = require("./Node");
|
|
8
|
-
|
|
9
|
-
var _Range = require("./Range");
|
|
10
|
-
|
|
11
|
-
class QuoteDouble extends _Node.Node {
|
|
12
|
-
static endOfQuote(src, offset) {
|
|
13
|
-
let ch = src[offset];
|
|
14
|
-
|
|
15
|
-
while (ch && ch !== '"') {
|
|
16
|
-
offset += ch === '\\' ? 2 : 1;
|
|
17
|
-
ch = src[offset];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return offset + 1;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* @returns {string | { str: string, errors: YAMLSyntaxError[] }}
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
get strValue() {
|
|
28
|
-
if (!this.valueRange || !this.context) return null;
|
|
29
|
-
const errors = [];
|
|
30
|
-
const {
|
|
31
|
-
start,
|
|
32
|
-
end
|
|
33
|
-
} = this.valueRange;
|
|
34
|
-
const {
|
|
35
|
-
indent,
|
|
36
|
-
src
|
|
37
|
-
} = this.context;
|
|
38
|
-
if (src[end - 1] !== '"') errors.push(new _errors.YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by
|
|
39
|
-
// escaped backslashes; also, this should be faster.
|
|
40
|
-
|
|
41
|
-
let str = '';
|
|
42
|
-
|
|
43
|
-
for (let i = start + 1; i < end - 1; ++i) {
|
|
44
|
-
const ch = src[i];
|
|
45
|
-
|
|
46
|
-
if (ch === '\n') {
|
|
47
|
-
if (_Node.Node.atDocumentBoundary(src, i + 1)) errors.push(new _errors.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
|
|
48
|
-
|
|
49
|
-
const {
|
|
50
|
-
fold,
|
|
51
|
-
offset,
|
|
52
|
-
error
|
|
53
|
-
} = _Node.Node.foldNewline(src, i, indent);
|
|
54
|
-
|
|
55
|
-
str += fold;
|
|
56
|
-
i = offset;
|
|
57
|
-
if (error) errors.push(new _errors.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));
|
|
58
|
-
} else if (ch === '\\') {
|
|
59
|
-
i += 1;
|
|
60
|
-
|
|
61
|
-
switch (src[i]) {
|
|
62
|
-
case '0':
|
|
63
|
-
str += '\0';
|
|
64
|
-
break;
|
|
65
|
-
// null character
|
|
66
|
-
|
|
67
|
-
case 'a':
|
|
68
|
-
str += '\x07';
|
|
69
|
-
break;
|
|
70
|
-
// bell character
|
|
71
|
-
|
|
72
|
-
case 'b':
|
|
73
|
-
str += '\b';
|
|
74
|
-
break;
|
|
75
|
-
// backspace
|
|
76
|
-
|
|
77
|
-
case 'e':
|
|
78
|
-
str += '\x1b';
|
|
79
|
-
break;
|
|
80
|
-
// escape character
|
|
81
|
-
|
|
82
|
-
case 'f':
|
|
83
|
-
str += '\f';
|
|
84
|
-
break;
|
|
85
|
-
// form feed
|
|
86
|
-
|
|
87
|
-
case 'n':
|
|
88
|
-
str += '\n';
|
|
89
|
-
break;
|
|
90
|
-
// line feed
|
|
91
|
-
|
|
92
|
-
case 'r':
|
|
93
|
-
str += '\r';
|
|
94
|
-
break;
|
|
95
|
-
// carriage return
|
|
96
|
-
|
|
97
|
-
case 't':
|
|
98
|
-
str += '\t';
|
|
99
|
-
break;
|
|
100
|
-
// horizontal tab
|
|
101
|
-
|
|
102
|
-
case 'v':
|
|
103
|
-
str += '\v';
|
|
104
|
-
break;
|
|
105
|
-
// vertical tab
|
|
106
|
-
|
|
107
|
-
case 'N':
|
|
108
|
-
str += '\u0085';
|
|
109
|
-
break;
|
|
110
|
-
// Unicode next line
|
|
111
|
-
|
|
112
|
-
case '_':
|
|
113
|
-
str += '\u00a0';
|
|
114
|
-
break;
|
|
115
|
-
// Unicode non-breaking space
|
|
116
|
-
|
|
117
|
-
case 'L':
|
|
118
|
-
str += '\u2028';
|
|
119
|
-
break;
|
|
120
|
-
// Unicode line separator
|
|
121
|
-
|
|
122
|
-
case 'P':
|
|
123
|
-
str += '\u2029';
|
|
124
|
-
break;
|
|
125
|
-
// Unicode paragraph separator
|
|
126
|
-
|
|
127
|
-
case ' ':
|
|
128
|
-
str += ' ';
|
|
129
|
-
break;
|
|
130
|
-
|
|
131
|
-
case '"':
|
|
132
|
-
str += '"';
|
|
133
|
-
break;
|
|
134
|
-
|
|
135
|
-
case '/':
|
|
136
|
-
str += '/';
|
|
137
|
-
break;
|
|
138
|
-
|
|
139
|
-
case '\\':
|
|
140
|
-
str += '\\';
|
|
141
|
-
break;
|
|
142
|
-
|
|
143
|
-
case '\t':
|
|
144
|
-
str += '\t';
|
|
145
|
-
break;
|
|
146
|
-
|
|
147
|
-
case 'x':
|
|
148
|
-
str += this.parseCharCode(i + 1, 2, errors);
|
|
149
|
-
i += 2;
|
|
150
|
-
break;
|
|
151
|
-
|
|
152
|
-
case 'u':
|
|
153
|
-
str += this.parseCharCode(i + 1, 4, errors);
|
|
154
|
-
i += 4;
|
|
155
|
-
break;
|
|
156
|
-
|
|
157
|
-
case 'U':
|
|
158
|
-
str += this.parseCharCode(i + 1, 8, errors);
|
|
159
|
-
i += 8;
|
|
160
|
-
break;
|
|
161
|
-
|
|
162
|
-
case '\n':
|
|
163
|
-
// skip escaped newlines, but still trim the following line
|
|
164
|
-
while (src[i + 1] === ' ' || src[i + 1] === '\t') i += 1;
|
|
165
|
-
|
|
166
|
-
break;
|
|
167
|
-
|
|
168
|
-
default:
|
|
169
|
-
errors.push(new _errors.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));
|
|
170
|
-
str += '\\' + src[i];
|
|
171
|
-
}
|
|
172
|
-
} else if (ch === ' ' || ch === '\t') {
|
|
173
|
-
// trim trailing whitespace
|
|
174
|
-
const wsStart = i;
|
|
175
|
-
let next = src[i + 1];
|
|
176
|
-
|
|
177
|
-
while (next === ' ' || next === '\t') {
|
|
178
|
-
i += 1;
|
|
179
|
-
next = src[i + 1];
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
|
|
183
|
-
} else {
|
|
184
|
-
str += ch;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return errors.length > 0 ? {
|
|
189
|
-
errors,
|
|
190
|
-
str
|
|
191
|
-
} : str;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
parseCharCode(offset, length, errors) {
|
|
195
|
-
const {
|
|
196
|
-
src
|
|
197
|
-
} = this.context;
|
|
198
|
-
const cc = src.substr(offset, length);
|
|
199
|
-
const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
|
|
200
|
-
const code = ok ? parseInt(cc, 16) : NaN;
|
|
201
|
-
|
|
202
|
-
if (isNaN(code)) {
|
|
203
|
-
errors.push(new _errors.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));
|
|
204
|
-
return src.substr(offset - 2, length + 2);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
return String.fromCodePoint(code);
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Parses a "double quoted" value from the source
|
|
211
|
-
*
|
|
212
|
-
* @param {ParseContext} context
|
|
213
|
-
* @param {number} start - Index of first character
|
|
214
|
-
* @returns {number} - Index of the character after this scalar
|
|
215
|
-
*/
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
parse(context, start) {
|
|
219
|
-
this.context = context;
|
|
220
|
-
const {
|
|
221
|
-
src
|
|
222
|
-
} = context;
|
|
223
|
-
let offset = QuoteDouble.endOfQuote(src, start + 1);
|
|
224
|
-
this.valueRange = new _Range.Range(start, offset);
|
|
225
|
-
offset = _Node.Node.endOfWhiteSpace(src, offset);
|
|
226
|
-
offset = this.parseComment(offset);
|
|
227
|
-
return offset;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
exports.QuoteDouble = QuoteDouble;
|
package/dist/cst/QuoteSingle.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.QuoteSingle = void 0;
|
|
4
|
-
|
|
5
|
-
var _errors = require("../errors");
|
|
6
|
-
|
|
7
|
-
var _Node = require("./Node");
|
|
8
|
-
|
|
9
|
-
var _Range = require("./Range");
|
|
10
|
-
|
|
11
|
-
class QuoteSingle extends _Node.Node {
|
|
12
|
-
static endOfQuote(src, offset) {
|
|
13
|
-
let ch = src[offset];
|
|
14
|
-
|
|
15
|
-
while (ch) {
|
|
16
|
-
if (ch === "'") {
|
|
17
|
-
if (src[offset + 1] !== "'") break;
|
|
18
|
-
ch = src[offset += 2];
|
|
19
|
-
} else {
|
|
20
|
-
ch = src[offset += 1];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return offset + 1;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @returns {string | { str: string, errors: YAMLSyntaxError[] }}
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
get strValue() {
|
|
32
|
-
if (!this.valueRange || !this.context) return null;
|
|
33
|
-
const errors = [];
|
|
34
|
-
const {
|
|
35
|
-
start,
|
|
36
|
-
end
|
|
37
|
-
} = this.valueRange;
|
|
38
|
-
const {
|
|
39
|
-
indent,
|
|
40
|
-
src
|
|
41
|
-
} = this.context;
|
|
42
|
-
if (src[end - 1] !== "'") errors.push(new _errors.YAMLSyntaxError(this, "Missing closing 'quote"));
|
|
43
|
-
let str = '';
|
|
44
|
-
|
|
45
|
-
for (let i = start + 1; i < end - 1; ++i) {
|
|
46
|
-
const ch = src[i];
|
|
47
|
-
|
|
48
|
-
if (ch === '\n') {
|
|
49
|
-
if (_Node.Node.atDocumentBoundary(src, i + 1)) errors.push(new _errors.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
|
|
50
|
-
|
|
51
|
-
const {
|
|
52
|
-
fold,
|
|
53
|
-
offset,
|
|
54
|
-
error
|
|
55
|
-
} = _Node.Node.foldNewline(src, i, indent);
|
|
56
|
-
|
|
57
|
-
str += fold;
|
|
58
|
-
i = offset;
|
|
59
|
-
if (error) errors.push(new _errors.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));
|
|
60
|
-
} else if (ch === "'") {
|
|
61
|
-
str += ch;
|
|
62
|
-
i += 1;
|
|
63
|
-
if (src[i] !== "'") errors.push(new _errors.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));
|
|
64
|
-
} else if (ch === ' ' || ch === '\t') {
|
|
65
|
-
// trim trailing whitespace
|
|
66
|
-
const wsStart = i;
|
|
67
|
-
let next = src[i + 1];
|
|
68
|
-
|
|
69
|
-
while (next === ' ' || next === '\t') {
|
|
70
|
-
i += 1;
|
|
71
|
-
next = src[i + 1];
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
|
|
75
|
-
} else {
|
|
76
|
-
str += ch;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return errors.length > 0 ? {
|
|
81
|
-
errors,
|
|
82
|
-
str
|
|
83
|
-
} : str;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Parses a 'single quoted' value from the source
|
|
87
|
-
*
|
|
88
|
-
* @param {ParseContext} context
|
|
89
|
-
* @param {number} start - Index of first character
|
|
90
|
-
* @returns {number} - Index of the character after this scalar
|
|
91
|
-
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
parse(context, start) {
|
|
95
|
-
this.context = context;
|
|
96
|
-
const {
|
|
97
|
-
src
|
|
98
|
-
} = context;
|
|
99
|
-
let offset = QuoteSingle.endOfQuote(src, start + 1);
|
|
100
|
-
this.valueRange = new _Range.Range(start, offset);
|
|
101
|
-
offset = _Node.Node.endOfWhiteSpace(src, offset);
|
|
102
|
-
offset = this.parseComment(offset);
|
|
103
|
-
return offset;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
exports.QuoteSingle = QuoteSingle;
|
package/dist/cst/Range.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.Range = void 0;
|
|
4
|
-
|
|
5
|
-
class Range {
|
|
6
|
-
static copy(orig) {
|
|
7
|
-
return new Range(orig.start, orig.end);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
constructor(start, end) {
|
|
11
|
-
this.start = start;
|
|
12
|
-
this.end = end || start;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
isEmpty() {
|
|
16
|
-
return typeof this.start !== 'number' || !this.end || this.end <= this.start;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Set `origStart` and `origEnd` to point to the original source range for
|
|
20
|
-
* this node, which may differ due to dropped CR characters.
|
|
21
|
-
*
|
|
22
|
-
* @param {number[]} cr - Positions of dropped CR characters
|
|
23
|
-
* @param {number} offset - Starting index of `cr` from the last call
|
|
24
|
-
* @returns {number} - The next offset, matching the one found for `origStart`
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
setOrigRange(cr, offset) {
|
|
29
|
-
const {
|
|
30
|
-
start,
|
|
31
|
-
end
|
|
32
|
-
} = this;
|
|
33
|
-
|
|
34
|
-
if (cr.length === 0 || end <= cr[0]) {
|
|
35
|
-
this.origStart = start;
|
|
36
|
-
this.origEnd = end;
|
|
37
|
-
return offset;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
let i = offset;
|
|
41
|
-
|
|
42
|
-
while (i < cr.length) {
|
|
43
|
-
if (cr[i] > start) break;else ++i;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
this.origStart = start + i;
|
|
47
|
-
const nextOffset = i;
|
|
48
|
-
|
|
49
|
-
while (i < cr.length) {
|
|
50
|
-
// if end was at \n, it should now be at \r
|
|
51
|
-
if (cr[i] >= end) break;else ++i;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
this.origEnd = end + i;
|
|
55
|
-
return nextOffset;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
exports.Range = Range;
|
package/dist/cst/parse.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.parse = parse;
|
|
4
|
-
|
|
5
|
-
var _Document = require("./Document");
|
|
6
|
-
|
|
7
|
-
var _ParseContext = require("./ParseContext");
|
|
8
|
-
|
|
9
|
-
// Published as 'yaml/parse-cst'
|
|
10
|
-
function parse(src) {
|
|
11
|
-
const cr = [];
|
|
12
|
-
|
|
13
|
-
if (src.indexOf('\r') !== -1) {
|
|
14
|
-
src = src.replace(/\r\n?/g, (match, offset) => {
|
|
15
|
-
if (match.length > 1) cr.push(offset);
|
|
16
|
-
return '\n';
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const documents = [];
|
|
21
|
-
let offset = 0;
|
|
22
|
-
|
|
23
|
-
do {
|
|
24
|
-
const doc = new _Document.Document();
|
|
25
|
-
const context = new _ParseContext.ParseContext({
|
|
26
|
-
src
|
|
27
|
-
});
|
|
28
|
-
offset = doc.parse(context, offset);
|
|
29
|
-
documents.push(doc);
|
|
30
|
-
} while (offset < src.length);
|
|
31
|
-
|
|
32
|
-
documents.setOrigRanges = () => {
|
|
33
|
-
if (cr.length === 0) return false;
|
|
34
|
-
|
|
35
|
-
for (let i = 1; i < cr.length; ++i) cr[i] -= i;
|
|
36
|
-
|
|
37
|
-
let crOffset = 0;
|
|
38
|
-
|
|
39
|
-
for (let i = 0; i < documents.length; ++i) {
|
|
40
|
-
crOffset = documents[i].setOrigRanges(cr, crOffset);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
cr.splice(0, cr.length);
|
|
44
|
-
return true;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
documents.toString = () => documents.join('...\n');
|
|
48
|
-
|
|
49
|
-
return documents;
|
|
50
|
-
}
|