yaml 2.0.0-2 → 2.0.0-6
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/LICENSE +1 -1
- package/README.md +46 -26
- package/browser/dist/compose/compose-collection.js +59 -0
- package/browser/dist/compose/compose-doc.js +39 -0
- package/browser/dist/compose/compose-node.js +72 -0
- package/browser/dist/compose/compose-scalar.js +74 -0
- package/browser/dist/compose/composer.js +218 -0
- package/browser/dist/compose/resolve-block-map.js +93 -0
- package/browser/dist/compose/resolve-block-scalar.js +185 -0
- package/browser/dist/compose/resolve-block-seq.js +40 -0
- package/browser/dist/compose/resolve-end.js +37 -0
- package/browser/dist/compose/resolve-flow-collection.js +189 -0
- package/browser/dist/compose/resolve-flow-scalar.js +211 -0
- package/browser/dist/compose/resolve-props.js +126 -0
- package/browser/dist/compose/util-contains-newline.js +34 -0
- package/browser/dist/compose/util-empty-scalar-position.js +27 -0
- package/browser/dist/compose/util-map-includes.js +17 -0
- package/browser/dist/doc/Document.js +251 -348
- package/browser/dist/doc/anchors.js +72 -0
- package/browser/dist/doc/applyReviver.js +41 -28
- package/browser/dist/doc/createNode.js +71 -55
- package/browser/dist/doc/directives.js +161 -0
- package/browser/dist/errors.js +50 -72
- package/browser/dist/index.js +17 -73
- package/browser/dist/log.js +11 -7
- package/browser/dist/nodes/Alias.js +94 -0
- package/browser/dist/nodes/Collection.js +133 -0
- package/browser/dist/nodes/Node.js +41 -0
- package/browser/dist/nodes/Pair.js +28 -0
- package/browser/dist/nodes/Scalar.js +23 -0
- package/browser/dist/nodes/YAMLMap.js +116 -0
- package/browser/dist/nodes/YAMLSeq.js +105 -0
- package/browser/dist/nodes/addPairToJSMap.js +103 -0
- package/browser/dist/nodes/toJS.js +35 -0
- package/browser/dist/options.js +14 -95
- package/browser/dist/parse/cst-scalar.js +219 -0
- package/browser/dist/parse/cst-stringify.js +61 -0
- package/browser/dist/parse/cst-visit.js +97 -0
- package/browser/dist/parse/cst.js +98 -0
- package/browser/dist/parse/lexer.js +656 -0
- package/browser/dist/parse/line-counter.js +39 -0
- package/browser/dist/parse/parser.js +876 -0
- package/browser/dist/public-api.js +101 -0
- package/browser/dist/schema/Schema.js +23 -0
- package/browser/dist/schema/common/map.js +42 -0
- package/browser/dist/schema/common/null.js +13 -0
- package/browser/dist/schema/common/seq.js +33 -0
- package/browser/dist/schema/common/string.js +14 -0
- package/browser/dist/schema/core/bool.js +19 -0
- package/browser/dist/schema/core/float.js +40 -0
- package/browser/dist/schema/core/int.js +38 -0
- package/browser/dist/schema/core/schema.js +23 -0
- package/browser/dist/schema/json/schema.js +62 -0
- package/browser/dist/schema/tags.js +79 -0
- package/browser/dist/schema/yaml-1.1/binary.js +66 -0
- package/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/browser/dist/schema/yaml-1.1/float.js +43 -0
- package/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/browser/dist/schema/yaml-1.1/omap.js +73 -0
- package/browser/dist/schema/yaml-1.1/pairs.js +77 -0
- package/browser/dist/schema/yaml-1.1/schema.js +37 -0
- package/browser/dist/schema/yaml-1.1/set.js +87 -0
- package/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/browser/dist/stringify/foldFlowLines.js +121 -139
- package/browser/dist/stringify/stringify.js +87 -72
- package/browser/dist/stringify/stringifyCollection.js +122 -0
- package/browser/dist/stringify/stringifyComment.js +14 -0
- package/browser/dist/stringify/stringifyDocument.js +64 -0
- package/browser/dist/stringify/stringifyNumber.js +20 -23
- package/browser/dist/stringify/stringifyPair.js +111 -0
- package/browser/dist/stringify/stringifyString.js +295 -322
- package/browser/dist/util.js +4 -4
- package/browser/dist/visit.js +146 -0
- package/browser/index.js +4 -1
- package/dist/compose/compose-collection.d.ts +5 -0
- package/dist/compose/compose-collection.js +61 -0
- package/dist/compose/compose-doc.d.ts +6 -0
- package/dist/compose/compose-doc.js +41 -0
- package/dist/compose/compose-node.d.ts +25 -0
- package/dist/compose/compose-node.js +75 -0
- package/dist/compose/compose-scalar.d.ts +5 -0
- package/dist/compose/compose-scalar.js +76 -0
- package/dist/compose/composer.d.ts +62 -0
- package/dist/compose/composer.js +222 -0
- package/dist/compose/resolve-block-map.d.ts +6 -0
- package/dist/compose/resolve-block-map.js +95 -0
- package/dist/compose/resolve-block-scalar.d.ts +10 -0
- package/dist/compose/resolve-block-scalar.js +187 -0
- package/dist/compose/resolve-block-seq.d.ts +5 -0
- package/dist/compose/resolve-block-seq.js +42 -0
- package/dist/compose/resolve-end.d.ts +6 -0
- package/dist/compose/resolve-end.js +39 -0
- package/dist/compose/resolve-flow-collection.d.ts +6 -0
- package/dist/compose/resolve-flow-collection.js +191 -0
- package/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/dist/compose/resolve-flow-scalar.js +213 -0
- package/dist/compose/resolve-props.d.ts +21 -0
- package/dist/compose/resolve-props.js +128 -0
- package/dist/compose/util-contains-newline.d.ts +2 -0
- package/dist/compose/util-contains-newline.js +36 -0
- package/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/dist/compose/util-empty-scalar-position.js +29 -0
- package/dist/compose/util-map-includes.d.ts +4 -0
- package/dist/compose/util-map-includes.js +19 -0
- package/dist/doc/Document.d.ts +130 -0
- package/dist/doc/Document.js +250 -347
- package/dist/doc/anchors.d.ts +24 -0
- package/dist/doc/anchors.js +77 -0
- package/dist/doc/applyReviver.d.ts +9 -0
- package/dist/doc/applyReviver.js +41 -28
- package/dist/doc/createNode.d.ts +16 -0
- package/dist/doc/createNode.js +71 -55
- package/dist/doc/directives.d.ts +46 -0
- package/dist/doc/directives.js +163 -0
- package/dist/errors.d.ts +21 -0
- package/dist/errors.js +51 -74
- package/dist/index.d.ts +19 -0
- package/dist/index.js +40 -71
- package/dist/log.d.ts +3 -0
- package/dist/log.js +11 -6
- package/dist/nodes/Alias.d.ts +24 -0
- package/dist/nodes/Alias.js +96 -0
- package/dist/nodes/Collection.d.ts +67 -0
- package/dist/nodes/Collection.js +137 -0
- package/dist/nodes/Node.d.ts +48 -0
- package/dist/nodes/Node.js +59 -0
- package/dist/nodes/Pair.d.ts +16 -0
- package/dist/nodes/Pair.js +31 -0
- package/dist/nodes/Scalar.d.ts +40 -0
- package/dist/nodes/Scalar.js +26 -0
- package/dist/nodes/YAMLMap.d.ts +39 -0
- package/dist/nodes/YAMLMap.js +119 -0
- package/dist/nodes/YAMLSeq.d.ts +53 -0
- package/dist/nodes/YAMLSeq.js +107 -0
- package/dist/nodes/addPairToJSMap.d.ts +3 -0
- package/dist/nodes/addPairToJSMap.js +105 -0
- package/dist/nodes/toJS.d.ts +30 -0
- package/dist/nodes/toJS.js +37 -0
- package/dist/options.d.ts +278 -0
- package/dist/options.js +13 -96
- package/dist/parse/cst-scalar.d.ts +58 -0
- package/dist/parse/cst-scalar.js +223 -0
- package/dist/parse/cst-stringify.d.ts +8 -0
- package/dist/parse/cst-stringify.js +63 -0
- package/dist/parse/cst-visit.d.ts +39 -0
- package/dist/parse/cst-visit.js +99 -0
- package/dist/parse/cst.d.ts +106 -0
- package/dist/parse/cst.js +112 -0
- package/dist/parse/lexer.d.ts +85 -0
- package/dist/parse/lexer.js +658 -0
- package/dist/parse/line-counter.d.ts +22 -0
- package/dist/parse/line-counter.js +41 -0
- package/dist/parse/parser.d.ts +84 -0
- package/dist/parse/parser.js +880 -0
- package/dist/public-api.d.ts +43 -0
- package/dist/public-api.js +106 -0
- package/dist/schema/Schema.d.ts +16 -0
- package/dist/schema/Schema.js +25 -0
- package/dist/schema/common/map.d.ts +2 -0
- package/dist/schema/common/map.js +44 -0
- package/dist/schema/common/null.d.ts +4 -0
- package/dist/schema/common/null.js +15 -0
- package/dist/schema/common/seq.d.ts +2 -0
- package/dist/schema/common/seq.js +35 -0
- package/dist/schema/common/string.d.ts +2 -0
- package/dist/schema/common/string.js +16 -0
- package/dist/schema/core/bool.d.ts +4 -0
- package/dist/schema/core/bool.js +21 -0
- package/dist/schema/core/float.d.ts +4 -0
- package/dist/schema/core/float.js +44 -0
- package/dist/schema/core/int.d.ts +4 -0
- package/dist/schema/core/int.js +42 -0
- package/dist/schema/core/schema.d.ts +1 -0
- package/dist/schema/core/schema.js +25 -0
- package/dist/schema/json/schema.d.ts +2 -0
- package/dist/schema/json/schema.js +64 -0
- package/dist/schema/tags.d.ts +41 -0
- package/dist/schema/tags.js +82 -0
- package/dist/schema/types.d.ts +82 -0
- package/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/dist/schema/yaml-1.1/binary.js +68 -0
- package/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/dist/schema/yaml-1.1/bool.js +29 -0
- package/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/dist/schema/yaml-1.1/float.js +47 -0
- package/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/dist/schema/yaml-1.1/int.js +76 -0
- package/dist/schema/yaml-1.1/omap.d.ts +21 -0
- package/dist/schema/yaml-1.1/omap.js +76 -0
- package/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/dist/schema/yaml-1.1/pairs.js +81 -0
- package/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/dist/schema/yaml-1.1/schema.js +39 -0
- package/dist/schema/yaml-1.1/set.d.ts +22 -0
- package/dist/schema/yaml-1.1/set.js +90 -0
- package/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/dist/stringify/foldFlowLines.d.ts +34 -0
- package/dist/stringify/foldFlowLines.js +121 -139
- package/dist/stringify/stringify.d.ts +18 -0
- package/dist/stringify/stringify.js +87 -71
- package/dist/stringify/stringifyCollection.d.ts +21 -0
- package/dist/stringify/stringifyCollection.js +124 -0
- package/dist/stringify/stringifyComment.d.ts +2 -0
- package/dist/stringify/stringifyComment.js +17 -0
- package/dist/stringify/stringifyDocument.d.ts +3 -0
- package/dist/stringify/stringifyDocument.js +66 -0
- package/dist/stringify/stringifyNumber.d.ts +2 -0
- package/dist/stringify/stringifyNumber.js +20 -23
- package/dist/stringify/stringifyPair.d.ts +3 -0
- package/dist/stringify/stringifyPair.js +113 -0
- package/dist/stringify/stringifyString.d.ts +3 -0
- package/dist/stringify/stringifyString.js +295 -322
- package/dist/test-events.d.ts +4 -0
- package/dist/test-events.js +124 -148
- package/dist/util.d.ts +6 -0
- package/dist/util.js +9 -12
- package/dist/visit.d.ts +63 -0
- package/dist/visit.js +148 -0
- package/package.json +31 -39
- package/util.js +2 -14
- package/browser/dist/_virtual/_rollupPluginBabelHelpers.js +0 -16
- package/browser/dist/ast/Alias.js +0 -95
- package/browser/dist/ast/Collection.js +0 -192
- package/browser/dist/ast/Merge.js +0 -71
- package/browser/dist/ast/Node.js +0 -3
- package/browser/dist/ast/Pair.js +0 -200
- package/browser/dist/ast/Scalar.js +0 -21
- package/browser/dist/ast/YAMLMap.js +0 -91
- package/browser/dist/ast/YAMLSeq.js +0 -67
- package/browser/dist/ast/toJS.js +0 -29
- package/browser/dist/ast/visit.js +0 -83
- package/browser/dist/constants.js +0 -40
- package/browser/dist/cst/Alias.js +0 -26
- package/browser/dist/cst/BlankLine.js +0 -34
- package/browser/dist/cst/BlockValue.js +0 -240
- package/browser/dist/cst/Collection.js +0 -259
- package/browser/dist/cst/CollectionItem.js +0 -123
- package/browser/dist/cst/Comment.js +0 -27
- package/browser/dist/cst/Directive.js +0 -53
- package/browser/dist/cst/Document.js +0 -262
- package/browser/dist/cst/FlowCollection.js +0 -201
- package/browser/dist/cst/Node.js +0 -355
- package/browser/dist/cst/ParseContext.js +0 -234
- package/browser/dist/cst/PlainValue.js +0 -171
- package/browser/dist/cst/QuoteDouble.js +0 -224
- package/browser/dist/cst/QuoteSingle.js +0 -100
- package/browser/dist/cst/Range.js +0 -56
- package/browser/dist/cst/parse.js +0 -46
- package/browser/dist/cst/source-utils.js +0 -169
- package/browser/dist/doc/Anchors.js +0 -115
- package/browser/dist/doc/Schema.js +0 -34
- package/browser/dist/doc/getSchemaTags.js +0 -33
- package/browser/dist/doc/listTagNames.js +0 -27
- package/browser/dist/doc/parseContents.js +0 -60
- package/browser/dist/doc/parseDirectives.js +0 -107
- package/browser/dist/resolve/collection-utils.js +0 -86
- package/browser/dist/resolve/resolveMap.js +0 -315
- package/browser/dist/resolve/resolveNode.js +0 -173
- package/browser/dist/resolve/resolveScalar.js +0 -20
- package/browser/dist/resolve/resolveSeq.js +0 -170
- package/browser/dist/resolve/resolveTag.js +0 -107
- package/browser/dist/resolve/resolveTagName.js +0 -87
- package/browser/dist/stringify/addComment.js +0 -10
- package/browser/dist/stringify/stringifyTag.js +0 -28
- package/browser/dist/tags/core.js +0 -128
- package/browser/dist/tags/failsafe/index.js +0 -7
- package/browser/dist/tags/failsafe/map.js +0 -37
- package/browser/dist/tags/failsafe/seq.js +0 -34
- package/browser/dist/tags/failsafe/string.js +0 -20
- package/browser/dist/tags/index.js +0 -39
- package/browser/dist/tags/json.js +0 -62
- package/browser/dist/tags/options.js +0 -31
- package/browser/dist/tags/yaml-1.1/binary.js +0 -83
- package/browser/dist/tags/yaml-1.1/index.js +0 -174
- package/browser/dist/tags/yaml-1.1/omap.js +0 -86
- package/browser/dist/tags/yaml-1.1/pairs.js +0 -62
- package/browser/dist/tags/yaml-1.1/set.js +0 -78
- package/browser/dist/tags/yaml-1.1/timestamp.js +0 -101
- package/browser/dist/types.js +0 -10
- package/cst.d.ts +0 -185
- package/dist/_virtual/_rollupPluginBabelHelpers.js +0 -18
- package/dist/ast/Alias.js +0 -97
- package/dist/ast/Collection.js +0 -196
- package/dist/ast/Merge.js +0 -74
- package/dist/ast/Node.js +0 -5
- package/dist/ast/Pair.js +0 -203
- package/dist/ast/Scalar.js +0 -24
- package/dist/ast/YAMLMap.js +0 -94
- package/dist/ast/YAMLSeq.js +0 -69
- package/dist/ast/toJS.js +0 -31
- package/dist/ast/visit.js +0 -85
- package/dist/constants.js +0 -46
- package/dist/cst/Alias.js +0 -28
- package/dist/cst/BlankLine.js +0 -36
- package/dist/cst/BlockValue.js +0 -243
- package/dist/cst/Collection.js +0 -262
- package/dist/cst/CollectionItem.js +0 -125
- package/dist/cst/Comment.js +0 -29
- package/dist/cst/Directive.js +0 -55
- package/dist/cst/Document.js +0 -264
- package/dist/cst/FlowCollection.js +0 -203
- package/dist/cst/Node.js +0 -357
- package/dist/cst/ParseContext.js +0 -236
- package/dist/cst/PlainValue.js +0 -173
- package/dist/cst/QuoteDouble.js +0 -226
- package/dist/cst/QuoteSingle.js +0 -102
- package/dist/cst/Range.js +0 -58
- package/dist/cst/parse.js +0 -48
- package/dist/cst/source-utils.js +0 -173
- package/dist/doc/Anchors.js +0 -117
- package/dist/doc/Schema.js +0 -36
- package/dist/doc/getSchemaTags.js +0 -35
- package/dist/doc/listTagNames.js +0 -29
- package/dist/doc/parseContents.js +0 -62
- package/dist/doc/parseDirectives.js +0 -109
- package/dist/resolve/collection-utils.js +0 -91
- package/dist/resolve/resolveMap.js +0 -317
- package/dist/resolve/resolveNode.js +0 -175
- package/dist/resolve/resolveScalar.js +0 -22
- package/dist/resolve/resolveSeq.js +0 -172
- package/dist/resolve/resolveTag.js +0 -109
- package/dist/resolve/resolveTagName.js +0 -89
- package/dist/stringify/addComment.js +0 -13
- package/dist/stringify/stringifyTag.js +0 -30
- package/dist/tags/core.js +0 -138
- package/dist/tags/failsafe/index.js +0 -9
- package/dist/tags/failsafe/map.js +0 -39
- package/dist/tags/failsafe/seq.js +0 -36
- package/dist/tags/failsafe/string.js +0 -22
- package/dist/tags/index.js +0 -42
- package/dist/tags/json.js +0 -64
- package/dist/tags/options.js +0 -37
- package/dist/tags/yaml-1.1/binary.js +0 -85
- package/dist/tags/yaml-1.1/index.js +0 -176
- package/dist/tags/yaml-1.1/omap.js +0 -89
- package/dist/tags/yaml-1.1/pairs.js +0 -66
- package/dist/tags/yaml-1.1/set.js +0 -81
- package/dist/tags/yaml-1.1/timestamp.js +0 -105
- package/dist/types.js +0 -29
- package/index.d.ts +0 -519
- package/index.js +0 -1
- package/types.d.ts +0 -379
- package/types.js +0 -17
- package/types.mjs +0 -17
- package/util.d.ts +0 -76
- package/util.mjs +0 -15
package/dist/ast/YAMLMap.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var Collection = require('./Collection.js');
|
|
4
|
-
var Pair = require('./Pair.js');
|
|
5
|
-
var Scalar = require('./Scalar.js');
|
|
6
|
-
|
|
7
|
-
function findPair(items, key) {
|
|
8
|
-
const k = key instanceof Scalar.Scalar ? key.value : key;
|
|
9
|
-
|
|
10
|
-
for (const it of items) {
|
|
11
|
-
if (it instanceof Pair.Pair) {
|
|
12
|
-
if (it.key === key || it.key === k) return it;
|
|
13
|
-
if (it.key && it.key.value === k) return it;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
|
-
class YAMLMap extends Collection.Collection {
|
|
20
|
-
add(pair, overwrite) {
|
|
21
|
-
if (!pair) pair = new Pair.Pair(pair);else if (!(pair instanceof Pair.Pair)) pair = new Pair.Pair(pair.key || pair, pair.value);
|
|
22
|
-
const prev = findPair(this.items, pair.key);
|
|
23
|
-
const sortEntries = this.schema && this.schema.sortMapEntries;
|
|
24
|
-
|
|
25
|
-
if (prev) {
|
|
26
|
-
if (!overwrite) throw new Error(`Key ${pair.key} already set`); // For scalars, keep the old node & its comments and anchors
|
|
27
|
-
|
|
28
|
-
if (prev.value instanceof Scalar.Scalar && Scalar.isScalarValue(pair.value)) prev.value.value = pair.value;else prev.value = pair.value;
|
|
29
|
-
} else if (sortEntries) {
|
|
30
|
-
const i = this.items.findIndex(item => sortEntries(pair, item) < 0);
|
|
31
|
-
if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair);
|
|
32
|
-
} else {
|
|
33
|
-
this.items.push(pair);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
delete(key) {
|
|
38
|
-
const it = findPair(this.items, key);
|
|
39
|
-
if (!it) return false;
|
|
40
|
-
const del = this.items.splice(this.items.indexOf(it), 1);
|
|
41
|
-
return del.length > 0;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
get(key, keepScalar) {
|
|
45
|
-
const it = findPair(this.items, key);
|
|
46
|
-
const node = it && it.value;
|
|
47
|
-
return !keepScalar && node instanceof Scalar.Scalar ? node.value : node;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
has(key) {
|
|
51
|
-
return !!findPair(this.items, key);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
set(key, value) {
|
|
55
|
-
this.add(new Pair.Pair(key, value), true);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* @param ctx - Conversion context, originally set in Document#toJS()
|
|
59
|
-
* @param {Class} Type - If set, forces the returned collection type
|
|
60
|
-
* @returns Instance of Type, Map, or Object
|
|
61
|
-
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
toJSON(_, ctx, Type) {
|
|
65
|
-
const map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {};
|
|
66
|
-
if (ctx && ctx.onCreate) ctx.onCreate(map);
|
|
67
|
-
|
|
68
|
-
for (const item of this.items) item.addToJSMap(ctx, map);
|
|
69
|
-
|
|
70
|
-
return map;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
toString(ctx, onComment, onChompKeep) {
|
|
74
|
-
if (!ctx) return JSON.stringify(this);
|
|
75
|
-
|
|
76
|
-
for (const item of this.items) {
|
|
77
|
-
if (!(item instanceof Pair.Pair)) throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return super.toString(ctx, {
|
|
81
|
-
blockItem: n => n.str,
|
|
82
|
-
flowChars: {
|
|
83
|
-
start: '{',
|
|
84
|
-
end: '}'
|
|
85
|
-
},
|
|
86
|
-
isMap: true,
|
|
87
|
-
itemIndent: ctx.indent || ''
|
|
88
|
-
}, onComment, onChompKeep);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
exports.YAMLMap = YAMLMap;
|
|
94
|
-
exports.findPair = findPair;
|
package/dist/ast/YAMLSeq.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var Collection = require('./Collection.js');
|
|
4
|
-
var Scalar = require('./Scalar.js');
|
|
5
|
-
var toJS = require('./toJS.js');
|
|
6
|
-
|
|
7
|
-
function asItemIndex(key) {
|
|
8
|
-
let idx = key instanceof Scalar.Scalar ? key.value : key;
|
|
9
|
-
if (idx && typeof idx === 'string') idx = Number(idx);
|
|
10
|
-
return Number.isInteger(idx) && idx >= 0 ? idx : null;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
class YAMLSeq extends Collection.Collection {
|
|
14
|
-
add(value) {
|
|
15
|
-
this.items.push(value);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
delete(key) {
|
|
19
|
-
const idx = asItemIndex(key);
|
|
20
|
-
if (typeof idx !== 'number') return false;
|
|
21
|
-
const del = this.items.splice(idx, 1);
|
|
22
|
-
return del.length > 0;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
get(key, keepScalar) {
|
|
26
|
-
const idx = asItemIndex(key);
|
|
27
|
-
if (typeof idx !== 'number') return undefined;
|
|
28
|
-
const it = this.items[idx];
|
|
29
|
-
return !keepScalar && it instanceof Scalar.Scalar ? it.value : it;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
has(key) {
|
|
33
|
-
const idx = asItemIndex(key);
|
|
34
|
-
return typeof idx === 'number' && idx < this.items.length;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
set(key, value) {
|
|
38
|
-
const idx = asItemIndex(key);
|
|
39
|
-
if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`);
|
|
40
|
-
const prev = this.items[idx];
|
|
41
|
-
if (prev instanceof Scalar.Scalar && Scalar.isScalarValue(value)) prev.value = value;else this.items[idx] = value;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
toJSON(_, ctx) {
|
|
45
|
-
const seq = [];
|
|
46
|
-
if (ctx && ctx.onCreate) ctx.onCreate(seq);
|
|
47
|
-
let i = 0;
|
|
48
|
-
|
|
49
|
-
for (const item of this.items) seq.push(toJS.toJS(item, String(i++), ctx));
|
|
50
|
-
|
|
51
|
-
return seq;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
toString(ctx, onComment, onChompKeep) {
|
|
55
|
-
if (!ctx) return JSON.stringify(this);
|
|
56
|
-
return super.toString(ctx, {
|
|
57
|
-
blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`,
|
|
58
|
-
flowChars: {
|
|
59
|
-
start: '[',
|
|
60
|
-
end: ']'
|
|
61
|
-
},
|
|
62
|
-
isMap: false,
|
|
63
|
-
itemIndent: (ctx.indent || '') + ' '
|
|
64
|
-
}, onComment, onChompKeep);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
exports.YAMLSeq = YAMLSeq;
|
package/dist/ast/toJS.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Recursively convert any node or its contents to native JavaScript
|
|
5
|
-
*
|
|
6
|
-
* @param value - The input value
|
|
7
|
-
* @param {string|null} arg - If `value` defines a `toJSON()` method, use this
|
|
8
|
-
* as its first argument
|
|
9
|
-
* @param ctx - Conversion context, originally set in Document#toJS(). If
|
|
10
|
-
* `{ keep: true }` is not set, output should be suitable for JSON
|
|
11
|
-
* stringification.
|
|
12
|
-
*/
|
|
13
|
-
function toJS(value, arg, ctx) {
|
|
14
|
-
if (Array.isArray(value)) return value.map((v, i) => toJS(v, String(i), ctx));
|
|
15
|
-
|
|
16
|
-
if (value && typeof value.toJSON === 'function') {
|
|
17
|
-
const anchor = ctx && ctx.anchors && ctx.anchors.get(value);
|
|
18
|
-
if (anchor) ctx.onCreate = res => {
|
|
19
|
-
anchor.res = res;
|
|
20
|
-
delete ctx.onCreate;
|
|
21
|
-
};
|
|
22
|
-
const res = value.toJSON(arg, ctx);
|
|
23
|
-
if (anchor && ctx.onCreate) ctx.onCreate(res);
|
|
24
|
-
return res;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (!(ctx && ctx.keep) && typeof value === 'bigint') return Number(value);
|
|
28
|
-
return value;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
exports.toJS = toJS;
|
package/dist/ast/visit.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var constants = require('../constants.js');
|
|
4
|
-
var Alias = require('./Alias.js');
|
|
5
|
-
var Node = require('./Node.js');
|
|
6
|
-
var Pair = require('./Pair.js');
|
|
7
|
-
var Scalar = require('./Scalar.js');
|
|
8
|
-
var YAMLMap = require('./YAMLMap.js');
|
|
9
|
-
var YAMLSeq = require('./YAMLSeq.js');
|
|
10
|
-
|
|
11
|
-
const BREAK = Symbol('break visit');
|
|
12
|
-
const SKIP = Symbol('skip children');
|
|
13
|
-
const REMOVE = Symbol('remove node');
|
|
14
|
-
|
|
15
|
-
function _visit(key, node, visitor, path) {
|
|
16
|
-
let ctrl = undefined;
|
|
17
|
-
if (typeof visitor === 'function') ctrl = visitor(key, node, path);else if (node instanceof YAMLMap.YAMLMap) {
|
|
18
|
-
if (visitor.Map) ctrl = visitor.Map(key, node, path);
|
|
19
|
-
} else if (node instanceof YAMLSeq.YAMLSeq) {
|
|
20
|
-
if (visitor.Seq) ctrl = visitor.Seq(key, node, path);
|
|
21
|
-
} else if (node instanceof Pair.Pair) {
|
|
22
|
-
if (visitor.Pair) ctrl = visitor.Pair(key, node, path);
|
|
23
|
-
} else if (node instanceof Scalar.Scalar) {
|
|
24
|
-
if (visitor.Scalar) ctrl = visitor.Scalar(key, node, path);
|
|
25
|
-
} else if (node instanceof Alias.Alias) {
|
|
26
|
-
if (visitor.Scalar) ctrl = visitor.Alias(key, node, path);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (ctrl instanceof Node.Node) {
|
|
30
|
-
const parent = path[path.length - 1];
|
|
31
|
-
|
|
32
|
-
if (parent instanceof YAMLMap.YAMLMap || parent instanceof YAMLSeq.YAMLSeq) {
|
|
33
|
-
parent.items[key] = ctrl;
|
|
34
|
-
} else if (parent instanceof Pair.Pair) {
|
|
35
|
-
if (key === 'key') parent.key = ctrl;else parent.value = ctrl;
|
|
36
|
-
} else if (parent && parent.type === constants.Type.DOCUMENT) {
|
|
37
|
-
parent.contents = ctrl;
|
|
38
|
-
} else {
|
|
39
|
-
const pt = parent && parent.type;
|
|
40
|
-
throw new Error(`Cannot replace node with ${pt} parent`);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return _visit(key, ctrl, visitor, path);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (typeof ctrl !== 'symbol') {
|
|
47
|
-
if (node instanceof YAMLMap.YAMLMap || node instanceof YAMLSeq.YAMLSeq) {
|
|
48
|
-
path = Object.freeze(path.concat(node));
|
|
49
|
-
|
|
50
|
-
for (let i = 0; i < node.items.length; ++i) {
|
|
51
|
-
const ci = _visit(i, node.items[i], visitor, path);
|
|
52
|
-
|
|
53
|
-
if (typeof ci === 'number') i = ci - 1;else if (ci === BREAK) return BREAK;else if (ci === REMOVE) {
|
|
54
|
-
node.items.splice(i, 1);
|
|
55
|
-
i -= 1;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
} else if (node instanceof Pair.Pair) {
|
|
59
|
-
path = Object.freeze(path.concat(node));
|
|
60
|
-
|
|
61
|
-
const ck = _visit('key', node.key, visitor, path);
|
|
62
|
-
|
|
63
|
-
if (ck === BREAK) return BREAK;else if (ck === REMOVE) node.key = null;
|
|
64
|
-
|
|
65
|
-
const cv = _visit('value', node.value, visitor, path);
|
|
66
|
-
|
|
67
|
-
if (cv === BREAK) return BREAK;else if (cv === REMOVE) node.value = null;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return ctrl;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function visit(node, visitor) {
|
|
75
|
-
if (node && node.type === constants.Type.DOCUMENT) {
|
|
76
|
-
const cd = _visit(null, node.contents, visitor, Object.freeze([node]));
|
|
77
|
-
|
|
78
|
-
if (cd === REMOVE) node.contents = null;
|
|
79
|
-
} else _visit(null, node, visitor, Object.freeze([]));
|
|
80
|
-
}
|
|
81
|
-
visit.BREAK = BREAK;
|
|
82
|
-
visit.SKIP = SKIP;
|
|
83
|
-
visit.REMOVE = REMOVE;
|
|
84
|
-
|
|
85
|
-
exports.visit = visit;
|
package/dist/constants.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const Char = {
|
|
4
|
-
ANCHOR: '&',
|
|
5
|
-
COMMENT: '#',
|
|
6
|
-
TAG: '!',
|
|
7
|
-
DIRECTIVES_END: '-',
|
|
8
|
-
DOCUMENT_END: '.'
|
|
9
|
-
};
|
|
10
|
-
const LogLevel = Object.assign(['silent', 'error', 'warn', 'debug'], {
|
|
11
|
-
SILENT: 0,
|
|
12
|
-
ERROR: 1,
|
|
13
|
-
WARN: 2,
|
|
14
|
-
DEBUG: 3
|
|
15
|
-
});
|
|
16
|
-
const Type = {
|
|
17
|
-
ALIAS: 'ALIAS',
|
|
18
|
-
BLANK_LINE: 'BLANK_LINE',
|
|
19
|
-
BLOCK_FOLDED: 'BLOCK_FOLDED',
|
|
20
|
-
BLOCK_LITERAL: 'BLOCK_LITERAL',
|
|
21
|
-
COMMENT: 'COMMENT',
|
|
22
|
-
DIRECTIVE: 'DIRECTIVE',
|
|
23
|
-
DOCUMENT: 'DOCUMENT',
|
|
24
|
-
FLOW_MAP: 'FLOW_MAP',
|
|
25
|
-
FLOW_SEQ: 'FLOW_SEQ',
|
|
26
|
-
MAP: 'MAP',
|
|
27
|
-
MAP_KEY: 'MAP_KEY',
|
|
28
|
-
MAP_VALUE: 'MAP_VALUE',
|
|
29
|
-
PLAIN: 'PLAIN',
|
|
30
|
-
QUOTE_DOUBLE: 'QUOTE_DOUBLE',
|
|
31
|
-
QUOTE_SINGLE: 'QUOTE_SINGLE',
|
|
32
|
-
SEQ: 'SEQ',
|
|
33
|
-
SEQ_ITEM: 'SEQ_ITEM'
|
|
34
|
-
};
|
|
35
|
-
const defaultTagPrefix = 'tag:yaml.org,2002:';
|
|
36
|
-
const defaultTags = {
|
|
37
|
-
MAP: 'tag:yaml.org,2002:map',
|
|
38
|
-
SEQ: 'tag:yaml.org,2002:seq',
|
|
39
|
-
STR: 'tag:yaml.org,2002:str'
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
exports.Char = Char;
|
|
43
|
-
exports.LogLevel = LogLevel;
|
|
44
|
-
exports.Type = Type;
|
|
45
|
-
exports.defaultTagPrefix = defaultTagPrefix;
|
|
46
|
-
exports.defaultTags = defaultTags;
|
package/dist/cst/Alias.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var Node = require('./Node.js');
|
|
4
|
-
var Range = require('./Range.js');
|
|
5
|
-
|
|
6
|
-
class Alias extends Node.Node {
|
|
7
|
-
/**
|
|
8
|
-
* Parses an *alias from the source
|
|
9
|
-
*
|
|
10
|
-
* @param {ParseContext} context
|
|
11
|
-
* @param {number} start - Index of first character
|
|
12
|
-
* @returns {number} - Index of the character after this scalar
|
|
13
|
-
*/
|
|
14
|
-
parse(context, start) {
|
|
15
|
-
this.context = context;
|
|
16
|
-
const {
|
|
17
|
-
src
|
|
18
|
-
} = context;
|
|
19
|
-
let offset = Node.Node.endOfIdentifier(src, start + 1);
|
|
20
|
-
this.valueRange = new Range.Range(start + 1, offset);
|
|
21
|
-
offset = Node.Node.endOfWhiteSpace(src, offset);
|
|
22
|
-
offset = this.parseComment(offset);
|
|
23
|
-
return offset;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
exports.Alias = Alias;
|
package/dist/cst/BlankLine.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var constants = require('../constants.js');
|
|
4
|
-
var Node = require('./Node.js');
|
|
5
|
-
var Range = require('./Range.js');
|
|
6
|
-
|
|
7
|
-
class BlankLine extends Node.Node {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(constants.Type.BLANK_LINE);
|
|
10
|
-
}
|
|
11
|
-
/* istanbul ignore next */
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
get includesTrailingLines() {
|
|
15
|
-
// This is never called from anywhere, but if it were,
|
|
16
|
-
// this is the value it should return.
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Parses a blank line from the source
|
|
21
|
-
*
|
|
22
|
-
* @param {ParseContext} context
|
|
23
|
-
* @param {number} start - Index of first \n character
|
|
24
|
-
* @returns {number} - Index of the character after this
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
parse(context, start) {
|
|
29
|
-
this.context = context;
|
|
30
|
-
this.range = new Range.Range(start, start + 1);
|
|
31
|
-
return start + 1;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
exports.BlankLine = BlankLine;
|
package/dist/cst/BlockValue.js
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var constants = require('../constants.js');
|
|
4
|
-
var errors = require('../errors.js');
|
|
5
|
-
var Node = require('./Node.js');
|
|
6
|
-
var Range = require('./Range.js');
|
|
7
|
-
|
|
8
|
-
const Chomp = {
|
|
9
|
-
CLIP: 'CLIP',
|
|
10
|
-
KEEP: 'KEEP',
|
|
11
|
-
STRIP: 'STRIP'
|
|
12
|
-
};
|
|
13
|
-
class BlockValue extends Node.Node {
|
|
14
|
-
constructor(type, props) {
|
|
15
|
-
super(type, props);
|
|
16
|
-
this.blockIndent = null;
|
|
17
|
-
this.chomping = Chomp.CLIP;
|
|
18
|
-
this.header = null;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
get includesTrailingLines() {
|
|
22
|
-
return this.chomping === Chomp.KEEP;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
get strValue() {
|
|
26
|
-
if (!this.valueRange || !this.context) return null;
|
|
27
|
-
let {
|
|
28
|
-
start,
|
|
29
|
-
end
|
|
30
|
-
} = this.valueRange;
|
|
31
|
-
const {
|
|
32
|
-
indent,
|
|
33
|
-
src
|
|
34
|
-
} = this.context;
|
|
35
|
-
if (this.valueRange.isEmpty()) return '';
|
|
36
|
-
let lastNewLine = null;
|
|
37
|
-
let ch = src[end - 1];
|
|
38
|
-
|
|
39
|
-
while (ch === '\n' || ch === '\t' || ch === ' ') {
|
|
40
|
-
end -= 1;
|
|
41
|
-
|
|
42
|
-
if (end <= start) {
|
|
43
|
-
if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (ch === '\n') lastNewLine = end;
|
|
47
|
-
ch = src[end - 1];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
let keepStart = end + 1;
|
|
51
|
-
|
|
52
|
-
if (lastNewLine) {
|
|
53
|
-
if (this.chomping === Chomp.KEEP) {
|
|
54
|
-
keepStart = lastNewLine;
|
|
55
|
-
end = this.valueRange.end;
|
|
56
|
-
} else {
|
|
57
|
-
end = lastNewLine;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const bi = indent + this.blockIndent;
|
|
62
|
-
const folded = this.type === constants.Type.BLOCK_FOLDED;
|
|
63
|
-
let atStart = true;
|
|
64
|
-
let str = '';
|
|
65
|
-
let sep = '';
|
|
66
|
-
let prevMoreIndented = false;
|
|
67
|
-
|
|
68
|
-
for (let i = start; i < end; ++i) {
|
|
69
|
-
for (let j = 0; j < bi; ++j) {
|
|
70
|
-
if (src[i] !== ' ') break;
|
|
71
|
-
i += 1;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const ch = src[i];
|
|
75
|
-
|
|
76
|
-
if (ch === '\n') {
|
|
77
|
-
if (sep === '\n') str += '\n';else sep = '\n';
|
|
78
|
-
} else {
|
|
79
|
-
const lineEnd = Node.Node.endOfLine(src, i);
|
|
80
|
-
const line = src.slice(i, lineEnd);
|
|
81
|
-
i = lineEnd;
|
|
82
|
-
|
|
83
|
-
if (folded && (ch === ' ' || ch === '\t') && i < keepStart) {
|
|
84
|
-
if (sep === ' ') sep = '\n';else if (!prevMoreIndented && !atStart && sep === '\n') sep = '\n\n';
|
|
85
|
-
str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '')
|
|
86
|
-
|
|
87
|
-
sep = lineEnd < end && src[lineEnd] || '';
|
|
88
|
-
prevMoreIndented = true;
|
|
89
|
-
} else {
|
|
90
|
-
str += sep + line;
|
|
91
|
-
sep = folded && i < keepStart ? ' ' : '\n';
|
|
92
|
-
prevMoreIndented = false;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (atStart && line !== '') atStart = false;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return this.chomping === Chomp.STRIP ? str : str + '\n';
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
parseBlockHeader(start) {
|
|
103
|
-
const {
|
|
104
|
-
src
|
|
105
|
-
} = this.context;
|
|
106
|
-
let offset = start + 1;
|
|
107
|
-
let bi = '';
|
|
108
|
-
|
|
109
|
-
while (true) {
|
|
110
|
-
const ch = src[offset];
|
|
111
|
-
|
|
112
|
-
switch (ch) {
|
|
113
|
-
case '-':
|
|
114
|
-
this.chomping = Chomp.STRIP;
|
|
115
|
-
break;
|
|
116
|
-
|
|
117
|
-
case '+':
|
|
118
|
-
this.chomping = Chomp.KEEP;
|
|
119
|
-
break;
|
|
120
|
-
|
|
121
|
-
case '0':
|
|
122
|
-
case '1':
|
|
123
|
-
case '2':
|
|
124
|
-
case '3':
|
|
125
|
-
case '4':
|
|
126
|
-
case '5':
|
|
127
|
-
case '6':
|
|
128
|
-
case '7':
|
|
129
|
-
case '8':
|
|
130
|
-
case '9':
|
|
131
|
-
bi += ch;
|
|
132
|
-
break;
|
|
133
|
-
|
|
134
|
-
default:
|
|
135
|
-
this.blockIndent = Number(bi) || null;
|
|
136
|
-
this.header = new Range.Range(start, offset);
|
|
137
|
-
return offset;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
offset += 1;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
parseBlockValue(start) {
|
|
145
|
-
const {
|
|
146
|
-
indent,
|
|
147
|
-
src
|
|
148
|
-
} = this.context;
|
|
149
|
-
const explicit = !!this.blockIndent;
|
|
150
|
-
let offset = start;
|
|
151
|
-
let valueEnd = start;
|
|
152
|
-
let minBlockIndent = 1;
|
|
153
|
-
|
|
154
|
-
for (let ch = src[offset]; ch === '\n'; ch = src[offset]) {
|
|
155
|
-
offset += 1;
|
|
156
|
-
if (Node.Node.atDocumentBoundary(src, offset)) break;
|
|
157
|
-
const end = Node.Node.endOfBlockIndent(src, indent, offset); // should not include tab?
|
|
158
|
-
|
|
159
|
-
if (end === null) break;
|
|
160
|
-
const ch = src[end];
|
|
161
|
-
const lineIndent = end - (offset + indent);
|
|
162
|
-
|
|
163
|
-
if (!this.blockIndent) {
|
|
164
|
-
// no explicit block indent, none yet detected
|
|
165
|
-
if (src[end] !== '\n') {
|
|
166
|
-
// first line with non-whitespace content
|
|
167
|
-
if (lineIndent < minBlockIndent) {
|
|
168
|
-
const msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';
|
|
169
|
-
this.error = new errors.YAMLSemanticError(this, msg);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
this.blockIndent = lineIndent;
|
|
173
|
-
} else if (lineIndent > minBlockIndent) {
|
|
174
|
-
// empty line with more whitespace
|
|
175
|
-
minBlockIndent = lineIndent;
|
|
176
|
-
}
|
|
177
|
-
} else if (ch && ch !== '\n' && lineIndent < this.blockIndent) {
|
|
178
|
-
if (src[end] === '#') break;
|
|
179
|
-
|
|
180
|
-
if (!this.error) {
|
|
181
|
-
const src = explicit ? 'explicit indentation indicator' : 'first line';
|
|
182
|
-
const msg = `Block scalars must not be less indented than their ${src}`;
|
|
183
|
-
this.error = new errors.YAMLSemanticError(this, msg);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (src[end] === '\n') {
|
|
188
|
-
offset = end;
|
|
189
|
-
} else {
|
|
190
|
-
offset = valueEnd = Node.Node.endOfLine(src, end);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
if (this.chomping !== Chomp.KEEP) {
|
|
195
|
-
offset = src[valueEnd] ? valueEnd + 1 : valueEnd;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
this.valueRange = new Range.Range(start + 1, offset);
|
|
199
|
-
return offset;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Parses a block value from the source
|
|
203
|
-
*
|
|
204
|
-
* Accepted forms are:
|
|
205
|
-
* ```
|
|
206
|
-
* BS
|
|
207
|
-
* block
|
|
208
|
-
* lines
|
|
209
|
-
*
|
|
210
|
-
* BS #comment
|
|
211
|
-
* block
|
|
212
|
-
* lines
|
|
213
|
-
* ```
|
|
214
|
-
* where the block style BS matches the regexp `[|>][-+1-9]*` and block lines
|
|
215
|
-
* are empty or have an indent level greater than `indent`.
|
|
216
|
-
*
|
|
217
|
-
* @param {ParseContext} context
|
|
218
|
-
* @param {number} start - Index of first character
|
|
219
|
-
* @returns {number} - Index of the character after this block
|
|
220
|
-
*/
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
parse(context, start) {
|
|
224
|
-
this.context = context;
|
|
225
|
-
const {
|
|
226
|
-
src
|
|
227
|
-
} = context;
|
|
228
|
-
let offset = this.parseBlockHeader(start);
|
|
229
|
-
offset = Node.Node.endOfWhiteSpace(src, offset);
|
|
230
|
-
offset = this.parseComment(offset);
|
|
231
|
-
offset = this.parseBlockValue(offset);
|
|
232
|
-
return offset;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
setOrigRanges(cr, offset) {
|
|
236
|
-
offset = super.setOrigRanges(cr, offset);
|
|
237
|
-
return this.header ? this.header.setOrigRange(cr, offset) : offset;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
exports.BlockValue = BlockValue;
|
|
243
|
-
exports.Chomp = Chomp;
|