@rgrove/parse-xml 2.0.4 → 4.0.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/LICENSE +1 -1
- package/README.md +84 -337
- package/dist/browser.js +774 -0
- package/dist/browser.js.map +7 -0
- package/dist/global.min.js +10 -0
- package/dist/global.min.js.map +7 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/Parser.d.ts +218 -0
- package/dist/lib/Parser.d.ts.map +1 -0
- package/dist/lib/Parser.js +638 -0
- package/dist/lib/Parser.js.map +1 -0
- package/dist/lib/StringScanner.d.ts +97 -0
- package/dist/lib/StringScanner.d.ts.map +1 -0
- package/dist/lib/StringScanner.js +210 -0
- package/dist/lib/StringScanner.js.map +1 -0
- package/dist/lib/XmlCdata.d.ts +8 -0
- package/dist/lib/XmlCdata.d.ts.map +1 -0
- package/dist/lib/XmlCdata.js +15 -0
- package/dist/lib/XmlCdata.js.map +1 -0
- package/dist/lib/XmlComment.d.ts +16 -0
- package/dist/lib/XmlComment.d.ts.map +1 -0
- package/dist/lib/XmlComment.js +23 -0
- package/dist/lib/XmlComment.js.map +1 -0
- package/dist/lib/XmlDocument.d.ts +29 -0
- package/dist/lib/XmlDocument.d.ts.map +1 -0
- package/dist/lib/XmlDocument.js +47 -0
- package/dist/lib/XmlDocument.js.map +1 -0
- package/dist/lib/XmlElement.d.ts +40 -0
- package/dist/lib/XmlElement.d.ts.map +1 -0
- package/dist/lib/XmlElement.js +51 -0
- package/dist/lib/XmlElement.js.map +1 -0
- package/dist/lib/XmlNode.d.ts +74 -0
- package/dist/lib/XmlNode.d.ts.map +1 -0
- package/dist/lib/XmlNode.js +96 -0
- package/dist/lib/XmlNode.js.map +1 -0
- package/dist/lib/XmlProcessingInstruction.d.ts +22 -0
- package/dist/lib/XmlProcessingInstruction.d.ts.map +1 -0
- package/dist/lib/XmlProcessingInstruction.js +25 -0
- package/dist/lib/XmlProcessingInstruction.js.map +1 -0
- package/dist/lib/XmlText.d.ts +16 -0
- package/dist/lib/XmlText.d.ts.map +1 -0
- package/dist/lib/XmlText.js +23 -0
- package/dist/lib/XmlText.js.map +1 -0
- package/dist/lib/syntax.d.ts +69 -0
- package/dist/lib/syntax.d.ts.map +1 -0
- package/dist/lib/syntax.js +133 -0
- package/dist/lib/syntax.js.map +1 -0
- package/dist/lib/types.d.ts +5 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +3 -0
- package/dist/lib/types.js.map +1 -0
- package/package.json +36 -22
- package/src/index.ts +30 -0
- package/src/lib/Parser.ts +819 -0
- package/src/lib/StringScanner.ts +254 -0
- package/src/lib/XmlCdata.ts +11 -0
- package/src/lib/XmlComment.ts +26 -0
- package/src/lib/XmlDocument.ts +57 -0
- package/src/lib/XmlElement.ts +81 -0
- package/src/lib/XmlNode.ts +107 -0
- package/src/lib/XmlProcessingInstruction.ts +35 -0
- package/src/lib/XmlText.ts +26 -0
- package/src/lib/syntax.ts +136 -0
- package/src/lib/types.ts +2 -0
- package/CHANGELOG.md +0 -89
- package/dist/commonjs/index.js +0 -434
- package/dist/commonjs/lib/syntax.js +0 -262
- package/dist/umd/parse-xml.min.js +0 -1
- package/src/index.js +0 -451
- package/src/lib/syntax.js +0 -263
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
'use strict'; // To improve readability, the regular expression patterns in this file are
|
|
2
|
-
// written as tagged template literals. The `regex` tag function strips literal
|
|
3
|
-
// whitespace characters and line comments beginning with `//` and returns a
|
|
4
|
-
// RegExp instance.
|
|
5
|
-
//
|
|
6
|
-
// Escape sequences are preserved as-is in the resulting regex, so
|
|
7
|
-
// double-escaping isn't necessary. A pattern may embed another pattern using
|
|
8
|
-
// `${}` interpolation.
|
|
9
|
-
// -- Common Symbols -----------------------------------------------------------
|
|
10
|
-
|
|
11
|
-
function _templateObject18() {
|
|
12
|
-
var data = _taggedTemplateLiteralLoose(["\n <?xml\n ", "\n [sS]+?\n ?>\n"], ["\n <\\?xml\n ", "\n [\\s\\S]+?\n \\?>\n"]);
|
|
13
|
-
|
|
14
|
-
_templateObject18 = function _templateObject18() {
|
|
15
|
-
return data;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
return data;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function _templateObject17() {
|
|
22
|
-
var data = _taggedTemplateLiteralLoose(["\n <?\n // Group 1: PITarget\n (\n ", "\n )\n\n (?:\n ", "\n (?:", ")*?\n )?\n ?>\n"], ["\n <\\?\n // Group 1: PITarget\n (\n ", "\n )\n\n (?:\n ", "\n (?:", ")*?\n )?\n \\?>\n"]);
|
|
23
|
-
|
|
24
|
-
_templateObject17 = function _templateObject17() {
|
|
25
|
-
return data;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
return data;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function _templateObject16() {
|
|
32
|
-
var data = _taggedTemplateLiteralLoose(["\n <!DOCTYPE\n ", "\n\n [^[>]*\n\n (?:\n [ [sS]+? ]\n (?:", ")?\n )?\n >\n"], ["\n <!DOCTYPE\n ", "\n\n [^[>]*\n\n (?:\n \\[ [\\s\\S]+? \\]\n (?:", ")?\n )?\n >\n"]);
|
|
33
|
-
|
|
34
|
-
_templateObject16 = function _templateObject16() {
|
|
35
|
-
return data;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
return data;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function _templateObject15() {
|
|
42
|
-
var data = _taggedTemplateLiteralLoose(["\n <!--\n // Group 1: Comment text (optional)\n (\n (?:\n (?!-) ", "\n | - (?!-) ", "\n )*\n )\n -->\n"]);
|
|
43
|
-
|
|
44
|
-
_templateObject15 = function _templateObject15() {
|
|
45
|
-
return data;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
return data;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function _templateObject14() {
|
|
52
|
-
var data = _taggedTemplateLiteralLoose(["\n ^(?:", ")*$\n"]);
|
|
53
|
-
|
|
54
|
-
_templateObject14 = function _templateObject14() {
|
|
55
|
-
return data;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
return data;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function _templateObject13() {
|
|
62
|
-
var data = _taggedTemplateLiteralLoose(["\n <\n // Group 1: Start tag name\n (", ")\n\n // Group 2: Attributes (optional)\n (\n (?:\n ", "\n ", "\n )*\n )\n\n (?:", ")?\n >\n"]);
|
|
63
|
-
|
|
64
|
-
_templateObject13 = function _templateObject13() {
|
|
65
|
-
return data;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
return data;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function _templateObject12() {
|
|
72
|
-
var data = _taggedTemplateLiteralLoose(["\n </\n // Group 1: End tag name\n (", ")\n (?:", ")?\n >\n"]);
|
|
73
|
-
|
|
74
|
-
_templateObject12 = function _templateObject12() {
|
|
75
|
-
return data;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
return data;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function _templateObject11() {
|
|
82
|
-
var data = _taggedTemplateLiteralLoose(["\n <\n // Group 1: Element name\n (", ")\n\n // Group 2: Attributes (optional)\n (\n (?:\n ", "\n ", "\n )*\n )\n\n (?:", ")?\n />\n"]);
|
|
83
|
-
|
|
84
|
-
_templateObject11 = function _templateObject11() {
|
|
85
|
-
return data;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
return data;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function _templateObject10() {
|
|
92
|
-
var data = _taggedTemplateLiteralLoose(["\n <![CDATA[\n // Group 1: CData text content (optional)\n (\n (?:", ")*?\n )\n ]]>\n"], ["\n <!\\[CDATA\\[\n // Group 1: CData text content (optional)\n (\n (?:", ")*?\n )\n \\]\\]>\n"]);
|
|
93
|
-
|
|
94
|
-
_templateObject10 = function _templateObject10() {
|
|
95
|
-
return data;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
return data;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
function _templateObject9() {
|
|
102
|
-
var data = _taggedTemplateLiteralLoose(["\n ", "\n ", "\n\n (?:\n \"(?:\n [^<\"]\n )*\"\n\n |\n\n '(?:\n [^<']\n )*'\n )\n"]);
|
|
103
|
-
|
|
104
|
-
_templateObject9 = function _templateObject9() {
|
|
105
|
-
return data;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
return data;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function _templateObject8() {
|
|
112
|
-
var data = _taggedTemplateLiteralLoose(["\n (?:", ")?\n =\n (?:", ")?\n"]);
|
|
113
|
-
|
|
114
|
-
_templateObject8 = function _templateObject8() {
|
|
115
|
-
return data;
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
return data;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
function _templateObject7() {
|
|
122
|
-
var data = _taggedTemplateLiteralLoose(["\n [ \t\r\n]+\n"], ["\n [\\x20\\t\\r\\n]+\n"]);
|
|
123
|
-
|
|
124
|
-
_templateObject7 = function _templateObject7() {
|
|
125
|
-
return data;
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
return data;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
function _templateObject6() {
|
|
132
|
-
var data = _taggedTemplateLiteralLoose(["\n &[^s&;]*;?\n"], ["\n &[^\\s&;]*;?\n"]);
|
|
133
|
-
|
|
134
|
-
_templateObject6 = function _templateObject6() {
|
|
135
|
-
return data;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
return data;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function _templateObject5() {
|
|
142
|
-
var data = _taggedTemplateLiteralLoose(["\n ", "\n (?:", ")*\n"]);
|
|
143
|
-
|
|
144
|
-
_templateObject5 = function _templateObject5() {
|
|
145
|
-
return data;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
return data;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
function _templateObject4() {
|
|
152
|
-
var data = _taggedTemplateLiteralLoose(["\n (?:\n ", "\n\n |\n\n [\n .\n 0-9\n \xB7\n \u0300-\u036F\n \u203F-\u2040\n -\n ]\n )\n"], ["\n (?:\n ", "\n\n |\n\n [\n .\n 0-9\n \\xB7\n \\u0300-\\u036F\n \\u203F-\\u2040\n -\n ]\n )\n"]);
|
|
153
|
-
|
|
154
|
-
_templateObject4 = function _templateObject4() {
|
|
155
|
-
return data;
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
return data;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function _templateObject3() {
|
|
162
|
-
var data = _taggedTemplateLiteralLoose(["\n (?:\n [\n :\n A-Z\n _\n a-z\n \xC0-\xD6\n \xD8-\xF6\n \xF8-\u02FF\n \u0370-\u037D\n \u037F-\u1FFF\n \u200C-\u200D\n \u2070-\u218F\n \u2C00-\u2FEF\n \u3001-\uD7FF\n \uF900-\uFDCF\n \uFDF0-\uFFFD\n ]\n\n |\n\n [\uD800-\uDB7F][\uDC00-\uDFFF]\n )\n"], ["\n (?:\n [\n :\n A-Z\n _\n a-z\n \\xC0-\\xD6\n \\xD8-\\xF6\n \\xF8-\\u02FF\n \\u0370-\\u037D\n \\u037F-\\u1FFF\n \\u200C-\\u200D\n \\u2070-\\u218F\n \\u2C00-\\u2FEF\n \\u3001-\\uD7FF\n \\uF900-\\uFDCF\n \\uFDF0-\\uFFFD\n ]\n\n |\n\n [\\uD800-\\uDB7F][\\uDC00-\\uDFFF]\n )\n"]);
|
|
163
|
-
|
|
164
|
-
_templateObject3 = function _templateObject3() {
|
|
165
|
-
return data;
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
return data;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function _templateObject2() {
|
|
172
|
-
var data = _taggedTemplateLiteralLoose(["\n [^<&]+\n"]);
|
|
173
|
-
|
|
174
|
-
_templateObject2 = function _templateObject2() {
|
|
175
|
-
return data;
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
return data;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
function _templateObject() {
|
|
182
|
-
var data = _taggedTemplateLiteralLoose(["\n (?:\n [\n \t\n \n\n \r\n -\uD7FF\n \uE000-\uFFFD\n ]\n\n |\n\n [\uD800-\uDBFF][\uDC00-\uDFFF]\n )\n"], ["\n (?:\n [\n \\t\n \\n\n \\r\n \\x20-\\uD7FF\n \\uE000-\\uFFFD\n ]\n\n |\n\n [\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\n )\n"]);
|
|
183
|
-
|
|
184
|
-
_templateObject = function _templateObject() {
|
|
185
|
-
return data;
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
return data;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
|
|
192
|
-
|
|
193
|
-
exports.Char = regex(_templateObject()); // Partial implementation.
|
|
194
|
-
//
|
|
195
|
-
// To be compliant, the matched text must result in an error if it contains the
|
|
196
|
-
// string `]]>`, but that can't be easily represented here so we do it in the
|
|
197
|
-
// parser.
|
|
198
|
-
|
|
199
|
-
exports.CharData = regex(_templateObject2());
|
|
200
|
-
exports.NameStartChar = regex(_templateObject3());
|
|
201
|
-
exports.NameChar = regex(_templateObject4(), exports.NameStartChar);
|
|
202
|
-
exports.Name = regex(_templateObject5(), exports.NameStartChar, exports.NameChar); // Loose implementation. The entity will be validated in the `replaceReference`
|
|
203
|
-
// function.
|
|
204
|
-
|
|
205
|
-
exports.Reference = regex(_templateObject6());
|
|
206
|
-
exports.S = regex(_templateObject7()); // -- Attributes ---------------------------------------------------------------
|
|
207
|
-
|
|
208
|
-
exports.Eq = regex(_templateObject8(), exports.S, exports.S);
|
|
209
|
-
exports.Attribute = regex(_templateObject9(), exports.Name, exports.Eq); // -- Elements -----------------------------------------------------------------
|
|
210
|
-
|
|
211
|
-
exports.CDSect = regex(_templateObject10(), exports.Char);
|
|
212
|
-
exports.EmptyElemTag = regex(_templateObject11(), exports.Name, exports.S, exports.Attribute, exports.S);
|
|
213
|
-
exports.ETag = regex(_templateObject12(), exports.Name, exports.S);
|
|
214
|
-
exports.STag = regex(_templateObject13(), exports.Name, exports.S, exports.Attribute, exports.S); // -- Misc ---------------------------------------------------------------------
|
|
215
|
-
// Special pattern that matches an entire string consisting only of `Char`
|
|
216
|
-
// characters.
|
|
217
|
-
|
|
218
|
-
exports.CharOnly = regex(_templateObject14(), exports.Char);
|
|
219
|
-
exports.Comment = regex(_templateObject15(), exports.Char, exports.Char); // Loose implementation since doctype declarations are discarded.
|
|
220
|
-
//
|
|
221
|
-
// It's not possible to fully parse a doctype declaration with a regex, but
|
|
222
|
-
// since we just discard them we can skip parsing the fiddly inner bits and use
|
|
223
|
-
// a regex to speed things up.
|
|
224
|
-
|
|
225
|
-
exports.doctypedecl = regex(_templateObject16(), exports.S, exports.S); // Loose implementation since processing instructions are discarded.
|
|
226
|
-
|
|
227
|
-
exports.PI = regex(_templateObject17(), exports.Name, exports.S, exports.Char); // Loose implementation since XML declarations are discarded.
|
|
228
|
-
|
|
229
|
-
exports.XMLDecl = regex(_templateObject18(), exports.S); // -- Helpers ------------------------------------------------------------------
|
|
230
|
-
|
|
231
|
-
exports.Anchored = {};
|
|
232
|
-
exports.Global = {}; // Create anchored and global variations of each pattern.
|
|
233
|
-
|
|
234
|
-
Object.keys(exports).forEach(function (name) {
|
|
235
|
-
if (name !== 'Anchored' && name !== 'CharOnly' && name !== 'Global') {
|
|
236
|
-
var pattern = exports[name];
|
|
237
|
-
exports.Anchored[name] = new RegExp('^' + pattern.source);
|
|
238
|
-
exports.Global[name] = new RegExp(pattern.source, 'g');
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
function regex(strings) {
|
|
243
|
-
var length = strings.length,
|
|
244
|
-
raw = strings.raw;
|
|
245
|
-
var lastIndex = length - 1;
|
|
246
|
-
var pattern = '';
|
|
247
|
-
|
|
248
|
-
for (var _len = arguments.length, embeddedPatterns = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
249
|
-
embeddedPatterns[_key - 1] = arguments[_key];
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
for (var i = 0; i < length; ++i) {
|
|
253
|
-
pattern += raw[i].replace(/(^|[^\\])\/\/.*$/gm, '$1') // remove end-of-line comments
|
|
254
|
-
.replace(/\s+/g, ''); // remove all whitespace
|
|
255
|
-
|
|
256
|
-
if (i < lastIndex) {
|
|
257
|
-
pattern += embeddedPatterns[i].source;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
return new RegExp(pattern);
|
|
262
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(n,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["parse-xml"]=e():n.parseXml=e()}("undefined"!=typeof self?self:this,(function(){return function(n){var e={};function t(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(r,o,function(e){return n[e]}.bind(null,o));return r},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){"use strict";var r,o=Object.freeze([]),u=Object.freeze(Object.create(null)),i=Object.freeze({"&":"&","'":"'",">":">","<":"<",""":'"'});function a(n,e){e.parent=n.parent,e.toJSON=m,n.parent.children.push(e)}function c(n,e){var t=n.parent.children,r=t[t.length-1];void 0!==r&&"text"===r.type?r.text+=e:a(n,{type:"text",text:e})}function f(n){var e=b(n,r.Anchored.CDSect),t=e[0],o=e[1];return void 0!==t&&(n.options.preserveCdata?a(n,{type:"cdata",text:o}):c(n,o),!0)}function l(n){var e=b(n,r.Anchored.CharData)[0];if(void 0===e)return!1;var t=e.indexOf("]]>");return-1!==t&&(n.pos=n.prevPos+t,h(n,"Element content may not contain the CDATA section close delimiter `]]>`")),r.CharOnly.test(e)||(n.pos=n.prevPos+e.search(new RegExp("(?!"+r.Char.source+")")),h(n,"Element content contains an invalid character")),c(n,e),!0}function s(n){var e=b(n,r.Anchored.Comment)[1];return void 0!==e&&(n.options.preserveComments&&a(n,{type:"comment",content:e.trim()}),!0)}function p(n){return s(n)||d(n)||function(n){return b(n,r.Anchored.S).length>0}(n)}function d(n){var e=b(n,r.Anchored.PI),t=e[0],o=e[1];return void 0!==t&&("xml"===o.toLowerCase()&&(n.pos=n.prevPos,h(n,"XML declaration is only allowed at the start of the document")),!0)}function v(n){var e=b(n,r.Anchored.Reference)[0];return void 0!==e&&(c(n,n.replaceReference(e)),!0)}function h(n,e){for(var t=n.pos,r=n.xml,o=1,u="",i=1,a=0;a<t;++a){var c=r[a];"\n"===c?(o=1,u="",i+=1):(o+=1,u+=c)}var f=r.indexOf("\n",t),l=0;(u+=-1===f?r.slice(t):r.slice(t,f)).length>50&&(o<40?u=u.slice(0,50):(l=o-20,u=u.slice(l,o+30)));var s=new Error(e+" (line "+i+", column "+o+")\n "+u+"\n"+" ".repeat(o-l+1)+"^\n");throw s.column=o,s.excerpt=u,s.line=i,s.pos=t,s}function m(){var n=Object.assign(Object.create(null),this);return delete n.parent,n}function x(n,e){return e.replace(/[\x20\t\r\n]/g," ").replace(r.Global.Reference,n.replaceReference)}function g(n){if(";"!==n[n.length-1]&&h(this,"Invalid reference: `"+n+"`"),"#"===n[1]){var e;e="x"===n[2]?parseInt(n.slice(3,-1),16):parseInt(n.slice(2,-1),10),isNaN(e)&&(this.pos=this.prevPos,h(this,"Invalid character entity `"+n+"`"));var t=String.fromCodePoint(e);return r.Char.test(t)||(this.pos=this.prevPos,h(this,"Invalid character entity `"+n+"`")),t}var o=i[n];if(void 0!==o)return o;if(this.options.resolveUndefinedEntity){var u=this.options.resolveUndefinedEntity(n);if(null!=u)return u}if(this.options.ignoreUndefinedEntities)return n;this.pos=this.prevPos,h(this,"Named entity isn't defined: `"+n+"`")}function b(n,e){var t=n.pos,r=n.xml,u=(t>0?r.slice(t):r).match(e);return null===u?o:(n.prevPos=n.pos,n.pos+=u[0].length,u)}n.exports=function(n,e){void 0===e&&(e=u),void 0===r&&(r=t(1)),"\ufeff"===n[0]&&(n=n.slice(1));var o={type:"document",children:[],parent:null,toJSON:m},i={length:(n=n.replace(/\r\n?/g,"\n")).length,options:e,parent:o,pos:0,prevPos:0,xml:n};for(i.replaceReference=g.bind(i),function(n){var e=n.pos;b(n,r.Anchored.XMLDecl);for(;p(n););if(function(n){return b(n,r.Anchored.doctypedecl).length>0}(n))for(;p(n););n.pos}(i),function n(e){var t=b(e,r.Anchored.EmptyElemTag),o=t[0],u=t[1],i=t[2],c=void 0!==o;if(!c){var p=b(e,r.Anchored.STag);if(o=p[0],u=p[1],i=p[2],void 0===o)return!1}var m=e.parent,g=function(n,e){var t=Object.create(null);if(!e)return t;for(var o=e.match(r.Global.Attribute).sort(),u=0,i=o.length;u<i;++u){var a=o[u],c=a.match(r.Eq),f=a.slice(0,c.index),l=a.slice(c.index+c[0].length);f in t&&(n.pos=n.prevPos,h(n,"Attribute `"+f+"` redefined")),l=x(n,l.slice(1,-1)),"xml:space"===f&&"default"!==l&&"preserve"!==l&&(n.pos=n.prevPos,h(n,'Value of the `xml:space` attribute must be "default" or "preserve"')),t[f]=l}return t}(e,i),C={type:"element",name:u,attributes:g,children:[]},y=g["xml:space"];("preserve"===y||"default"!==y&&m.preserveWhitespace)&&(C.preserveWhitespace=!0);if(!c){for(e.parent=C,l(e);n(e)||v(e)||f(e)||d(e)||s(e);)l(e);b(e,r.Anchored.ETag)[1]!==u&&(e.pos=e.prevPos,h(e,"Missing end tag for element "+u)),e.parent=m}return a(e,C),!0}(i)||h(i,"Root element is missing or invalid");p(i););return function(n){return n.pos>=n.length-1}(i)||h(i,"Extra content at the end of the document"),o}},function(n,e,t){"use strict";function r(){var n=y(["\n <?xml\n ","\n [sS]+?\n ?>\n"],["\n <\\?xml\n ","\n [\\s\\S]+?\n \\?>\n"]);return r=function(){return n},n}function o(){var n=y(["\n <?\n // Group 1: PITarget\n (\n ","\n )\n\n (?:\n ","\n (?:",")*?\n )?\n ?>\n"],["\n <\\?\n // Group 1: PITarget\n (\n ","\n )\n\n (?:\n ","\n (?:",")*?\n )?\n \\?>\n"]);return o=function(){return n},n}function u(){var n=y(["\n <!DOCTYPE\n ","\n\n [^[>]*\n\n (?:\n [ [sS]+? ]\n (?:",")?\n )?\n >\n"],["\n <!DOCTYPE\n ","\n\n [^[>]*\n\n (?:\n \\[ [\\s\\S]+? \\]\n (?:",")?\n )?\n >\n"]);return u=function(){return n},n}function i(){var n=y(["\n \x3c!--\n // Group 1: Comment text (optional)\n (\n (?:\n (?!-) ","\n | - (?!-) ","\n )*\n )\n --\x3e\n"]);return i=function(){return n},n}function a(){var n=y(["\n ^(?:",")*$\n"]);return a=function(){return n},n}function c(){var n=y(["\n <\n // Group 1: Start tag name\n (",")\n\n // Group 2: Attributes (optional)\n (\n (?:\n ","\n ","\n )*\n )\n\n (?:",")?\n >\n"]);return c=function(){return n},n}function f(){var n=y(["\n </\n // Group 1: End tag name\n (",")\n (?:",")?\n >\n"]);return f=function(){return n},n}function l(){var n=y(["\n <\n // Group 1: Element name\n (",")\n\n // Group 2: Attributes (optional)\n (\n (?:\n ","\n ","\n )*\n )\n\n (?:",")?\n />\n"]);return l=function(){return n},n}function s(){var n=y(["\n <![CDATA[\n // Group 1: CData text content (optional)\n (\n (?:",")*?\n )\n ]]>\n"],["\n <!\\[CDATA\\[\n // Group 1: CData text content (optional)\n (\n (?:",")*?\n )\n \\]\\]>\n"]);return s=function(){return n},n}function p(){var n=y(["\n ","\n ","\n\n (?:\n \"(?:\n [^<\"]\n )*\"\n\n |\n\n '(?:\n [^<']\n )*'\n )\n"]);return p=function(){return n},n}function d(){var n=y(["\n (?:",")?\n =\n (?:",")?\n"]);return d=function(){return n},n}function v(){var n=y(["\n [ \t\r\n]+\n"],["\n [\\x20\\t\\r\\n]+\n"]);return v=function(){return n},n}function h(){var n=y(["\n &[^s&;]*;?\n"],["\n &[^\\s&;]*;?\n"]);return h=function(){return n},n}function m(){var n=y(["\n ","\n (?:",")*\n"]);return m=function(){return n},n}function x(){var n=y(["\n (?:\n ","\n\n |\n\n [\n .\n 0-9\n ·\n ̀-ͯ\n ‿-⁀\n -\n ]\n )\n"],["\n (?:\n ","\n\n |\n\n [\n .\n 0-9\n \\xB7\n \\u0300-\\u036F\n \\u203F-\\u2040\n -\n ]\n )\n"]);return x=function(){return n},n}function g(){var n=y(["\n (?:\n [\n :\n A-Z\n _\n a-z\n À-Ö\n Ø-ö\n ø-˿\n Ͱ-ͽ\n Ϳ-\n -\n ⁰-\n Ⰰ-\n 、-\n 豈-﷏\n ﷰ-�\n ]\n\n |\n\n [\ud800-\udb7f][\udc00-\udfff]\n )\n"],["\n (?:\n [\n :\n A-Z\n _\n a-z\n \\xC0-\\xD6\n \\xD8-\\xF6\n \\xF8-\\u02FF\n \\u0370-\\u037D\n \\u037F-\\u1FFF\n \\u200C-\\u200D\n \\u2070-\\u218F\n \\u2C00-\\u2FEF\n \\u3001-\\uD7FF\n \\uF900-\\uFDCF\n \\uFDF0-\\uFFFD\n ]\n\n |\n\n [\\uD800-\\uDB7F][\\uDC00-\\uDFFF]\n )\n"]);return g=function(){return n},n}function b(){var n=y(["\n [^<&]+\n"]);return b=function(){return n},n}function C(){var n=y(["\n (?:\n [\n \t\n \n\n \r\n -\n -�\n ]\n\n |\n\n [\ud800-\udbff][\udc00-\udfff]\n )\n"],["\n (?:\n [\n \\t\n \\n\n \\r\n \\x20-\\uD7FF\n \\uE000-\\uFFFD\n ]\n\n |\n\n [\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\n )\n"]);return C=function(){return n},n}function y(n,e){return e||(e=n.slice(0)),n.raw=e,n}function F(n){for(var e=n.length,t=n.raw,r=e-1,o="",u=arguments.length,i=new Array(u>1?u-1:0),a=1;a<u;a++)i[a-1]=arguments[a];for(var c=0;c<e;++c)o+=t[c].replace(/(^|[^\\])\/\/.*$/gm,"$1").replace(/\s+/g,""),c<r&&(o+=i[c].source);return new RegExp(o)}e.Char=F(C()),e.CharData=F(b()),e.NameStartChar=F(g()),e.NameChar=F(x(),e.NameStartChar),e.Name=F(m(),e.NameStartChar,e.NameChar),e.Reference=F(h()),e.S=F(v()),e.Eq=F(d(),e.S,e.S),e.Attribute=F(p(),e.Name,e.Eq),e.CDSect=F(s(),e.Char),e.EmptyElemTag=F(l(),e.Name,e.S,e.Attribute,e.S),e.ETag=F(f(),e.Name,e.S),e.STag=F(c(),e.Name,e.S,e.Attribute,e.S),e.CharOnly=F(a(),e.Char),e.Comment=F(i(),e.Char,e.Char),e.doctypedecl=F(u(),e.S,e.S),e.PI=F(o(),e.Name,e.S,e.Char),e.XMLDecl=F(r(),e.S),e.Anchored={},e.Global={},Object.keys(e).forEach((function(n){if("Anchored"!==n&&"CharOnly"!==n&&"Global"!==n){var t=e[n];e.Anchored[n]=new RegExp("^"+t.source),e.Global[n]=new RegExp(t.source,"g")}}))}])}));
|