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,120 +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 { YAMLSemanticError, YAMLSyntaxError } from '../errors';
|
|
12
|
-
import { Node } from './Node';
|
|
13
|
-
import { Range } from './Range';
|
|
14
|
-
export var QuoteSingle = /*#__PURE__*/function (_Node) {
|
|
15
|
-
_inherits(QuoteSingle, _Node);
|
|
16
|
-
|
|
17
|
-
var _super = _createSuper(QuoteSingle);
|
|
18
|
-
|
|
19
|
-
function QuoteSingle() {
|
|
20
|
-
_classCallCheck(this, QuoteSingle);
|
|
21
|
-
|
|
22
|
-
return _super.apply(this, arguments);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
_createClass(QuoteSingle, [{
|
|
26
|
-
key: "parse",
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Parses a 'single quoted' value from the source
|
|
30
|
-
*
|
|
31
|
-
* @param {ParseContext} context
|
|
32
|
-
* @param {number} start - Index of first character
|
|
33
|
-
* @returns {number} - Index of the character after this scalar
|
|
34
|
-
*/
|
|
35
|
-
value: function parse(context, start) {
|
|
36
|
-
this.context = context;
|
|
37
|
-
var src = context.src;
|
|
38
|
-
var offset = QuoteSingle.endOfQuote(src, start + 1);
|
|
39
|
-
this.valueRange = new Range(start, offset);
|
|
40
|
-
offset = Node.endOfWhiteSpace(src, offset);
|
|
41
|
-
offset = this.parseComment(offset);
|
|
42
|
-
return offset;
|
|
43
|
-
}
|
|
44
|
-
}, {
|
|
45
|
-
key: "strValue",
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @returns {string | { str: string, errors: YAMLSyntaxError[] }}
|
|
49
|
-
*/
|
|
50
|
-
get: function get() {
|
|
51
|
-
if (!this.valueRange || !this.context) return null;
|
|
52
|
-
var errors = [];
|
|
53
|
-
var _this$valueRange = this.valueRange,
|
|
54
|
-
start = _this$valueRange.start,
|
|
55
|
-
end = _this$valueRange.end;
|
|
56
|
-
var _this$context = this.context,
|
|
57
|
-
indent = _this$context.indent,
|
|
58
|
-
src = _this$context.src;
|
|
59
|
-
if (src[end - 1] !== "'") errors.push(new YAMLSyntaxError(this, "Missing closing 'quote"));
|
|
60
|
-
var str = '';
|
|
61
|
-
|
|
62
|
-
for (var i = start + 1; i < end - 1; ++i) {
|
|
63
|
-
var ch = src[i];
|
|
64
|
-
|
|
65
|
-
if (ch === '\n') {
|
|
66
|
-
if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
|
|
67
|
-
|
|
68
|
-
var _Node$foldNewline = Node.foldNewline(src, i, indent),
|
|
69
|
-
fold = _Node$foldNewline.fold,
|
|
70
|
-
offset = _Node$foldNewline.offset,
|
|
71
|
-
error = _Node$foldNewline.error;
|
|
72
|
-
|
|
73
|
-
str += fold;
|
|
74
|
-
i = offset;
|
|
75
|
-
if (error) errors.push(new YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));
|
|
76
|
-
} else if (ch === "'") {
|
|
77
|
-
str += ch;
|
|
78
|
-
i += 1;
|
|
79
|
-
if (src[i] !== "'") errors.push(new YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));
|
|
80
|
-
} else if (ch === ' ' || ch === '\t') {
|
|
81
|
-
// trim trailing whitespace
|
|
82
|
-
var wsStart = i;
|
|
83
|
-
var next = src[i + 1];
|
|
84
|
-
|
|
85
|
-
while (next === ' ' || next === '\t') {
|
|
86
|
-
i += 1;
|
|
87
|
-
next = src[i + 1];
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
|
|
91
|
-
} else {
|
|
92
|
-
str += ch;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return errors.length > 0 ? {
|
|
97
|
-
errors: errors,
|
|
98
|
-
str: str
|
|
99
|
-
} : str;
|
|
100
|
-
}
|
|
101
|
-
}], [{
|
|
102
|
-
key: "endOfQuote",
|
|
103
|
-
value: function endOfQuote(src, offset) {
|
|
104
|
-
var ch = src[offset];
|
|
105
|
-
|
|
106
|
-
while (ch) {
|
|
107
|
-
if (ch === "'") {
|
|
108
|
-
if (src[offset + 1] !== "'") break;
|
|
109
|
-
ch = src[offset += 2];
|
|
110
|
-
} else {
|
|
111
|
-
ch = src[offset += 1];
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return offset + 1;
|
|
116
|
-
}
|
|
117
|
-
}]);
|
|
118
|
-
|
|
119
|
-
return QuoteSingle;
|
|
120
|
-
}(Node);
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
export var Range = /*#__PURE__*/function () {
|
|
4
|
-
_createClass(Range, null, [{
|
|
5
|
-
key: "copy",
|
|
6
|
-
value: function copy(orig) {
|
|
7
|
-
return new Range(orig.start, orig.end);
|
|
8
|
-
}
|
|
9
|
-
}]);
|
|
10
|
-
|
|
11
|
-
function Range(start, end) {
|
|
12
|
-
_classCallCheck(this, Range);
|
|
13
|
-
|
|
14
|
-
this.start = start;
|
|
15
|
-
this.end = end || start;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
_createClass(Range, [{
|
|
19
|
-
key: "isEmpty",
|
|
20
|
-
value: function isEmpty() {
|
|
21
|
-
return typeof this.start !== 'number' || !this.end || this.end <= this.start;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Set `origStart` and `origEnd` to point to the original source range for
|
|
25
|
-
* this node, which may differ due to dropped CR characters.
|
|
26
|
-
*
|
|
27
|
-
* @param {number[]} cr - Positions of dropped CR characters
|
|
28
|
-
* @param {number} offset - Starting index of `cr` from the last call
|
|
29
|
-
* @returns {number} - The next offset, matching the one found for `origStart`
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
}, {
|
|
33
|
-
key: "setOrigRange",
|
|
34
|
-
value: function setOrigRange(cr, offset) {
|
|
35
|
-
var start = this.start,
|
|
36
|
-
end = this.end;
|
|
37
|
-
|
|
38
|
-
if (cr.length === 0 || end <= cr[0]) {
|
|
39
|
-
this.origStart = start;
|
|
40
|
-
this.origEnd = end;
|
|
41
|
-
return offset;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
var i = offset;
|
|
45
|
-
|
|
46
|
-
while (i < cr.length) {
|
|
47
|
-
if (cr[i] > start) break;else ++i;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
this.origStart = start + i;
|
|
51
|
-
var nextOffset = i;
|
|
52
|
-
|
|
53
|
-
while (i < cr.length) {
|
|
54
|
-
// if end was at \n, it should now be at \r
|
|
55
|
-
if (cr[i] >= end) break;else ++i;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
this.origEnd = end + i;
|
|
59
|
-
return nextOffset;
|
|
60
|
-
}
|
|
61
|
-
}]);
|
|
62
|
-
|
|
63
|
-
return Range;
|
|
64
|
-
}();
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
// Published as 'yaml/parse-cst'
|
|
2
|
-
import { Document } from './Document';
|
|
3
|
-
import { ParseContext } from './ParseContext';
|
|
4
|
-
export function parse(src) {
|
|
5
|
-
var cr = [];
|
|
6
|
-
|
|
7
|
-
if (src.indexOf('\r') !== -1) {
|
|
8
|
-
src = src.replace(/\r\n?/g, function (match, offset) {
|
|
9
|
-
if (match.length > 1) cr.push(offset);
|
|
10
|
-
return '\n';
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
var documents = [];
|
|
15
|
-
var offset = 0;
|
|
16
|
-
|
|
17
|
-
do {
|
|
18
|
-
var doc = new Document();
|
|
19
|
-
var context = new ParseContext({
|
|
20
|
-
src: src
|
|
21
|
-
});
|
|
22
|
-
offset = doc.parse(context, offset);
|
|
23
|
-
documents.push(doc);
|
|
24
|
-
} while (offset < src.length);
|
|
25
|
-
|
|
26
|
-
documents.setOrigRanges = function () {
|
|
27
|
-
if (cr.length === 0) return false;
|
|
28
|
-
|
|
29
|
-
for (var i = 1; i < cr.length; ++i) {
|
|
30
|
-
cr[i] -= i;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
var crOffset = 0;
|
|
34
|
-
|
|
35
|
-
for (var _i = 0; _i < documents.length; ++_i) {
|
|
36
|
-
crOffset = documents[_i].setOrigRanges(cr, crOffset);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
cr.splice(0, cr.length);
|
|
40
|
-
return true;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
documents.toString = function () {
|
|
44
|
-
return documents.join('...\n');
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
return documents;
|
|
48
|
-
}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
function findLineStarts(src) {
|
|
2
|
-
var ls = [0];
|
|
3
|
-
var offset = src.indexOf('\n');
|
|
4
|
-
|
|
5
|
-
while (offset !== -1) {
|
|
6
|
-
offset += 1;
|
|
7
|
-
ls.push(offset);
|
|
8
|
-
offset = src.indexOf('\n', offset);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
return ls;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function getSrcInfo(cst) {
|
|
15
|
-
var lineStarts, src;
|
|
16
|
-
|
|
17
|
-
if (typeof cst === 'string') {
|
|
18
|
-
lineStarts = findLineStarts(cst);
|
|
19
|
-
src = cst;
|
|
20
|
-
} else {
|
|
21
|
-
if (Array.isArray(cst)) cst = cst[0];
|
|
22
|
-
|
|
23
|
-
if (cst && cst.context) {
|
|
24
|
-
if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);
|
|
25
|
-
lineStarts = cst.lineStarts;
|
|
26
|
-
src = cst.context.src;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
lineStarts: lineStarts,
|
|
32
|
-
src: src
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* @typedef {Object} LinePos - One-indexed position in the source
|
|
37
|
-
* @property {number} line
|
|
38
|
-
* @property {number} col
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Determine the line/col position matching a character offset.
|
|
43
|
-
*
|
|
44
|
-
* Accepts a source string or a CST document as the second parameter. With
|
|
45
|
-
* the latter, starting indices for lines are cached in the document as
|
|
46
|
-
* `lineStarts: number[]`.
|
|
47
|
-
*
|
|
48
|
-
* Returns a one-indexed `{ line, col }` location if found, or
|
|
49
|
-
* `undefined` otherwise.
|
|
50
|
-
*
|
|
51
|
-
* @param {number} offset
|
|
52
|
-
* @param {string|Document|Document[]} cst
|
|
53
|
-
* @returns {?LinePos}
|
|
54
|
-
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
export function getLinePos(offset, cst) {
|
|
58
|
-
if (typeof offset !== 'number' || offset < 0) return null;
|
|
59
|
-
|
|
60
|
-
var _getSrcInfo = getSrcInfo(cst),
|
|
61
|
-
lineStarts = _getSrcInfo.lineStarts,
|
|
62
|
-
src = _getSrcInfo.src;
|
|
63
|
-
|
|
64
|
-
if (!lineStarts || !src || offset > src.length) return null;
|
|
65
|
-
|
|
66
|
-
for (var i = 0; i < lineStarts.length; ++i) {
|
|
67
|
-
var start = lineStarts[i];
|
|
68
|
-
|
|
69
|
-
if (offset < start) {
|
|
70
|
-
return {
|
|
71
|
-
line: i,
|
|
72
|
-
col: offset - lineStarts[i - 1] + 1
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (offset === start) return {
|
|
77
|
-
line: i + 1,
|
|
78
|
-
col: 1
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
var line = lineStarts.length;
|
|
83
|
-
return {
|
|
84
|
-
line: line,
|
|
85
|
-
col: offset - lineStarts[line - 1] + 1
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Get a specified line from the source.
|
|
90
|
-
*
|
|
91
|
-
* Accepts a source string or a CST document as the second parameter. With
|
|
92
|
-
* the latter, starting indices for lines are cached in the document as
|
|
93
|
-
* `lineStarts: number[]`.
|
|
94
|
-
*
|
|
95
|
-
* Returns the line as a string if found, or `null` otherwise.
|
|
96
|
-
*
|
|
97
|
-
* @param {number} line One-indexed line number
|
|
98
|
-
* @param {string|Document|Document[]} cst
|
|
99
|
-
* @returns {?string}
|
|
100
|
-
*/
|
|
101
|
-
|
|
102
|
-
export function getLine(line, cst) {
|
|
103
|
-
var _getSrcInfo2 = getSrcInfo(cst),
|
|
104
|
-
lineStarts = _getSrcInfo2.lineStarts,
|
|
105
|
-
src = _getSrcInfo2.src;
|
|
106
|
-
|
|
107
|
-
if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;
|
|
108
|
-
var start = lineStarts[line - 1];
|
|
109
|
-
var end = lineStarts[line]; // undefined for last line; that's ok for slice()
|
|
110
|
-
|
|
111
|
-
while (end && end > start && src[end - 1] === '\n') {
|
|
112
|
-
--end;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return src.slice(start, end);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Pretty-print the starting line from the source indicated by the range `pos`
|
|
119
|
-
*
|
|
120
|
-
* Trims output to `maxWidth` chars while keeping the starting column visible,
|
|
121
|
-
* using `…` at either end to indicate dropped characters.
|
|
122
|
-
*
|
|
123
|
-
* Returns a two-line string (or `null`) with `\n` as separator; the second line
|
|
124
|
-
* will hold appropriately indented `^` marks indicating the column range.
|
|
125
|
-
*
|
|
126
|
-
* @param {Object} pos
|
|
127
|
-
* @param {LinePos} pos.start
|
|
128
|
-
* @param {LinePos} [pos.end]
|
|
129
|
-
* @param {string|Document|Document[]*} cst
|
|
130
|
-
* @param {number} [maxWidth=80]
|
|
131
|
-
* @returns {?string}
|
|
132
|
-
*/
|
|
133
|
-
|
|
134
|
-
export function getPrettyContext(_ref, cst) {
|
|
135
|
-
var start = _ref.start,
|
|
136
|
-
end = _ref.end;
|
|
137
|
-
var maxWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 80;
|
|
138
|
-
var src = getLine(start.line, cst);
|
|
139
|
-
if (!src) return null;
|
|
140
|
-
var col = start.col;
|
|
141
|
-
|
|
142
|
-
if (src.length > maxWidth) {
|
|
143
|
-
if (col <= maxWidth - 10) {
|
|
144
|
-
src = src.substr(0, maxWidth - 1) + '…';
|
|
145
|
-
} else {
|
|
146
|
-
var halfWidth = Math.round(maxWidth / 2);
|
|
147
|
-
if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';
|
|
148
|
-
col -= src.length - maxWidth;
|
|
149
|
-
src = '…' + src.substr(1 - maxWidth);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
var errLen = 1;
|
|
154
|
-
var errEnd = '';
|
|
155
|
-
|
|
156
|
-
if (end) {
|
|
157
|
-
if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {
|
|
158
|
-
errLen = end.col - start.col;
|
|
159
|
-
} else {
|
|
160
|
-
errLen = Math.min(src.length + 1, maxWidth) - col;
|
|
161
|
-
errEnd = '…';
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
var offset = col > 1 ? ' '.repeat(col - 1) : '';
|
|
166
|
-
var err = '^'.repeat(errLen);
|
|
167
|
-
return "".concat(src, "\n").concat(offset).concat(err).concat(errEnd);
|
|
168
|
-
}
|
package/browser/dist/errors.js
DELETED
|
@@ -1,127 +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
|
-
import _wrapNativeSuper from "@babel/runtime/helpers/wrapNativeSuper";
|
|
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 { Node } from './cst/Node';
|
|
13
|
-
import { getLinePos, getPrettyContext } from './cst/source-utils';
|
|
14
|
-
import { Range } from './cst/Range';
|
|
15
|
-
export var YAMLError = /*#__PURE__*/function (_Error) {
|
|
16
|
-
_inherits(YAMLError, _Error);
|
|
17
|
-
|
|
18
|
-
var _super = _createSuper(YAMLError);
|
|
19
|
-
|
|
20
|
-
function YAMLError(name, source, message) {
|
|
21
|
-
var _this;
|
|
22
|
-
|
|
23
|
-
_classCallCheck(this, YAMLError);
|
|
24
|
-
|
|
25
|
-
if (!message || !(source instanceof Node)) throw new Error("Invalid arguments for new ".concat(name));
|
|
26
|
-
_this = _super.call(this);
|
|
27
|
-
_this.name = name;
|
|
28
|
-
_this.message = message;
|
|
29
|
-
_this.source = source;
|
|
30
|
-
return _this;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
_createClass(YAMLError, [{
|
|
34
|
-
key: "makePretty",
|
|
35
|
-
value: function makePretty() {
|
|
36
|
-
if (!this.source) return;
|
|
37
|
-
this.nodeType = this.source.type;
|
|
38
|
-
var cst = this.source.context && this.source.context.root;
|
|
39
|
-
|
|
40
|
-
if (typeof this.offset === 'number') {
|
|
41
|
-
this.range = new Range(this.offset, this.offset + 1);
|
|
42
|
-
var start = cst && getLinePos(this.offset, cst);
|
|
43
|
-
|
|
44
|
-
if (start) {
|
|
45
|
-
var end = {
|
|
46
|
-
line: start.line,
|
|
47
|
-
col: start.col + 1
|
|
48
|
-
};
|
|
49
|
-
this.linePos = {
|
|
50
|
-
start: start,
|
|
51
|
-
end: end
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
delete this.offset;
|
|
56
|
-
} else {
|
|
57
|
-
this.range = this.source.range;
|
|
58
|
-
this.linePos = this.source.rangeAsLinePos;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (this.linePos) {
|
|
62
|
-
var _this$linePos$start = this.linePos.start,
|
|
63
|
-
line = _this$linePos$start.line,
|
|
64
|
-
col = _this$linePos$start.col;
|
|
65
|
-
this.message += " at line ".concat(line, ", column ").concat(col);
|
|
66
|
-
var ctx = cst && getPrettyContext(this.linePos, cst);
|
|
67
|
-
if (ctx) this.message += ":\n\n".concat(ctx, "\n");
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
delete this.source;
|
|
71
|
-
}
|
|
72
|
-
}]);
|
|
73
|
-
|
|
74
|
-
return YAMLError;
|
|
75
|
-
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
76
|
-
export var YAMLReferenceError = /*#__PURE__*/function (_YAMLError) {
|
|
77
|
-
_inherits(YAMLReferenceError, _YAMLError);
|
|
78
|
-
|
|
79
|
-
var _super2 = _createSuper(YAMLReferenceError);
|
|
80
|
-
|
|
81
|
-
function YAMLReferenceError(source, message) {
|
|
82
|
-
_classCallCheck(this, YAMLReferenceError);
|
|
83
|
-
|
|
84
|
-
return _super2.call(this, 'YAMLReferenceError', source, message);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return YAMLReferenceError;
|
|
88
|
-
}(YAMLError);
|
|
89
|
-
export var YAMLSemanticError = /*#__PURE__*/function (_YAMLError2) {
|
|
90
|
-
_inherits(YAMLSemanticError, _YAMLError2);
|
|
91
|
-
|
|
92
|
-
var _super3 = _createSuper(YAMLSemanticError);
|
|
93
|
-
|
|
94
|
-
function YAMLSemanticError(source, message) {
|
|
95
|
-
_classCallCheck(this, YAMLSemanticError);
|
|
96
|
-
|
|
97
|
-
return _super3.call(this, 'YAMLSemanticError', source, message);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return YAMLSemanticError;
|
|
101
|
-
}(YAMLError);
|
|
102
|
-
export var YAMLSyntaxError = /*#__PURE__*/function (_YAMLError3) {
|
|
103
|
-
_inherits(YAMLSyntaxError, _YAMLError3);
|
|
104
|
-
|
|
105
|
-
var _super4 = _createSuper(YAMLSyntaxError);
|
|
106
|
-
|
|
107
|
-
function YAMLSyntaxError(source, message) {
|
|
108
|
-
_classCallCheck(this, YAMLSyntaxError);
|
|
109
|
-
|
|
110
|
-
return _super4.call(this, 'YAMLSyntaxError', source, message);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return YAMLSyntaxError;
|
|
114
|
-
}(YAMLError);
|
|
115
|
-
export var YAMLWarning = /*#__PURE__*/function (_YAMLError4) {
|
|
116
|
-
_inherits(YAMLWarning, _YAMLError4);
|
|
117
|
-
|
|
118
|
-
var _super5 = _createSuper(YAMLWarning);
|
|
119
|
-
|
|
120
|
-
function YAMLWarning(source, message) {
|
|
121
|
-
_classCallCheck(this, YAMLWarning);
|
|
122
|
-
|
|
123
|
-
return _super5.call(this, 'YAMLWarning', source, message);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return YAMLWarning;
|
|
127
|
-
}(YAMLError);
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
export var FOLD_FLOW = 'flow';
|
|
2
|
-
export var FOLD_BLOCK = 'block';
|
|
3
|
-
export var FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line
|
|
4
|
-
// returns index of last newline in more-indented block
|
|
5
|
-
|
|
6
|
-
var consumeMoreIndentedLines = function consumeMoreIndentedLines(text, i) {
|
|
7
|
-
var ch = text[i + 1];
|
|
8
|
-
|
|
9
|
-
while (ch === ' ' || ch === '\t') {
|
|
10
|
-
do {
|
|
11
|
-
ch = text[i += 1];
|
|
12
|
-
} while (ch && ch !== '\n');
|
|
13
|
-
|
|
14
|
-
ch = text[i + 1];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return i;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Tries to keep input at up to `lineWidth` characters, splitting only on spaces
|
|
21
|
-
* not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are
|
|
22
|
-
* terminated with `\n` and started with `indent`.
|
|
23
|
-
*
|
|
24
|
-
* @param {string} text
|
|
25
|
-
* @param {string} indent
|
|
26
|
-
* @param {string} [mode='flow'] `'block'` prevents more-indented lines
|
|
27
|
-
* from being folded; `'quoted'` allows for `\` escapes, including escaped
|
|
28
|
-
* newlines
|
|
29
|
-
* @param {Object} options
|
|
30
|
-
* @param {number} [options.indentAtStart] Accounts for leading contents on
|
|
31
|
-
* the first line, defaulting to `indent.length`
|
|
32
|
-
* @param {number} [options.lineWidth=80]
|
|
33
|
-
* @param {number} [options.minContentWidth=20] Allow highly indented lines to
|
|
34
|
-
* stretch the line width
|
|
35
|
-
* @param {function} options.onFold Called once if the text is folded
|
|
36
|
-
* @param {function} options.onFold Called once if any line of text exceeds
|
|
37
|
-
* lineWidth characters
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
export function foldFlowLines(text, indent, mode, _ref) {
|
|
42
|
-
var indentAtStart = _ref.indentAtStart,
|
|
43
|
-
_ref$lineWidth = _ref.lineWidth,
|
|
44
|
-
lineWidth = _ref$lineWidth === void 0 ? 80 : _ref$lineWidth,
|
|
45
|
-
_ref$minContentWidth = _ref.minContentWidth,
|
|
46
|
-
minContentWidth = _ref$minContentWidth === void 0 ? 20 : _ref$minContentWidth,
|
|
47
|
-
onFold = _ref.onFold,
|
|
48
|
-
onOverflow = _ref.onOverflow;
|
|
49
|
-
if (!lineWidth || lineWidth < 0) return text;
|
|
50
|
-
var endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);
|
|
51
|
-
if (text.length <= endStep) return text;
|
|
52
|
-
var folds = [];
|
|
53
|
-
var escapedFolds = {};
|
|
54
|
-
var end = lineWidth - (typeof indentAtStart === 'number' ? indentAtStart : indent.length);
|
|
55
|
-
var split = undefined;
|
|
56
|
-
var prev = undefined;
|
|
57
|
-
var overflow = false;
|
|
58
|
-
var i = -1;
|
|
59
|
-
|
|
60
|
-
if (mode === FOLD_BLOCK) {
|
|
61
|
-
i = consumeMoreIndentedLines(text, i);
|
|
62
|
-
if (i !== -1) end = i + endStep;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
for (var ch; ch = text[i += 1];) {
|
|
66
|
-
if (mode === FOLD_QUOTED && ch === '\\') {
|
|
67
|
-
switch (text[i + 1]) {
|
|
68
|
-
case 'x':
|
|
69
|
-
i += 3;
|
|
70
|
-
break;
|
|
71
|
-
|
|
72
|
-
case 'u':
|
|
73
|
-
i += 5;
|
|
74
|
-
break;
|
|
75
|
-
|
|
76
|
-
case 'U':
|
|
77
|
-
i += 9;
|
|
78
|
-
break;
|
|
79
|
-
|
|
80
|
-
default:
|
|
81
|
-
i += 1;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (ch === '\n') {
|
|
86
|
-
if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i);
|
|
87
|
-
end = i + endStep;
|
|
88
|
-
split = undefined;
|
|
89
|
-
} else {
|
|
90
|
-
if (ch === ' ' && prev && prev !== ' ' && prev !== '\n' && prev !== '\t') {
|
|
91
|
-
// space surrounded by non-space can be replaced with newline + indent
|
|
92
|
-
var next = text[i + 1];
|
|
93
|
-
if (next && next !== ' ' && next !== '\n' && next !== '\t') split = i;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (i >= end) {
|
|
97
|
-
if (split) {
|
|
98
|
-
folds.push(split);
|
|
99
|
-
end = split + endStep;
|
|
100
|
-
split = undefined;
|
|
101
|
-
} else if (mode === FOLD_QUOTED) {
|
|
102
|
-
// white-space collected at end may stretch past lineWidth
|
|
103
|
-
while (prev === ' ' || prev === '\t') {
|
|
104
|
-
prev = ch;
|
|
105
|
-
ch = text[i += 1];
|
|
106
|
-
overflow = true;
|
|
107
|
-
} // i - 2 accounts for not-dropped last char + newline-escaping \
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
folds.push(i - 2);
|
|
111
|
-
escapedFolds[i - 2] = true;
|
|
112
|
-
end = i - 2 + endStep;
|
|
113
|
-
split = undefined;
|
|
114
|
-
} else {
|
|
115
|
-
overflow = true;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
prev = ch;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (overflow && onOverflow) onOverflow();
|
|
124
|
-
if (folds.length === 0) return text;
|
|
125
|
-
if (onFold) onFold();
|
|
126
|
-
var res = text.slice(0, folds[0]);
|
|
127
|
-
|
|
128
|
-
for (var _i = 0; _i < folds.length; ++_i) {
|
|
129
|
-
var fold = folds[_i];
|
|
130
|
-
|
|
131
|
-
var _end = folds[_i + 1] || text.length;
|
|
132
|
-
|
|
133
|
-
if (mode === FOLD_QUOTED && escapedFolds[fold]) res += "".concat(text[fold], "\\");
|
|
134
|
-
res += "\n".concat(indent).concat(text.slice(fold + 1, _end));
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return res;
|
|
138
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
-
import { Collection } from './schema/Collection';
|
|
3
|
-
import { Pair } from './schema/Pair';
|
|
4
|
-
import { Scalar } from './schema/Scalar';
|
|
5
|
-
|
|
6
|
-
var visit = function visit(node, tags) {
|
|
7
|
-
if (node && _typeof(node) === 'object') {
|
|
8
|
-
var tag = node.tag;
|
|
9
|
-
|
|
10
|
-
if (node instanceof Collection) {
|
|
11
|
-
if (tag) tags[tag] = true;
|
|
12
|
-
node.items.forEach(function (n) {
|
|
13
|
-
return visit(n, tags);
|
|
14
|
-
});
|
|
15
|
-
} else if (node instanceof Pair) {
|
|
16
|
-
visit(node.key, tags);
|
|
17
|
-
visit(node.value, tags);
|
|
18
|
-
} else if (node instanceof Scalar) {
|
|
19
|
-
if (tag) tags[tag] = true;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return tags;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export var listTagNames = function listTagNames(node) {
|
|
27
|
-
return Object.keys(visit(node, {}));
|
|
28
|
-
};
|