yaml 1.9.1 → 1.10.2

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