@svta/cml-xml 0.19.0 → 0.21.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 ADDED
@@ -0,0 +1,29 @@
1
+ # @svta/cml-xml
2
+
3
+ XML parsing utilities.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm i @svta/cml-xml
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { decodeXml } from "@svta/cml-xml";
15
+
16
+ const obj = decodeXml(
17
+ `<root>
18
+ <child>text</child>
19
+ <ns:tag>content</ns:tag>
20
+ </root>`
21
+ );
22
+
23
+ assert(obj.childNodes[0].nodeName === "root");
24
+ assert(obj.childNodes[0].childNodes[0].nodeName === "child");
25
+ assert(obj.childNodes[0].childNodes[0].childNodes[0].nodeValue === "text");
26
+ assert(obj.childNodes[0].childNodes[1].nodeName === "ns:tag");
27
+ assert(obj.childNodes[0].childNodes[1].prefix === "ns");
28
+ assert(obj.childNodes[0].childNodes[1].localName === "tag");
29
+ ```
package/dist/index.d.ts CHANGED
@@ -1,11 +1,89 @@
1
+ //#region src/XmlNode.d.ts
1
2
  /**
2
- * A collection of tools for working with XML.
3
- *
4
- * @packageDocumentation
5
- * @beta
6
- */
7
- export * from './getElementsByName.js';
8
- export * from './parseXml.js';
9
- export type * from './XmlNode.js';
10
- export type * from './XmlParseOptions.js';
3
+ * XML node
4
+ *
5
+ *
6
+ * @beta
7
+ */
8
+ type XmlNode = {
9
+ nodeName: string;
10
+ nodeValue: string | null;
11
+ attributes: Record<string, string>;
12
+ childNodes: XmlNode[];
13
+ prefix?: string | null;
14
+ localName?: string;
15
+ };
16
+ //#endregion
17
+ //#region src/XmlParseOptions.d.ts
18
+ /**
19
+ * XML parsing options
20
+ *
21
+ *
22
+ * @beta
23
+ */
24
+ type XmlParseOptions = {
25
+ pos?: number;
26
+ keepWhitespace?: boolean;
27
+ keepComments?: boolean;
28
+ };
29
+ //#endregion
30
+ //#region src/decodeXml.d.ts
31
+ /**
32
+ * Parse XML into a JS object with no validation and some failure tolerance
33
+ *
34
+ * @param input - The input XML string
35
+ * @param options - Optional parsing options
36
+ * @returns The parsed XML
37
+ *
38
+ * @beta
39
+ *
40
+ * @example
41
+ * {@includeCode ../test/decodeXml.test.ts#example}
42
+ */
43
+ declare function decodeXml(input: string, options?: XmlParseOptions): XmlNode;
44
+ //#endregion
45
+ //#region src/encodeXml.d.ts
46
+ /**
47
+ * Basic xml encoding utility. Encodes XML into a string.
48
+ *
49
+ * @param xml - The XML node to encode
50
+ * @returns The parsed XML
51
+ *
52
+ * @beta
53
+ *
54
+ * @example
55
+ * {@includeCode ../test/decodeXml.test.ts#example}
56
+ */
57
+ declare function encodeXml(xml: XmlNode): string;
58
+ //#endregion
59
+ //#region src/getElementsByName.d.ts
60
+ /**
61
+ * Recursively finds all elements by name within an XML structure.
62
+ *
63
+ * @param node - The current XML node to search within.
64
+ * @param name - The name of the target nodes to find.
65
+ * @param found - An array to collect matching nodes.
66
+ * @returns An array of all matching XmlNodes.
67
+ *
68
+ *
69
+ * @beta
70
+ *
71
+ */
72
+ declare function getElementsByName(node: XmlNode, name: string, found?: XmlNode[]): XmlNode[];
73
+ //#endregion
74
+ //#region src/parseXml.d.ts
75
+ /**
76
+ * Parse XML into a JS object with no validation and some failure tolerance
77
+ *
78
+ * @param input - The input XML string
79
+ * @param options - Optional parsing options
80
+ * @returns The parsed XML
81
+ *
82
+ * @beta
83
+ *
84
+ * @deprecated Use {@link decodeXml} instead.
85
+ */
86
+ declare const parseXml: typeof decodeXml;
87
+ //#endregion
88
+ export { XmlNode, XmlParseOptions, decodeXml, encodeXml, getElementsByName, parseXml };
11
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","names":["parseXml: typeof decodeXml"],"sources":["../src/XmlNode.ts","../src/XmlParseOptions.ts","../src/decodeXml.ts","../src/encodeXml.ts","../src/getElementsByName.ts","../src/parseXml.ts"],"sourcesContent":[],"mappings":";;AAOA;;;;ACDA;KDCY,OAAA;;;EESZ,UAAgB,EFNH,MEMG,CAAA,MAAA,EAAkC,MAAA,CAAA;cFLrC;;;AGEb,CAAA;;;;AHNA;;;;ACDA;KAAY,eAAA;;;ECUZ,YAAgB,CAAA,EAAA,OAAA;;;;;;;ADVhB;;;;ACUA;;;;ACHA;iBDGgB,SAAA,0BAAkC,kBAAuB;;;AFTzE;;;;ACDA;;;;ACUA;;;iBCHgB,SAAA,MAAe;;;AHN/B;;;;ACDA;;;;ACUA;;;;ACHgB,iBCCA,iBAAA,CDDe,IAAA,ECCS,ODDT,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,CAAA,ECCuC,ODDvC,EAAA,CAAA,ECCwD,ODDxD,EAAA;;;AHN/B;;;;ACDA;;;;ACUA;;;cGHaA,iBAAiB"}
package/dist/index.js CHANGED
@@ -1,9 +1,256 @@
1
+ import { unescapeHtml } from "@svta/cml-utils";
2
+
3
+ //#region src/decodeXml.ts
1
4
  /**
2
- * A collection of tools for working with XML.
3
- *
4
- * @packageDocumentation
5
- * @beta
6
- */
7
- export * from './getElementsByName.js';
8
- export * from './parseXml.js';
5
+ * Parse XML into a JS object with no validation and some failure tolerance
6
+ *
7
+ * @param input - The input XML string
8
+ * @param options - Optional parsing options
9
+ * @returns The parsed XML
10
+ *
11
+ * @beta
12
+ *
13
+ * @example
14
+ * {@includeCode ../test/decodeXml.test.ts#example}
15
+ */
16
+ function decodeXml(input, options = {}) {
17
+ let pos = options.pos || 0;
18
+ const length = input.length;
19
+ const keepComments = !!options.keepComments;
20
+ const keepWhitespace = !!options.keepWhitespace;
21
+ const openBracket = "<";
22
+ const openBracketCC = "<".charCodeAt(0);
23
+ const closeBracket = ">";
24
+ const closeBracketCC = ">".charCodeAt(0);
25
+ const minusCC = "-".charCodeAt(0);
26
+ const slashCC = "/".charCodeAt(0);
27
+ const questionCC = "?".charCodeAt(0);
28
+ const exclamationCC = "!".charCodeAt(0);
29
+ const singleQuoteCC = "'".charCodeAt(0);
30
+ const doubleQuoteCC = "\"".charCodeAt(0);
31
+ const openCornerBracketCC = "[".charCodeAt(0);
32
+ const closeCornerBracketCC = "]".charCodeAt(0);
33
+ const nameSpacer = "\r\n >/= ";
34
+ function createTextNode(value, nodeName = "#text") {
35
+ return {
36
+ nodeName,
37
+ nodeValue: value,
38
+ attributes: {},
39
+ childNodes: []
40
+ };
41
+ }
42
+ /**
43
+ * parsing a list of entries
44
+ */
45
+ function parseChildren(tagName = "") {
46
+ const children = [];
47
+ while (input[pos]) if (input.charCodeAt(pos) == openBracketCC) {
48
+ if (input.charCodeAt(pos + 1) === slashCC) {
49
+ const closeStart = pos + 2;
50
+ pos = input.indexOf(closeBracket, pos);
51
+ if (!input.startsWith(tagName, closeStart)) {
52
+ const parsedText = input.substring(0, pos).split("\n");
53
+ throw new Error("Unexpected close tag\nLine: " + (parsedText.length - 1) + "\nColumn: " + (parsedText[parsedText.length - 1].length + 1) + "\nChar: " + input[pos]);
54
+ }
55
+ if (pos + 1) pos += 1;
56
+ return children;
57
+ } else if (input.charCodeAt(pos + 1) === questionCC) {
58
+ pos = input.indexOf(closeBracket, pos);
59
+ pos++;
60
+ continue;
61
+ } else if (input.charCodeAt(pos + 1) === exclamationCC) {
62
+ if (input.charCodeAt(pos + 2) == minusCC) {
63
+ const startCommentPos = pos;
64
+ while (pos !== -1 && !(input.charCodeAt(pos) === closeBracketCC && input.charCodeAt(pos - 1) == minusCC && input.charCodeAt(pos - 2) == minusCC && pos != -1)) pos = input.indexOf(closeBracket, pos + 1);
65
+ if (pos === -1) pos = length;
66
+ if (keepComments) children.push(createTextNode(input.substring(startCommentPos, pos + 1), "#comment"));
67
+ } else if (input.charCodeAt(pos + 2) === openCornerBracketCC && input.charCodeAt(pos + 8) === openCornerBracketCC && input.startsWith("CDATA", pos + 3)) {
68
+ const cdataEndIndex = input.indexOf("]]>", pos);
69
+ if (cdataEndIndex == -1) {
70
+ children.push(createTextNode(input.substr(pos + 9), "#cdata"));
71
+ pos = length;
72
+ } else {
73
+ children.push(createTextNode(input.substring(pos + 9, cdataEndIndex), "#cdata"));
74
+ pos = cdataEndIndex + 3;
75
+ }
76
+ continue;
77
+ } else {
78
+ const startDoctype = pos + 1;
79
+ pos += 2;
80
+ let encapsuled = false;
81
+ while ((input.charCodeAt(pos) !== closeBracketCC || encapsuled === true) && input[pos]) {
82
+ if (input.charCodeAt(pos) === openCornerBracketCC) encapsuled = true;
83
+ else if (encapsuled === true && input.charCodeAt(pos) === closeCornerBracketCC) encapsuled = false;
84
+ pos++;
85
+ }
86
+ children.push(createTextNode(input.substring(startDoctype, pos), "#doctype"));
87
+ }
88
+ pos++;
89
+ continue;
90
+ }
91
+ const node = parseNode();
92
+ children.push(node);
93
+ } else {
94
+ const text = parseText();
95
+ if (keepWhitespace) {
96
+ if (text.length > 0) children.push(createTextNode(text));
97
+ } else {
98
+ const trimmed = text.trim();
99
+ if (trimmed.length > 0) children.push(createTextNode(trimmed));
100
+ }
101
+ pos++;
102
+ }
103
+ return children;
104
+ }
105
+ /**
106
+ * returns the text outside of texts until the first '&lt;'
107
+ */
108
+ function parseText() {
109
+ const start = pos;
110
+ pos = input.indexOf(openBracket, pos) - 1;
111
+ if (pos === -2) pos = length;
112
+ return unescapeHtml(input.slice(start, pos + 1));
113
+ }
114
+ /**
115
+ * returns text until the first nonAlphabetic letter
116
+ */
117
+ function parseName() {
118
+ const start = pos;
119
+ while (nameSpacer.indexOf(input[pos]) === -1 && input[pos]) pos++;
120
+ return input.slice(start, pos);
121
+ }
122
+ /**
123
+ * parses the attributes of a node
124
+ */
125
+ function parseAttributes() {
126
+ const attributes = {};
127
+ while (input.charCodeAt(pos) !== closeBracketCC && input[pos]) {
128
+ const c = input.charCodeAt(pos);
129
+ if (c > 64 && c < 91 || c > 96 && c < 123) {
130
+ const name = parseName();
131
+ let value = "";
132
+ let code = input.charCodeAt(pos);
133
+ while (code !== singleQuoteCC && code !== doubleQuoteCC) {
134
+ pos++;
135
+ code = input.charCodeAt(pos);
136
+ }
137
+ if (code === singleQuoteCC || code === doubleQuoteCC) {
138
+ value = parseString();
139
+ if (pos === -1) throw new Error("Missing closing quote");
140
+ } else pos--;
141
+ attributes[name] = unescapeHtml(value);
142
+ }
143
+ pos++;
144
+ }
145
+ return attributes;
146
+ }
147
+ /**
148
+ * parses a node
149
+ */
150
+ function parseNode() {
151
+ pos++;
152
+ const nodeName = parseName();
153
+ let localName = nodeName;
154
+ let prefix = null;
155
+ const nsIndex = nodeName.indexOf(":");
156
+ if (nsIndex !== -1) {
157
+ prefix = nodeName.slice(0, nsIndex);
158
+ localName = nodeName.slice(nsIndex + 1);
159
+ }
160
+ const attributes = parseAttributes();
161
+ let childNodes = [];
162
+ const prev = input.charCodeAt(pos - 1);
163
+ pos++;
164
+ if (prev !== slashCC) childNodes = parseChildren(nodeName);
165
+ return {
166
+ nodeName,
167
+ nodeValue: null,
168
+ attributes,
169
+ childNodes,
170
+ prefix,
171
+ localName
172
+ };
173
+ }
174
+ /**
175
+ * is parsing a string, that starts with a char and with the same usually ' or "
176
+ */
177
+ function parseString() {
178
+ const startChar = input[pos];
179
+ const startpos = pos + 1;
180
+ pos = input.indexOf(startChar, startpos);
181
+ return input.slice(startpos, pos);
182
+ }
183
+ return {
184
+ nodeName: "#document",
185
+ nodeValue: null,
186
+ childNodes: parseChildren(""),
187
+ attributes: {}
188
+ };
189
+ }
190
+
191
+ //#endregion
192
+ //#region src/encodeXml.ts
193
+ /**
194
+ * Basic xml encoding utility. Encodes XML into a string.
195
+ *
196
+ * @param xml - The XML node to encode
197
+ * @returns The parsed XML
198
+ *
199
+ * @beta
200
+ *
201
+ * @example
202
+ * {@includeCode ../test/decodeXml.test.ts#example}
203
+ */
204
+ function encodeXml(xml) {
205
+ const { nodeName, attributes, childNodes } = xml;
206
+ if (nodeName === "#document") return `<?xml version="1.0" encoding="UTF-8"?>${encodeXml(childNodes[0])}`;
207
+ if (nodeName === "#text") return xml.nodeValue || "";
208
+ let result = `<${nodeName}`;
209
+ if (attributes) for (const key in attributes) result += ` ${key}=${JSON.stringify(attributes[key])}`;
210
+ let children = "";
211
+ const childCount = childNodes?.length;
212
+ if (childCount) for (let i = 0; i < childCount; i++) children += encodeXml(childNodes[i]);
213
+ const close = !children ? " />" : `>${children}</${nodeName}>`;
214
+ result += close;
215
+ return result;
216
+ }
217
+
218
+ //#endregion
219
+ //#region src/getElementsByName.ts
220
+ /**
221
+ * Recursively finds all elements by name within an XML structure.
222
+ *
223
+ * @param node - The current XML node to search within.
224
+ * @param name - The name of the target nodes to find.
225
+ * @param found - An array to collect matching nodes.
226
+ * @returns An array of all matching XmlNodes.
227
+ *
228
+ *
229
+ * @beta
230
+ *
231
+ */
232
+ function getElementsByName(node, name, found = []) {
233
+ if (!node) return found;
234
+ if (node.nodeName === name) found.push(node);
235
+ if (node.childNodes) for (const child of node.childNodes) getElementsByName(child, name, found);
236
+ return found;
237
+ }
238
+
239
+ //#endregion
240
+ //#region src/parseXml.ts
241
+ /**
242
+ * Parse XML into a JS object with no validation and some failure tolerance
243
+ *
244
+ * @param input - The input XML string
245
+ * @param options - Optional parsing options
246
+ * @returns The parsed XML
247
+ *
248
+ * @beta
249
+ *
250
+ * @deprecated Use {@link decodeXml} instead.
251
+ */
252
+ const parseXml = decodeXml;
253
+
254
+ //#endregion
255
+ export { decodeXml, encodeXml, getElementsByName, parseXml };
9
256
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC","sourcesContent":["/**\n * A collection of tools for working with XML.\n *\n * @packageDocumentation\n * @beta\n */\nexport * from './getElementsByName.js';\nexport * from './parseXml.js';\nexport type * from './XmlNode.js';\nexport type * from './XmlParseOptions.js';\n"]}
1
+ {"version":3,"file":"index.js","names":["children: any[]","attributes: Record<string, string>","value: string","childNodes: any[]","parseXml: typeof decodeXml"],"sources":["../src/decodeXml.ts","../src/encodeXml.ts","../src/getElementsByName.ts","../src/parseXml.ts"],"sourcesContent":["import { unescapeHtml } from '@svta/cml-utils'\nimport type { XmlNode } from './XmlNode.ts'\nimport type { XmlParseOptions } from './XmlParseOptions.ts'\n\n/**\n * Parse XML into a JS object with no validation and some failure tolerance\n *\n * @param input - The input XML string\n * @param options - Optional parsing options\n * @returns The parsed XML\n *\n * @beta\n *\n * @example\n * {@includeCode ../test/decodeXml.test.ts#example}\n */\nexport function decodeXml(input: string, options: XmlParseOptions = {}): XmlNode {\n\tlet pos = options.pos || 0\n\n\tconst length = input.length\n\tconst keepComments = !!options.keepComments\n\tconst keepWhitespace = !!options.keepWhitespace\n\n\tconst openBracket = '<'\n\tconst openBracketCC = '<'.charCodeAt(0)\n\tconst closeBracket = '>'\n\tconst closeBracketCC = '>'.charCodeAt(0)\n\tconst minusCC = '-'.charCodeAt(0)\n\tconst slashCC = '/'.charCodeAt(0)\n\tconst questionCC = '?'.charCodeAt(0)\n\tconst exclamationCC = '!'.charCodeAt(0)\n\tconst singleQuoteCC = \"'\".charCodeAt(0)\n\tconst doubleQuoteCC = '\"'.charCodeAt(0)\n\tconst openCornerBracketCC = '['.charCodeAt(0)\n\tconst closeCornerBracketCC = ']'.charCodeAt(0)\n\tconst nameSpacer = '\\r\\n\\t>/= '\n\n\tfunction createTextNode(value: string, nodeName = '#text'): XmlNode {\n\t\treturn {\n\t\t\tnodeName,\n\t\t\tnodeValue: value,\n\t\t\tattributes: {},\n\t\t\tchildNodes: [],\n\t\t}\n\t}\n\n\t/**\n\t * parsing a list of entries\n\t */\n\tfunction parseChildren(tagName: string = ''): XmlNode[] {\n\t\tconst children: any[] = []\n\t\twhile (input[pos]) {\n\t\t\tif (input.charCodeAt(pos) == openBracketCC) {\n\t\t\t\tif (input.charCodeAt(pos + 1) === slashCC) {\n\t\t\t\t\tconst closeStart = pos + 2\n\t\t\t\t\tpos = input.indexOf(closeBracket, pos)\n\t\t\t\t\tif (!input.startsWith(tagName, closeStart)) {\n\t\t\t\t\t\tconst parsedText = input.substring(0, pos).split('\\n')\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'Unexpected close tag\\nLine: ' + (parsedText.length - 1) +\n\t\t\t\t\t\t\t'\\nColumn: ' + (parsedText[parsedText.length - 1].length + 1) +\n\t\t\t\t\t\t\t'\\nChar: ' + input[pos],\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pos + 1) {\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t}\n\n\t\t\t\t\treturn children\n\t\t\t\t}\n\t\t\t\telse if (input.charCodeAt(pos + 1) === questionCC) {\n\t\t\t\t\t// xml declaration\n\t\t\t\t\tpos = input.indexOf(closeBracket, pos)\n\t\t\t\t\tpos++\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\telse if (input.charCodeAt(pos + 1) === exclamationCC) {\n\t\t\t\t\tif (input.charCodeAt(pos + 2) == minusCC) {\n\t\t\t\t\t\t// comment support\n\t\t\t\t\t\tconst startCommentPos = pos\n\t\t\t\t\t\twhile (pos !== -1 && !(input.charCodeAt(pos) === closeBracketCC && input.charCodeAt(pos - 1) == minusCC && input.charCodeAt(pos - 2) == minusCC && pos != -1)) {\n\t\t\t\t\t\t\tpos = input.indexOf(closeBracket, pos + 1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\t\tpos = length\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (keepComments) {\n\t\t\t\t\t\t\tchildren.push(createTextNode(input.substring(startCommentPos, pos + 1), '#comment'))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (\n\t\t\t\t\t\tinput.charCodeAt(pos + 2) === openCornerBracketCC &&\n\t\t\t\t\t\tinput.charCodeAt(pos + 8) === openCornerBracketCC &&\n\t\t\t\t\t\tinput.startsWith('CDATA', pos + 3)\n\t\t\t\t\t) {\n\t\t\t\t\t\t// cdata\n\t\t\t\t\t\tconst cdataEndIndex = input.indexOf(']]>', pos)\n\t\t\t\t\t\tif (cdataEndIndex == -1) {\n\t\t\t\t\t\t\tchildren.push(createTextNode(input.substr(pos + 9), '#cdata'))\n\t\t\t\t\t\t\tpos = length\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tchildren.push(createTextNode(input.substring(pos + 9, cdataEndIndex), '#cdata'))\n\t\t\t\t\t\t\tpos = cdataEndIndex + 3\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// doctypesupport\n\t\t\t\t\t\tconst startDoctype = pos + 1\n\t\t\t\t\t\tpos += 2\n\t\t\t\t\t\tlet encapsuled = false\n\t\t\t\t\t\twhile ((input.charCodeAt(pos) !== closeBracketCC || encapsuled === true) && input[pos]) {\n\t\t\t\t\t\t\tif (input.charCodeAt(pos) === openCornerBracketCC) {\n\t\t\t\t\t\t\t\tencapsuled = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (encapsuled === true && input.charCodeAt(pos) === closeCornerBracketCC) {\n\t\t\t\t\t\t\t\tencapsuled = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpos++\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchildren.push(createTextNode(input.substring(startDoctype, pos), '#doctype'))\n\t\t\t\t\t}\n\n\t\t\t\t\tpos++\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst node = parseNode()\n\t\t\t\tchildren.push(node)\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst text = parseText()\n\t\t\t\tif (keepWhitespace) {\n\t\t\t\t\tif (text.length > 0) {\n\t\t\t\t\t\tchildren.push(createTextNode(text))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconst trimmed = text.trim()\n\t\t\t\t\tif (trimmed.length > 0) {\n\t\t\t\t\t\tchildren.push(createTextNode(trimmed))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpos++\n\t\t\t}\n\t\t}\n\t\treturn children\n\t}\n\n\t/**\n\t * returns the text outside of texts until the first '&lt;'\n\t */\n\tfunction parseText(): string {\n\t\tconst start = pos\n\t\tpos = input.indexOf(openBracket, pos) - 1\n\t\tif (pos === -2) {\n\t\t\tpos = length\n\t\t}\n\n\t\treturn unescapeHtml(input.slice(start, pos + 1))\n\t}\n\n\t/**\n\t * returns text until the first nonAlphabetic letter\n\t */\n\tfunction parseName(): string {\n\t\tconst start = pos\n\t\twhile (nameSpacer.indexOf(input[pos]) === -1 && input[pos]) {\n\t\t\tpos++\n\t\t}\n\t\treturn input.slice(start, pos)\n\t}\n\n\t/**\n\t * parses the attributes of a node\n\t */\n\tfunction parseAttributes(): Record<string, string> {\n\t\tconst attributes: Record<string, string> = {}\n\n\t\t// parsing attributes\n\t\twhile (input.charCodeAt(pos) !== closeBracketCC && input[pos]) {\n\t\t\tconst c = input.charCodeAt(pos)\n\t\t\tif ((c > 64 && c < 91) || (c > 96 && c < 123)) {\n\t\t\t\tconst name = parseName()\n\t\t\t\tlet value: string = ''\n\t\t\t\t// search beginning of the string\n\t\t\t\tlet code = input.charCodeAt(pos)\n\t\t\t\twhile (code !== singleQuoteCC && code !== doubleQuoteCC) {\n\t\t\t\t\tpos++\n\t\t\t\t\tcode = input.charCodeAt(pos)\n\t\t\t\t}\n\n\t\t\t\tif (code === singleQuoteCC || code === doubleQuoteCC) {\n\t\t\t\t\tvalue = parseString()\n\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\tthrow new Error('Missing closing quote')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpos--\n\t\t\t\t}\n\n\t\t\t\tattributes[name] = unescapeHtml(value)\n\t\t\t}\n\t\t\tpos++\n\t\t}\n\n\t\treturn attributes\n\t}\n\n\t/**\n\t * parses a node\n\t */\n\tfunction parseNode(): XmlNode {\n\t\tpos++\n\t\tconst nodeName = parseName()\n\t\tlet localName = nodeName\n\t\tlet prefix = null\n\n\t\tconst nsIndex = nodeName.indexOf(':')\n\t\tif (nsIndex !== -1) {\n\t\t\tprefix = nodeName.slice(0, nsIndex)\n\t\t\tlocalName = nodeName.slice(nsIndex + 1)\n\t\t}\n\n\t\tconst attributes = parseAttributes()\n\n\t\tlet childNodes: any[] = []\n\n\t\t// optional parsing of children\n\t\tconst prev = input.charCodeAt(pos - 1)\n\t\tpos++\n\n\t\tif (prev !== slashCC) {\n\t\t\tchildNodes = parseChildren(nodeName)\n\t\t}\n\n\t\treturn {\n\t\t\tnodeName,\n\t\t\tnodeValue: null,\n\t\t\tattributes,\n\t\t\tchildNodes,\n\t\t\tprefix,\n\t\t\tlocalName,\n\t\t}\n\t}\n\n\t/**\n\t * is parsing a string, that starts with a char and with the same usually ' or \"\n\t */\n\tfunction parseString(): string {\n\t\tconst startChar = input[pos]\n\t\tconst startpos = pos + 1\n\t\tpos = input.indexOf(startChar, startpos)\n\t\treturn input.slice(startpos, pos)\n\t}\n\n\treturn {\n\t\tnodeName: '#document',\n\t\tnodeValue: null,\n\t\tchildNodes: parseChildren(''),\n\t\tattributes: {},\n\t}\n}\n","import type { XmlNode } from './XmlNode.ts'\n\n/**\n * Basic xml encoding utility. Encodes XML into a string.\n *\n * @param xml - The XML node to encode\n * @returns The parsed XML\n *\n * @beta\n *\n * @example\n * {@includeCode ../test/decodeXml.test.ts#example}\n */\nexport function encodeXml(xml: XmlNode): string {\n\tconst { nodeName, attributes, childNodes } = xml\n\n\tif (nodeName === '#document') {\n\t\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>${encodeXml(childNodes[0])}`\n\t}\n\n\tif (nodeName === '#text') {\n\t\treturn xml.nodeValue || ''\n\t}\n\n\tlet result = `<${nodeName}`\n\n\tif (attributes) {\n\t\tfor (const key in attributes) {\n\t\t\tresult += ` ${key}=${JSON.stringify(attributes[key])}`\n\t\t}\n\t}\n\n\tlet children = ''\n\n\tconst childCount = childNodes?.length\n\n\tif (childCount) {\n\t\tfor (let i = 0; i < childCount; i++) {\n\t\t\tchildren += encodeXml(childNodes[i])\n\t\t}\n\t}\n\n\tconst close = (!children) ? ' />' : `>${children}</${nodeName}>`\n\tresult += close\n\n\treturn result\n}\n","import type { XmlNode } from './XmlNode.ts'\n\n/**\n * Recursively finds all elements by name within an XML structure.\n *\n * @param node - The current XML node to search within.\n * @param name - The name of the target nodes to find.\n * @param found - An array to collect matching nodes.\n * @returns An array of all matching XmlNodes.\n *\n *\n * @beta\n *\n */\nexport function getElementsByName(node: XmlNode, name: string, found: XmlNode[] = []): XmlNode[] {\n\tif (!node) {\n\t\treturn found\n\t}\n\n\tif (node.nodeName === name) {\n\t\tfound.push(node)\n\t}\n\n\tif (node.childNodes) {\n\t\tfor (const child of node.childNodes) {\n\t\t\tgetElementsByName(child, name, found)\n\t\t}\n\t}\n\n\treturn found\n}\n","import { decodeXml } from './decodeXml.ts'\n\n/**\n * Parse XML into a JS object with no validation and some failure tolerance\n *\n * @param input - The input XML string\n * @param options - Optional parsing options\n * @returns The parsed XML\n *\n * @beta\n *\n * @deprecated Use {@link decodeXml} instead.\n */\nexport const parseXml: typeof decodeXml = decodeXml\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@svta/cml-xml",
3
- "version": "0.19.0",
3
+ "version": "0.21.0",
4
4
  "description": "XML parsing utilities",
5
5
  "license": "Apache-2.0",
6
- "homepage": "https://github.com/streaming-video-technology-alliance/common-media-library",
6
+ "type": "module",
7
+ "homepage": "https://github.com/streaming-video-technology-alliance/common-media-library/tree/main/libs/xml",
7
8
  "authors": "Casey Occhialini <1508707+littlespex@users.noreply.github.com>",
8
9
  "repository": {
9
10
  "type": "git",
@@ -26,27 +27,7 @@
26
27
  ".": {
27
28
  "types": "./dist/index.d.ts",
28
29
  "import": "./dist/index.js",
29
- "require": "./dist/cjs/index.js",
30
30
  "default": "./dist/index.js"
31
- },
32
- "./*.js": {
33
- "import": "./dist/*.js",
34
- "require": "./dist/cjs/*.js",
35
- "default": "./dist/*.js"
36
- },
37
- "./*": {
38
- "types": "./dist/*.d.ts",
39
- "import": "./dist/*.js",
40
- "require": "./dist/cjs/*.js",
41
- "default": "./dist/*.js"
42
- }
43
- },
44
- "typesVersions": {
45
- "*": {
46
- "*": [
47
- "dist/*",
48
- "dist/cjs/*"
49
- ]
50
31
  }
51
32
  },
52
33
  "keywords": [
@@ -55,10 +36,8 @@
55
36
  "XML"
56
37
  ],
57
38
  "scripts": {
58
- "build": "tsc",
59
- "postbuild": "api-extractor run --local",
60
- "test": "node --no-warnings --test **/*.test.ts",
61
- "prepublishOnly": "npm run build"
39
+ "build": "node ../../scripts/build.ts",
40
+ "test": "node ../../scripts/test.ts"
62
41
  },
63
42
  "engines": {
64
43
  "node": ">=20"
package/NOTICE DELETED
@@ -1,35 +0,0 @@
1
- Streaming Video Technology Alliance Common Media Library Copyright (c) 2023
2
- Streaming Video Technology Alliance
3
-
4
- ---
5
-
6
- The following implementation in this project is derived from the `tXml` library
7
- (https://github.com/TobiasNickel/tXml)
8
-
9
- - src/utils/parseXml.ts
10
-
11
- ```
12
- The MIT License (MIT)
13
-
14
- Copyright (c) 2015 Tobias Nickel
15
-
16
- Permission is hereby granted, free of charge, to any person obtaining a copy
17
- of this software and associated documentation files (the "Software"), to deal
18
- in the Software without restriction, including without limitation the rights
19
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20
- copies of the Software, and to permit persons to whom the Software is
21
- furnished to do so, subject to the following conditions:
22
-
23
- The above copyright notice and this permission notice shall be included in all
24
- copies or substantial portions of the Software.
25
-
26
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32
- SOFTWARE.
33
- ```
34
-
35
- ---
package/dist/XmlNode.d.ts DELETED
@@ -1,15 +0,0 @@
1
- /**
2
- * XML node
3
- *
4
- *
5
- * @beta
6
- */
7
- export type XmlNode = {
8
- nodeName: string;
9
- nodeValue: string | null;
10
- attributes: Record<string, string>;
11
- childNodes: XmlNode[];
12
- prefix?: string | null;
13
- localName?: string;
14
- };
15
- //# sourceMappingURL=XmlNode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XmlNode.d.ts","sourceRoot":"","sources":["../src/XmlNode.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
package/dist/XmlNode.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=XmlNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XmlNode.js","sourceRoot":"","sources":["../src/XmlNode.ts"],"names":[],"mappings":"","sourcesContent":["\n/**\n * XML node\n *\n *\n * @beta\n */\nexport type XmlNode = {\n\tnodeName: string;\n\tnodeValue: string | null;\n\tattributes: Record<string, string>;\n\tchildNodes: XmlNode[];\n\tprefix?: string | null;\n\tlocalName?: string;\n};\n"]}
@@ -1,12 +0,0 @@
1
- /**
2
- * XML parsing options
3
- *
4
- *
5
- * @beta
6
- */
7
- export type XmlParseOptions = {
8
- pos?: number;
9
- keepWhitespace?: boolean;
10
- keepComments?: boolean;
11
- };
12
- //# sourceMappingURL=XmlParseOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XmlParseOptions.d.ts","sourceRoot":"","sources":["../src/XmlParseOptions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=XmlParseOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XmlParseOptions.js","sourceRoot":"","sources":["../src/XmlParseOptions.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * XML parsing options\n *\n *\n * @beta\n */\nexport type XmlParseOptions = {\n\tpos?: number;\n\tkeepWhitespace?: boolean;\n\tkeepComments?: boolean;\n};\n"]}
@@ -1,15 +0,0 @@
1
- import type { XmlNode } from './XmlNode.js';
2
- /**
3
- * Recursively finds all elements by name within an XML structure.
4
- *
5
- * @param node - The current XML node to search within.
6
- * @param name - The name of the target nodes to find.
7
- * @param found - An array to collect matching nodes.
8
- * @returns An array of all matching XmlNodes.
9
- *
10
- *
11
- * @beta
12
- *
13
- */
14
- export declare function getElementsByName(node: XmlNode, name: string, found?: XmlNode[]): XmlNode[];
15
- //# sourceMappingURL=getElementsByName.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getElementsByName.d.ts","sourceRoot":"","sources":["../src/getElementsByName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,EAAO,GAAG,OAAO,EAAE,CAY/F"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Recursively finds all elements by name within an XML structure.
3
- *
4
- * @param node - The current XML node to search within.
5
- * @param name - The name of the target nodes to find.
6
- * @param found - An array to collect matching nodes.
7
- * @returns An array of all matching XmlNodes.
8
- *
9
- *
10
- * @beta
11
- *
12
- */
13
- export function getElementsByName(node, name, found = []) {
14
- if (node.nodeName === name) {
15
- found.push(node);
16
- }
17
- if (node.childNodes) {
18
- for (const child of node.childNodes) {
19
- getElementsByName(child, name, found);
20
- }
21
- }
22
- return found;
23
- }
24
- //# sourceMappingURL=getElementsByName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getElementsByName.js","sourceRoot":"","sources":["../src/getElementsByName.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,IAAY,EAAE,QAAmB,EAAE;IACnF,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["import type { XmlNode } from './XmlNode.js';\n\n/**\n * Recursively finds all elements by name within an XML structure.\n *\n * @param node - The current XML node to search within.\n * @param name - The name of the target nodes to find.\n * @param found - An array to collect matching nodes.\n * @returns An array of all matching XmlNodes.\n *\n *\n * @beta\n *\n */\nexport function getElementsByName(node: XmlNode, name: string, found: XmlNode[] = []): XmlNode[] {\n\tif (node.nodeName === name) {\n\t\tfound.push(node);\n\t}\n\n\tif (node.childNodes) {\n\t\tfor (const child of node.childNodes) {\n\t\t\tgetElementsByName(child, name, found);\n\t\t}\n\t}\n\n\treturn found;\n}\n"]}
@@ -1,17 +0,0 @@
1
- import type { XmlNode } from './XmlNode.js';
2
- import type { XmlParseOptions } from './XmlParseOptions.js';
3
- /**
4
- * Parse XML into a JS object with no validation and some failure tolerance
5
- *
6
- * @param input - The input XML string
7
- * @param options - Optional parsing options
8
- * @returns The parsed XML
9
- *
10
- *
11
- * @beta
12
- *
13
- * @example
14
- * {@includeCode ../test/parseXml.test.ts#example}
15
- */
16
- export declare function parseXml(input: string, options?: XmlParseOptions): XmlNode;
17
- //# sourceMappingURL=parseXml.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseXml.d.ts","sourceRoot":"","sources":["../src/parseXml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAyP9E"}
package/dist/parseXml.js DELETED
@@ -1,236 +0,0 @@
1
- import { unescapeHtml } from '@svta/cml-utils/unescapeHtml.js';
2
- /**
3
- * Parse XML into a JS object with no validation and some failure tolerance
4
- *
5
- * @param input - The input XML string
6
- * @param options - Optional parsing options
7
- * @returns The parsed XML
8
- *
9
- *
10
- * @beta
11
- *
12
- * @example
13
- * {@includeCode ../test/parseXml.test.ts#example}
14
- */
15
- export function parseXml(input, options = {}) {
16
- let pos = options.pos || 0;
17
- const length = input.length;
18
- const keepComments = !!options.keepComments;
19
- const keepWhitespace = !!options.keepWhitespace;
20
- const openBracket = '<';
21
- const openBracketCC = '<'.charCodeAt(0);
22
- const closeBracket = '>';
23
- const closeBracketCC = '>'.charCodeAt(0);
24
- const minusCC = '-'.charCodeAt(0);
25
- const slashCC = '/'.charCodeAt(0);
26
- const questionCC = '?'.charCodeAt(0);
27
- const exclamationCC = '!'.charCodeAt(0);
28
- const singleQuoteCC = "'".charCodeAt(0);
29
- const doubleQuoteCC = '"'.charCodeAt(0);
30
- const openCornerBracketCC = '['.charCodeAt(0);
31
- const closeCornerBracketCC = ']'.charCodeAt(0);
32
- const nameSpacer = '\r\n\t>/= ';
33
- function createTextNode(value, nodeName = '#text') {
34
- return {
35
- nodeName,
36
- nodeValue: value,
37
- attributes: {},
38
- childNodes: [],
39
- };
40
- }
41
- /**
42
- * parsing a list of entries
43
- */
44
- function parseChildren(tagName = '') {
45
- const children = [];
46
- while (input[pos]) {
47
- if (input.charCodeAt(pos) == openBracketCC) {
48
- if (input.charCodeAt(pos + 1) === slashCC) {
49
- const closeStart = pos + 2;
50
- pos = input.indexOf(closeBracket, pos);
51
- if (!input.startsWith(tagName, closeStart)) {
52
- const parsedText = input.substring(0, pos).split('\n');
53
- throw new Error('Unexpected close tag\nLine: ' + (parsedText.length - 1) +
54
- '\nColumn: ' + (parsedText[parsedText.length - 1].length + 1) +
55
- '\nChar: ' + input[pos]);
56
- }
57
- if (pos + 1) {
58
- pos += 1;
59
- }
60
- return children;
61
- }
62
- else if (input.charCodeAt(pos + 1) === questionCC) {
63
- // xml declaration
64
- pos = input.indexOf(closeBracket, pos);
65
- pos++;
66
- continue;
67
- }
68
- else if (input.charCodeAt(pos + 1) === exclamationCC) {
69
- if (input.charCodeAt(pos + 2) == minusCC) {
70
- // comment support
71
- const startCommentPos = pos;
72
- while (pos !== -1 && !(input.charCodeAt(pos) === closeBracketCC && input.charCodeAt(pos - 1) == minusCC && input.charCodeAt(pos - 2) == minusCC && pos != -1)) {
73
- pos = input.indexOf(closeBracket, pos + 1);
74
- }
75
- if (pos === -1) {
76
- pos = length;
77
- }
78
- if (keepComments) {
79
- children.push(createTextNode(input.substring(startCommentPos, pos + 1), '#comment'));
80
- }
81
- }
82
- else if (input.charCodeAt(pos + 2) === openCornerBracketCC &&
83
- input.charCodeAt(pos + 8) === openCornerBracketCC &&
84
- input.startsWith('CDATA', pos + 3)) {
85
- // cdata
86
- const cdataEndIndex = input.indexOf(']]>', pos);
87
- if (cdataEndIndex == -1) {
88
- children.push(createTextNode(input.substr(pos + 9), '#cdata'));
89
- pos = length;
90
- }
91
- else {
92
- children.push(createTextNode(input.substring(pos + 9, cdataEndIndex), '#cdata'));
93
- pos = cdataEndIndex + 3;
94
- }
95
- continue;
96
- }
97
- else {
98
- // doctypesupport
99
- const startDoctype = pos + 1;
100
- pos += 2;
101
- let encapsuled = false;
102
- while ((input.charCodeAt(pos) !== closeBracketCC || encapsuled === true) && input[pos]) {
103
- if (input.charCodeAt(pos) === openCornerBracketCC) {
104
- encapsuled = true;
105
- }
106
- else if (encapsuled === true && input.charCodeAt(pos) === closeCornerBracketCC) {
107
- encapsuled = false;
108
- }
109
- pos++;
110
- }
111
- children.push(createTextNode(input.substring(startDoctype, pos), '#doctype'));
112
- }
113
- pos++;
114
- continue;
115
- }
116
- const node = parseNode();
117
- children.push(node);
118
- }
119
- else {
120
- const text = parseText();
121
- if (keepWhitespace) {
122
- if (text.length > 0) {
123
- children.push(createTextNode(text));
124
- }
125
- }
126
- else {
127
- const trimmed = text.trim();
128
- if (trimmed.length > 0) {
129
- children.push(createTextNode(trimmed));
130
- }
131
- }
132
- pos++;
133
- }
134
- }
135
- return children;
136
- }
137
- /**
138
- * returns the text outside of texts until the first '&lt;'
139
- */
140
- function parseText() {
141
- const start = pos;
142
- pos = input.indexOf(openBracket, pos) - 1;
143
- if (pos === -2) {
144
- pos = length;
145
- }
146
- return unescapeHtml(input.slice(start, pos + 1));
147
- }
148
- /**
149
- * returns text until the first nonAlphabetic letter
150
- */
151
- function parseName() {
152
- const start = pos;
153
- while (nameSpacer.indexOf(input[pos]) === -1 && input[pos]) {
154
- pos++;
155
- }
156
- return input.slice(start, pos);
157
- }
158
- /**
159
- * parses the attributes of a node
160
- */
161
- function parseAttributes() {
162
- const attributes = {};
163
- // parsing attributes
164
- while (input.charCodeAt(pos) !== closeBracketCC && input[pos]) {
165
- const c = input.charCodeAt(pos);
166
- if ((c > 64 && c < 91) || (c > 96 && c < 123)) {
167
- const name = parseName();
168
- let value = '';
169
- // search beginning of the string
170
- let code = input.charCodeAt(pos);
171
- while (code !== singleQuoteCC && code !== doubleQuoteCC) {
172
- pos++;
173
- code = input.charCodeAt(pos);
174
- }
175
- if (code === singleQuoteCC || code === doubleQuoteCC) {
176
- value = parseString();
177
- if (pos === -1) {
178
- throw new Error('Missing closing quote');
179
- }
180
- }
181
- else {
182
- pos--;
183
- }
184
- attributes[name] = unescapeHtml(value);
185
- }
186
- pos++;
187
- }
188
- return attributes;
189
- }
190
- /**
191
- * parses a node
192
- */
193
- function parseNode() {
194
- pos++;
195
- const nodeName = parseName();
196
- let localName = nodeName;
197
- let prefix = null;
198
- const nsIndex = nodeName.indexOf(':');
199
- if (nsIndex !== -1) {
200
- prefix = nodeName.slice(0, nsIndex);
201
- localName = nodeName.slice(nsIndex + 1);
202
- }
203
- const attributes = parseAttributes();
204
- let childNodes = [];
205
- // optional parsing of children
206
- const prev = input.charCodeAt(pos - 1);
207
- pos++;
208
- if (prev !== slashCC) {
209
- childNodes = parseChildren(nodeName);
210
- }
211
- return {
212
- nodeName,
213
- nodeValue: null,
214
- attributes,
215
- childNodes,
216
- prefix,
217
- localName,
218
- };
219
- }
220
- /**
221
- * is parsing a string, that starts with a char and with the same usually ' or "
222
- */
223
- function parseString() {
224
- const startChar = input[pos];
225
- const startpos = pos + 1;
226
- pos = input.indexOf(startChar, startpos);
227
- return input.slice(startpos, pos);
228
- }
229
- return {
230
- nodeName: '#document',
231
- nodeValue: null,
232
- childNodes: parseChildren(''),
233
- attributes: {},
234
- };
235
- }
236
- //# sourceMappingURL=parseXml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseXml.js","sourceRoot":"","sources":["../src/parseXml.ts"],"names":[],"mappings":"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","sourcesContent":["import { unescapeHtml } from '@svta/cml-utils/unescapeHtml.js';\nimport type { XmlNode } from './XmlNode.js';\nimport type { XmlParseOptions } from './XmlParseOptions.js';\n\n/**\n * Parse XML into a JS object with no validation and some failure tolerance\n *\n * @param input - The input XML string\n * @param options - Optional parsing options\n * @returns The parsed XML\n *\n *\n * @beta\n *\n * @example\n * {@includeCode ../test/parseXml.test.ts#example}\n */\nexport function parseXml(input: string, options: XmlParseOptions = {}): XmlNode {\n\tlet pos = options.pos || 0;\n\n\tconst length = input.length;\n\tconst keepComments = !!options.keepComments;\n\tconst keepWhitespace = !!options.keepWhitespace;\n\n\tconst openBracket = '<';\n\tconst openBracketCC = '<'.charCodeAt(0);\n\tconst closeBracket = '>';\n\tconst closeBracketCC = '>'.charCodeAt(0);\n\tconst minusCC = '-'.charCodeAt(0);\n\tconst slashCC = '/'.charCodeAt(0);\n\tconst questionCC = '?'.charCodeAt(0);\n\tconst exclamationCC = '!'.charCodeAt(0);\n\tconst singleQuoteCC = \"'\".charCodeAt(0);\n\tconst doubleQuoteCC = '\"'.charCodeAt(0);\n\tconst openCornerBracketCC = '['.charCodeAt(0);\n\tconst closeCornerBracketCC = ']'.charCodeAt(0);\n\tconst nameSpacer = '\\r\\n\\t>/= ';\n\n\tfunction createTextNode(value: string, nodeName = '#text'): XmlNode {\n\t\treturn {\n\t\t\tnodeName,\n\t\t\tnodeValue: value,\n\t\t\tattributes: {},\n\t\t\tchildNodes: [],\n\t\t};\n\t}\n\n\t/**\n\t * parsing a list of entries\n\t */\n\tfunction parseChildren(tagName: string = ''): XmlNode[] {\n\t\tconst children: any[] = [];\n\t\twhile (input[pos]) {\n\t\t\tif (input.charCodeAt(pos) == openBracketCC) {\n\t\t\t\tif (input.charCodeAt(pos + 1) === slashCC) {\n\t\t\t\t\tconst closeStart = pos + 2;\n\t\t\t\t\tpos = input.indexOf(closeBracket, pos);\n\t\t\t\t\tif (!input.startsWith(tagName, closeStart)) {\n\t\t\t\t\t\tconst parsedText = input.substring(0, pos).split('\\n');\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'Unexpected close tag\\nLine: ' + (parsedText.length - 1) +\n\t\t\t\t\t\t\t'\\nColumn: ' + (parsedText[parsedText.length - 1].length + 1) +\n\t\t\t\t\t\t\t'\\nChar: ' + input[pos],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pos + 1) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn children;\n\t\t\t\t}\n\t\t\t\telse if (input.charCodeAt(pos + 1) === questionCC) {\n\t\t\t\t\t// xml declaration\n\t\t\t\t\tpos = input.indexOf(closeBracket, pos);\n\t\t\t\t\tpos++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (input.charCodeAt(pos + 1) === exclamationCC) {\n\t\t\t\t\tif (input.charCodeAt(pos + 2) == minusCC) {\n\t\t\t\t\t\t// comment support\n\t\t\t\t\t\tconst startCommentPos = pos;\n\t\t\t\t\t\twhile (pos !== -1 && !(input.charCodeAt(pos) === closeBracketCC && input.charCodeAt(pos - 1) == minusCC && input.charCodeAt(pos - 2) == minusCC && pos != -1)) {\n\t\t\t\t\t\t\tpos = input.indexOf(closeBracket, pos + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\t\tpos = length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (keepComments) {\n\t\t\t\t\t\t\tchildren.push(createTextNode(input.substring(startCommentPos, pos + 1), '#comment'));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (\n\t\t\t\t\t\tinput.charCodeAt(pos + 2) === openCornerBracketCC &&\n\t\t\t\t\t\tinput.charCodeAt(pos + 8) === openCornerBracketCC &&\n\t\t\t\t\t\tinput.startsWith('CDATA', pos + 3)\n\t\t\t\t\t) {\n\t\t\t\t\t\t// cdata\n\t\t\t\t\t\tconst cdataEndIndex = input.indexOf(']]>', pos);\n\t\t\t\t\t\tif (cdataEndIndex == -1) {\n\t\t\t\t\t\t\tchildren.push(createTextNode(input.substr(pos + 9), '#cdata'));\n\t\t\t\t\t\t\tpos = length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tchildren.push(createTextNode(input.substring(pos + 9, cdataEndIndex), '#cdata'));\n\t\t\t\t\t\t\tpos = cdataEndIndex + 3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// doctypesupport\n\t\t\t\t\t\tconst startDoctype = pos + 1;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tlet encapsuled = false;\n\t\t\t\t\t\twhile ((input.charCodeAt(pos) !== closeBracketCC || encapsuled === true) && input[pos]) {\n\t\t\t\t\t\t\tif (input.charCodeAt(pos) === openCornerBracketCC) {\n\t\t\t\t\t\t\t\tencapsuled = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (encapsuled === true && input.charCodeAt(pos) === closeCornerBracketCC) {\n\t\t\t\t\t\t\t\tencapsuled = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpos++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchildren.push(createTextNode(input.substring(startDoctype, pos), '#doctype'));\n\t\t\t\t\t}\n\n\t\t\t\t\tpos++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst node = parseNode();\n\t\t\t\tchildren.push(node);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst text = parseText();\n\t\t\t\tif (keepWhitespace) {\n\t\t\t\t\tif (text.length > 0) {\n\t\t\t\t\t\tchildren.push(createTextNode(text));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconst trimmed = text.trim();\n\t\t\t\t\tif (trimmed.length > 0) {\n\t\t\t\t\t\tchildren.push(createTextNode(trimmed));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpos++;\n\t\t\t}\n\t\t}\n\t\treturn children;\n\t}\n\n\t/**\n\t * returns the text outside of texts until the first '&lt;'\n\t */\n\tfunction parseText(): string {\n\t\tconst start = pos;\n\t\tpos = input.indexOf(openBracket, pos) - 1;\n\t\tif (pos === -2) {\n\t\t\tpos = length;\n\t\t}\n\n\t\treturn unescapeHtml(input.slice(start, pos + 1));\n\t}\n\n\t/**\n\t * returns text until the first nonAlphabetic letter\n\t */\n\tfunction parseName(): string {\n\t\tconst start = pos;\n\t\twhile (nameSpacer.indexOf(input[pos]) === -1 && input[pos]) {\n\t\t\tpos++;\n\t\t}\n\t\treturn input.slice(start, pos);\n\t}\n\n\t/**\n\t * parses the attributes of a node\n\t */\n\tfunction parseAttributes(): Record<string, string> {\n\t\tconst attributes: Record<string, string> = {};\n\n\t\t// parsing attributes\n\t\twhile (input.charCodeAt(pos) !== closeBracketCC && input[pos]) {\n\t\t\tconst c = input.charCodeAt(pos);\n\t\t\tif ((c > 64 && c < 91) || (c > 96 && c < 123)) {\n\t\t\t\tconst name = parseName();\n\t\t\t\tlet value: string = '';\n\t\t\t\t// search beginning of the string\n\t\t\t\tlet code = input.charCodeAt(pos);\n\t\t\t\twhile (code !== singleQuoteCC && code !== doubleQuoteCC) {\n\t\t\t\t\tpos++;\n\t\t\t\t\tcode = input.charCodeAt(pos);\n\t\t\t\t}\n\n\t\t\t\tif (code === singleQuoteCC || code === doubleQuoteCC) {\n\t\t\t\t\tvalue = parseString();\n\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\tthrow new Error('Missing closing quote');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpos--;\n\t\t\t\t}\n\n\t\t\t\tattributes[name] = unescapeHtml(value);\n\t\t\t}\n\t\t\tpos++;\n\t\t}\n\n\t\treturn attributes;\n\t}\n\n\t/**\n\t * parses a node\n\t */\n\tfunction parseNode(): XmlNode {\n\t\tpos++;\n\t\tconst nodeName = parseName();\n\t\tlet localName = nodeName;\n\t\tlet prefix = null;\n\n\t\tconst nsIndex = nodeName.indexOf(':');\n\t\tif (nsIndex !== -1) {\n\t\t\tprefix = nodeName.slice(0, nsIndex);\n\t\t\tlocalName = nodeName.slice(nsIndex + 1);\n\t\t}\n\n\t\tconst attributes = parseAttributes();\n\n\t\tlet childNodes: any[] = [];\n\n\t\t// optional parsing of children\n\t\tconst prev = input.charCodeAt(pos - 1);\n\t\tpos++;\n\n\t\tif (prev !== slashCC) {\n\t\t\tchildNodes = parseChildren(nodeName);\n\t\t}\n\n\t\treturn {\n\t\t\tnodeName,\n\t\t\tnodeValue: null,\n\t\t\tattributes,\n\t\t\tchildNodes,\n\t\t\tprefix,\n\t\t\tlocalName,\n\t\t};\n\t}\n\n\t/**\n\t * is parsing a string, that starts with a char and with the same usually ' or \"\n\t */\n\tfunction parseString(): string {\n\t\tconst startChar = input[pos];\n\t\tconst startpos = pos + 1;\n\t\tpos = input.indexOf(startChar, startpos);\n\t\treturn input.slice(startpos, pos);\n\t}\n\n\treturn {\n\t\tnodeName: '#document',\n\t\tnodeValue: null,\n\t\tchildNodes: parseChildren(''),\n\t\tattributes: {},\n\t};\n}\n"]}
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/XmlNode.ts","../src/XmlParseOptions.ts","../src/getElementsByName.ts","../../utils/dist/unescapeHtml.d.ts","../src/parseXml.ts","../src/index.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/accepts/index.d.ts","../../../node_modules/@types/argparse/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/command-line-args/index.d.ts","../../../node_modules/@types/content-disposition/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/keygrip/index.d.ts","../../../node_modules/@types/cookies/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/http-assert/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/koa-compose/index.d.ts","../../../node_modules/@types/koa/index.d.ts","../../../node_modules/@types/m3u8-parser/index.d.ts","../../../node_modules/@types/parse5/lib/tree-adapters/default.d.ts","../../../node_modules/@types/parse5/index.d.ts","../../../node_modules/@types/resolve/index.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/xml2js/lib/processors.d.ts","../../../node_modules/@types/xml2js/index.d.ts"],"fileIdsList":[[90,144,161,162],[82,90,144,161,162],[82,83,84,86,90,144,161,162],[82,83,85,90,144,161,162],[90,144,158,161,162,194],[90,144,158,161,162,194,197],[90,144,158,161,162,194,197,208,209],[90,144,155,158,161,162,194,202,203,204],[90,144,161,162,198,205,207],[90,144,161,162,212],[90,144,161,162,217],[90,143,144,155,158,159,161,162,164,170,187,194,195,200,206,209,210,214,216],[90,141,142,144,161,162],[90,143,144,161,162],[144,161,162],[90,144,149,161,162,179],[90,144,145,150,155,161,162,164,176,187],[90,144,145,146,155,161,162,164],[90,144,147,161,162,188],[90,144,148,149,156,161,162,165],[90,144,149,161,162,176,184],[90,144,150,152,155,161,162,164],[90,143,144,151,161,162],[90,144,152,153,161,162],[90,144,154,155,161,162],[90,143,144,155,161,162],[90,144,155,156,157,161,162,176,187],[90,144,155,156,157,161,162,171,176,179],[90,136,144,152,155,158,161,162,164,176,187],[90,144,155,156,158,159,161,162,164,176,184,187],[90,144,158,160,161,162,176,184,187],[88,89,90,91,92,93,94,95,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[90,144,155,161,162],[90,144,161,162,163,187],[90,144,152,155,161,162,164,176],[90,144,161,162,165],[90,144,161,162,166],[90,143,144,161,162,167],[90,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[90,144,161,162,169],[90,144,161,162,170],[90,144,155,161,162,171,172],[90,144,161,162,171,173,188,190],[90,144,155,161,162,176,177,179],[90,144,161,162,178,179],[90,144,161,162,176,177],[90,144,161,162,179],[90,144,161,162,180],[90,141,144,161,162,176,181],[90,144,155,161,162,182,183],[90,144,161,162,182,183],[90,144,149,161,162,164,176,184],[90,144,161,162,185],[90,144,161,162,164,186],[90,144,158,161,162,170,187],[90,144,149,161,162,188],[90,144,161,162,176,189],[90,144,161,162,163,190],[90,144,161,162,191],[90,144,149,161,162],[90,136,144,161,162],[90,144,161,162,192],[90,136,144,155,157,161,162,167,176,179,187,189,190,192],[90,144,161,162,176,193],[90,144,161,162,219],[90,144,161,162,220],[90,144,161,162,223,261],[90,144,161,162,223,246,261],[90,144,161,162,222,261],[90,144,161,162,261],[90,144,161,162,223],[90,144,161,162,223,247,261],[90,144,161,162,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260],[90,144,161,162,247,261],[90,144,156,161,162,176,194,201],[90,144,158,161,162,194,202,206],[90,144,155,158,160,161,162,164,176,184,187,193,194],[90,144,155,161,162,194,263],[90,102,105,108,109,144,161,162,187],[90,105,144,161,162,176,187],[90,105,109,144,161,162,187],[90,144,161,162,176],[90,99,144,161,162],[90,103,144,161,162],[90,101,102,105,144,161,162,187],[90,144,161,162,164,184],[90,144,161,162,194],[90,99,144,161,162,194],[90,101,105,144,161,162,164,187],[90,96,97,98,100,104,144,155,161,162,176,187],[90,105,113,121,144,161,162],[90,97,103,144,161,162],[90,105,130,131,144,161,162],[90,97,100,105,144,161,162,179,187,194],[90,105,144,161,162],[90,101,105,144,161,162,187],[90,96,144,161,162],[90,99,100,101,103,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,135,144,161,162],[90,105,123,126,144,152,161,162],[90,105,113,114,115,144,161,162],[90,103,105,114,116,144,161,162],[90,104,144,161,162],[90,97,99,105,144,161,162],[90,105,109,114,116,144,161,162],[90,109,144,161,162],[90,103,105,108,144,161,162,187],[90,97,101,105,113,144,161,162],[90,105,123,144,161,162],[90,116,144,161,162],[90,99,105,130,144,161,162,179,192,194]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"f7ea407b550c25114b304d72b047bbd5f6f88a17e418bb3598ee6846779e4144","signature":"3210d9a77a398359ba12e729bcf8e356114996899527b6a5b7b1298cb219ff50"},{"version":"7f3f583eb5428c0fbaccc2f4baf78aac1c50c42ac9363d02f9e3fa693c6c5ef7","signature":"3f6be1134e959bcbb40eda8612a185e32172a0d3401c72983a15711a69e48d49"},{"version":"0c60837c03aa07607b8d182f8c7600eec00ac011b964f6115c8f479f373939c5","signature":"7fd39554b6b8c3178bf89be22cde91b3e32e59cdf8b0c5bc7e04d94d460a4144"},"5698c4def2b0bf8d5fc60ef41f626cf5d706c1ebc9e29cbcecbf51ab82874ddd",{"version":"6173c8a6ff844745cf83d645d0c73a96f6a3ff3c96a3bd09b3e5511074668d1d","signature":"83ee6b3c67c7bb3270bc58b833f5c4bae70644dc6a4df77ee0ca95bd78cd800c"},"575b3b69b906a654b272ea7a58d43da3db6076b0e5256c12fe5f3cc336225503",{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa83e100f0c74a06c9d24f40a096c9e9cc3c02704250d01541e22c0ae9264eda","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"00b21ef538da5a2bbe419e2144f3be50661768e1e039ef2b57bb89f96aff9b18","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"e843e840f484f7e59b2ef9488501a301e3300a8e3e56aa84a02ddf915c7ce07d","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"18f8cfbb14ba9405e67d30968ae67b8d19133867d13ebc49c8ed37ec64ce9bdb","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f68328826a275104d92bd576c796c570f66365f25ea8bbaaa208727bce132d5f","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"18334defc3d0a0e1966f5f3c23c7c83b62c77811e51045c5a7ff3883b446f81f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b17fcd63aa13734bf1d01419f4d6031b1c6a5fb2cbdb45e9839fb1762bdf0df","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"beb77fcd86c8cee62c32b2fb82753f5bc0e171d938e20af3cb0b8925db78d60b","impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"aa9224557befad144262c85b463c0a7ba8a3a0ad2a7c907349f8bb8bc3fe4abc","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"8d86c8d8c43e04cc3dde9953e571656812c8964a3651203af7b3a1df832a34df","affectsGlobalScope":true,"impliedFormat":1},{"version":"0121911fcc364eb821d058cf4c3b9339f197eccbe298098a4c6be0396b607d90","impliedFormat":1},{"version":"c6176c7b9f3769ba7f076c7a791588562c653cc0ba08fb2184f87bf78db2a87c","impliedFormat":1},{"version":"6def204d0b267101d3a42300a7363f53406c5d86b932e76e2365bf89689a85c4","impliedFormat":1},{"version":"4f766affd1281935fe5f7fd5d7af693a7c26d81adef7c1aefb84b9cd573a9cbb","impliedFormat":1},{"version":"165a0c1f95bc939c72f18a280fc707fba6f2f349539246b050cfc09eb1d9f446","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"c0bb1b65757c72bbf8ddf7eaa532223bacf58041ff16c883e76f45506596e925","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7baae9bf5b50e572e7742c886c73c6f8fa50b34190bc5f0fd20dd7e706fda832","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"5e9f8c1e042b0f598a9be018fc8c3cb670fe579e9f2e18e3388b63327544fe16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"b827f8800f42858f0a751a605c003b7ab571ff7af184436f36cef9bdfebae808","impliedFormat":1},{"version":"363eedb495912790e867da6ff96e81bf792c8cfe386321e8163b71823a35719a","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"6b306cd4282bbb54d4a6bb23cfb7a271160983dfc38c67b5a132504cfcc34896","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"450172a56b944c2d83f45cc11c9a388ea967cd301a21202aa0a23c34c7506a18","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"3af7d02e5d6ecbf363e61fb842ee55d3518a140fd226bdfb24a3bca6768c58df","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"7dfa742c23851808a77ec27062fbbd381c8c36bb3cfdff46cb8af6c6c233bfc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb078cfcd14dc0b1700a48272958f803f30f13f99111c5978c75c3a0aa07e40e","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"420fdd37c51263be9db3fcac35ffd836216c71e6000e6a9740bb950fb0540654","impliedFormat":1},{"version":"73b0bff83ee76e3a9320e93c7fc15596e858b33c687c39a57567e75c43f2a324","impliedFormat":1},{"version":"3c947600f6f5664cca690c07fcf8567ca58d029872b52c31c2f51d06fbdb581b","affectsGlobalScope":true,"impliedFormat":1},{"version":"493c64d062139b1849b0e9c4c3a6465e1227d2b42be9e26ec577ca728984c041","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1},{"version":"87f287f296f3ff07dbd14ea7853c2400d995dccd7bd83206196d6c0974774e96","impliedFormat":1},{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","impliedFormat":1},{"version":"5b7206ca5f2f6eeaac6daa285664f424e0b728f3e31937da89deb8696c5f1dbc","impliedFormat":1},{"version":"0504070e7eaba788f5d0d5926782ed177f1db01cee28363c488fae94950c0bbc","impliedFormat":1},{"version":"d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","impliedFormat":1},{"version":"b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","impliedFormat":1},{"version":"baac9896d29bcc55391d769e408ff400d61273d832dd500f21de766205255acb","impliedFormat":1},{"version":"2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","impliedFormat":1},{"version":"a8932b7a5ef936687cc5b2492b525e2ad5e7ed321becfea4a17d5a6c80f49e92","affectsGlobalScope":true,"impliedFormat":1},{"version":"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","impliedFormat":1},{"version":"0e13570a7e86c6d83dd92e81758a930f63747483e2cd34ef36fcdb47d1f9726a","impliedFormat":1},{"version":"d26a79f97f25eb1c5fc36a8552e4decc7ad11104a016d31b1307c3afaf48feb1","impliedFormat":1},{"version":"6847334317c1bc1e6fc4b679b0095bbd2b6ee3b85fe3f26fc26bac462f68ef5e","impliedFormat":1},{"version":"2224f3072e3cc07906eeed5c71746779511fba2dd224addc5489bcdb489bdee5","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"fbf802b3a028f5eb22ad406ee5fc7c368f0acfd3a2a6d0f805120766f5717ec8","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7e8d3f08435ad2cefe67f58182618bfc9a0a29db08cf2544b94cbcae754a9bd9","impliedFormat":1},{"version":"8cf9b9045a614f883b623c2f1a631ec6a93321747e933330b2eec0ee47164a34","impliedFormat":1},{"version":"b0f87d06834f4d3ff5b99dfb2f81f4a7a046dc99cecbdbf897fd50479cd98182","impliedFormat":1},{"version":"fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","impliedFormat":1},{"version":"5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","impliedFormat":1},{"version":"8baa5d0febc68db886c40bf341e5c90dc215a90cd64552e47e8184be6b7e3358","impliedFormat":1},{"version":"ce6a3f09b8db73a7e9701aca91a04b4fabaf77436dd35b24482f9ee816016b17","impliedFormat":1},{"version":"20e086e5b64fdd52396de67761cc0e94693494deadb731264aac122adf08de3f","impliedFormat":1},{"version":"6e78f75403b3ec65efb41c70d392aeda94360f11cedc9fb2c039c9ea23b30962","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"eefd2bbc8edb14c3bd1246794e5c070a80f9b8f3730bd42efb80df3cc50b9039","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"a56fe175741cc8841835eb72e61fa5a34adcbc249ede0e3494c229f0750f6b85","impliedFormat":1},{"version":"bc81aff061c53a7140270555f4b22da4ecfe8601e8027cf5aa175fbdc7927c31","impliedFormat":1},{"version":"c0288f54de6f544706a3150c8b579b1a975870695c4be866f727ece6a16f3976","impliedFormat":1},{"version":"f8636a916949481bc363ae24cbeb8451fa98fd2d07329e0664a46567278c9adb","impliedFormat":1}],"root":[[82,84],86,87],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"erasableSyntaxOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":false,"inlineSources":true,"isolatedDeclarations":true,"module":99,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noPropertyAccessFromIndexSignature":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","preserveConstEnums":true,"removeComments":false,"rewriteRelativeImportExtensions":true,"sourceMap":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":6,"verbatimModuleSyntax":true},"referencedMap":[[85,1],[82,1],[83,1],[84,2],[87,3],[86,4],[195,5],[196,1],[198,6],[199,1],[197,5],[200,1],[210,7],[211,1],[205,8],[208,9],[213,10],[214,1],[206,1],[215,1],[209,1],[216,11],[217,12],[218,1],[201,1],[141,13],[142,13],[143,14],[90,15],[144,16],[145,17],[146,18],[88,1],[147,19],[148,20],[149,21],[150,22],[151,23],[152,24],[153,24],[154,25],[155,26],[156,27],[157,28],[91,1],[89,1],[158,29],[159,30],[160,31],[194,32],[161,33],[162,1],[163,34],[164,35],[165,36],[166,37],[167,38],[168,39],[169,40],[170,41],[171,42],[172,42],[173,43],[174,1],[175,1],[176,44],[178,45],[177,46],[179,47],[180,48],[181,49],[182,50],[183,51],[184,52],[185,53],[186,54],[187,55],[188,56],[189,57],[190,58],[191,59],[92,1],[93,60],[94,1],[95,1],[137,61],[138,62],[139,1],[140,47],[192,63],[193,64],[220,65],[219,66],[203,1],[204,1],[221,1],[246,67],[247,68],[223,69],[226,70],[244,67],[245,67],[235,67],[234,71],[232,67],[227,67],[240,67],[238,67],[242,67],[222,67],[239,67],[243,67],[228,67],[229,67],[241,67],[224,67],[230,67],[231,67],[233,67],[237,67],[248,72],[236,67],[225,67],[261,73],[260,1],[255,72],[257,74],[256,72],[249,72],[250,72],[252,72],[254,72],[258,74],[259,74],[251,74],[253,74],[202,75],[207,76],[212,1],[262,77],[264,78],[263,1],[80,1],[81,1],[15,1],[13,1],[14,1],[17,1],[16,1],[2,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[3,1],[26,1],[27,1],[4,1],[28,1],[32,1],[29,1],[30,1],[31,1],[33,1],[34,1],[35,1],[5,1],[36,1],[37,1],[38,1],[39,1],[6,1],[43,1],[40,1],[41,1],[42,1],[44,1],[7,1],[45,1],[50,1],[51,1],[46,1],[47,1],[48,1],[49,1],[8,1],[55,1],[52,1],[53,1],[54,1],[56,1],[9,1],[57,1],[58,1],[59,1],[61,1],[60,1],[62,1],[63,1],[10,1],[64,1],[65,1],[66,1],[11,1],[67,1],[68,1],[69,1],[70,1],[71,1],[1,1],[72,1],[73,1],[12,1],[77,1],[75,1],[79,1],[74,1],[78,1],[76,1],[113,79],[125,80],[111,81],[126,82],[135,83],[102,84],[103,85],[101,86],[134,87],[129,88],[133,89],[105,90],[122,91],[104,92],[132,93],[99,94],[100,88],[106,95],[107,1],[112,96],[110,95],[97,97],[136,98],[127,99],[116,100],[115,95],[117,101],[120,102],[114,103],[118,104],[130,87],[108,105],[109,106],[121,107],[98,82],[124,108],[123,95],[119,109],[128,1],[96,1],[131,110]],"version":"5.8.2"}