@loaders.gl/xml 3.4.0-alpha.2 → 3.4.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/dist.min.js +59 -18
  2. package/dist/es5/html-loader.js +6 -8
  3. package/dist/es5/html-loader.js.map +1 -1
  4. package/dist/es5/index.js.map +1 -1
  5. package/dist/es5/lib/parsers/parse-xml.js +0 -1
  6. package/dist/es5/lib/parsers/parse-xml.js.map +1 -1
  7. package/dist/es5/lib/parsers/streaming-xml-parser.js +2 -7
  8. package/dist/es5/lib/parsers/streaming-xml-parser.js.map +1 -1
  9. package/dist/es5/lib/xml-utils/uncapitalize.js +0 -2
  10. package/dist/es5/lib/xml-utils/uncapitalize.js.map +1 -1
  11. package/dist/es5/lib/xml-utils/xml-utils.js +1 -4
  12. package/dist/es5/lib/xml-utils/xml-utils.js.map +1 -1
  13. package/dist/es5/sax-ts/sax.js +1 -18
  14. package/dist/es5/sax-ts/sax.js.map +1 -1
  15. package/dist/es5/xml-loader.js +7 -11
  16. package/dist/es5/xml-loader.js.map +1 -1
  17. package/dist/esm/bundle.js +0 -1
  18. package/dist/esm/bundle.js.map +1 -1
  19. package/dist/esm/html-loader.js +0 -2
  20. package/dist/esm/html-loader.js.map +1 -1
  21. package/dist/esm/index.js +0 -6
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/lib/parsers/parse-xml.js +0 -3
  24. package/dist/esm/lib/parsers/parse-xml.js.map +1 -1
  25. package/dist/esm/lib/parsers/streaming-xml-parser.js +1 -6
  26. package/dist/esm/lib/parsers/streaming-xml-parser.js.map +1 -1
  27. package/dist/esm/lib/xml-utils/uncapitalize.js +0 -3
  28. package/dist/esm/lib/xml-utils/uncapitalize.js.map +1 -1
  29. package/dist/esm/lib/xml-utils/xml-utils.js +1 -5
  30. package/dist/esm/lib/xml-utils/xml-utils.js.map +1 -1
  31. package/dist/esm/sax-ts/sax.js +1 -19
  32. package/dist/esm/sax-ts/sax.js.map +1 -1
  33. package/dist/esm/xml-loader.js +1 -4
  34. package/dist/esm/xml-loader.js.map +1 -1
  35. package/dist/sax-ts/sax.js +1 -1
  36. package/package.json +4 -4
package/dist/dist.min.js CHANGED
@@ -1759,7 +1759,10 @@ Actual: ${this.attribValue}`);
1759
1759
  ignoreDeclaration: false,
1760
1760
  ignorePiTags: false,
1761
1761
  transformTagName: false,
1762
- transformAttributeName: false
1762
+ transformAttributeName: false,
1763
+ updateTag: function(tagName, jPath, attrs) {
1764
+ return tagName;
1765
+ }
1763
1766
  };
1764
1767
  var buildOptions = function(options) {
1765
1768
  return Object.assign({}, defaultOptions, options);
@@ -2037,6 +2040,7 @@ Actual: ${this.attribValue}`);
2037
2040
  this.replaceEntitiesValue = replaceEntitiesValue;
2038
2041
  this.readStopNodeData = readStopNodeData;
2039
2042
  this.saveTextToParentTag = saveTextToParentTag;
2043
+ this.addChild = addChild;
2040
2044
  }
2041
2045
  };
2042
2046
  function addExternalEntities(externalEntities) {
@@ -2089,7 +2093,7 @@ Actual: ${this.attribValue}`);
2089
2093
  return tagname;
2090
2094
  }
2091
2095
  var attrsRegx = new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`, "gm");
2092
- function buildAttributesMap(attrStr, jPath) {
2096
+ function buildAttributesMap(attrStr, jPath, tagName) {
2093
2097
  if (!this.options.ignoreAttributes && typeof attrStr === "string") {
2094
2098
  const matches = util.getAllMatches(attrStr, attrsRegx);
2095
2099
  const len = matches.length;
@@ -2157,7 +2161,18 @@ Actual: ${this.attribValue}`);
2157
2161
  if (currentNode) {
2158
2162
  textData = this.saveTextToParentTag(textData, currentNode, jPath);
2159
2163
  }
2160
- jPath = jPath.substr(0, jPath.lastIndexOf("."));
2164
+ const lastTagName = jPath.substring(jPath.lastIndexOf(".") + 1);
2165
+ if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {
2166
+ throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);
2167
+ }
2168
+ let propIndex = 0;
2169
+ if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {
2170
+ propIndex = jPath.lastIndexOf(".", jPath.lastIndexOf(".") - 1);
2171
+ this.tagsNodeStack.pop();
2172
+ } else {
2173
+ propIndex = jPath.lastIndexOf(".");
2174
+ }
2175
+ jPath = jPath.substring(0, propIndex);
2161
2176
  currentNode = this.tagsNodeStack.pop();
2162
2177
  textData = "";
2163
2178
  i = closeIndex;
@@ -2171,9 +2186,9 @@ Actual: ${this.attribValue}`);
2171
2186
  const childNode = new xmlNode(tagData.tagName);
2172
2187
  childNode.add(this.options.textNodeName, "");
2173
2188
  if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {
2174
- childNode[":@"] = this.buildAttributesMap(tagData.tagExp, jPath);
2189
+ childNode[":@"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);
2175
2190
  }
2176
- currentNode.addChild(childNode);
2191
+ this.addChild(currentNode, childNode, jPath);
2177
2192
  }
2178
2193
  i = tagData.closeIndex + 1;
2179
2194
  } else if (xmlData.substr(i + 1, 3) === "!--") {
@@ -2215,12 +2230,13 @@ Actual: ${this.attribValue}`);
2215
2230
  textData = this.saveTextToParentTag(textData, currentNode, jPath, false);
2216
2231
  }
2217
2232
  }
2218
- if (tagName !== xmlObj.tagname) {
2219
- jPath += jPath ? "." + tagName : tagName;
2220
- }
2221
2233
  const lastTag = currentNode;
2222
2234
  if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {
2223
2235
  currentNode = this.tagsNodeStack.pop();
2236
+ jPath = jPath.substring(0, jPath.lastIndexOf("."));
2237
+ }
2238
+ if (tagName !== xmlObj.tagname) {
2239
+ jPath += jPath ? "." + tagName : tagName;
2224
2240
  }
2225
2241
  if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {
2226
2242
  let tagContent = "";
@@ -2237,14 +2253,14 @@ Actual: ${this.attribValue}`);
2237
2253
  }
2238
2254
  const childNode = new xmlNode(tagName);
2239
2255
  if (tagName !== tagExp && attrExpPresent) {
2240
- childNode[":@"] = this.buildAttributesMap(tagExp, jPath);
2256
+ childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName);
2241
2257
  }
2242
2258
  if (tagContent) {
2243
2259
  tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);
2244
2260
  }
2245
2261
  jPath = jPath.substr(0, jPath.lastIndexOf("."));
2246
2262
  childNode.add(this.options.textNodeName, tagContent);
2247
- currentNode.addChild(childNode);
2263
+ this.addChild(currentNode, childNode, jPath);
2248
2264
  } else {
2249
2265
  if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) {
2250
2266
  if (tagName[tagName.length - 1] === "/") {
@@ -2258,17 +2274,17 @@ Actual: ${this.attribValue}`);
2258
2274
  }
2259
2275
  const childNode = new xmlNode(tagName);
2260
2276
  if (tagName !== tagExp && attrExpPresent) {
2261
- childNode[":@"] = this.buildAttributesMap(tagExp, jPath);
2277
+ childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName);
2262
2278
  }
2279
+ this.addChild(currentNode, childNode, jPath);
2263
2280
  jPath = jPath.substr(0, jPath.lastIndexOf("."));
2264
- currentNode.addChild(childNode);
2265
2281
  } else {
2266
2282
  const childNode = new xmlNode(tagName);
2267
2283
  this.tagsNodeStack.push(currentNode);
2268
2284
  if (tagName !== tagExp && attrExpPresent) {
2269
- childNode[":@"] = this.buildAttributesMap(tagExp, jPath);
2285
+ childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName);
2270
2286
  }
2271
- currentNode.addChild(childNode);
2287
+ this.addChild(currentNode, childNode, jPath);
2272
2288
  currentNode = childNode;
2273
2289
  }
2274
2290
  textData = "";
@@ -2281,6 +2297,16 @@ Actual: ${this.attribValue}`);
2281
2297
  }
2282
2298
  return xmlObj.child;
2283
2299
  };
2300
+ function addChild(currentNode, childNode, jPath) {
2301
+ const result = this.options.updateTag(childNode.tagname, jPath, childNode[":@"]);
2302
+ if (result === false) {
2303
+ } else if (typeof result === "string") {
2304
+ childNode.tagname = result;
2305
+ currentNode.addChild(childNode);
2306
+ } else {
2307
+ currentNode.addChild(childNode);
2308
+ }
2309
+ }
2284
2310
  var replaceEntitiesValue = function(val2) {
2285
2311
  if (this.options.processEntities) {
2286
2312
  for (let entityName2 in this.docTypeEntities) {
@@ -2529,9 +2555,14 @@ Actual: ${this.attribValue}`);
2529
2555
  }
2530
2556
  }
2531
2557
  function isLeafTag(obj, options) {
2558
+ const { textNodeName } = options;
2532
2559
  const propCount = Object.keys(obj).length;
2533
- if (propCount === 0 || propCount === 1 && obj[options.textNodeName])
2560
+ if (propCount === 0) {
2561
+ return true;
2562
+ }
2563
+ if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === "boolean" || obj[textNodeName] === 0)) {
2534
2564
  return true;
2565
+ }
2535
2566
  return false;
2536
2567
  }
2537
2568
  exports.prettify = prettify;
@@ -2750,7 +2781,8 @@ Actual: ${this.attribValue}`);
2750
2781
  { regex: new RegExp('"', "g"), val: "&quot;" }
2751
2782
  ],
2752
2783
  processEntities: true,
2753
- stopNodes: []
2784
+ stopNodes: [],
2785
+ oneListGroup: false
2754
2786
  };
2755
2787
  function Builder(options) {
2756
2788
  this.options = Object.assign({}, defaultOptions, options);
@@ -2813,6 +2845,7 @@ Actual: ${this.attribValue}`);
2813
2845
  }
2814
2846
  } else if (Array.isArray(jObj[key])) {
2815
2847
  const arrLen = jObj[key].length;
2848
+ let listTagVal = "";
2816
2849
  for (let j = 0; j < arrLen; j++) {
2817
2850
  const item = jObj[key][j];
2818
2851
  if (typeof item === "undefined") {
@@ -2822,11 +2855,19 @@ Actual: ${this.attribValue}`);
2822
2855
  else
2823
2856
  val2 += this.indentate(level) + "<" + key + "/" + this.tagEndChar;
2824
2857
  } else if (typeof item === "object") {
2825
- val2 += this.processTextOrObjNode(item, key, level);
2858
+ if (this.options.oneListGroup) {
2859
+ listTagVal += this.j2x(item, level + 1).val;
2860
+ } else {
2861
+ listTagVal += this.processTextOrObjNode(item, key, level);
2862
+ }
2826
2863
  } else {
2827
- val2 += this.buildTextValNode(item, key, "", level);
2864
+ listTagVal += this.buildTextValNode(item, key, "", level);
2828
2865
  }
2829
2866
  }
2867
+ if (this.options.oneListGroup) {
2868
+ listTagVal = this.buildObjectNode(listTagVal, key, "", level);
2869
+ }
2870
+ val2 += listTagVal;
2830
2871
  } else {
2831
2872
  if (this.options.attributesGroupName && key === this.options.attributesGroupName) {
2832
2873
  const Ks = Object.keys(jObj[key]);
@@ -21,14 +21,12 @@ var HTMLLoader = _objectSpread(_objectSpread({}, _xmlLoader.XMLLoader), {}, {
21
21
  parse: function () {
22
22
  var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
23
23
  return _regenerator.default.wrap(function _callee$(_context) {
24
- while (1) {
25
- switch (_context.prev = _context.next) {
26
- case 0:
27
- return _context.abrupt("return", _parseTextSync(new TextDecoder().decode(arrayBuffer), options));
28
- case 1:
29
- case "end":
30
- return _context.stop();
31
- }
24
+ while (1) switch (_context.prev = _context.next) {
25
+ case 0:
26
+ return _context.abrupt("return", _parseTextSync(new TextDecoder().decode(arrayBuffer), options));
27
+ case 1:
28
+ case "end":
29
+ return _context.stop();
32
30
  }
33
31
  }, _callee);
34
32
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"html-loader.js","names":["HTMLLoader","XMLLoader","name","id","extensions","mimeTypes","testText","testHTMLFile","parse","arrayBuffer","options","parseTextSync","TextDecoder","decode","text","startsWith","mergeLoaderOptions","xml","parser","_fastXML","htmlEntities"],"sources":["../../src/html-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {mergeLoaderOptions} from '@loaders.gl/loader-utils';\nimport {XMLLoader, XMLLoaderOptions} from './xml-loader';\n\nexport type HTMLLoaderOptions = XMLLoaderOptions;\n\n/**\n * Loader for HTML files\n * Essentially a copy of the XMLLoader with different mime types, file extensions and content tests.\n * This split enables applications can control whether they want HTML responses to be parsed by the XML loader or not.\n * This loader does not have any additional understanding of the structure of HTML or the document.\n */\nexport const HTMLLoader: LoaderWithParser = {\n ...XMLLoader,\n name: 'HTML',\n id: 'html',\n extensions: ['html', 'htm'],\n mimeTypes: ['text/html'],\n testText: testHTMLFile,\n parse: async (arrayBuffer: ArrayBuffer, options?: XMLLoaderOptions) =>\n parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: XMLLoaderOptions) => parseTextSync(text, options)\n};\n\nfunction testHTMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<html');\n}\n\nfunction parseTextSync(text: string, options?: XMLLoaderOptions): any {\n // fast-xml-parser can recognize HTML entities\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#htmlentities\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/5.Entities.md\n options = mergeLoaderOptions(options, {\n xml: {\n parser: 'fast-xml-parser'\n },\n _fastXML: {\n htmlEntities: true\n }\n });\n\n return XMLLoader.parseTextSync(text, options);\n}\n"],"mappings":";;;;;;;;;;AAGA;AACA;AAAyD;AAAA;AAUlD,IAAMA,UAA4B,mCACpCC,oBAAS;EACZC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;EAC3BC,SAAS,EAAE,CAAC,WAAW,CAAC;EACxBC,QAAQ,EAAEC,YAAY;EACtBC,KAAK;IAAA,uEAAE,iBAAOC,WAAwB,EAAEC,OAA0B;MAAA;QAAA;UAAA;YAAA;cAAA,iCAChEC,cAAa,CAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACJ,WAAW,CAAC,EAAEC,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EAC/DC,aAAa,EAAE,uBAACG,IAAY,EAAEJ,OAA0B;IAAA,OAAKC,cAAa,CAACG,IAAI,EAAEJ,OAAO,CAAC;EAAA;AAAA,EAC1F;AAAC;AAEF,SAASH,YAAY,CAACO,IAAY,EAAW;EAE3C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEA,SAASJ,cAAa,CAACG,IAAY,EAAEJ,OAA0B,EAAO;EAIpEA,OAAO,GAAG,IAAAM,+BAAkB,EAACN,OAAO,EAAE;IACpCO,GAAG,EAAE;MACHC,MAAM,EAAE;IACV,CAAC;IACDC,QAAQ,EAAE;MACRC,YAAY,EAAE;IAChB;EACF,CAAC,CAAC;EAEF,OAAOnB,oBAAS,CAACU,aAAa,CAACG,IAAI,EAAEJ,OAAO,CAAC;AAC/C"}
1
+ {"version":3,"file":"html-loader.js","names":["_loaderUtils","require","_xmlLoader","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","HTMLLoader","XMLLoader","name","id","extensions","mimeTypes","testText","testHTMLFile","parse","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","options","wrap","_callee$","_context","prev","next","abrupt","parseTextSync","TextDecoder","decode","stop","_x","_x2","text","exports","startsWith","mergeLoaderOptions","xml","parser","_fastXML","htmlEntities"],"sources":["../../src/html-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {mergeLoaderOptions} from '@loaders.gl/loader-utils';\nimport {XMLLoader, XMLLoaderOptions} from './xml-loader';\n\nexport type HTMLLoaderOptions = XMLLoaderOptions;\n\n/**\n * Loader for HTML files\n * Essentially a copy of the XMLLoader with different mime types, file extensions and content tests.\n * This split enables applications can control whether they want HTML responses to be parsed by the XML loader or not.\n * This loader does not have any additional understanding of the structure of HTML or the document.\n */\nexport const HTMLLoader: LoaderWithParser = {\n ...XMLLoader,\n name: 'HTML',\n id: 'html',\n extensions: ['html', 'htm'],\n mimeTypes: ['text/html'],\n testText: testHTMLFile,\n parse: async (arrayBuffer: ArrayBuffer, options?: XMLLoaderOptions) =>\n parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: XMLLoaderOptions) => parseTextSync(text, options)\n};\n\nfunction testHTMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<html');\n}\n\nfunction parseTextSync(text: string, options?: XMLLoaderOptions): any {\n // fast-xml-parser can recognize HTML entities\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#htmlentities\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/5.Entities.md\n options = mergeLoaderOptions(options, {\n xml: {\n parser: 'fast-xml-parser'\n },\n _fastXML: {\n htmlEntities: true\n }\n });\n\n return XMLLoader.parseTextSync(text, options);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// XMLLoader\n\nexport type {XMLLoaderOptions} from './xml-loader';\nexport {XMLLoader} from './xml-loader';\n\n// HTMLLoader\n\nexport type {HTMLLoaderOptions} from './html-loader';\nexport {HTMLLoader} from './html-loader';\n\n// SAX\n\nexport type {SAXParserOptions as SAXParserOptions} from './sax-ts/sax';\nexport {SAXParser as SAXParser} from './sax-ts/sax';\n\n// Utilities\n\nexport {convertXMLValueToArray, convertXMLFieldToArrayInPlace} from './lib/xml-utils/xml-utils';\n\n// Experimental\n\nexport {\n uncapitalize as _uncapitalize,\n uncapitalizeKeys as _uncapitalizeKeys\n} from './lib/xml-utils/uncapitalize';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AAKA;AAKA;AAIA;AAIA"}
1
+ {"version":3,"file":"index.js","names":["_xmlLoader","require","_htmlLoader","_sax","_xmlUtils","_uncapitalize"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// XMLLoader\n\nexport type {XMLLoaderOptions} from './xml-loader';\nexport {XMLLoader} from './xml-loader';\n\n// HTMLLoader\n\nexport type {HTMLLoaderOptions} from './html-loader';\nexport {HTMLLoader} from './html-loader';\n\n// SAX\n\nexport type {SAXParserOptions as SAXParserOptions} from './sax-ts/sax';\nexport {SAXParser as SAXParser} from './sax-ts/sax';\n\n// Utilities\n\nexport {convertXMLValueToArray, convertXMLFieldToArrayInPlace} from './lib/xml-utils/xml-utils';\n\n// Experimental\n\nexport {\n uncapitalize as _uncapitalize,\n uncapitalizeKeys as _uncapitalizeKeys\n} from './lib/xml-utils/uncapitalize';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAAA,UAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,IAAA,GAAAF,OAAA;AAIA,IAAAG,SAAA,GAAAH,OAAA;AAIA,IAAAI,aAAA,GAAAJ,OAAA"}
@@ -19,7 +19,6 @@ function fastParseXML(text, options) {
19
19
  var parsedXML = parser.parse(text);
20
20
  return parsedXML;
21
21
  }
22
-
23
22
  function parseXMLInBatches(text) {
24
23
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
25
24
  var parser = new _streamingXmlParser.StreamingXMLParser(_objectSpread(_objectSpread({}, options), {}, {
@@ -1 +1 @@
1
- {"version":3,"file":"parse-xml.js","names":["fastParseXML","text","options","parser","FastXMLParser","ignoreAttributes","attributeNamePrefix","parsedXML","parse","parseXMLInBatches","StreamingXMLParser","strict","write","close","result"],"sources":["../../../../src/lib/parsers/parse-xml.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {StreamingXMLParser} from './streaming-xml-parser';\nimport {XMLParser as FastXMLParser} from 'fast-xml-parser';\nimport type {X2jOptions} from 'fast-xml-parser';\n\n/** Type for passing through fast-xml-parser options */\nexport type FastXMLParserOptions = Partial<X2jOptions>;\n\nexport function fastParseXML(text: string, options: FastXMLParserOptions): any {\n const parser = new FastXMLParser({\n ignoreAttributes: false,\n attributeNamePrefix: '',\n ...options\n });\n\n const parsedXML = parser.parse(text);\n\n return parsedXML;\n}\n\n/**\n * @todo Build a streaming XML parser based on sax-js\n * @param text\n * @param options\n * @returns\n */\nexport function parseXMLInBatches(text: string, options = {}): any {\n const parser = new StreamingXMLParser({\n ...options,\n strict: true\n });\n\n parser.write(text);\n parser.close();\n\n return parser.result;\n}\n"],"mappings":";;;;;;;;;AAEA;AACA;AAA2D;AAAA;AAMpD,SAASA,YAAY,CAACC,IAAY,EAAEC,OAA6B,EAAO;EAC7E,IAAMC,MAAM,GAAG,IAAIC,wBAAa;IAC9BC,gBAAgB,EAAE,KAAK;IACvBC,mBAAmB,EAAE;EAAE,GACpBJ,OAAO,EACV;EAEF,IAAMK,SAAS,GAAGJ,MAAM,CAACK,KAAK,CAACP,IAAI,CAAC;EAEpC,OAAOM,SAAS;AAClB;;AAQO,SAASE,iBAAiB,CAACR,IAAY,EAAqB;EAAA,IAAnBC,OAAO,uEAAG,CAAC,CAAC;EAC1D,IAAMC,MAAM,GAAG,IAAIO,sCAAkB,iCAChCR,OAAO;IACVS,MAAM,EAAE;EAAI,GACZ;EAEFR,MAAM,CAACS,KAAK,CAACX,IAAI,CAAC;EAClBE,MAAM,CAACU,KAAK,EAAE;EAEd,OAAOV,MAAM,CAACW,MAAM;AACtB"}
1
+ {"version":3,"file":"parse-xml.js","names":["_streamingXmlParser","require","_fastXmlParser","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","fastParseXML","text","options","parser","FastXMLParser","ignoreAttributes","attributeNamePrefix","parsedXML","parse","parseXMLInBatches","undefined","StreamingXMLParser","strict","write","close","result"],"sources":["../../../../src/lib/parsers/parse-xml.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {StreamingXMLParser} from './streaming-xml-parser';\nimport {XMLParser as FastXMLParser} from 'fast-xml-parser';\nimport type {X2jOptions} from 'fast-xml-parser';\n\n/** Type for passing through fast-xml-parser options */\nexport type FastXMLParserOptions = Partial<X2jOptions>;\n\nexport function fastParseXML(text: string, options: FastXMLParserOptions): any {\n const parser = new FastXMLParser({\n ignoreAttributes: false,\n attributeNamePrefix: '',\n ...options\n });\n\n const parsedXML = parser.parse(text);\n\n return parsedXML;\n}\n\n/**\n * @todo Build a streaming XML parser based on sax-js\n * @param text\n * @param options\n * @returns\n */\nexport function parseXMLInBatches(text: string, options = {}): any {\n const parser = new StreamingXMLParser({\n ...options,\n strict: true\n });\n\n parser.write(text);\n parser.close();\n\n return parser.result;\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAA2D,SAAAE,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAMpD,SAASY,YAAYA,CAACC,IAAY,EAAEC,OAA6B,EAAO;EAC7E,IAAMC,MAAM,GAAG,IAAIC,wBAAa,CAAAjB,aAAA;IAC9BkB,gBAAgB,EAAE,KAAK;IACvBC,mBAAmB,EAAE;EAAE,GACpBJ,OAAO,EACV;EAEF,IAAMK,SAAS,GAAGJ,MAAM,CAACK,KAAK,CAACP,IAAI,CAAC;EAEpC,OAAOM,SAAS;AAClB;AAQO,SAASE,iBAAiBA,CAACR,IAAY,EAAqB;EAAA,IAAnBC,OAAO,GAAAZ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAoB,SAAA,GAAApB,SAAA,MAAG,CAAC,CAAC;EAC1D,IAAMa,MAAM,GAAG,IAAIQ,sCAAkB,CAAAxB,aAAA,CAAAA,aAAA,KAChCe,OAAO;IACVU,MAAM,EAAE;EAAI,GACZ;EAEFT,MAAM,CAACU,KAAK,CAACZ,IAAI,CAAC;EAClBE,MAAM,CAACW,KAAK,EAAE;EAEd,OAAOX,MAAM,CAACY,MAAM;AACtB"}
@@ -12,7 +12,6 @@ var _sax = require("../../sax-ts/sax");
12
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
13
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
14
  var StreamingXMLParser = function () {
15
-
16
15
  function StreamingXMLParser(options) {
17
16
  var _this = this;
18
17
  (0, _classCallCheck2.default)(this, StreamingXMLParser);
@@ -81,12 +80,9 @@ var StreamingXMLParser = function () {
81
80
  value: function close() {
82
81
  this.parser.close();
83
82
  }
84
-
85
83
  }, {
86
84
  key: "_pushOrSet",
87
- value:
88
-
89
- function _pushOrSet(value) {
85
+ value: function _pushOrSet(value) {
90
86
  var _this$currentState = this.currentState,
91
87
  container = _this$currentState.container,
92
88
  key = _this$currentState.key;
@@ -95,8 +91,7 @@ var StreamingXMLParser = function () {
95
91
  this.currentState.key = null;
96
92
  } else if (Array.isArray(container)) {
97
93
  container.push(value);
98
- } else if (container) {
99
- }
94
+ } else if (container) {}
100
95
  }
101
96
  }, {
102
97
  key: "_openArray",
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-xml-parser.js","names":["StreamingXMLParser","options","undefined","Object","freeze","container","key","reset","parser","SAXParser","onready","previousStates","length","currentState","onopentag","name","attributes","isSelfClosing","_openObject","emit","onkey","onclosetag","_closeObject","onopenarray","_openArray","onclosearray","_closeArray","ontext","value","_pushOrSet","onerror","error","onend","result","pop","chunk","write","close","Array","isArray","push","newContainer"],"sources":["../../../../src/lib/parsers/streaming-xml-parser.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport {SAXParser, SAXParserOptions} from '../../sax-ts/sax';\n// import JSONPath from '../jsonpath/jsonpath';\n\nexport type StreamingXMLParserOptions = SAXParserOptions;\n\n/**\n * StreamingXMLParser builds a JSON object using the events emitted by the SAX parser\n */\nexport class StreamingXMLParser {\n readonly parser: SAXParser;\n result = undefined;\n previousStates = [];\n currentState = Object.freeze({container: [], key: null});\n // jsonpath: JSONPath = new JSONPath();\n\n constructor(options: SAXParserOptions) {\n this.reset();\n this.parser = new SAXParser({\n onready: () => {\n this.previousStates.length = 0;\n this.currentState.container.length = 0;\n },\n\n onopentag: ({name, attributes, isSelfClosing}) => {\n this._openObject({});\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n },\n\n onkey: (name) => {\n this.currentState.key = name;\n },\n\n onclosetag: () => {\n this._closeObject();\n },\n\n onopenarray: () => {\n this._openArray();\n },\n\n onclosearray: () => {\n this._closeArray();\n },\n\n ontext: (value) => {\n this._pushOrSet(value);\n },\n\n onerror: (error) => {\n throw error;\n },\n\n onend: () => {\n this.result = this.currentState.container.pop();\n },\n\n ...options\n });\n }\n\n reset(): void {\n this.result = undefined;\n this.previousStates = [];\n this.currentState = Object.freeze({container: [], key: null});\n }\n\n write(chunk): void {\n this.parser.write(chunk);\n }\n\n close(): void {\n this.parser.close();\n }\n\n // PRIVATE METHODS\n\n _pushOrSet(value): void {\n const {container, key} = this.currentState;\n if (key !== null) {\n container[key] = value;\n this.currentState.key = null;\n } else if (Array.isArray(container)) {\n container.push(value);\n } else if (container) {\n // debugger\n }\n }\n\n _openArray(newContainer = []): void {\n // this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: true, key: null};\n }\n\n _closeArray(): void {\n // this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n\n _openObject(newContainer = {}): void {\n // this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: false, key: null};\n }\n\n _closeObject(): void {\n // this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"streaming-xml-parser.js","names":["_sax","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","StreamingXMLParser","options","_this","_classCallCheck2","undefined","freeze","container","reset","parser","SAXParser","onready","previousStates","currentState","onopentag","_ref","name","attributes","isSelfClosing","_openObject","emit","onkey","onclosetag","_closeObject","onopenarray","_openArray","onclosearray","_closeArray","ontext","value","_pushOrSet","onerror","error","onend","result","pop","_createClass2","write","chunk","close","_this$currentState","Array","isArray","newContainer","exports"],"sources":["../../../../src/lib/parsers/streaming-xml-parser.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport {SAXParser, SAXParserOptions} from '../../sax-ts/sax';\n// import JSONPath from '../jsonpath/jsonpath';\n\nexport type StreamingXMLParserOptions = SAXParserOptions;\n\n/**\n * StreamingXMLParser builds a JSON object using the events emitted by the SAX parser\n */\nexport class StreamingXMLParser {\n readonly parser: SAXParser;\n result = undefined;\n previousStates = [];\n currentState = Object.freeze({container: [], key: null});\n // jsonpath: JSONPath = new JSONPath();\n\n constructor(options: SAXParserOptions) {\n this.reset();\n this.parser = new SAXParser({\n onready: () => {\n this.previousStates.length = 0;\n this.currentState.container.length = 0;\n },\n\n onopentag: ({name, attributes, isSelfClosing}) => {\n this._openObject({});\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n },\n\n onkey: (name) => {\n this.currentState.key = name;\n },\n\n onclosetag: () => {\n this._closeObject();\n },\n\n onopenarray: () => {\n this._openArray();\n },\n\n onclosearray: () => {\n this._closeArray();\n },\n\n ontext: (value) => {\n this._pushOrSet(value);\n },\n\n onerror: (error) => {\n throw error;\n },\n\n onend: () => {\n this.result = this.currentState.container.pop();\n },\n\n ...options\n });\n }\n\n reset(): void {\n this.result = undefined;\n this.previousStates = [];\n this.currentState = Object.freeze({container: [], key: null});\n }\n\n write(chunk): void {\n this.parser.write(chunk);\n }\n\n close(): void {\n this.parser.close();\n }\n\n // PRIVATE METHODS\n\n _pushOrSet(value): void {\n const {container, key} = this.currentState;\n if (key !== null) {\n container[key] = value;\n this.currentState.key = null;\n } else if (Array.isArray(container)) {\n container.push(value);\n } else if (container) {\n // debugger\n }\n }\n\n _openArray(newContainer = []): void {\n // this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: true, key: null};\n }\n\n _closeArray(): void {\n // this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n\n _openObject(newContainer = {}): void {\n // this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: false, key: null};\n }\n\n _closeObject(): void {\n // this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n}\n"],"mappings":"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"}
@@ -8,11 +8,9 @@ exports.uncapitalize = uncapitalize;
8
8
  exports.uncapitalizeKeys = uncapitalizeKeys;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
11
  function uncapitalize(str) {
13
12
  return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;
14
13
  }
15
-
16
14
  function uncapitalizeKeys(object) {
17
15
  if (Array.isArray(object)) {
18
16
  return object.map(function (element) {
@@ -1 +1 @@
1
- {"version":3,"file":"uncapitalize.js","names":["uncapitalize","str","charAt","toLowerCase","slice","uncapitalizeKeys","object","Array","isArray","map","element","newObject","Object","entries","key","value"],"sources":["../../../../src/lib/xml-utils/uncapitalize.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/**\n * Uncapitalize first letter of a string\n * @param str\n * @returns\n */\nexport function uncapitalize(str: string): string {\n return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;\n}\n\n/**\n * Recursively uncapitalize all keys in a nested object\n * @param object\n * @returns\n */\nexport function uncapitalizeKeys(object: any): any {\n if (Array.isArray(object)) {\n return object.map((element) => uncapitalizeKeys(element));\n }\n\n if (object && typeof object === 'object') {\n const newObject = {};\n for (const [key, value] of Object.entries(object)) {\n newObject[uncapitalize(key)] = uncapitalizeKeys(value);\n }\n return newObject;\n }\n\n return object;\n}\n"],"mappings":";;;;;;;;;;;AAOO,SAASA,YAAY,CAACC,GAAW,EAAU;EAChD,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,GAAG,CAACG,KAAK,CAAC,CAAC,CAAC,GAAGH,GAAG;AACnF;;AAOO,SAASI,gBAAgB,CAACC,MAAW,EAAO;EACjD,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IACzB,OAAOA,MAAM,CAACG,GAAG,CAAC,UAACC,OAAO;MAAA,OAAKL,gBAAgB,CAACK,OAAO,CAAC;IAAA,EAAC;EAC3D;EAEA,IAAIJ,MAAM,IAAI,sBAAOA,MAAM,MAAK,QAAQ,EAAE;IACxC,IAAMK,SAAS,GAAG,CAAC,CAAC;IACpB,mCAA2BC,MAAM,CAACC,OAAO,CAACP,MAAM,CAAC,qCAAE;MAA9C;QAAOQ,GAAG;QAAEC,KAAK;MACpBJ,SAAS,CAACX,YAAY,CAACc,GAAG,CAAC,CAAC,GAAGT,gBAAgB,CAACU,KAAK,CAAC;IACxD;IACA,OAAOJ,SAAS;EAClB;EAEA,OAAOL,MAAM;AACf"}
1
+ {"version":3,"file":"uncapitalize.js","names":["uncapitalize","str","charAt","toLowerCase","slice","uncapitalizeKeys","object","Array","isArray","map","element","_typeof2","default","newObject","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray2","key","value"],"sources":["../../../../src/lib/xml-utils/uncapitalize.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/**\n * Uncapitalize first letter of a string\n * @param str\n * @returns\n */\nexport function uncapitalize(str: string): string {\n return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;\n}\n\n/**\n * Recursively uncapitalize all keys in a nested object\n * @param object\n * @returns\n */\nexport function uncapitalizeKeys(object: any): any {\n if (Array.isArray(object)) {\n return object.map((element) => uncapitalizeKeys(element));\n }\n\n if (object && typeof object === 'object') {\n const newObject = {};\n for (const [key, value] of Object.entries(object)) {\n newObject[uncapitalize(key)] = uncapitalizeKeys(value);\n }\n return newObject;\n }\n\n return object;\n}\n"],"mappings":";;;;;;;;;;AAOO,SAASA,YAAYA,CAACC,GAAW,EAAU;EAChD,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,GAAG,CAACG,KAAK,CAAC,CAAC,CAAC,GAAGH,GAAG;AACnF;AAOO,SAASI,gBAAgBA,CAACC,MAAW,EAAO;EACjD,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IACzB,OAAOA,MAAM,CAACG,GAAG,CAAC,UAACC,OAAO;MAAA,OAAKL,gBAAgB,CAACK,OAAO,CAAC;IAAA,EAAC;EAC3D;EAEA,IAAIJ,MAAM,IAAI,IAAAK,QAAA,CAAAC,OAAA,EAAON,MAAM,MAAK,QAAQ,EAAE;IACxC,IAAMO,SAAS,GAAG,CAAC,CAAC;IACpB,SAAAC,EAAA,MAAAC,eAAA,GAA2BC,MAAM,CAACC,OAAO,CAACX,MAAM,CAAC,EAAAQ,EAAA,GAAAC,eAAA,CAAAG,MAAA,EAAAJ,EAAA,IAAE;MAA9C,IAAAK,kBAAA,OAAAC,eAAA,CAAAR,OAAA,EAAAG,eAAA,CAAAD,EAAA;QAAOO,GAAG,GAAAF,kBAAA;QAAEG,KAAK,GAAAH,kBAAA;MACpBN,SAAS,CAACb,YAAY,CAACqB,GAAG,CAAC,CAAC,GAAGhB,gBAAgB,CAACiB,KAAK,CAAC;IACxD;IACA,OAAOT,SAAS;EAClB;EAEA,OAAOP,MAAM;AACf"}
@@ -7,19 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.convertXMLFieldToArrayInPlace = convertXMLFieldToArrayInPlace;
8
8
  exports.convertXMLValueToArray = convertXMLValueToArray;
9
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
-
11
10
  function convertXMLValueToArray(xmlValue) {
12
11
  if (Array.isArray(xmlValue)) {
13
12
  return xmlValue;
14
13
  }
15
- if (xmlValue && (0, _typeof2.default)(xmlValue) === 'object' && xmlValue['0']) {
16
- }
14
+ if (xmlValue && (0, _typeof2.default)(xmlValue) === 'object' && xmlValue['0']) {}
17
15
  if (xmlValue) {
18
16
  return [xmlValue];
19
17
  }
20
18
  return [];
21
19
  }
22
-
23
20
  function convertXMLFieldToArrayInPlace(xml, key) {
24
21
  xml[key] = convertXMLValueToArray(xml[key]);
25
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xml-utils.js","names":["convertXMLValueToArray","xmlValue","Array","isArray","convertXMLFieldToArrayInPlace","xml","key"],"sources":["../../../../src/lib/xml-utils/xml-utils.ts"],"sourcesContent":["// TODO - these utilities could be moved to the XML parser.\n// uncapitalizeKeys could be an XMLLoader option\n\n/**\n * Extracts a value or array and always return an array\n * Useful since XML parses to object instead of array when only a single value is provided\n */\nexport function convertXMLValueToArray(xmlValue: unknown): unknown[] {\n if (Array.isArray(xmlValue)) {\n return xmlValue;\n }\n if (xmlValue && typeof xmlValue === 'object' && xmlValue['0']) {\n // Error this is an objectified array\n }\n if (xmlValue) {\n return [xmlValue];\n }\n return [];\n}\n\n/**\n * Mutates a field in place, converting it to array\n * Useful since XML parses to object instead of array when only a single value is provided\n */\nexport function convertXMLFieldToArrayInPlace(xml: any, key: string): void {\n xml[key] = convertXMLValueToArray(xml[key]);\n}\n"],"mappings":";;;;;;;;;;AAOO,SAASA,sBAAsB,CAACC,QAAiB,EAAa;EACnE,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;IAC3B,OAAOA,QAAQ;EACjB;EACA,IAAIA,QAAQ,IAAI,sBAAOA,QAAQ,MAAK,QAAQ,IAAIA,QAAQ,CAAC,GAAG,CAAC,EAAE;EAE/D;EACA,IAAIA,QAAQ,EAAE;IACZ,OAAO,CAACA,QAAQ,CAAC;EACnB;EACA,OAAO,EAAE;AACX;;AAMO,SAASG,6BAA6B,CAACC,GAAQ,EAAEC,GAAW,EAAQ;EACzED,GAAG,CAACC,GAAG,CAAC,GAAGN,sBAAsB,CAACK,GAAG,CAACC,GAAG,CAAC,CAAC;AAC7C"}
1
+ {"version":3,"file":"xml-utils.js","names":["convertXMLValueToArray","xmlValue","Array","isArray","_typeof2","default","convertXMLFieldToArrayInPlace","xml","key"],"sources":["../../../../src/lib/xml-utils/xml-utils.ts"],"sourcesContent":["// TODO - these utilities could be moved to the XML parser.\n// uncapitalizeKeys could be an XMLLoader option\n\n/**\n * Extracts a value or array and always return an array\n * Useful since XML parses to object instead of array when only a single value is provided\n */\nexport function convertXMLValueToArray(xmlValue: unknown): unknown[] {\n if (Array.isArray(xmlValue)) {\n return xmlValue;\n }\n if (xmlValue && typeof xmlValue === 'object' && xmlValue['0']) {\n // Error this is an objectified array\n }\n if (xmlValue) {\n return [xmlValue];\n }\n return [];\n}\n\n/**\n * Mutates a field in place, converting it to array\n * Useful since XML parses to object instead of array when only a single value is provided\n */\nexport function convertXMLFieldToArrayInPlace(xml: any, key: string): void {\n xml[key] = convertXMLValueToArray(xml[key]);\n}\n"],"mappings":";;;;;;;;;AAOO,SAASA,sBAAsBA,CAACC,QAAiB,EAAa;EACnE,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;IAC3B,OAAOA,QAAQ;EACjB;EACA,IAAIA,QAAQ,IAAI,IAAAG,QAAA,CAAAC,OAAA,EAAOJ,QAAQ,MAAK,QAAQ,IAAIA,QAAQ,CAAC,GAAG,CAAC,EAAE,CAE/D;EACA,IAAIA,QAAQ,EAAE;IACZ,OAAO,CAACA,QAAQ,CAAC;EACnB;EACA,OAAO,EAAE;AACX;AAMO,SAASK,6BAA6BA,CAACC,GAAQ,EAAEC,GAAW,EAAQ;EACzED,GAAG,CAACC,GAAG,CAAC,GAAGR,sBAAsB,CAACO,GAAG,CAACC,GAAG,CAAC,CAAC;AAC7C"}
@@ -17,7 +17,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
17
17
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
18
18
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
-
21
20
  var DEFAULT_SAX_EVENTS = {
22
21
  ontext: function ontext() {},
23
22
  onprocessinginstruction: function onprocessinginstruction() {},
@@ -316,9 +315,7 @@ Object.keys(ENTITIES).forEach(function (key) {
316
315
  var e = ENTITIES[key];
317
316
  ENTITIES[key] = typeof e === 'number' ? String.fromCharCode(e) : e;
318
317
  });
319
-
320
318
  var SAX = function () {
321
-
322
319
  function SAX() {
323
320
  (0, _classCallCheck2.default)(this, SAX);
324
321
  (0, _defineProperty2.default)(this, "EVENTS", EVENTS);
@@ -419,7 +416,6 @@ var SAX = function () {
419
416
  this.STATE[this.STATE[s]] = s;
420
417
  }
421
418
  }
422
-
423
419
  this.S = this.STATE;
424
420
  }
425
421
  (0, _createClass2.default)(SAX, [{
@@ -515,8 +511,7 @@ var SAX = function () {
515
511
  if (c === '!') {
516
512
  this.state = this.S.SGML_DECL;
517
513
  this.sgmlDecl = '';
518
- } else if (SAX.isWhitespace(c)) {
519
- } else if (SAX.isMatch(nameStart, c)) {
514
+ } else if (SAX.isWhitespace(c)) {} else if (SAX.isMatch(nameStart, c)) {
520
515
  this.state = this.S.OPEN_TAG;
521
516
  this.tagName = c;
522
517
  } else if (c === '/') {
@@ -914,7 +909,6 @@ var SAX = function () {
914
909
  throw new Error("Unknown state: ".concat(this.state));
915
910
  }
916
911
  }
917
-
918
912
  if (this.position >= this.bufferCheckPosition) {
919
913
  this.checkBufferLength();
920
914
  }
@@ -1001,7 +995,6 @@ var SAX = function () {
1001
995
  tag.ns[local] = this.attribValue;
1002
996
  }
1003
997
  }
1004
-
1005
998
  this.attribList.push([this.attribName, this.attribValue]);
1006
999
  } else {
1007
1000
  this.tag.attributes[this.attribName] = this.attribValue;
@@ -1021,7 +1014,6 @@ var SAX = function () {
1021
1014
  name: this.tagName,
1022
1015
  attributes: {}
1023
1016
  };
1024
-
1025
1017
  if (this.opt.xmlns) {
1026
1018
  tag.ns = parent.ns;
1027
1019
  }
@@ -1139,7 +1131,6 @@ var SAX = function () {
1139
1131
  value: function openTag(selfClosing) {
1140
1132
  if (this.opt.xmlns) {
1141
1133
  var tag = this.tag;
1142
-
1143
1134
  var qn = SAX.qname(this.tagName);
1144
1135
  tag.prefix = qn.prefix;
1145
1136
  tag.local = qn.local;
@@ -1158,7 +1149,6 @@ var SAX = function () {
1158
1149
  });
1159
1150
  });
1160
1151
  }
1161
-
1162
1152
  for (var i = 0, l = this.attribList.length; i < l; i++) {
1163
1153
  var nv = this.attribList[i];
1164
1154
  var name = nv[0];
@@ -1174,7 +1164,6 @@ var SAX = function () {
1174
1164
  local: local,
1175
1165
  uri: uri
1176
1166
  };
1177
-
1178
1167
  if (prefix && prefix !== 'xmlns' && !uri) {
1179
1168
  this.strictFail("Unbound namespace prefix: ".concat(JSON.stringify(prefix)));
1180
1169
  a.uri = prefix;
@@ -1185,7 +1174,6 @@ var SAX = function () {
1185
1174
  this.attribList.length = 0;
1186
1175
  }
1187
1176
  this.tag.isSelfClosing = Boolean(selfClosing);
1188
-
1189
1177
  this.sawRoot = true;
1190
1178
  this.tags.push(this.tag);
1191
1179
  this.emitNode('onopentag', this.tag);
@@ -1221,7 +1209,6 @@ var SAX = function () {
1221
1209
  this.emitNode('onscript', this.script);
1222
1210
  this.script = '';
1223
1211
  }
1224
-
1225
1212
  var t = this.tags.length;
1226
1213
  var tagName = this.tagName;
1227
1214
  if (!this.strict) {
@@ -1235,7 +1222,6 @@ var SAX = function () {
1235
1222
  break;
1236
1223
  }
1237
1224
  }
1238
-
1239
1225
  if (t < 0) {
1240
1226
  this.strictFail("Unmatched closing tag: ".concat(this.tagName));
1241
1227
  this.textNode += "</".concat(this.tagName, ">");
@@ -1315,7 +1301,6 @@ var SAX = function () {
1315
1301
  var qualName = i < 0 ? ['', name] : name.split(':');
1316
1302
  var prefix = qualName[0];
1317
1303
  var local = qualName[1];
1318
-
1319
1304
  if (attribute && name === 'xmlns') {
1320
1305
  prefix = 'xmlns';
1321
1306
  local = '';
@@ -1353,11 +1338,9 @@ var SAXParser = function (_SAX) {
1353
1338
  _this2.strictEntities = _this2.opt.strictEntities;
1354
1339
  _this2.ENTITIES = _this2.strictEntities ? Object.create(_this2.XML_ENTITIES) : Object.create(_this2.ENTITIES);
1355
1340
  _this2.attribList = [];
1356
-
1357
1341
  if (_this2.opt.xmlns) {
1358
1342
  _this2.ns = Object.create(_this2.rootNS);
1359
1343
  }
1360
-
1361
1344
  _this2.trackPosition = _this2.opt.position !== false;
1362
1345
  if (_this2.trackPosition) {
1363
1346
  _this2.position = _this2.line = _this2.column = 0;