@rgrove/parse-xml 4.0.1 → 4.2.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 +46 -31
- package/dist/browser.js +692 -300
- package/dist/browser.js.map +4 -4
- package/dist/global.min.js +9 -8
- package/dist/global.min.js.map +4 -4
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/Parser.d.ts +53 -6
- package/dist/lib/Parser.d.ts.map +1 -1
- package/dist/lib/Parser.js +166 -126
- package/dist/lib/Parser.js.map +1 -1
- package/dist/lib/StringScanner.d.ts +15 -21
- package/dist/lib/StringScanner.d.ts.map +1 -1
- package/dist/lib/StringScanner.js +63 -86
- package/dist/lib/StringScanner.js.map +1 -1
- package/dist/lib/XmlDeclaration.d.ts +30 -0
- package/dist/lib/XmlDeclaration.d.ts.map +1 -0
- package/dist/lib/XmlDeclaration.js +36 -0
- package/dist/lib/XmlDeclaration.js.map +1 -0
- package/dist/lib/XmlDocument.d.ts +4 -2
- package/dist/lib/XmlDocument.d.ts.map +1 -1
- package/dist/lib/XmlDocument.js.map +1 -1
- package/dist/lib/XmlDocumentType.d.ts +37 -0
- package/dist/lib/XmlDocumentType.d.ts.map +1 -0
- package/dist/lib/XmlDocumentType.js +39 -0
- package/dist/lib/XmlDocumentType.js.map +1 -0
- package/dist/lib/XmlElement.js.map +1 -1
- package/dist/lib/XmlError.d.ts +24 -0
- package/dist/lib/XmlError.d.ts.map +1 -0
- package/dist/lib/XmlError.js +52 -0
- package/dist/lib/XmlError.js.map +1 -0
- package/dist/lib/XmlNode.d.ts +20 -1
- package/dist/lib/XmlNode.d.ts.map +1 -1
- package/dist/lib/XmlNode.js +28 -3
- package/dist/lib/XmlNode.js.map +1 -1
- package/dist/lib/syntax.d.ts.map +1 -1
- package/dist/lib/syntax.js +18 -23
- package/dist/lib/syntax.js.map +1 -1
- package/dist/lib/types.d.ts +2 -2
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +20 -23
- package/src/index.ts +3 -0
- package/src/lib/Parser.ts +228 -141
- package/src/lib/StringScanner.ts +66 -103
- package/src/lib/XmlDeclaration.ts +58 -0
- package/src/lib/XmlDocument.ts +4 -2
- package/src/lib/XmlDocumentType.ts +67 -0
- package/src/lib/XmlError.ts +80 -0
- package/src/lib/XmlNode.ts +33 -3
- package/src/lib/syntax.ts +12 -18
package/dist/lib/Parser.js
CHANGED
|
@@ -28,8 +28,12 @@ const StringScanner_js_1 = require("./StringScanner.js");
|
|
|
28
28
|
const syntax = __importStar(require("./syntax.js"));
|
|
29
29
|
const XmlCdata_js_1 = require("./XmlCdata.js");
|
|
30
30
|
const XmlComment_js_1 = require("./XmlComment.js");
|
|
31
|
+
const XmlDeclaration_js_1 = require("./XmlDeclaration.js");
|
|
31
32
|
const XmlDocument_js_1 = require("./XmlDocument.js");
|
|
33
|
+
const XmlDocumentType_js_1 = require("./XmlDocumentType.js");
|
|
32
34
|
const XmlElement_js_1 = require("./XmlElement.js");
|
|
35
|
+
const XmlError_js_1 = require("./XmlError.js");
|
|
36
|
+
const XmlNode_js_1 = require("./XmlNode.js");
|
|
33
37
|
const XmlProcessingInstruction_js_1 = require("./XmlProcessingInstruction.js");
|
|
34
38
|
const XmlText_js_1 = require("./XmlText.js");
|
|
35
39
|
const emptyString = '';
|
|
@@ -44,46 +48,53 @@ class Parser {
|
|
|
44
48
|
* @param options Parser options.
|
|
45
49
|
*/
|
|
46
50
|
constructor(xml, options = {}) {
|
|
47
|
-
this.document = new XmlDocument_js_1.XmlDocument();
|
|
48
|
-
this.currentNode =
|
|
51
|
+
let doc = this.document = new XmlDocument_js_1.XmlDocument();
|
|
52
|
+
this.currentNode = doc;
|
|
49
53
|
this.options = options;
|
|
50
|
-
this.scanner = new StringScanner_js_1.StringScanner(
|
|
51
|
-
this.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
while (this.consumeMisc()) { } // eslint-disable-line no-empty
|
|
56
|
-
if (!this.scanner.isEnd) {
|
|
57
|
-
throw this.error('Extra content at the end of the document');
|
|
54
|
+
this.scanner = new StringScanner_js_1.StringScanner(xml);
|
|
55
|
+
if (this.options.includeOffsets) {
|
|
56
|
+
doc.start = 0;
|
|
57
|
+
doc.end = xml.length;
|
|
58
58
|
}
|
|
59
|
+
this.parse();
|
|
59
60
|
}
|
|
60
61
|
/**
|
|
61
62
|
* Adds the given `XmlNode` as a child of `this.currentNode`.
|
|
62
63
|
*/
|
|
63
|
-
addNode(node) {
|
|
64
|
+
addNode(node, charIndex) {
|
|
64
65
|
node.parent = this.currentNode;
|
|
66
|
+
if (this.options.includeOffsets) {
|
|
67
|
+
node.start = this.scanner.charIndexToByteIndex(charIndex);
|
|
68
|
+
node.end = this.scanner.charIndexToByteIndex();
|
|
69
|
+
}
|
|
65
70
|
// @ts-expect-error: XmlDocument has a more limited set of possible children
|
|
66
71
|
// than XmlElement so TypeScript is unhappy, but we always do the right
|
|
67
72
|
// thing.
|
|
68
73
|
this.currentNode.children.push(node);
|
|
74
|
+
return true;
|
|
69
75
|
}
|
|
70
76
|
/**
|
|
71
77
|
* Adds the given _text_ to the document, either by appending it to a
|
|
72
78
|
* preceding `XmlText` node (if possible) or by creating a new `XmlText` node.
|
|
73
79
|
*/
|
|
74
|
-
addText(text) {
|
|
80
|
+
addText(text, charIndex) {
|
|
75
81
|
let { children } = this.currentNode;
|
|
76
82
|
let { length } = children;
|
|
83
|
+
text = normalizeLineBreaks(text);
|
|
77
84
|
if (length > 0) {
|
|
78
85
|
let prevNode = children[length - 1];
|
|
79
|
-
if (prevNode
|
|
86
|
+
if (prevNode?.type === XmlNode_js_1.XmlNode.TYPE_TEXT) {
|
|
87
|
+
let textNode = prevNode;
|
|
80
88
|
// The previous node is a text node, so we can append to it and avoid
|
|
81
89
|
// creating another node.
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
textNode.text += text;
|
|
91
|
+
if (this.options.includeOffsets) {
|
|
92
|
+
textNode.end = this.scanner.charIndexToByteIndex();
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
84
95
|
}
|
|
85
96
|
}
|
|
86
|
-
this.addNode(new XmlText_js_1.XmlText(text));
|
|
97
|
+
return this.addNode(new XmlText_js_1.XmlText(text), charIndex);
|
|
87
98
|
}
|
|
88
99
|
/**
|
|
89
100
|
* Consumes element attributes.
|
|
@@ -146,7 +157,7 @@ class Parser {
|
|
|
146
157
|
? syntax.attValueCharDoubleQuote
|
|
147
158
|
: syntax.attValueCharSingleQuote;
|
|
148
159
|
matchLoop: while (!scanner.isEnd) {
|
|
149
|
-
chars = scanner.
|
|
160
|
+
chars = scanner.consumeUntilMatch(regex);
|
|
150
161
|
if (chars) {
|
|
151
162
|
this.validateChars(chars);
|
|
152
163
|
value += chars.replace(syntax.attValueNormalizedWhitespace, ' ');
|
|
@@ -160,7 +171,7 @@ class Parser {
|
|
|
160
171
|
continue;
|
|
161
172
|
case '<':
|
|
162
173
|
throw this.error('Unescaped `<` is not allowed in an attribute value');
|
|
163
|
-
|
|
174
|
+
default:
|
|
164
175
|
break matchLoop;
|
|
165
176
|
}
|
|
166
177
|
}
|
|
@@ -178,21 +189,18 @@ class Parser {
|
|
|
178
189
|
*/
|
|
179
190
|
consumeCdataSection() {
|
|
180
191
|
let { scanner } = this;
|
|
181
|
-
|
|
192
|
+
let startIndex = scanner.charIndex;
|
|
193
|
+
if (!scanner.consumeString('<![CDATA[')) {
|
|
182
194
|
return false;
|
|
183
195
|
}
|
|
184
196
|
let text = scanner.consumeUntilString(']]>');
|
|
185
197
|
this.validateChars(text);
|
|
186
|
-
if (!scanner.
|
|
198
|
+
if (!scanner.consumeString(']]>')) {
|
|
187
199
|
throw this.error('Unclosed CDATA section');
|
|
188
200
|
}
|
|
189
|
-
|
|
190
|
-
this.addNode(new XmlCdata_js_1.XmlCdata(text))
|
|
191
|
-
|
|
192
|
-
else {
|
|
193
|
-
this.addText(text);
|
|
194
|
-
}
|
|
195
|
-
return true;
|
|
201
|
+
return this.options.preserveCdata
|
|
202
|
+
? this.addNode(new XmlCdata_js_1.XmlCdata(normalizeLineBreaks(text)), startIndex)
|
|
203
|
+
: this.addText(text, startIndex);
|
|
196
204
|
}
|
|
197
205
|
/**
|
|
198
206
|
* Consumes character data if possible.
|
|
@@ -202,6 +210,7 @@ class Parser {
|
|
|
202
210
|
*/
|
|
203
211
|
consumeCharData() {
|
|
204
212
|
let { scanner } = this;
|
|
213
|
+
let startIndex = scanner.charIndex;
|
|
205
214
|
let charData = scanner.consumeUntilMatch(syntax.endCharData);
|
|
206
215
|
if (!charData) {
|
|
207
216
|
return false;
|
|
@@ -210,8 +219,7 @@ class Parser {
|
|
|
210
219
|
if (scanner.peek(3) === ']]>') {
|
|
211
220
|
throw this.error('Element content may not contain the CDATA section close delimiter `]]>`');
|
|
212
221
|
}
|
|
213
|
-
this.addText(charData);
|
|
214
|
-
return true;
|
|
222
|
+
return this.addText(charData, startIndex);
|
|
215
223
|
}
|
|
216
224
|
/**
|
|
217
225
|
* Consumes a comment if possible.
|
|
@@ -221,21 +229,21 @@ class Parser {
|
|
|
221
229
|
*/
|
|
222
230
|
consumeComment() {
|
|
223
231
|
let { scanner } = this;
|
|
224
|
-
|
|
232
|
+
let startIndex = scanner.charIndex;
|
|
233
|
+
if (!scanner.consumeString('<!--')) {
|
|
225
234
|
return false;
|
|
226
235
|
}
|
|
227
236
|
let content = scanner.consumeUntilString('--');
|
|
228
237
|
this.validateChars(content);
|
|
229
|
-
if (!scanner.
|
|
238
|
+
if (!scanner.consumeString('-->')) {
|
|
230
239
|
if (scanner.peek(2) === '--') {
|
|
231
240
|
throw this.error("The string `--` isn't allowed inside a comment");
|
|
232
241
|
}
|
|
233
242
|
throw this.error('Unclosed comment');
|
|
234
243
|
}
|
|
235
|
-
|
|
236
|
-
this.addNode(new XmlComment_js_1.XmlComment(content
|
|
237
|
-
|
|
238
|
-
return true;
|
|
244
|
+
return this.options.preserveComments
|
|
245
|
+
? this.addNode(new XmlComment_js_1.XmlComment(normalizeLineBreaks(content)), startIndex)
|
|
246
|
+
: true;
|
|
239
247
|
}
|
|
240
248
|
/**
|
|
241
249
|
* Consumes a reference in a content context if possible.
|
|
@@ -247,12 +255,11 @@ class Parser {
|
|
|
247
255
|
* @see https://www.w3.org/TR/2008/REC-xml-20081126/#entproc
|
|
248
256
|
*/
|
|
249
257
|
consumeContentReference() {
|
|
258
|
+
let startIndex = this.scanner.charIndex;
|
|
250
259
|
let ref = this.consumeReference();
|
|
251
|
-
|
|
252
|
-
this.addText(ref)
|
|
253
|
-
|
|
254
|
-
}
|
|
255
|
-
return false;
|
|
260
|
+
return ref
|
|
261
|
+
? this.addText(ref, startIndex)
|
|
262
|
+
: false;
|
|
256
263
|
}
|
|
257
264
|
/**
|
|
258
265
|
* Consumes a doctype declaration if possible.
|
|
@@ -265,18 +272,51 @@ class Parser {
|
|
|
265
272
|
*/
|
|
266
273
|
consumeDoctypeDeclaration() {
|
|
267
274
|
let { scanner } = this;
|
|
268
|
-
|
|
269
|
-
|
|
275
|
+
let startIndex = scanner.charIndex;
|
|
276
|
+
if (!scanner.consumeString('<!DOCTYPE')) {
|
|
270
277
|
return false;
|
|
271
278
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
279
|
+
let name = this.consumeWhitespace()
|
|
280
|
+
&& this.consumeName();
|
|
281
|
+
if (!name) {
|
|
282
|
+
throw this.error('Expected a name');
|
|
283
|
+
}
|
|
284
|
+
let publicId;
|
|
285
|
+
let systemId;
|
|
286
|
+
if (this.consumeWhitespace()) {
|
|
287
|
+
if (scanner.consumeString('PUBLIC')) {
|
|
288
|
+
publicId = this.consumeWhitespace()
|
|
289
|
+
&& this.consumePubidLiteral();
|
|
290
|
+
if (publicId === false) {
|
|
291
|
+
throw this.error('Expected a public identifier');
|
|
292
|
+
}
|
|
293
|
+
this.consumeWhitespace();
|
|
294
|
+
}
|
|
295
|
+
if (publicId !== undefined || scanner.consumeString('SYSTEM')) {
|
|
296
|
+
this.consumeWhitespace();
|
|
297
|
+
systemId = this.consumeSystemLiteral();
|
|
298
|
+
if (systemId === false) {
|
|
299
|
+
throw this.error('Expected a system identifier');
|
|
300
|
+
}
|
|
301
|
+
this.consumeWhitespace();
|
|
302
|
+
}
|
|
275
303
|
}
|
|
276
|
-
|
|
304
|
+
let internalSubset;
|
|
305
|
+
if (scanner.consumeString('[')) {
|
|
306
|
+
// The internal subset may contain comments that contain `]` characters,
|
|
307
|
+
// so we can't use `consumeUntilString()` here.
|
|
308
|
+
internalSubset = scanner.consumeUntilMatch(/\][\x20\t\r\n]*>/);
|
|
309
|
+
if (!scanner.consumeString(']')) {
|
|
310
|
+
throw this.error('Unclosed internal subset');
|
|
311
|
+
}
|
|
312
|
+
this.consumeWhitespace();
|
|
313
|
+
}
|
|
314
|
+
if (!scanner.consumeString('>')) {
|
|
277
315
|
throw this.error('Unclosed doctype declaration');
|
|
278
316
|
}
|
|
279
|
-
return
|
|
317
|
+
return this.options.preserveDocumentType
|
|
318
|
+
? this.addNode(new XmlDocumentType_js_1.XmlDocumentType(name, publicId, systemId, internalSubset), startIndex)
|
|
319
|
+
: true;
|
|
280
320
|
}
|
|
281
321
|
/**
|
|
282
322
|
* Consumes an element if possible.
|
|
@@ -286,21 +326,21 @@ class Parser {
|
|
|
286
326
|
*/
|
|
287
327
|
consumeElement() {
|
|
288
328
|
let { scanner } = this;
|
|
289
|
-
let
|
|
290
|
-
if (!scanner.
|
|
329
|
+
let startIndex = scanner.charIndex;
|
|
330
|
+
if (!scanner.consumeString('<')) {
|
|
291
331
|
return false;
|
|
292
332
|
}
|
|
293
333
|
let name = this.consumeName();
|
|
294
334
|
if (!name) {
|
|
295
|
-
scanner.reset(
|
|
335
|
+
scanner.reset(startIndex);
|
|
296
336
|
return false;
|
|
297
337
|
}
|
|
298
338
|
let attributes = this.consumeAttributes();
|
|
299
|
-
let isEmpty =
|
|
339
|
+
let isEmpty = !!scanner.consumeString('/>');
|
|
300
340
|
let element = new XmlElement_js_1.XmlElement(name, attributes);
|
|
301
341
|
element.parent = this.currentNode;
|
|
302
342
|
if (!isEmpty) {
|
|
303
|
-
if (!scanner.
|
|
343
|
+
if (!scanner.consumeString('>')) {
|
|
304
344
|
throw this.error(`Unclosed start tag for element \`${name}\``);
|
|
305
345
|
}
|
|
306
346
|
this.currentNode = element;
|
|
@@ -313,20 +353,19 @@ class Parser {
|
|
|
313
353
|
|| this.consumeComment());
|
|
314
354
|
let endTagMark = scanner.charIndex;
|
|
315
355
|
let endTagName;
|
|
316
|
-
if (!scanner.
|
|
356
|
+
if (!scanner.consumeString('</')
|
|
317
357
|
|| !(endTagName = this.consumeName())
|
|
318
358
|
|| endTagName !== name) {
|
|
319
359
|
scanner.reset(endTagMark);
|
|
320
360
|
throw this.error(`Missing end tag for element ${name}`);
|
|
321
361
|
}
|
|
322
362
|
this.consumeWhitespace();
|
|
323
|
-
if (!scanner.
|
|
363
|
+
if (!scanner.consumeString('>')) {
|
|
324
364
|
throw this.error(`Unclosed end tag for element ${name}`);
|
|
325
365
|
}
|
|
326
366
|
this.currentNode = element.parent;
|
|
327
367
|
}
|
|
328
|
-
this.addNode(element);
|
|
329
|
-
return true;
|
|
368
|
+
return this.addNode(element, startIndex);
|
|
330
369
|
}
|
|
331
370
|
/**
|
|
332
371
|
* Consumes an `Eq` production if possible.
|
|
@@ -336,7 +375,7 @@ class Parser {
|
|
|
336
375
|
*/
|
|
337
376
|
consumeEqual() {
|
|
338
377
|
this.consumeWhitespace();
|
|
339
|
-
if (this.scanner.
|
|
378
|
+
if (this.scanner.consumeString('=')) {
|
|
340
379
|
this.consumeWhitespace();
|
|
341
380
|
return true;
|
|
342
381
|
}
|
|
@@ -372,14 +411,14 @@ class Parser {
|
|
|
372
411
|
*/
|
|
373
412
|
consumeProcessingInstruction() {
|
|
374
413
|
let { scanner } = this;
|
|
375
|
-
let
|
|
376
|
-
if (!scanner.
|
|
414
|
+
let startIndex = scanner.charIndex;
|
|
415
|
+
if (!scanner.consumeString('<?')) {
|
|
377
416
|
return false;
|
|
378
417
|
}
|
|
379
418
|
let name = this.consumeName();
|
|
380
419
|
if (name) {
|
|
381
420
|
if (name.toLowerCase() === 'xml') {
|
|
382
|
-
scanner.reset(
|
|
421
|
+
scanner.reset(startIndex);
|
|
383
422
|
throw this.error("XML declaration isn't allowed here");
|
|
384
423
|
}
|
|
385
424
|
}
|
|
@@ -387,19 +426,17 @@ class Parser {
|
|
|
387
426
|
throw this.error('Invalid processing instruction');
|
|
388
427
|
}
|
|
389
428
|
if (!this.consumeWhitespace()) {
|
|
390
|
-
if (scanner.
|
|
391
|
-
this.addNode(new XmlProcessingInstruction_js_1.XmlProcessingInstruction(name));
|
|
392
|
-
return true;
|
|
429
|
+
if (scanner.consumeString('?>')) {
|
|
430
|
+
return this.addNode(new XmlProcessingInstruction_js_1.XmlProcessingInstruction(name), startIndex);
|
|
393
431
|
}
|
|
394
432
|
throw this.error('Whitespace is required after a processing instruction name');
|
|
395
433
|
}
|
|
396
434
|
let content = scanner.consumeUntilString('?>');
|
|
397
435
|
this.validateChars(content);
|
|
398
|
-
if (!scanner.
|
|
436
|
+
if (!scanner.consumeString('?>')) {
|
|
399
437
|
throw this.error('Unterminated processing instruction');
|
|
400
438
|
}
|
|
401
|
-
this.addNode(new XmlProcessingInstruction_js_1.XmlProcessingInstruction(name, content));
|
|
402
|
-
return true;
|
|
439
|
+
return this.addNode(new XmlProcessingInstruction_js_1.XmlProcessingInstruction(name, normalizeLineBreaks(content)), startIndex);
|
|
403
440
|
}
|
|
404
441
|
/**
|
|
405
442
|
* Consumes a prolog if possible.
|
|
@@ -409,13 +446,32 @@ class Parser {
|
|
|
409
446
|
*/
|
|
410
447
|
consumeProlog() {
|
|
411
448
|
let { scanner } = this;
|
|
412
|
-
let
|
|
449
|
+
let startIndex = scanner.charIndex;
|
|
413
450
|
this.consumeXmlDeclaration();
|
|
414
451
|
while (this.consumeMisc()) { } // eslint-disable-line no-empty
|
|
415
452
|
if (this.consumeDoctypeDeclaration()) {
|
|
416
453
|
while (this.consumeMisc()) { } // eslint-disable-line no-empty
|
|
417
454
|
}
|
|
418
|
-
return
|
|
455
|
+
return startIndex < scanner.charIndex;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Consumes a public identifier literal if possible.
|
|
459
|
+
*
|
|
460
|
+
* @returns
|
|
461
|
+
* Value of the public identifier literal minus quotes, or `false` if
|
|
462
|
+
* nothing was consumed. An empty string indicates that a public id literal
|
|
463
|
+
* was consumed but was empty.
|
|
464
|
+
*
|
|
465
|
+
* @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-PubidLiteral
|
|
466
|
+
*/
|
|
467
|
+
consumePubidLiteral() {
|
|
468
|
+
let startIndex = this.scanner.charIndex;
|
|
469
|
+
let value = this.consumeSystemLiteral();
|
|
470
|
+
if (value !== false && !/^[-\x20\r\na-zA-Z0-9'()+,./:=?;!*#@$_%]*$/.test(value)) {
|
|
471
|
+
this.scanner.reset(startIndex);
|
|
472
|
+
throw this.error('Invalid character in public identifier');
|
|
473
|
+
}
|
|
474
|
+
return value;
|
|
419
475
|
}
|
|
420
476
|
/**
|
|
421
477
|
* Consumes a reference if possible.
|
|
@@ -431,7 +487,7 @@ class Parser {
|
|
|
431
487
|
*/
|
|
432
488
|
consumeReference() {
|
|
433
489
|
let { scanner } = this;
|
|
434
|
-
if (!scanner.
|
|
490
|
+
if (!scanner.consumeString('&')) {
|
|
435
491
|
return false;
|
|
436
492
|
}
|
|
437
493
|
let ref = scanner.consumeMatchFn(syntax.isReferenceChar);
|
|
@@ -492,13 +548,13 @@ class Parser {
|
|
|
492
548
|
*/
|
|
493
549
|
consumeSystemLiteral() {
|
|
494
550
|
let { scanner } = this;
|
|
495
|
-
let quote = scanner.
|
|
551
|
+
let quote = scanner.consumeString('"') || scanner.consumeString("'");
|
|
496
552
|
if (!quote) {
|
|
497
553
|
return false;
|
|
498
554
|
}
|
|
499
555
|
let value = scanner.consumeUntilString(quote);
|
|
500
556
|
this.validateChars(value);
|
|
501
|
-
if (!scanner.
|
|
557
|
+
if (!scanner.consumeString(quote)) {
|
|
502
558
|
throw this.error('Missing end quote');
|
|
503
559
|
}
|
|
504
560
|
return value;
|
|
@@ -510,7 +566,7 @@ class Parser {
|
|
|
510
566
|
* @see https://www.w3.org/TR/2008/REC-xml-20081126/#white
|
|
511
567
|
*/
|
|
512
568
|
consumeWhitespace() {
|
|
513
|
-
return
|
|
569
|
+
return !!this.scanner.consumeMatchFn(syntax.isWhitespace);
|
|
514
570
|
}
|
|
515
571
|
/**
|
|
516
572
|
* Consumes an XML declaration if possible.
|
|
@@ -520,13 +576,14 @@ class Parser {
|
|
|
520
576
|
*/
|
|
521
577
|
consumeXmlDeclaration() {
|
|
522
578
|
let { scanner } = this;
|
|
523
|
-
|
|
579
|
+
let startIndex = scanner.charIndex;
|
|
580
|
+
if (!scanner.consumeString('<?xml')) {
|
|
524
581
|
return false;
|
|
525
582
|
}
|
|
526
583
|
if (!this.consumeWhitespace()) {
|
|
527
584
|
throw this.error('Invalid XML declaration');
|
|
528
585
|
}
|
|
529
|
-
let version =
|
|
586
|
+
let version = !!scanner.consumeString('version')
|
|
530
587
|
&& this.consumeEqual()
|
|
531
588
|
&& this.consumeSystemLiteral();
|
|
532
589
|
if (version === false) {
|
|
@@ -535,14 +592,19 @@ class Parser {
|
|
|
535
592
|
else if (!/^1\.[0-9]+$/.test(version)) {
|
|
536
593
|
throw this.error('Invalid character in version number');
|
|
537
594
|
}
|
|
595
|
+
let encoding;
|
|
596
|
+
let standalone;
|
|
538
597
|
if (this.consumeWhitespace()) {
|
|
539
|
-
|
|
598
|
+
encoding = !!scanner.consumeString('encoding')
|
|
540
599
|
&& this.consumeEqual()
|
|
541
600
|
&& this.consumeSystemLiteral();
|
|
542
601
|
if (encoding) {
|
|
602
|
+
if (!/^[A-Za-z][\w.-]*$/.test(encoding)) {
|
|
603
|
+
throw this.error('Invalid character in encoding name');
|
|
604
|
+
}
|
|
543
605
|
this.consumeWhitespace();
|
|
544
606
|
}
|
|
545
|
-
|
|
607
|
+
standalone = !!scanner.consumeString('standalone')
|
|
546
608
|
&& this.consumeEqual()
|
|
547
609
|
&& this.consumeSystemLiteral();
|
|
548
610
|
if (standalone) {
|
|
@@ -552,58 +614,33 @@ class Parser {
|
|
|
552
614
|
this.consumeWhitespace();
|
|
553
615
|
}
|
|
554
616
|
}
|
|
555
|
-
if (!scanner.
|
|
617
|
+
if (!scanner.consumeString('?>')) {
|
|
556
618
|
throw this.error('Invalid or unclosed XML declaration');
|
|
557
619
|
}
|
|
558
|
-
return
|
|
620
|
+
return this.options.preserveXmlDeclaration
|
|
621
|
+
? this.addNode(new XmlDeclaration_js_1.XmlDeclaration(version, encoding || undefined, standalone || undefined), startIndex)
|
|
622
|
+
: true;
|
|
559
623
|
}
|
|
560
624
|
/**
|
|
561
|
-
*
|
|
625
|
+
* Returns an `XmlError` for the current scanner position.
|
|
562
626
|
*/
|
|
563
627
|
error(message) {
|
|
564
|
-
let {
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
}
|
|
576
|
-
else {
|
|
577
|
-
column += 1;
|
|
578
|
-
excerpt += char;
|
|
579
|
-
}
|
|
628
|
+
let { scanner } = this;
|
|
629
|
+
return new XmlError_js_1.XmlError(message, scanner.charIndex, scanner.string);
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* Parses the XML input.
|
|
633
|
+
*/
|
|
634
|
+
parse() {
|
|
635
|
+
this.scanner.consumeString('\uFEFF'); // byte order mark
|
|
636
|
+
this.consumeProlog();
|
|
637
|
+
if (!this.consumeElement()) {
|
|
638
|
+
throw this.error('Root element is missing or invalid');
|
|
580
639
|
}
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
: xml.slice(charIndex, eol);
|
|
585
|
-
let excerptStart = 0;
|
|
586
|
-
// Keep the excerpt below 50 chars, but always keep the error position in
|
|
587
|
-
// view.
|
|
588
|
-
if (excerpt.length > 50) {
|
|
589
|
-
if (column < 40) {
|
|
590
|
-
excerpt = excerpt.slice(0, 50);
|
|
591
|
-
}
|
|
592
|
-
else {
|
|
593
|
-
excerptStart = column - 20;
|
|
594
|
-
excerpt = excerpt.slice(excerptStart, column + 30);
|
|
595
|
-
}
|
|
640
|
+
while (this.consumeMisc()) { } // eslint-disable-line no-empty
|
|
641
|
+
if (!this.scanner.isEnd) {
|
|
642
|
+
throw this.error('Extra content at the end of the document');
|
|
596
643
|
}
|
|
597
|
-
let err = new Error(`${message} (line ${line}, column ${column})\n`
|
|
598
|
-
+ ` ${excerpt}\n`
|
|
599
|
-
+ ' '.repeat(column - excerptStart + 1) + '^\n');
|
|
600
|
-
Object.assign(err, {
|
|
601
|
-
column,
|
|
602
|
-
excerpt,
|
|
603
|
-
line,
|
|
604
|
-
pos: charIndex,
|
|
605
|
-
});
|
|
606
|
-
return err;
|
|
607
644
|
}
|
|
608
645
|
/**
|
|
609
646
|
* Throws an invalid character error if any character in the given _string_
|
|
@@ -626,13 +663,16 @@ class Parser {
|
|
|
626
663
|
exports.Parser = Parser;
|
|
627
664
|
// -- Private Functions --------------------------------------------------------
|
|
628
665
|
/**
|
|
629
|
-
* Normalizes the given
|
|
630
|
-
*
|
|
666
|
+
* Normalizes line breaks in the given text by replacing CRLF sequences and lone
|
|
667
|
+
* CR characters with LF characters.
|
|
631
668
|
*/
|
|
632
|
-
function
|
|
633
|
-
|
|
634
|
-
|
|
669
|
+
function normalizeLineBreaks(text) {
|
|
670
|
+
let i = 0;
|
|
671
|
+
while ((i = text.indexOf('\r', i)) !== -1) {
|
|
672
|
+
text = text[i + 1] === '\n'
|
|
673
|
+
? text.slice(0, i) + text.slice(i + 1)
|
|
674
|
+
: text.slice(0, i) + '\n' + text.slice(i + 1);
|
|
635
675
|
}
|
|
636
|
-
return
|
|
676
|
+
return text;
|
|
637
677
|
}
|
|
638
678
|
//# sourceMappingURL=Parser.js.map
|
package/dist/lib/Parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/lib/Parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/lib/Parser.ts"],"names":[],"mappings":"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"}
|