yaml 1.8.3 → 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.
Files changed (163) hide show
  1. package/README.md +4 -4
  2. package/browser/dist/PlainValue-ff5147c6.js +1277 -0
  3. package/browser/dist/Schema-2bf2c74e.js +679 -0
  4. package/browser/dist/index.js +923 -38
  5. package/browser/dist/legacy-exports.js +3 -0
  6. package/browser/dist/parse-cst.js +1904 -0
  7. package/browser/dist/resolveSeq-04825f30.js +2373 -0
  8. package/browser/dist/types.js +4 -0
  9. package/browser/dist/util.js +2 -0
  10. package/browser/dist/warnings-0e4b70d3.js +499 -0
  11. package/browser/index.js +1 -1
  12. package/browser/map.js +2 -2
  13. package/browser/pair.js +2 -2
  14. package/browser/parse-cst.js +1 -1
  15. package/browser/scalar.js +2 -2
  16. package/browser/schema.js +8 -6
  17. package/browser/seq.js +2 -2
  18. package/browser/types/binary.js +3 -2
  19. package/browser/types/omap.js +3 -2
  20. package/browser/types/pairs.js +3 -2
  21. package/browser/types/set.js +3 -2
  22. package/browser/types/timestamp.js +6 -6
  23. package/browser/types.js +1 -11
  24. package/browser/util.js +1 -15
  25. package/dist/Document-2cf6b08c.js +757 -0
  26. package/dist/PlainValue-ec8e588e.js +876 -0
  27. package/dist/Schema-42e9705c.js +522 -0
  28. package/dist/index.js +21 -43
  29. package/dist/legacy-exports.js +16 -0
  30. package/dist/parse-cst.js +1747 -0
  31. package/dist/resolveSeq-4a68b39b.js +2115 -0
  32. package/dist/test-events.js +11 -14
  33. package/dist/types.js +23 -0
  34. package/dist/util.js +19 -0
  35. package/dist/warnings-39684f17.js +416 -0
  36. package/index.d.ts +372 -0
  37. package/index.js +1 -1
  38. package/map.js +2 -2
  39. package/package.json +32 -45
  40. package/pair.js +2 -2
  41. package/parse-cst.d.ts +187 -0
  42. package/parse-cst.js +1 -1
  43. package/scalar.js +2 -2
  44. package/schema.js +8 -6
  45. package/seq.js +2 -2
  46. package/types/binary.js +3 -2
  47. package/types/omap.js +3 -2
  48. package/types/pairs.js +3 -2
  49. package/types/set.js +3 -2
  50. package/types/timestamp.js +6 -6
  51. package/types.d.ts +407 -0
  52. package/types.js +16 -10
  53. package/types.mjs +15 -18
  54. package/util.d.ts +86 -0
  55. package/util.js +14 -13
  56. package/util.mjs +13 -19
  57. package/browser/dist/Anchors.js +0 -133
  58. package/browser/dist/Document.js +0 -819
  59. package/browser/dist/addComment.js +0 -8
  60. package/browser/dist/constants.js +0 -26
  61. package/browser/dist/cst/Alias.js +0 -42
  62. package/browser/dist/cst/BlankLine.js +0 -56
  63. package/browser/dist/cst/BlockValue.js +0 -247
  64. package/browser/dist/cst/Collection.js +0 -274
  65. package/browser/dist/cst/CollectionItem.js +0 -136
  66. package/browser/dist/cst/Comment.js +0 -40
  67. package/browser/dist/cst/Directive.js +0 -72
  68. package/browser/dist/cst/Document.js +0 -282
  69. package/browser/dist/cst/FlowCollection.js +0 -216
  70. package/browser/dist/cst/Node.js +0 -388
  71. package/browser/dist/cst/ParseContext.js +0 -248
  72. package/browser/dist/cst/PlainValue.js +0 -166
  73. package/browser/dist/cst/QuoteDouble.js +0 -241
  74. package/browser/dist/cst/QuoteSingle.js +0 -116
  75. package/browser/dist/cst/Range.js +0 -67
  76. package/browser/dist/cst/parse.js +0 -48
  77. package/browser/dist/cst/source-utils.js +0 -168
  78. package/browser/dist/errors.js +0 -112
  79. package/browser/dist/foldFlowLines.js +0 -138
  80. package/browser/dist/listTagNames.js +0 -28
  81. package/browser/dist/schema/Alias.js +0 -139
  82. package/browser/dist/schema/Collection.js +0 -267
  83. package/browser/dist/schema/Map.js +0 -178
  84. package/browser/dist/schema/Merge.js +0 -127
  85. package/browser/dist/schema/Node.js +0 -7
  86. package/browser/dist/schema/Pair.js +0 -171
  87. package/browser/dist/schema/Scalar.js +0 -38
  88. package/browser/dist/schema/Seq.js +0 -114
  89. package/browser/dist/schema/index.js +0 -382
  90. package/browser/dist/schema/parseMap.js +0 -312
  91. package/browser/dist/schema/parseSeq.js +0 -168
  92. package/browser/dist/schema/parseUtils.js +0 -110
  93. package/browser/dist/stringify.js +0 -331
  94. package/browser/dist/tags/core.js +0 -126
  95. package/browser/dist/tags/failsafe/index.js +0 -4
  96. package/browser/dist/tags/failsafe/map.js +0 -56
  97. package/browser/dist/tags/failsafe/seq.js +0 -43
  98. package/browser/dist/tags/failsafe/string.js +0 -28
  99. package/browser/dist/tags/index.js +0 -36
  100. package/browser/dist/tags/json.js +0 -76
  101. package/browser/dist/tags/options.js +0 -23
  102. package/browser/dist/tags/yaml-1.1/binary.js +0 -87
  103. package/browser/dist/tags/yaml-1.1/index.js +0 -157
  104. package/browser/dist/tags/yaml-1.1/omap.js +0 -142
  105. package/browser/dist/tags/yaml-1.1/pairs.js +0 -81
  106. package/browser/dist/tags/yaml-1.1/set.js +0 -114
  107. package/browser/dist/tags/yaml-1.1/timestamp.js +0 -97
  108. package/browser/dist/test-events.js +0 -163
  109. package/browser/dist/toJSON.js +0 -20
  110. package/browser/dist/warnings.js +0 -28
  111. package/dist/Anchors.js +0 -125
  112. package/dist/Document.js +0 -710
  113. package/dist/addComment.js +0 -17
  114. package/dist/constants.js +0 -34
  115. package/dist/cst/Alias.js +0 -38
  116. package/dist/cst/BlankLine.js +0 -56
  117. package/dist/cst/BlockValue.js +0 -248
  118. package/dist/cst/Collection.js +0 -271
  119. package/dist/cst/CollectionItem.js +0 -140
  120. package/dist/cst/Comment.js +0 -38
  121. package/dist/cst/Directive.js +0 -64
  122. package/dist/cst/Document.js +0 -281
  123. package/dist/cst/FlowCollection.js +0 -218
  124. package/dist/cst/Node.js +0 -365
  125. package/dist/cst/ParseContext.js +0 -258
  126. package/dist/cst/PlainValue.js +0 -161
  127. package/dist/cst/QuoteDouble.js +0 -237
  128. package/dist/cst/QuoteSingle.js +0 -113
  129. package/dist/cst/Range.js +0 -63
  130. package/dist/cst/parse.js +0 -55
  131. package/dist/cst/source-utils.js +0 -178
  132. package/dist/errors.js +0 -102
  133. package/dist/foldFlowLines.js +0 -146
  134. package/dist/listTagNames.js +0 -38
  135. package/dist/schema/Alias.js +0 -110
  136. package/dist/schema/Collection.js +0 -188
  137. package/dist/schema/Map.js +0 -103
  138. package/dist/schema/Merge.js +0 -80
  139. package/dist/schema/Node.js +0 -10
  140. package/dist/schema/Pair.js +0 -161
  141. package/dist/schema/Scalar.js +0 -31
  142. package/dist/schema/Seq.js +0 -78
  143. package/dist/schema/index.js +0 -315
  144. package/dist/schema/parseMap.js +0 -343
  145. package/dist/schema/parseSeq.js +0 -180
  146. package/dist/schema/parseUtils.js +0 -104
  147. package/dist/stringify.js +0 -358
  148. package/dist/tags/core.js +0 -114
  149. package/dist/tags/failsafe/index.js +0 -17
  150. package/dist/tags/failsafe/map.js +0 -37
  151. package/dist/tags/failsafe/seq.js +0 -34
  152. package/dist/tags/failsafe/string.js +0 -40
  153. package/dist/tags/index.js +0 -62
  154. package/dist/tags/json.js +0 -60
  155. package/dist/tags/options.js +0 -35
  156. package/dist/tags/yaml-1.1/binary.js +0 -97
  157. package/dist/tags/yaml-1.1/index.js +0 -131
  158. package/dist/tags/yaml-1.1/omap.js +0 -105
  159. package/dist/tags/yaml-1.1/pairs.js +0 -80
  160. package/dist/tags/yaml-1.1/set.js +0 -91
  161. package/dist/tags/yaml-1.1/timestamp.js +0 -93
  162. package/dist/toJSON.js +0 -23
  163. package/dist/warnings.js +0 -39
@@ -1,216 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
- import _get from "@babel/runtime/helpers/get";
6
- import _inherits from "@babel/runtime/helpers/inherits";
7
- import { Type } from '../constants';
8
- import { YAMLSemanticError } from '../errors';
9
- import BlankLine from './BlankLine';
10
- import Comment from './Comment';
11
- import Node from './Node';
12
- import Range from './Range';
13
-
14
- var FlowCollection = /*#__PURE__*/function (_Node) {
15
- _inherits(FlowCollection, _Node);
16
-
17
- function FlowCollection(type, props) {
18
- var _this;
19
-
20
- _classCallCheck(this, FlowCollection);
21
-
22
- _this = _possibleConstructorReturn(this, _getPrototypeOf(FlowCollection).call(this, type, props));
23
- _this.items = null;
24
- return _this;
25
- }
26
-
27
- _createClass(FlowCollection, [{
28
- key: "prevNodeIsJsonLike",
29
- value: function prevNodeIsJsonLike() {
30
- var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.items.length;
31
- var node = this.items[idx - 1];
32
- return !!node && (node.jsonLike || node.type === Type.COMMENT && this.nodeIsJsonLike(idx - 1));
33
- }
34
- /**
35
- * @param {ParseContext} context
36
- * @param {number} start - Index of first character
37
- * @returns {number} - Index of the character after this
38
- */
39
-
40
- }, {
41
- key: "parse",
42
- value: function parse(context, start) {
43
- this.context = context;
44
- var parseNode = context.parseNode,
45
- src = context.src;
46
- var indent = context.indent,
47
- lineStart = context.lineStart;
48
- var char = src[start]; // { or [
49
-
50
- this.items = [{
51
- char: char,
52
- offset: start
53
- }];
54
- var offset = Node.endOfWhiteSpace(src, start + 1);
55
- char = src[offset];
56
-
57
- while (char && char !== ']' && char !== '}') {
58
- switch (char) {
59
- case '\n':
60
- {
61
- lineStart = offset + 1;
62
- var wsEnd = Node.endOfWhiteSpace(src, lineStart);
63
-
64
- if (src[wsEnd] === '\n') {
65
- var blankLine = new BlankLine();
66
- lineStart = blankLine.parse({
67
- src: src
68
- }, lineStart);
69
- this.items.push(blankLine);
70
- }
71
-
72
- offset = Node.endOfIndent(src, lineStart);
73
-
74
- if (offset <= lineStart + indent) {
75
- char = src[offset];
76
-
77
- if (offset < lineStart + indent || char !== ']' && char !== '}') {
78
- var msg = 'Insufficient indentation in flow collection';
79
- this.error = new YAMLSemanticError(this, msg);
80
- }
81
- }
82
- }
83
- break;
84
-
85
- case ',':
86
- {
87
- this.items.push({
88
- char: char,
89
- offset: offset
90
- });
91
- offset += 1;
92
- }
93
- break;
94
-
95
- case '#':
96
- {
97
- var comment = new Comment();
98
- offset = comment.parse({
99
- src: src
100
- }, offset);
101
- this.items.push(comment);
102
- }
103
- break;
104
-
105
- case '?':
106
- case ':':
107
- {
108
- var next = src[offset + 1];
109
-
110
- if (next === '\n' || next === '\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace
111
- char === ':' && this.prevNodeIsJsonLike()) {
112
- this.items.push({
113
- char: char,
114
- offset: offset
115
- });
116
- offset += 1;
117
- break;
118
- }
119
- }
120
- // fallthrough
121
-
122
- default:
123
- {
124
- var node = parseNode({
125
- atLineStart: false,
126
- inCollection: false,
127
- inFlow: true,
128
- indent: -1,
129
- lineStart: lineStart,
130
- parent: this
131
- }, offset);
132
-
133
- if (!node) {
134
- // at next document start
135
- this.valueRange = new Range(start, offset);
136
- return offset;
137
- }
138
-
139
- this.items.push(node);
140
- offset = Node.normalizeOffset(src, node.range.end);
141
- }
142
- }
143
-
144
- offset = Node.endOfWhiteSpace(src, offset);
145
- char = src[offset];
146
- }
147
-
148
- this.valueRange = new Range(start, offset + 1);
149
-
150
- if (char) {
151
- this.items.push({
152
- char: char,
153
- offset: offset
154
- });
155
- offset = Node.endOfWhiteSpace(src, offset + 1);
156
- offset = this.parseComment(offset);
157
- }
158
-
159
- return offset;
160
- }
161
- }, {
162
- key: "setOrigRanges",
163
- value: function setOrigRanges(cr, offset) {
164
- offset = _get(_getPrototypeOf(FlowCollection.prototype), "setOrigRanges", this).call(this, cr, offset);
165
- this.items.forEach(function (node) {
166
- if (node instanceof Node) {
167
- offset = node.setOrigRanges(cr, offset);
168
- } else if (cr.length === 0) {
169
- node.origOffset = node.offset;
170
- } else {
171
- var i = offset;
172
-
173
- while (i < cr.length) {
174
- if (cr[i] > node.offset) break;else ++i;
175
- }
176
-
177
- node.origOffset = node.offset + i;
178
- offset = i;
179
- }
180
- });
181
- return offset;
182
- }
183
- }, {
184
- key: "toString",
185
- value: function toString() {
186
- var src = this.context.src,
187
- items = this.items,
188
- range = this.range,
189
- value = this.value;
190
- if (value != null) return value;
191
- var nodes = items.filter(function (item) {
192
- return item instanceof Node;
193
- });
194
- var str = '';
195
- var prevEnd = range.start;
196
- nodes.forEach(function (node) {
197
- var prefix = src.slice(prevEnd, node.range.start);
198
- prevEnd = node.range.end;
199
- str += prefix + String(node);
200
-
201
- if (str[str.length - 1] === '\n' && src[prevEnd - 1] !== '\n' && src[prevEnd] === '\n') {
202
- // Comment range does not include the terminal newline, but its
203
- // stringified value does. Without this fix, newlines at comment ends
204
- // get duplicated.
205
- prevEnd += 1;
206
- }
207
- });
208
- str += src.slice(prevEnd, range.end);
209
- return Node.addStringTerminator(src, range.end, str);
210
- }
211
- }]);
212
-
213
- return FlowCollection;
214
- }(Node);
215
-
216
- export { FlowCollection as default };
@@ -1,388 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/createClass";
4
- import { Char, Type } from '../constants';
5
- import { getLinePos } from './source-utils';
6
- import Range from './Range';
7
- /** Root class of all nodes */
8
-
9
- var Node = /*#__PURE__*/function () {
10
- _createClass(Node, null, [{
11
- key: "addStringTerminator",
12
- value: function addStringTerminator(src, offset, str) {
13
- if (str[str.length - 1] === '\n') return str;
14
- var next = Node.endOfWhiteSpace(src, offset);
15
- return next >= src.length || src[next] === '\n' ? str + '\n' : str;
16
- } // ^(---|...)
17
-
18
- }, {
19
- key: "atDocumentBoundary",
20
- value: function atDocumentBoundary(src, offset, sep) {
21
- var ch0 = src[offset];
22
- if (!ch0) return true;
23
- var prev = src[offset - 1];
24
- if (prev && prev !== '\n') return false;
25
-
26
- if (sep) {
27
- if (ch0 !== sep) return false;
28
- } else {
29
- if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;
30
- }
31
-
32
- var ch1 = src[offset + 1];
33
- var ch2 = src[offset + 2];
34
- if (ch1 !== ch0 || ch2 !== ch0) return false;
35
- var ch3 = src[offset + 3];
36
- return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' ';
37
- }
38
- }, {
39
- key: "endOfIdentifier",
40
- value: function endOfIdentifier(src, offset) {
41
- var ch = src[offset];
42
- var isVerbatim = ch === '<';
43
- var notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ','];
44
-
45
- while (ch && notOk.indexOf(ch) === -1) {
46
- ch = src[offset += 1];
47
- }
48
-
49
- if (isVerbatim && ch === '>') offset += 1;
50
- return offset;
51
- }
52
- }, {
53
- key: "endOfIndent",
54
- value: function endOfIndent(src, offset) {
55
- var ch = src[offset];
56
-
57
- while (ch === ' ') {
58
- ch = src[offset += 1];
59
- }
60
-
61
- return offset;
62
- }
63
- }, {
64
- key: "endOfLine",
65
- value: function endOfLine(src, offset) {
66
- var ch = src[offset];
67
-
68
- while (ch && ch !== '\n') {
69
- ch = src[offset += 1];
70
- }
71
-
72
- return offset;
73
- }
74
- }, {
75
- key: "endOfWhiteSpace",
76
- value: function endOfWhiteSpace(src, offset) {
77
- var ch = src[offset];
78
-
79
- while (ch === '\t' || ch === ' ') {
80
- ch = src[offset += 1];
81
- }
82
-
83
- return offset;
84
- }
85
- }, {
86
- key: "startOfLine",
87
- value: function startOfLine(src, offset) {
88
- var ch = src[offset - 1];
89
- if (ch === '\n') return offset;
90
-
91
- while (ch && ch !== '\n') {
92
- ch = src[offset -= 1];
93
- }
94
-
95
- return offset + 1;
96
- }
97
- /**
98
- * End of indentation, or null if the line's indent level is not more
99
- * than `indent`
100
- *
101
- * @param {string} src
102
- * @param {number} indent
103
- * @param {number} lineStart
104
- * @returns {?number}
105
- */
106
-
107
- }, {
108
- key: "endOfBlockIndent",
109
- value: function endOfBlockIndent(src, indent, lineStart) {
110
- var inEnd = Node.endOfIndent(src, lineStart);
111
-
112
- if (inEnd > lineStart + indent) {
113
- return inEnd;
114
- } else {
115
- var wsEnd = Node.endOfWhiteSpace(src, inEnd);
116
- var ch = src[wsEnd];
117
- if (!ch || ch === '\n') return wsEnd;
118
- }
119
-
120
- return null;
121
- }
122
- }, {
123
- key: "atBlank",
124
- value: function atBlank(src, offset, endAsBlank) {
125
- var ch = src[offset];
126
- return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch;
127
- }
128
- }, {
129
- key: "nextNodeIsIndented",
130
- value: function nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {
131
- if (!ch || indentDiff < 0) return false;
132
- if (indentDiff > 0) return true;
133
- return indicatorAsIndent && ch === '-';
134
- } // should be at line or string end, or at next non-whitespace char
135
-
136
- }, {
137
- key: "normalizeOffset",
138
- value: function normalizeOffset(src, offset) {
139
- var ch = src[offset];
140
- return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);
141
- } // fold single newline into space, multiple newlines to N - 1 newlines
142
- // presumes src[offset] === '\n'
143
-
144
- }, {
145
- key: "foldNewline",
146
- value: function foldNewline(src, offset, indent) {
147
- var inCount = 0;
148
- var error = false;
149
- var fold = '';
150
- var ch = src[offset + 1];
151
-
152
- while (ch === ' ' || ch === '\t' || ch === '\n') {
153
- switch (ch) {
154
- case '\n':
155
- inCount = 0;
156
- offset += 1;
157
- fold += '\n';
158
- break;
159
-
160
- case '\t':
161
- if (inCount <= indent) error = true;
162
- offset = Node.endOfWhiteSpace(src, offset + 2) - 1;
163
- break;
164
-
165
- case ' ':
166
- inCount += 1;
167
- offset += 1;
168
- break;
169
- }
170
-
171
- ch = src[offset + 1];
172
- }
173
-
174
- if (!fold) fold = ' ';
175
- if (ch && inCount <= indent) error = true;
176
- return {
177
- fold: fold,
178
- offset: offset,
179
- error: error
180
- };
181
- }
182
- }]);
183
-
184
- function Node(type, props, context) {
185
- _classCallCheck(this, Node);
186
-
187
- Object.defineProperty(this, 'context', {
188
- value: context || null,
189
- writable: true
190
- });
191
- this.error = null;
192
- this.range = null;
193
- this.valueRange = null;
194
- this.props = props || [];
195
- this.type = type;
196
- this.value = null;
197
- }
198
-
199
- _createClass(Node, [{
200
- key: "getPropValue",
201
- value: function getPropValue(idx, key, skipKey) {
202
- if (!this.context) return null;
203
- var src = this.context.src;
204
- var prop = this.props[idx];
205
- return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;
206
- }
207
- }, {
208
- key: "commentHasRequiredWhitespace",
209
- value: function commentHasRequiredWhitespace(start) {
210
- var src = this.context.src;
211
- if (this.header && start === this.header.end) return false;
212
- if (!this.valueRange) return false;
213
- var end = this.valueRange.end;
214
- return start !== end || Node.atBlank(src, end - 1);
215
- }
216
- }, {
217
- key: "parseComment",
218
- value: function parseComment(start) {
219
- var src = this.context.src;
220
-
221
- if (src[start] === Char.COMMENT) {
222
- var end = Node.endOfLine(src, start + 1);
223
- var commentRange = new Range(start, end);
224
- this.props.push(commentRange);
225
- return end;
226
- }
227
-
228
- return start;
229
- }
230
- /**
231
- * Populates the `origStart` and `origEnd` values of all ranges for this
232
- * node. Extended by child classes to handle descendant nodes.
233
- *
234
- * @param {number[]} cr - Positions of dropped CR characters
235
- * @param {number} offset - Starting index of `cr` from the last call
236
- * @returns {number} - The next offset, matching the one found for `origStart`
237
- */
238
-
239
- }, {
240
- key: "setOrigRanges",
241
- value: function setOrigRanges(cr, offset) {
242
- if (this.range) offset = this.range.setOrigRange(cr, offset);
243
- if (this.valueRange) this.valueRange.setOrigRange(cr, offset);
244
- this.props.forEach(function (prop) {
245
- return prop.setOrigRange(cr, offset);
246
- });
247
- return offset;
248
- }
249
- }, {
250
- key: "toString",
251
- value: function toString() {
252
- var src = this.context.src,
253
- range = this.range,
254
- value = this.value;
255
- if (value != null) return value;
256
- var str = src.slice(range.start, range.end);
257
- return Node.addStringTerminator(src, range.end, str);
258
- }
259
- }, {
260
- key: "anchor",
261
- get: function get() {
262
- for (var i = 0; i < this.props.length; ++i) {
263
- var anchor = this.getPropValue(i, Char.ANCHOR, true);
264
- if (anchor != null) return anchor;
265
- }
266
-
267
- return null;
268
- }
269
- }, {
270
- key: "comment",
271
- get: function get() {
272
- var comments = [];
273
-
274
- for (var i = 0; i < this.props.length; ++i) {
275
- var comment = this.getPropValue(i, Char.COMMENT, true);
276
- if (comment != null) comments.push(comment);
277
- }
278
-
279
- return comments.length > 0 ? comments.join('\n') : null;
280
- }
281
- }, {
282
- key: "hasComment",
283
- get: function get() {
284
- if (this.context) {
285
- var src = this.context.src;
286
-
287
- for (var i = 0; i < this.props.length; ++i) {
288
- if (src[this.props[i].start] === Char.COMMENT) return true;
289
- }
290
- }
291
-
292
- return false;
293
- }
294
- }, {
295
- key: "hasProps",
296
- get: function get() {
297
- if (this.context) {
298
- var src = this.context.src;
299
-
300
- for (var i = 0; i < this.props.length; ++i) {
301
- if (src[this.props[i].start] !== Char.COMMENT) return true;
302
- }
303
- }
304
-
305
- return false;
306
- }
307
- }, {
308
- key: "includesTrailingLines",
309
- get: function get() {
310
- return false;
311
- }
312
- }, {
313
- key: "jsonLike",
314
- get: function get() {
315
- var jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];
316
- return jsonLikeTypes.indexOf(this.type) !== -1;
317
- }
318
- }, {
319
- key: "rangeAsLinePos",
320
- get: function get() {
321
- if (!this.range || !this.context) return undefined;
322
- var start = getLinePos(this.range.start, this.context.root);
323
- if (!start) return undefined;
324
- var end = getLinePos(this.range.end, this.context.root);
325
- return {
326
- start: start,
327
- end: end
328
- };
329
- }
330
- }, {
331
- key: "rawValue",
332
- get: function get() {
333
- if (!this.valueRange || !this.context) return null;
334
- var _this$valueRange = this.valueRange,
335
- start = _this$valueRange.start,
336
- end = _this$valueRange.end;
337
- return this.context.src.slice(start, end);
338
- }
339
- }, {
340
- key: "tag",
341
- get: function get() {
342
- for (var i = 0; i < this.props.length; ++i) {
343
- var tag = this.getPropValue(i, Char.TAG, false);
344
-
345
- if (tag != null) {
346
- if (tag[1] === '<') {
347
- return {
348
- verbatim: tag.slice(2, -1)
349
- };
350
- } else {
351
- // eslint-disable-next-line no-unused-vars
352
- var _tag$match = tag.match(/^(.*!)([^!]*)$/),
353
- _tag$match2 = _slicedToArray(_tag$match, 3),
354
- _ = _tag$match2[0],
355
- handle = _tag$match2[1],
356
- suffix = _tag$match2[2];
357
-
358
- return {
359
- handle: handle,
360
- suffix: suffix
361
- };
362
- }
363
- }
364
- }
365
-
366
- return null;
367
- }
368
- }, {
369
- key: "valueRangeContainsNewline",
370
- get: function get() {
371
- if (!this.valueRange || !this.context) return false;
372
- var _this$valueRange2 = this.valueRange,
373
- start = _this$valueRange2.start,
374
- end = _this$valueRange2.end;
375
- var src = this.context.src;
376
-
377
- for (var i = start; i < end; ++i) {
378
- if (src[i] === '\n') return true;
379
- }
380
-
381
- return false;
382
- }
383
- }]);
384
-
385
- return Node;
386
- }();
387
-
388
- export { Node as default };