@loaders.gl/xml 4.2.1 → 4.3.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.min.js CHANGED
@@ -18,6 +18,6 @@ Line: ${this.line}
18
18
  Column: ${this.column}
19
19
  Char: ${this.c}`);let i=new Error(t);return this.error=i,this.emit("onerror",i),this}attrib(){if(this.strict||(this.attribName=this.attribName[this.looseCase]()),this.attribList.indexOf(this.attribName)!==-1||this.tag.attributes.hasOwnProperty(this.attribName)){this.attribName=this.attribValue="";return}if(this.opt.xmlns){let t=l.qname(this.attribName,!0),i=t.prefix,s=t.local;if(i==="xmlns")if(s==="xml"&&this.attribValue!==this.XML_NAMESPACE)this.strictFail(`xml: prefix must be bound to ${this.XML_NAMESPACE}
20
20
  Actual: ${this.attribValue}`);else if(s==="xmlns"&&this.attribValue!==this.XMLNS_NAMESPACE)this.strictFail(`xmlns: prefix must be bound to ${this.XMLNS_NAMESPACE}
21
- Actual: ${this.attribValue}`);else{let r=this.tag,n=this.tags[this.tags.length-1]||this;r.ns===n.ns&&(r.ns=Object.create(n.ns)),r.ns[s]=this.attribValue}this.attribList.push([this.attribName,this.attribValue])}else this.tag.attributes[this.attribName]=this.attribValue,this.emitNode("onattribute",{name:this.attribName,value:this.attribValue});this.attribName=this.attribValue=""}newTag(){this.strict||(this.tagName=this.tagName[this.looseCase]());let t=this.tags[this.tags.length-1]||this,i=this.tag={name:this.tagName,attributes:{}};this.opt.xmlns&&(i.ns=t.ns),this.attribList.length=0,this.emitNode("onopentagstart",i)}parseEntity(){let t=this.entity,i=t.toLowerCase(),s=NaN,r="";return this.ENTITIES[t]?this.ENTITIES[t]:this.ENTITIES[i]?this.ENTITIES[i]:(t=i,t.charAt(0)==="#"&&(t.charAt(1)==="x"?(t=t.slice(2),s=parseInt(t,16),r=s.toString(16)):(t=t.slice(1),s=parseInt(t,10),r=s.toString(10))),t=t.replace(/^0+/,""),isNaN(s)||r.toLowerCase()!==t?(this.strictFail("Invalid character entity"),`&${this.entity};`):String.fromCodePoint(s))}beginWhiteSpace(t){t==="<"?(this.state=this.S.OPEN_WAKA,this.startTagPosition=this.position):l.isWhitespace(t)||(this.strictFail("Non-whitespace before first tag."),this.textNode=t,this.state=this.S.TEXT)}strictFail(t){if(typeof this!="object"||!(this instanceof b))throw new Error("bad call to strictFail");this.strict&&this.errorFunction(t)}textApplyOptions(t){return this.opt.trim&&(t=t.trim()),this.opt.normalize&&(t=t.replace(/\s+/g," ")),t}emitNode(t,i){this.textNode&&this.closeText(),this.emit(t,i)}closeText(){this.textNode=this.textApplyOptions(this.textNode),this.textNode!==void 0&&this.textNode!==""&&this.textNode!=="undefined"&&this.emit("ontext",this.textNode),this.textNode=""}checkBufferLength(){let t=Math.max(this.opt.MAX_BUFFER_LENGTH,10),i=0;for(let r=0,n=this.BUFFERS.length;r<n;r++){let h=this[this.BUFFERS[r]]?.length||0;if(h>t)switch(this.BUFFERS[r]){case"textNode":this.closeText();break;case"cdata":this.emitNode("oncdata",this.cdata),this.cdata="";break;case"script":this.emitNode("onscript",this.script),this.script="";break;default:this.errorFunction(`Max buffer length exceeded: ${this.BUFFERS[r]}`)}i=Math.max(i,h)}let s=this.opt.MAX_BUFFER_LENGTH-i;this.bufferCheckPosition=s+this.position}openTag(t){if(this.opt.xmlns){let i=this.tag,s=l.qname(this.tagName);i.prefix=s.prefix,i.local=s.local,i.uri=i.ns[s.prefix]||"",i.prefix&&!i.uri&&(this.strictFail(`Unbound namespace prefix: ${JSON.stringify(this.tagName)}`),i.uri=s.prefix);let r=this.tags[this.tags.length-1]||this;if(i.ns&&r.ns!==i.ns){let n=this;Object.keys(i.ns).forEach(h=>{n.emitNode("onopennamespace",{prefix:h,uri:i.ns[h]})})}for(let n=0,h=this.attribList.length;n<h;n++){let a=this.attribList[n],o=a[0],c=a[1],u=l.qname(o,!0),f=u.prefix,g=u.local,p=f===""?"":i.ns[f]||"",N={name:o,value:c,prefix:f,local:g,uri:p};f&&f!=="xmlns"&&!p&&(this.strictFail(`Unbound namespace prefix: ${JSON.stringify(f)}`),N.uri=f),this.tag.attributes[o]=N,this.emitNode("onattribute",N)}this.attribList.length=0}this.tag.isSelfClosing=Boolean(t),this.sawRoot=!0,this.tags.push(this.tag),this.emitNode("onopentag",this.tag),t||(!this.noscript&&this.tagName.toLowerCase()==="script"?this.state=this.S.SCRIPT:this.state=this.S.TEXT,this.tag=null,this.tagName=""),this.attribName=this.attribValue="",this.attribList.length=0}closeTag(){if(!this.tagName){this.strictFail("Weird empty close tag."),this.textNode+="</>",this.state=this.S.TEXT;return}if(this.script){if(this.tagName!=="script"){this.script+=`</${this.tagName}>`,this.tagName="",this.state=this.S.SCRIPT;return}this.emitNode("onscript",this.script),this.script=""}let t=this.tags.length,i=this.tagName;for(this.strict||(i=i[this.looseCase]());t--&&this.tags[t].name!==i;)this.strictFail("Unexpected close tag");if(t<0){this.strictFail(`Unmatched closing tag: ${this.tagName}`),this.textNode+=`</${this.tagName}>`,this.state=this.S.TEXT;return}this.tagName=i;let s=this.tags.length;for(;s-- >t;){let r=this.tag=this.tags.pop();this.tagName=this.tag.name,this.emitNode("onclosetag",this.tagName);let n={};for(let a in r.ns)r.ns.hasOwnProperty(a)&&(n[a]=r.ns[a]);let h=this.tags[this.tags.length-1]||this;if(this.opt.xmlns&&r.ns!==h.ns){let a=this;Object.keys(r.ns).forEach(o=>{let c=r.ns[o];a.emitNode("onclosenamespace",{prefix:o,uri:c})})}}t===0&&(this.closedRoot=!0),this.tagName=this.attribValue=this.attribName="",this.attribList.length=0,this.state=this.S.TEXT}},b=class extends l{opt=Xt;events=tt;constructor(t){super(),this.clearBuffers(),this.opt=t={...this.opt,...t},this.events={...this.events,...t},this.q=this.c="",this.opt.lowercase=this.opt.lowercase||this.opt.lowercasetags,this.bufferCheckPosition=this.opt.MAX_BUFFER_LENGTH,this.looseCase=this.opt.lowercase?"toLowerCase":"toUpperCase",this.tags=[],this.closed=this.closedRoot=this.sawRoot=!1,this.tag=this.error=null,this.strict=Boolean(this.opt.strict),this.noscript=Boolean(this.opt.strict||this.opt.noscript),this.state=this.S.BEGIN,this.strictEntities=this.opt.strictEntities,this.ENTITIES=this.strictEntities?Object.create(this.XML_ENTITIES):Object.create(this.ENTITIES),this.attribList=[],this.opt.xmlns&&(this.ns=Object.create(this.rootNS)),this.trackPosition=this.opt.position!==!1,this.trackPosition&&(this.position=this.line=this.column=0),this.emit("onready")}resume(){return this.error=null,this}close(){return this.write(null)}flush(){this.flushBuffers()}};J(b,"ENTITIES",O);function U(e){return typeof e=="string"?e.charAt(0).toLowerCase()+e.slice(1):e}function y(e){if(Array.isArray(e))return e.map(t=>y(t));if(e&&typeof e=="object"){let t={};for(let[i,s]of Object.entries(e))t[U(i)]=y(s);return t}return e}var Lt=Z(wt(),1);function H(e,t){if(t?._parser&&t._parser!=="fast-xml-parser")throw new Error(t?._parser);let i={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:t?.removeNSPrefix,textNodeName:t?.textNodeName,isArray:(r,n,h,a)=>Boolean(t?.arrayPaths?.some(c=>n===c)),...t?._fastXML},s=rs(e,i);return t?.uncapitalizeKeys?y(s):s}function rs(e,t){return new Lt.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...t}).parse(e)}var ns="4.2.0",I={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:ns,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:os,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(e,t)=>H(new TextDecoder().decode(e),{...I.options.xml,...t?.xml}),parseTextSync:(e,t)=>H(e,{...I.options.xml,...t?.xml})};function os(e){return e.startsWith("<?xml")}function z(e,t){return Mt(e||{},t)}function Mt(e,t,i=0){if(i>3)return t;let s={...e};for(let[r,n]of Object.entries(t))n&&typeof n=="object"&&!Array.isArray(n)?s[r]=Mt(s[r]||{},t[r],i+1):s[r]=t[r];return s}var Rt={...I,name:"HTML",id:"html",extensions:["html","htm"],mimeTypes:["text/html"],testText:as,parse:async(e,t)=>Bt(new TextDecoder().decode(e),t),parseTextSync:(e,t)=>Bt(e,t)};function as(e){return e.startsWith("<html")}function Bt(e,t){return t=z(t,{xml:{_parser:"fast-xml-parser",_fastXML:{htmlEntities:!0}}}),I.parseTextSync?.(e,t)}function K(e){return Array.isArray(e)?e:(e&&typeof e=="object"&&e[0],e?[e]:[])}function Vt(e,t){e[t]=K(e[t])}return Yt(w);})();
21
+ Actual: ${this.attribValue}`);else{let r=this.tag,n=this.tags[this.tags.length-1]||this;r.ns===n.ns&&(r.ns=Object.create(n.ns)),r.ns[s]=this.attribValue}this.attribList.push([this.attribName,this.attribValue])}else this.tag.attributes[this.attribName]=this.attribValue,this.emitNode("onattribute",{name:this.attribName,value:this.attribValue});this.attribName=this.attribValue=""}newTag(){this.strict||(this.tagName=this.tagName[this.looseCase]());let t=this.tags[this.tags.length-1]||this,i=this.tag={name:this.tagName,attributes:{}};this.opt.xmlns&&(i.ns=t.ns),this.attribList.length=0,this.emitNode("onopentagstart",i)}parseEntity(){let t=this.entity,i=t.toLowerCase(),s=NaN,r="";return this.ENTITIES[t]?this.ENTITIES[t]:this.ENTITIES[i]?this.ENTITIES[i]:(t=i,t.charAt(0)==="#"&&(t.charAt(1)==="x"?(t=t.slice(2),s=parseInt(t,16),r=s.toString(16)):(t=t.slice(1),s=parseInt(t,10),r=s.toString(10))),t=t.replace(/^0+/,""),isNaN(s)||r.toLowerCase()!==t?(this.strictFail("Invalid character entity"),`&${this.entity};`):String.fromCodePoint(s))}beginWhiteSpace(t){t==="<"?(this.state=this.S.OPEN_WAKA,this.startTagPosition=this.position):l.isWhitespace(t)||(this.strictFail("Non-whitespace before first tag."),this.textNode=t,this.state=this.S.TEXT)}strictFail(t){if(typeof this!="object"||!(this instanceof b))throw new Error("bad call to strictFail");this.strict&&this.errorFunction(t)}textApplyOptions(t){return this.opt.trim&&(t=t.trim()),this.opt.normalize&&(t=t.replace(/\s+/g," ")),t}emitNode(t,i){this.textNode&&this.closeText(),this.emit(t,i)}closeText(){this.textNode=this.textApplyOptions(this.textNode),this.textNode!==void 0&&this.textNode!==""&&this.textNode!=="undefined"&&this.emit("ontext",this.textNode),this.textNode=""}checkBufferLength(){let t=Math.max(this.opt.MAX_BUFFER_LENGTH,10),i=0;for(let r=0,n=this.BUFFERS.length;r<n;r++){let h=this[this.BUFFERS[r]]?.length||0;if(h>t)switch(this.BUFFERS[r]){case"textNode":this.closeText();break;case"cdata":this.emitNode("oncdata",this.cdata),this.cdata="";break;case"script":this.emitNode("onscript",this.script),this.script="";break;default:this.errorFunction(`Max buffer length exceeded: ${this.BUFFERS[r]}`)}i=Math.max(i,h)}let s=this.opt.MAX_BUFFER_LENGTH-i;this.bufferCheckPosition=s+this.position}openTag(t){if(this.opt.xmlns){let i=this.tag,s=l.qname(this.tagName);i.prefix=s.prefix,i.local=s.local,i.uri=i.ns[s.prefix]||"",i.prefix&&!i.uri&&(this.strictFail(`Unbound namespace prefix: ${JSON.stringify(this.tagName)}`),i.uri=s.prefix);let r=this.tags[this.tags.length-1]||this;if(i.ns&&r.ns!==i.ns){let n=this;Object.keys(i.ns).forEach(h=>{n.emitNode("onopennamespace",{prefix:h,uri:i.ns[h]})})}for(let n=0,h=this.attribList.length;n<h;n++){let a=this.attribList[n],o=a[0],c=a[1],u=l.qname(o,!0),f=u.prefix,g=u.local,p=f===""?"":i.ns[f]||"",N={name:o,value:c,prefix:f,local:g,uri:p};f&&f!=="xmlns"&&!p&&(this.strictFail(`Unbound namespace prefix: ${JSON.stringify(f)}`),N.uri=f),this.tag.attributes[o]=N,this.emitNode("onattribute",N)}this.attribList.length=0}this.tag.isSelfClosing=Boolean(t),this.sawRoot=!0,this.tags.push(this.tag),this.emitNode("onopentag",this.tag),t||(!this.noscript&&this.tagName.toLowerCase()==="script"?this.state=this.S.SCRIPT:this.state=this.S.TEXT,this.tag=null,this.tagName=""),this.attribName=this.attribValue="",this.attribList.length=0}closeTag(){if(!this.tagName){this.strictFail("Weird empty close tag."),this.textNode+="</>",this.state=this.S.TEXT;return}if(this.script){if(this.tagName!=="script"){this.script+=`</${this.tagName}>`,this.tagName="",this.state=this.S.SCRIPT;return}this.emitNode("onscript",this.script),this.script=""}let t=this.tags.length,i=this.tagName;for(this.strict||(i=i[this.looseCase]());t--&&this.tags[t].name!==i;)this.strictFail("Unexpected close tag");if(t<0){this.strictFail(`Unmatched closing tag: ${this.tagName}`),this.textNode+=`</${this.tagName}>`,this.state=this.S.TEXT;return}this.tagName=i;let s=this.tags.length;for(;s-- >t;){let r=this.tag=this.tags.pop();this.tagName=this.tag.name,this.emitNode("onclosetag",this.tagName);let n={};for(let a in r.ns)r.ns.hasOwnProperty(a)&&(n[a]=r.ns[a]);let h=this.tags[this.tags.length-1]||this;if(this.opt.xmlns&&r.ns!==h.ns){let a=this;Object.keys(r.ns).forEach(o=>{let c=r.ns[o];a.emitNode("onclosenamespace",{prefix:o,uri:c})})}}t===0&&(this.closedRoot=!0),this.tagName=this.attribValue=this.attribName="",this.attribList.length=0,this.state=this.S.TEXT}},b=class extends l{opt=Xt;events=tt;constructor(t){super(),this.clearBuffers(),this.opt=t={...this.opt,...t},this.events={...this.events,...t},this.q=this.c="",this.opt.lowercase=this.opt.lowercase||this.opt.lowercasetags,this.bufferCheckPosition=this.opt.MAX_BUFFER_LENGTH,this.looseCase=this.opt.lowercase?"toLowerCase":"toUpperCase",this.tags=[],this.closed=this.closedRoot=this.sawRoot=!1,this.tag=this.error=null,this.strict=Boolean(this.opt.strict),this.noscript=Boolean(this.opt.strict||this.opt.noscript),this.state=this.S.BEGIN,this.strictEntities=this.opt.strictEntities,this.ENTITIES=this.strictEntities?Object.create(this.XML_ENTITIES):Object.create(this.ENTITIES),this.attribList=[],this.opt.xmlns&&(this.ns=Object.create(this.rootNS)),this.trackPosition=this.opt.position!==!1,this.trackPosition&&(this.position=this.line=this.column=0),this.emit("onready")}resume(){return this.error=null,this}close(){return this.write(null)}flush(){this.flushBuffers()}};J(b,"ENTITIES",O);function U(e){return typeof e=="string"?e.charAt(0).toLowerCase()+e.slice(1):e}function y(e){if(Array.isArray(e))return e.map(t=>y(t));if(e&&typeof e=="object"){let t={};for(let[i,s]of Object.entries(e))t[U(i)]=y(s);return t}return e}var Lt=Z(wt(),1);function H(e,t){if(t?._parser&&t._parser!=="fast-xml-parser")throw new Error(t?._parser);let i={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:t?.removeNSPrefix,textNodeName:t?.textNodeName,isArray:(r,n,h,a)=>Boolean(t?.arrayPaths?.some(c=>n===c)),...t?._fastXML},s=rs(e,i);return t?.uncapitalizeKeys?y(s):s}function rs(e,t){return new Lt.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...t}).parse(e)}var ns="4.3.0-alpha.1",I={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:ns,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:os,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(e,t)=>H(new TextDecoder().decode(e),{...I.options.xml,...t?.xml}),parseTextSync:(e,t)=>H(e,{...I.options.xml,...t?.xml})};function os(e){return e.startsWith("<?xml")}function z(e,t){return Mt(e||{},t)}function Mt(e,t,i=0){if(i>3)return t;let s={...e};for(let[r,n]of Object.entries(t))n&&typeof n=="object"&&!Array.isArray(n)?s[r]=Mt(s[r]||{},t[r],i+1):s[r]=t[r];return s}var Rt={...I,name:"HTML",id:"html",extensions:["html","htm"],mimeTypes:["text/html"],testText:as,parse:async(e,t)=>Bt(new TextDecoder().decode(e),t),parseTextSync:(e,t)=>Bt(e,t)};function as(e){return e.startsWith("<html")}function Bt(e,t){return t=z(t,{xml:{_parser:"fast-xml-parser",_fastXML:{htmlEntities:!0}}}),I.parseTextSync?.(e,t)}function K(e){return Array.isArray(e)?e:(e&&typeof e=="object"&&e[0],e?[e]:[])}function Vt(e,t){e[t]=K(e[t])}return Yt(w);})();
22
22
  return __exports__;
23
23
  });
package/dist/index.cjs CHANGED
@@ -1472,7 +1472,7 @@ function fastParseXML(text, options) {
1472
1472
  }
1473
1473
 
1474
1474
  // dist/xml-loader.js
1475
- var VERSION = true ? "4.2.0" : "latest";
1475
+ var VERSION = true ? "4.3.0-alpha.1" : "latest";
1476
1476
  var XMLLoader = {
1477
1477
  dataType: null,
1478
1478
  batchType: null,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.js", "sax-ts/sax.js", "lib/xml-utils/uncapitalize.js", "lib/parsers/parse-xml.js", "xml-loader.js", "html-loader.js", "lib/xml-utils/xml-utils.js"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { XMLLoader } from \"./xml-loader.js\";\nexport { HTMLLoader } from \"./html-loader.js\";\nexport { SAXParser as SAXParser } from \"./sax-ts/sax.js\";\n// Utilities\nexport { convertXMLValueToArray, convertXMLFieldToArrayInPlace } from \"./lib/xml-utils/xml-utils.js\";\n// Experimental\nexport { uncapitalize as _uncapitalize, uncapitalizeKeys as _uncapitalizeKeys } from \"./lib/xml-utils/uncapitalize.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst DEFAULT_SAX_EVENTS = {\n ontext: () => { },\n onprocessinginstruction: () => { },\n onsgmldeclaration: () => { },\n ondoctype: () => { },\n oncomment: () => { },\n onopentagstart: () => { },\n onattribute: () => { },\n onopentag: () => { },\n onclosetag: () => { },\n onopencdata: () => { },\n oncdata: () => { },\n onclosecdata: () => { },\n onerror: () => { },\n onend: () => { },\n onready: () => { },\n onscript: () => { },\n onopennamespace: () => { },\n onclosenamespace: () => { }\n};\nconst DEFAULT_SAX_PARSER_OPTIONS = {\n ...DEFAULT_SAX_EVENTS,\n strict: false,\n MAX_BUFFER_LENGTH: 64 * 1024,\n lowercase: false,\n lowercasetags: false,\n noscript: false,\n strictEntities: false,\n xmlns: undefined,\n position: undefined,\n trim: undefined,\n normalize: undefined\n};\nconst EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n];\nconst BUFFERS = [\n 'comment',\n 'sgmlDecl',\n 'textNode',\n 'tagName',\n 'doctype',\n 'procInstName',\n 'procInstBody',\n 'entity',\n 'attribName',\n 'attribValue',\n 'cdata',\n 'script'\n];\nconst nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\nconst nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\nconst entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\nconst entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\nexport const ENTITIES = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\",\n AElig: 198,\n Aacute: 193,\n Acirc: 194,\n Agrave: 192,\n Aring: 197,\n Atilde: 195,\n Auml: 196,\n Ccedil: 199,\n ETH: 208,\n Eacute: 201,\n Ecirc: 202,\n Egrave: 200,\n Euml: 203,\n Iacute: 205,\n Icirc: 206,\n Igrave: 204,\n Iuml: 207,\n Ntilde: 209,\n Oacute: 211,\n Ocirc: 212,\n Ograve: 210,\n Oslash: 216,\n Otilde: 213,\n Ouml: 214,\n THORN: 222,\n Uacute: 218,\n Ucirc: 219,\n Ugrave: 217,\n Uuml: 220,\n Yacute: 221,\n aacute: 225,\n acirc: 226,\n aelig: 230,\n agrave: 224,\n aring: 229,\n atilde: 227,\n auml: 228,\n ccedil: 231,\n eacute: 233,\n ecirc: 234,\n egrave: 232,\n eth: 240,\n euml: 235,\n iacute: 237,\n icirc: 238,\n igrave: 236,\n iuml: 239,\n ntilde: 241,\n oacute: 243,\n ocirc: 244,\n ograve: 242,\n oslash: 248,\n otilde: 245,\n ouml: 246,\n szlig: 223,\n thorn: 254,\n uacute: 250,\n ucirc: 251,\n ugrave: 249,\n uuml: 252,\n yacute: 253,\n yuml: 255,\n copy: 169,\n reg: 174,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup1: 185,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n times: 215,\n divide: 247,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n fnof: 402,\n circ: 710,\n tilde: 732,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n bull: 8226,\n hellip: 8230,\n permil: 8240,\n prime: 8242,\n Prime: 8243,\n lsaquo: 8249,\n rsaquo: 8250,\n oline: 8254,\n frasl: 8260,\n euro: 8364,\n image: 8465,\n weierp: 8472,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830\n};\nObject.keys(ENTITIES).forEach((key) => {\n const e = ENTITIES[key];\n ENTITIES[key] = typeof e === 'number' ? String.fromCharCode(e) : e;\n});\n/**\n * Internal helper class\n */\nclass SAX {\n EVENTS = EVENTS;\n ENTITIES = {\n // TODO: make it readonly, needed for entity-mega test\n // amp, gt, lt, quot and apos are resolved to strings instead of numerical\n // codes, IDK why\n ...ENTITIES\n };\n XML_ENTITIES = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\"\n };\n S = 0;\n opt;\n trackPosition = false;\n column = 0;\n line = 0;\n c = '';\n error;\n q = '';\n bufferCheckPosition;\n closed = false;\n tags = [];\n looseCase = '';\n closedRoot = false;\n sawRoot = false;\n strict = false;\n tag;\n strictEntities;\n state;\n noscript = false;\n attribList = [];\n ns;\n position = 0;\n STATE = {\n BEGIN: this.S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: this.S++, // leading whitespace\n TEXT: this.S++, // general stuff\n TEXT_ENTITY: this.S++, // &amp and such.\n OPEN_WAKA: this.S++, // <\n SGML_DECL: this.S++, // <!BLARG\n SGML_DECL_QUOTED: this.S++, // <!BLARG foo \"bar\n DOCTYPE: this.S++, // <!DOCTYPE\n DOCTYPE_QUOTED: this.S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: this.S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: this.S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: this.S++, // <!-\n COMMENT: this.S++, // <!--\n COMMENT_ENDING: this.S++, // <!-- blah -\n COMMENT_ENDED: this.S++, // <!-- blah --\n CDATA: this.S++, // <![CDATA[ something\n CDATA_ENDING: this.S++, // ]\n CDATA_ENDING_2: this.S++, // ]]\n PROC_INST: this.S++, // <?hi\n PROC_INST_BODY: this.S++, // <?hi there\n PROC_INST_ENDING: this.S++, // <?hi \"there\" ?\n OPEN_TAG: this.S++, // <strong\n OPEN_TAG_SLASH: this.S++, // <strong /\n ATTRIB: this.S++, // <a\n ATTRIB_NAME: this.S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: this.S++, // <a foo _\n ATTRIB_VALUE: this.S++, // <a foo=\n ATTRIB_VALUE_QUOTED: this.S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: this.S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: this.S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: this.S++, // <foo bar=\"&quot;\"\n ATTRIB_VALUE_ENTITY_U: this.S++, // <foo bar=&quot\n CLOSE_TAG: this.S++, // </a\n CLOSE_TAG_SAW_WHITE: this.S++, // </a >\n SCRIPT: this.S++, // <script> ...\n SCRIPT_ENDING: this.S++ // <script> ... <\n };\n BUFFERS = BUFFERS;\n // private parser: (strict: boolean, opt: any) => SAXParser;\n CDATA = '[CDATA[';\n DOCTYPE = 'DOCTYPE';\n XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n rootNS = {\n xml: this.XML_NAMESPACE,\n xmlns: this.XMLNS_NAMESPACE\n };\n comment;\n sgmlDecl;\n textNode = '';\n tagName;\n doctype;\n procInstName;\n procInstBody;\n entity = '';\n attribName;\n attribValue;\n cdata = '';\n script = '';\n startTagPosition = 0;\n constructor() {\n this.S = 0;\n for (const s in this.STATE) {\n if (this.STATE.hasOwnProperty(s)) {\n this.STATE[this.STATE[s]] = s;\n }\n }\n // shorthand\n this.S = this.STATE;\n }\n static charAt(chunk, i) {\n let result = '';\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result;\n }\n static isWhitespace(c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t';\n }\n static isQuote(c) {\n return c === '\"' || c === \"'\";\n }\n static isAttribEnd(c) {\n return c === '>' || SAX.isWhitespace(c);\n }\n static isMatch(regex, c) {\n return regex.test(c);\n }\n static notMatch(regex, c) {\n return !SAX.isMatch(regex, c);\n }\n static qname(name, attribute) {\n const i = name.indexOf(':');\n const qualName = i < 0 ? ['', name] : name.split(':');\n let prefix = qualName[0];\n let local = qualName[1];\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns';\n local = '';\n }\n return { prefix, local };\n }\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this.errorFunction('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString();\n }\n let i = 0;\n let c;\n while (true) {\n c = SAX.charAt(chunk, i++);\n this.c = c;\n if (!c) {\n break;\n }\n if (this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n }\n else {\n this.column++;\n }\n }\n switch (this.state) {\n case this.S.BEGIN:\n this.state = this.S.BEGIN_WHITESPACE;\n if (c === '\\uFEFF') {\n continue;\n }\n this.beginWhiteSpace(c);\n continue;\n case this.S.BEGIN_WHITESPACE:\n this.beginWhiteSpace(c);\n continue;\n case this.S.TEXT:\n if (this.sawRoot && !this.closedRoot) {\n const starti = i - 1;\n while (c && c !== '<' && c !== '&') {\n c = SAX.charAt(chunk, i++);\n if (c && this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n }\n else {\n this.column++;\n }\n }\n }\n this.textNode += chunk.substring(starti, i - 1);\n }\n if (c === '<' && !(this.sawRoot && this.closedRoot && !this.strict)) {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\n }\n else {\n if (!SAX.isWhitespace(c) && (!this.sawRoot || this.closedRoot)) {\n this.strictFail('Text data outside of root node.');\n }\n if (c === '&') {\n this.state = this.S.TEXT_ENTITY;\n }\n else {\n this.textNode += c;\n }\n }\n continue;\n case this.S.SCRIPT:\n // only non-strict\n if (c === '<') {\n this.state = this.S.SCRIPT_ENDING;\n }\n else {\n this.script += c;\n }\n continue;\n case this.S.SCRIPT_ENDING:\n if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n }\n else {\n this.script += `<${c}`;\n this.state = this.S.SCRIPT;\n }\n continue;\n case this.S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n this.state = this.S.SGML_DECL;\n this.sgmlDecl = '';\n }\n else if (SAX.isWhitespace(c)) {\n // wait for it...\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.state = this.S.OPEN_TAG;\n this.tagName = c;\n }\n else if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n this.tagName = '';\n }\n else if (c === '?') {\n this.state = this.S.PROC_INST;\n this.procInstName = this.procInstBody = '';\n }\n else {\n this.strictFail('Unencoded <');\n // if there was some whitespace, then add that in.\n if (this.startTagPosition + 1 < this.position) {\n const pad = this.position - this.startTagPosition;\n c = new Array(pad).join(' ') + c;\n }\n this.textNode += `<${c}`;\n this.state = this.S.TEXT;\n }\n continue;\n case this.S.SGML_DECL:\n if ((this.sgmlDecl + c).toUpperCase() === this.CDATA) {\n this.emitNode('onopencdata');\n this.state = this.S.CDATA;\n this.sgmlDecl = '';\n this.cdata = '';\n }\n else if (this.sgmlDecl + c === '--') {\n this.state = this.S.COMMENT;\n this.comment = '';\n this.sgmlDecl = '';\n }\n else if ((this.sgmlDecl + c).toUpperCase() === this.DOCTYPE) {\n this.state = this.S.DOCTYPE;\n if (this.doctype || this.sawRoot) {\n this.strictFail('Inappropriately located doctype declaration');\n }\n this.doctype = '';\n this.sgmlDecl = '';\n }\n else if (c === '>') {\n this.emitNode('onsgmldeclaration', this.sgmlDecl);\n this.sgmlDecl = '';\n this.state = this.S.TEXT;\n }\n else if (SAX.isQuote(c)) {\n this.state = this.S.SGML_DECL_QUOTED;\n this.sgmlDecl += c;\n }\n else {\n this.sgmlDecl += c;\n }\n continue;\n case this.S.SGML_DECL_QUOTED:\n if (c === this.q) {\n this.state = this.S.SGML_DECL;\n this.q = '';\n }\n this.sgmlDecl += c;\n continue;\n case this.S.DOCTYPE:\n if (c === '>') {\n this.state = this.S.TEXT;\n this.emitNode('ondoctype', this.doctype);\n this.doctype = true; // just remember that we saw it.\n }\n else {\n this.doctype += c;\n if (c === '[') {\n this.state = this.S.DOCTYPE_DTD;\n }\n else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_QUOTED;\n this.q = c;\n }\n }\n continue;\n case this.S.DOCTYPE_QUOTED:\n this.doctype += c;\n if (c === this.q) {\n this.q = '';\n this.state = this.S.DOCTYPE;\n }\n continue;\n case this.S.DOCTYPE_DTD:\n this.doctype += c;\n if (c === ']') {\n this.state = this.S.DOCTYPE;\n }\n else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_DTD_QUOTED;\n this.q = c;\n }\n continue;\n case this.S.DOCTYPE_DTD_QUOTED:\n this.doctype += c;\n if (c === this.q) {\n this.state = this.S.DOCTYPE_DTD;\n this.q = '';\n }\n continue;\n case this.S.COMMENT:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDING;\n }\n else {\n this.comment += c;\n }\n continue;\n case this.S.COMMENT_ENDING:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDED;\n this.comment = this.textApplyOptions(this.comment);\n if (this.comment) {\n this.emitNode('oncomment', this.comment);\n }\n this.comment = '';\n }\n else {\n this.comment += `-${c}`;\n this.state = this.S.COMMENT;\n }\n continue;\n case this.S.COMMENT_ENDED:\n if (c !== '>') {\n this.strictFail('Malformed comment');\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n this.comment += `--${c}`;\n this.state = this.S.COMMENT;\n }\n else {\n this.state = this.S.TEXT;\n }\n continue;\n case this.S.CDATA:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING;\n }\n else {\n this.cdata += c;\n }\n continue;\n case this.S.CDATA_ENDING:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING_2;\n }\n else {\n this.cdata += `]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n case this.S.CDATA_ENDING_2:\n if (c === '>') {\n if (this.cdata) {\n this.emitNode('oncdata', this.cdata);\n }\n this.emitNode('onclosecdata');\n this.cdata = '';\n this.state = this.S.TEXT;\n }\n else if (c === ']') {\n this.cdata += ']';\n }\n else {\n this.cdata += `]]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n case this.S.PROC_INST:\n if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n }\n else if (SAX.isWhitespace(c)) {\n this.state = this.S.PROC_INST_BODY;\n }\n else {\n this.procInstName += c;\n }\n continue;\n case this.S.PROC_INST_BODY:\n if (!this.procInstBody && SAX.isWhitespace(c)) {\n continue;\n }\n else if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n }\n else {\n this.procInstBody += c;\n }\n continue;\n case this.S.PROC_INST_ENDING:\n if (c === '>') {\n this.emitNode('onprocessinginstruction', {\n name: this.procInstName,\n body: this.procInstBody\n });\n this.procInstName = this.procInstBody = '';\n this.state = this.S.TEXT;\n }\n else {\n this.procInstBody += `?${c}`;\n this.state = this.S.PROC_INST_BODY;\n }\n continue;\n case this.S.OPEN_TAG:\n if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n }\n else {\n this.newTag();\n if (c === '>') {\n this.openTag();\n }\n else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n }\n else {\n if (!SAX.isWhitespace(c)) {\n this.strictFail('Invalid character in tag name');\n }\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n case this.S.OPEN_TAG_SLASH:\n if (c === '>') {\n this.openTag(true);\n this.closeTag();\n }\n else {\n this.strictFail('Forward-slash in opening tag not followed by >');\n this.state = this.S.ATTRIB;\n }\n continue;\n case this.S.ATTRIB:\n // haven't read the attribute name yet.\n if (SAX.isWhitespace(c)) {\n continue;\n }\n else if (c === '>') {\n this.openTag();\n }\n else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n }\n else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n case this.S.ATTRIB_NAME:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n }\n else if (c === '>') {\n this.strictFail('Attribute without value');\n this.attribValue = this.attribName;\n this.attrib();\n this.openTag();\n }\n else if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB_NAME_SAW_WHITE;\n }\n else if (SAX.isMatch(nameBody, c)) {\n this.attribName += c;\n }\n else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n case this.S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n }\n else if (SAX.isWhitespace(c)) {\n continue;\n }\n else {\n this.strictFail('Attribute without value');\n this.tag.attributes[this.attribName] = '';\n this.attribValue = '';\n this.emitNode('onattribute', {\n name: this.attribName,\n value: ''\n });\n this.attribName = '';\n if (c === '>') {\n this.openTag();\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.state = this.S.ATTRIB_NAME;\n }\n else {\n this.strictFail('Invalid attribute name');\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n case this.S.ATTRIB_VALUE:\n if (SAX.isWhitespace(c)) {\n continue;\n }\n else if (SAX.isQuote(c)) {\n this.q = c;\n this.state = this.S.ATTRIB_VALUE_QUOTED;\n }\n else {\n this.strictFail('Unquoted attribute value');\n this.state = this.S.ATTRIB_VALUE_UNQUOTED;\n this.attribValue = c;\n }\n continue;\n case this.S.ATTRIB_VALUE_QUOTED:\n if (c !== this.q) {\n if (c === '&') {\n this.state = this.S.ATTRIB_VALUE_ENTITY_Q;\n }\n else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n this.q = '';\n this.state = this.S.ATTRIB_VALUE_CLOSED;\n continue;\n case this.S.ATTRIB_VALUE_CLOSED:\n if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB;\n }\n else if (c === '>') {\n this.openTag();\n }\n else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.strictFail('No whitespace between attributes');\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n }\n else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n case this.S.ATTRIB_VALUE_UNQUOTED:\n if (!SAX.isAttribEnd(c)) {\n if (c === '&') {\n this.state = this.S.ATTRIB_VALUE_ENTITY_U;\n }\n else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n if (c === '>') {\n this.openTag();\n }\n else {\n this.state = this.S.ATTRIB;\n }\n continue;\n case this.S.CLOSE_TAG:\n if (!this.tagName) {\n if (SAX.isWhitespace(c)) {\n continue;\n }\n else if (SAX.notMatch(nameStart, c)) {\n if (this.script) {\n this.script += `</${c}`;\n this.state = this.S.SCRIPT;\n }\n else {\n this.strictFail('Invalid tagname in closing tag.');\n }\n }\n else {\n this.tagName = c;\n }\n }\n else if (c === '>') {\n this.closeTag();\n }\n else if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n }\n else if (this.script) {\n this.script += `</${this.tagName}`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\n }\n else {\n if (!SAX.isWhitespace(c)) {\n this.strictFail('Invalid tagname in closing tag');\n }\n this.state = this.S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n case this.S.CLOSE_TAG_SAW_WHITE:\n if (SAX.isWhitespace(c)) {\n continue;\n }\n if (c === '>') {\n this.closeTag();\n }\n else {\n this.strictFail('Invalid characters in closing tag');\n }\n continue;\n case this.S.TEXT_ENTITY:\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n case this.S.ATTRIB_VALUE_ENTITY_U:\n let returnState;\n let buffer;\n switch (this.state) {\n case this.S.TEXT_ENTITY:\n returnState = this.S.TEXT;\n buffer = 'textNode';\n break;\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n returnState = this.S.ATTRIB_VALUE_QUOTED;\n buffer = 'attribValue';\n break;\n case this.S.ATTRIB_VALUE_ENTITY_U:\n returnState = this.S.ATTRIB_VALUE_UNQUOTED;\n buffer = 'attribValue';\n break;\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n if (c === ';') {\n this[buffer] += this.parseEntity();\n this.entity = '';\n this.state = returnState;\n }\n else if (SAX.isMatch(this.entity.length ? entityBody : entityStart, c)) {\n this.entity += c;\n }\n else {\n this.strictFail('Invalid character in entity name');\n this[buffer] += `&${this.entity}${c}`;\n this.entity = '';\n this.state = returnState;\n }\n continue;\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n } // while\n if (this.position >= this.bufferCheckPosition) {\n this.checkBufferLength();\n }\n return this;\n }\n emit(event, data) {\n if (this.events.hasOwnProperty(event)) {\n const eventName = event.replace(/^on/, '');\n this.events[event](data, eventName, this);\n }\n }\n clearBuffers() {\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n this[this[i]] = '';\n }\n }\n flushBuffers() {\n this.closeText();\n if (this.cdata !== '') {\n this.emitNode('oncdata', this.cdata);\n this.cdata = '';\n }\n if (this.script !== '') {\n this.emitNode('onscript', this.script);\n this.script = '';\n }\n }\n end() {\n if (this.sawRoot && !this.closedRoot)\n this.strictFail('Unclosed root tag');\n if (this.state !== this.S.BEGIN &&\n this.state !== this.S.BEGIN_WHITESPACE &&\n this.state !== this.S.TEXT) {\n this.errorFunction('Unexpected end');\n }\n this.closeText();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return new SAXParser(this.opt);\n }\n errorFunction(er) {\n this.closeText();\n if (this.trackPosition) {\n er += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n }\n const error = new Error(er);\n this.error = error;\n this.emit('onerror', error);\n return this;\n }\n attrib() {\n if (!this.strict) {\n this.attribName = this.attribName[this.looseCase]();\n }\n if (this.attribList.indexOf(this.attribName) !== -1 ||\n this.tag.attributes.hasOwnProperty(this.attribName)) {\n this.attribName = this.attribValue = '';\n return;\n }\n if (this.opt.xmlns) {\n const qn = SAX.qname(this.attribName, true);\n const prefix = qn.prefix;\n const local = qn.local;\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && this.attribValue !== this.XML_NAMESPACE) {\n this.strictFail(`xml: prefix must be bound to ${this.XML_NAMESPACE}\\n` + `Actual: ${this.attribValue}`);\n }\n else if (local === 'xmlns' && this.attribValue !== this.XMLNS_NAMESPACE) {\n this.strictFail(`xmlns: prefix must be bound to ${this.XMLNS_NAMESPACE}\\n` +\n `Actual: ${this.attribValue}`);\n }\n else {\n const tag = this.tag;\n const parent = this.tags[this.tags.length - 1] || this;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = this.attribValue;\n }\n }\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n this.attribList.push([this.attribName, this.attribValue]);\n }\n else {\n // in non-xmlns mode, we can emit the event right away\n this.tag.attributes[this.attribName] = this.attribValue;\n this.emitNode('onattribute', {\n name: this.attribName,\n value: this.attribValue\n });\n }\n this.attribName = this.attribValue = '';\n }\n newTag() {\n if (!this.strict)\n this.tagName = this.tagName[this.looseCase]();\n const parent = this.tags[this.tags.length - 1] || this;\n const tag = (this.tag = { name: this.tagName, attributes: {} });\n // will be overridden if tag contains an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (this.opt.xmlns) {\n tag.ns = parent.ns;\n }\n this.attribList.length = 0;\n this.emitNode('onopentagstart', tag);\n }\n parseEntity() {\n let entity = this.entity;\n const entityLC = entity.toLowerCase();\n let num = NaN;\n let numStr = '';\n if (this.ENTITIES[entity]) {\n return this.ENTITIES[entity];\n }\n if (this.ENTITIES[entityLC]) {\n return this.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2);\n // TODO: remove tslint:disable\n // tslint:disable-next-line\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n }\n else {\n entity = entity.slice(1);\n // TODO: remove tslint:disable\n // tslint:disable-next-line\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, '');\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n this.strictFail('Invalid character entity');\n return `&${this.entity};`;\n }\n return String.fromCodePoint(num);\n }\n beginWhiteSpace(c) {\n if (c === '<') {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\n }\n else if (!SAX.isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n this.strictFail('Non-whitespace before first tag.');\n this.textNode = c;\n this.state = this.S.TEXT;\n }\n else {\n }\n }\n strictFail(message) {\n if (typeof this !== 'object' || !(this instanceof SAXParser)) {\n throw new Error('bad call to strictFail');\n }\n if (this.strict) {\n this.errorFunction(message);\n }\n }\n textApplyOptions(text) {\n if (this.opt.trim)\n text = text.trim();\n if (this.opt.normalize)\n text = text.replace(/\\s+/g, ' ');\n return text;\n }\n emitNode(nodeType, data) {\n if (this.textNode)\n this.closeText();\n this.emit(nodeType, data);\n }\n closeText() {\n this.textNode = this.textApplyOptions(this.textNode);\n // TODO: figure out why this.textNode can be \"\" and \"undefined\"\n if (this.textNode !== undefined && this.textNode !== '' && this.textNode !== 'undefined') {\n this.emit('ontext', this.textNode);\n }\n this.textNode = '';\n }\n checkBufferLength() {\n const maxAllowed = Math.max(this.opt.MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n const len = this[this.BUFFERS[i]]?.length || 0;\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (this.BUFFERS[i]) {\n case 'textNode':\n this.closeText();\n break;\n case 'cdata':\n this.emitNode('oncdata', this.cdata);\n this.cdata = '';\n break;\n case 'script':\n this.emitNode('onscript', this.script);\n this.script = '';\n break;\n default:\n this.errorFunction(`Max buffer length exceeded: ${this.BUFFERS[i]}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n // schedule the next check for the earliest possible buffer overrun.\n const m = this.opt.MAX_BUFFER_LENGTH - maxActual;\n this.bufferCheckPosition = m + this.position;\n }\n openTag(selfClosing) {\n if (this.opt.xmlns) {\n // emit namespace binding events\n const tag = this.tag;\n // add namespace info to tag\n const qn = SAX.qname(this.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || '';\n if (tag.prefix && !tag.uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(this.tagName)}`);\n tag.uri = qn.prefix;\n }\n const parent = this.tags[this.tags.length - 1] || this;\n if (tag.ns && parent.ns !== tag.ns) {\n const that = this;\n Object.keys(tag.ns).forEach((p) => {\n that.emitNode('onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n });\n });\n }\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (let i = 0, l = this.attribList.length; i < l; i++) {\n const nv = this.attribList[i];\n const name = nv[0];\n const value = nv[1];\n const qualName = SAX.qname(name, true);\n const prefix = qualName.prefix;\n const local = qualName.local;\n const uri = prefix === '' ? '' : tag.ns[prefix] || '';\n const a = {\n name,\n value,\n prefix,\n local,\n uri\n };\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(prefix)}`);\n a.uri = prefix;\n }\n this.tag.attributes[name] = a;\n this.emitNode('onattribute', a);\n }\n this.attribList.length = 0;\n }\n this.tag.isSelfClosing = Boolean(selfClosing);\n // process the tag\n this.sawRoot = true;\n this.tags.push(this.tag);\n this.emitNode('onopentag', this.tag);\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!this.noscript && this.tagName.toLowerCase() === 'script') {\n this.state = this.S.SCRIPT;\n }\n else {\n this.state = this.S.TEXT;\n }\n this.tag = null;\n this.tagName = '';\n }\n this.attribName = this.attribValue = '';\n this.attribList.length = 0;\n }\n closeTag() {\n if (!this.tagName) {\n this.strictFail('Weird empty close tag.');\n this.textNode += '</>';\n this.state = this.S.TEXT;\n return;\n }\n if (this.script) {\n if (this.tagName !== 'script') {\n this.script += `</${this.tagName}>`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\n return;\n }\n this.emitNode('onscript', this.script);\n this.script = '';\n }\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n let t = this.tags.length;\n let tagName = this.tagName;\n if (!this.strict) {\n tagName = tagName[this.looseCase]();\n }\n while (t--) {\n const close = this.tags[t];\n if (close.name !== tagName) {\n // fail the first time in strict mode\n this.strictFail('Unexpected close tag');\n }\n else {\n break;\n }\n }\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n this.strictFail(`Unmatched closing tag: ${this.tagName}`);\n this.textNode += `</${this.tagName}>`;\n this.state = this.S.TEXT;\n return;\n }\n this.tagName = tagName;\n let s = this.tags.length;\n while (s-- > t) {\n const tag = (this.tag = this.tags.pop());\n this.tagName = this.tag.name;\n this.emitNode('onclosetag', this.tagName);\n const x = {};\n for (const i in tag.ns) {\n if (tag.ns.hasOwnProperty(i)) {\n x[i] = tag.ns[i];\n }\n }\n const parent = this.tags[this.tags.length - 1] || this;\n if (this.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n const that = this;\n Object.keys(tag.ns).forEach((p) => {\n const n = tag.ns[p];\n that.emitNode('onclosenamespace', { prefix: p, uri: n });\n });\n }\n }\n if (t === 0)\n this.closedRoot = true;\n this.tagName = this.attribValue = this.attribName = '';\n this.attribList.length = 0;\n this.state = this.S.TEXT;\n }\n}\n/**\n *\n * @todo Weird inheritance, with some variables initialized in subclass\n */\nexport class SAXParser extends SAX {\n static ENTITIES = ENTITIES;\n opt = DEFAULT_SAX_PARSER_OPTIONS;\n events = DEFAULT_SAX_EVENTS;\n constructor(opt) {\n super();\n this.clearBuffers();\n this.opt = opt = { ...this.opt, ...opt };\n this.events = { ...this.events, ...opt };\n this.q = this.c = '';\n this.opt.lowercase = this.opt.lowercase || this.opt.lowercasetags;\n this.bufferCheckPosition = this.opt.MAX_BUFFER_LENGTH;\n this.looseCase = this.opt.lowercase ? 'toLowerCase' : 'toUpperCase';\n this.tags = [];\n this.closed = this.closedRoot = this.sawRoot = false;\n this.tag = this.error = null;\n this.strict = Boolean(this.opt.strict);\n this.noscript = Boolean(this.opt.strict || this.opt.noscript);\n this.state = this.S.BEGIN;\n this.strictEntities = this.opt.strictEntities;\n this.ENTITIES = this.strictEntities\n ? Object.create(this.XML_ENTITIES)\n : Object.create(this.ENTITIES);\n this.attribList = [];\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (this.opt.xmlns) {\n this.ns = Object.create(this.rootNS);\n }\n // mostly just for error reporting\n this.trackPosition = this.opt.position !== false;\n if (this.trackPosition) {\n this.position = this.line = this.column = 0;\n }\n this.emit('onready');\n }\n resume() {\n this.error = null;\n return this;\n }\n close() {\n return this.write(null);\n }\n flush() {\n this.flushBuffers();\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Uncapitalize first letter of a string\n * @param str\n * @returns\n */\nexport function uncapitalize(str) {\n return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;\n}\n/**\n * Recursively uncapitalize all keys in a nested object\n * @param object\n * @returns\n */\nexport function uncapitalizeKeys(object) {\n if (Array.isArray(object)) {\n return object.map((element) => uncapitalizeKeys(element));\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 return object;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { StreamingXMLParser } from \"./streaming-xml-parser.js\";\nimport { uncapitalizeKeys } from \"../xml-utils/uncapitalize.js\";\nimport { XMLParser as FastXMLParser } from 'fast-xml-parser';\nexport function parseXMLSync(text, options) {\n if (options?._parser && options._parser !== 'fast-xml-parser') {\n throw new Error(options?._parser);\n }\n const fastXMLOptions = {\n // Default FastXML options\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#allowbooleanattributes\n allowBooleanAttributes: true,\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#ignoredeclaration\n ignoreDeclaration: true,\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#removensprefix\n removeNSPrefix: options?.removeNSPrefix,\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#textnodename\n textNodeName: options?.textNodeName,\n // Let's application specify keys that are always arrays\n isArray: (name, jpath, isLeafNode, isAttribute) => {\n const array = Boolean(options?.arrayPaths?.some((path) => jpath === path));\n return array;\n },\n // Application overrides\n ...options?._fastXML\n };\n const xml = fastParseXML(text, fastXMLOptions);\n // Note - could be done with FastXML tag processing\n return options?.uncapitalizeKeys ? uncapitalizeKeys(xml) : xml;\n}\nexport function fastParseXML(text, options) {\n const parser = new FastXMLParser({\n ignoreAttributes: false,\n attributeNamePrefix: '',\n ...options\n });\n const parsedXML = parser.parse(text);\n return parsedXML;\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, options = {}) {\n const parser = new StreamingXMLParser({\n ...options,\n strict: true\n });\n parser.write(text);\n parser.close();\n return parser.result;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseXMLSync } from \"./lib/parsers/parse-xml.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.2.0\" !== 'undefined' ? \"4.2.0\" : 'latest';\n/**\n * Loader for XML files\n */\nexport const XMLLoader = {\n dataType: null,\n batchType: null,\n name: 'XML',\n id: 'xml',\n module: 'xml',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n xml: {\n _parser: 'fast-xml-parser',\n uncapitalizeKeys: false,\n removeNSPrefix: false,\n textNodeName: 'value',\n arrayPaths: []\n }\n },\n parse: async (arrayBuffer, options) => parseXMLSync(new TextDecoder().decode(arrayBuffer), {\n ...XMLLoader.options.xml,\n ...options?.xml\n }),\n parseTextSync: (text, options) => parseXMLSync(text, { ...XMLLoader.options.xml, ...options?.xml })\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { mergeLoaderOptions } from '@loaders.gl/loader-utils';\nimport { XMLLoader } from \"./xml-loader.js\";\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 = {\n ...XMLLoader,\n name: 'HTML',\n id: 'html',\n extensions: ['html', 'htm'],\n mimeTypes: ['text/html'],\n testText: testHTMLFile,\n parse: async (arrayBuffer, options) => parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseTextSync(text, options)\n};\nfunction testHTMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith('<html');\n}\nfunction parseTextSync(text, options) {\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 _fastXML: {\n htmlEntities: true\n }\n }\n });\n return XMLLoader.parseTextSync?.(text, options);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// TODO - these utilities could be moved to the XML parser.\n// uncapitalizeKeys could be an XMLLoader option\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) {\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 * 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, key) {\n xml[key] = convertXMLValueToArray(xml[key]);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { XMLLoader } from \"./xml-loader.js\";\nexport { HTMLLoader } from \"./html-loader.js\";\nexport { SAXParser as SAXParser } from \"./sax-ts/sax.js\";\n// Utilities\nexport { convertXMLValueToArray, convertXMLFieldToArrayInPlace } from \"./lib/xml-utils/xml-utils.js\";\n// Experimental\nexport { uncapitalize as _uncapitalize, uncapitalizeKeys as _uncapitalizeKeys } from \"./lib/xml-utils/uncapitalize.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst DEFAULT_SAX_EVENTS = {\n ontext: () => { },\n onprocessinginstruction: () => { },\n onsgmldeclaration: () => { },\n ondoctype: () => { },\n oncomment: () => { },\n onopentagstart: () => { },\n onattribute: () => { },\n onopentag: () => { },\n onclosetag: () => { },\n onopencdata: () => { },\n oncdata: () => { },\n onclosecdata: () => { },\n onerror: () => { },\n onend: () => { },\n onready: () => { },\n onscript: () => { },\n onopennamespace: () => { },\n onclosenamespace: () => { }\n};\nconst DEFAULT_SAX_PARSER_OPTIONS = {\n ...DEFAULT_SAX_EVENTS,\n strict: false,\n MAX_BUFFER_LENGTH: 64 * 1024,\n lowercase: false,\n lowercasetags: false,\n noscript: false,\n strictEntities: false,\n xmlns: undefined,\n position: undefined,\n trim: undefined,\n normalize: undefined\n};\nconst EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n];\nconst BUFFERS = [\n 'comment',\n 'sgmlDecl',\n 'textNode',\n 'tagName',\n 'doctype',\n 'procInstName',\n 'procInstBody',\n 'entity',\n 'attribName',\n 'attribValue',\n 'cdata',\n 'script'\n];\nconst nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\nconst nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\nconst entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\nconst entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\nexport const ENTITIES = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\",\n AElig: 198,\n Aacute: 193,\n Acirc: 194,\n Agrave: 192,\n Aring: 197,\n Atilde: 195,\n Auml: 196,\n Ccedil: 199,\n ETH: 208,\n Eacute: 201,\n Ecirc: 202,\n Egrave: 200,\n Euml: 203,\n Iacute: 205,\n Icirc: 206,\n Igrave: 204,\n Iuml: 207,\n Ntilde: 209,\n Oacute: 211,\n Ocirc: 212,\n Ograve: 210,\n Oslash: 216,\n Otilde: 213,\n Ouml: 214,\n THORN: 222,\n Uacute: 218,\n Ucirc: 219,\n Ugrave: 217,\n Uuml: 220,\n Yacute: 221,\n aacute: 225,\n acirc: 226,\n aelig: 230,\n agrave: 224,\n aring: 229,\n atilde: 227,\n auml: 228,\n ccedil: 231,\n eacute: 233,\n ecirc: 234,\n egrave: 232,\n eth: 240,\n euml: 235,\n iacute: 237,\n icirc: 238,\n igrave: 236,\n iuml: 239,\n ntilde: 241,\n oacute: 243,\n ocirc: 244,\n ograve: 242,\n oslash: 248,\n otilde: 245,\n ouml: 246,\n szlig: 223,\n thorn: 254,\n uacute: 250,\n ucirc: 251,\n ugrave: 249,\n uuml: 252,\n yacute: 253,\n yuml: 255,\n copy: 169,\n reg: 174,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup1: 185,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n times: 215,\n divide: 247,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n fnof: 402,\n circ: 710,\n tilde: 732,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n bull: 8226,\n hellip: 8230,\n permil: 8240,\n prime: 8242,\n Prime: 8243,\n lsaquo: 8249,\n rsaquo: 8250,\n oline: 8254,\n frasl: 8260,\n euro: 8364,\n image: 8465,\n weierp: 8472,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830\n};\nObject.keys(ENTITIES).forEach((key) => {\n const e = ENTITIES[key];\n ENTITIES[key] = typeof e === 'number' ? String.fromCharCode(e) : e;\n});\n/**\n * Internal helper class\n */\nclass SAX {\n EVENTS = EVENTS;\n ENTITIES = {\n // TODO: make it readonly, needed for entity-mega test\n // amp, gt, lt, quot and apos are resolved to strings instead of numerical\n // codes, IDK why\n ...ENTITIES\n };\n XML_ENTITIES = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\"\n };\n S = 0;\n opt;\n trackPosition = false;\n column = 0;\n line = 0;\n c = '';\n error;\n q = '';\n bufferCheckPosition;\n closed = false;\n tags = [];\n looseCase = '';\n closedRoot = false;\n sawRoot = false;\n strict = false;\n tag;\n strictEntities;\n state;\n noscript = false;\n attribList = [];\n ns;\n position = 0;\n STATE = {\n BEGIN: this.S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: this.S++, // leading whitespace\n TEXT: this.S++, // general stuff\n TEXT_ENTITY: this.S++, // &amp and such.\n OPEN_WAKA: this.S++, // <\n SGML_DECL: this.S++, // <!BLARG\n SGML_DECL_QUOTED: this.S++, // <!BLARG foo \"bar\n DOCTYPE: this.S++, // <!DOCTYPE\n DOCTYPE_QUOTED: this.S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: this.S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: this.S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: this.S++, // <!-\n COMMENT: this.S++, // <!--\n COMMENT_ENDING: this.S++, // <!-- blah -\n COMMENT_ENDED: this.S++, // <!-- blah --\n CDATA: this.S++, // <![CDATA[ something\n CDATA_ENDING: this.S++, // ]\n CDATA_ENDING_2: this.S++, // ]]\n PROC_INST: this.S++, // <?hi\n PROC_INST_BODY: this.S++, // <?hi there\n PROC_INST_ENDING: this.S++, // <?hi \"there\" ?\n OPEN_TAG: this.S++, // <strong\n OPEN_TAG_SLASH: this.S++, // <strong /\n ATTRIB: this.S++, // <a\n ATTRIB_NAME: this.S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: this.S++, // <a foo _\n ATTRIB_VALUE: this.S++, // <a foo=\n ATTRIB_VALUE_QUOTED: this.S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: this.S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: this.S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: this.S++, // <foo bar=\"&quot;\"\n ATTRIB_VALUE_ENTITY_U: this.S++, // <foo bar=&quot\n CLOSE_TAG: this.S++, // </a\n CLOSE_TAG_SAW_WHITE: this.S++, // </a >\n SCRIPT: this.S++, // <script> ...\n SCRIPT_ENDING: this.S++ // <script> ... <\n };\n BUFFERS = BUFFERS;\n // private parser: (strict: boolean, opt: any) => SAXParser;\n CDATA = '[CDATA[';\n DOCTYPE = 'DOCTYPE';\n XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n rootNS = {\n xml: this.XML_NAMESPACE,\n xmlns: this.XMLNS_NAMESPACE\n };\n comment;\n sgmlDecl;\n textNode = '';\n tagName;\n doctype;\n procInstName;\n procInstBody;\n entity = '';\n attribName;\n attribValue;\n cdata = '';\n script = '';\n startTagPosition = 0;\n constructor() {\n this.S = 0;\n for (const s in this.STATE) {\n if (this.STATE.hasOwnProperty(s)) {\n this.STATE[this.STATE[s]] = s;\n }\n }\n // shorthand\n this.S = this.STATE;\n }\n static charAt(chunk, i) {\n let result = '';\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result;\n }\n static isWhitespace(c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t';\n }\n static isQuote(c) {\n return c === '\"' || c === \"'\";\n }\n static isAttribEnd(c) {\n return c === '>' || SAX.isWhitespace(c);\n }\n static isMatch(regex, c) {\n return regex.test(c);\n }\n static notMatch(regex, c) {\n return !SAX.isMatch(regex, c);\n }\n static qname(name, attribute) {\n const i = name.indexOf(':');\n const qualName = i < 0 ? ['', name] : name.split(':');\n let prefix = qualName[0];\n let local = qualName[1];\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns';\n local = '';\n }\n return { prefix, local };\n }\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this.errorFunction('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString();\n }\n let i = 0;\n let c;\n while (true) {\n c = SAX.charAt(chunk, i++);\n this.c = c;\n if (!c) {\n break;\n }\n if (this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n }\n else {\n this.column++;\n }\n }\n switch (this.state) {\n case this.S.BEGIN:\n this.state = this.S.BEGIN_WHITESPACE;\n if (c === '\\uFEFF') {\n continue;\n }\n this.beginWhiteSpace(c);\n continue;\n case this.S.BEGIN_WHITESPACE:\n this.beginWhiteSpace(c);\n continue;\n case this.S.TEXT:\n if (this.sawRoot && !this.closedRoot) {\n const starti = i - 1;\n while (c && c !== '<' && c !== '&') {\n c = SAX.charAt(chunk, i++);\n if (c && this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n }\n else {\n this.column++;\n }\n }\n }\n this.textNode += chunk.substring(starti, i - 1);\n }\n if (c === '<' && !(this.sawRoot && this.closedRoot && !this.strict)) {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\n }\n else {\n if (!SAX.isWhitespace(c) && (!this.sawRoot || this.closedRoot)) {\n this.strictFail('Text data outside of root node.');\n }\n if (c === '&') {\n this.state = this.S.TEXT_ENTITY;\n }\n else {\n this.textNode += c;\n }\n }\n continue;\n case this.S.SCRIPT:\n // only non-strict\n if (c === '<') {\n this.state = this.S.SCRIPT_ENDING;\n }\n else {\n this.script += c;\n }\n continue;\n case this.S.SCRIPT_ENDING:\n if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n }\n else {\n this.script += `<${c}`;\n this.state = this.S.SCRIPT;\n }\n continue;\n case this.S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n this.state = this.S.SGML_DECL;\n this.sgmlDecl = '';\n }\n else if (SAX.isWhitespace(c)) {\n // wait for it...\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.state = this.S.OPEN_TAG;\n this.tagName = c;\n }\n else if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n this.tagName = '';\n }\n else if (c === '?') {\n this.state = this.S.PROC_INST;\n this.procInstName = this.procInstBody = '';\n }\n else {\n this.strictFail('Unencoded <');\n // if there was some whitespace, then add that in.\n if (this.startTagPosition + 1 < this.position) {\n const pad = this.position - this.startTagPosition;\n c = new Array(pad).join(' ') + c;\n }\n this.textNode += `<${c}`;\n this.state = this.S.TEXT;\n }\n continue;\n case this.S.SGML_DECL:\n if ((this.sgmlDecl + c).toUpperCase() === this.CDATA) {\n this.emitNode('onopencdata');\n this.state = this.S.CDATA;\n this.sgmlDecl = '';\n this.cdata = '';\n }\n else if (this.sgmlDecl + c === '--') {\n this.state = this.S.COMMENT;\n this.comment = '';\n this.sgmlDecl = '';\n }\n else if ((this.sgmlDecl + c).toUpperCase() === this.DOCTYPE) {\n this.state = this.S.DOCTYPE;\n if (this.doctype || this.sawRoot) {\n this.strictFail('Inappropriately located doctype declaration');\n }\n this.doctype = '';\n this.sgmlDecl = '';\n }\n else if (c === '>') {\n this.emitNode('onsgmldeclaration', this.sgmlDecl);\n this.sgmlDecl = '';\n this.state = this.S.TEXT;\n }\n else if (SAX.isQuote(c)) {\n this.state = this.S.SGML_DECL_QUOTED;\n this.sgmlDecl += c;\n }\n else {\n this.sgmlDecl += c;\n }\n continue;\n case this.S.SGML_DECL_QUOTED:\n if (c === this.q) {\n this.state = this.S.SGML_DECL;\n this.q = '';\n }\n this.sgmlDecl += c;\n continue;\n case this.S.DOCTYPE:\n if (c === '>') {\n this.state = this.S.TEXT;\n this.emitNode('ondoctype', this.doctype);\n this.doctype = true; // just remember that we saw it.\n }\n else {\n this.doctype += c;\n if (c === '[') {\n this.state = this.S.DOCTYPE_DTD;\n }\n else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_QUOTED;\n this.q = c;\n }\n }\n continue;\n case this.S.DOCTYPE_QUOTED:\n this.doctype += c;\n if (c === this.q) {\n this.q = '';\n this.state = this.S.DOCTYPE;\n }\n continue;\n case this.S.DOCTYPE_DTD:\n this.doctype += c;\n if (c === ']') {\n this.state = this.S.DOCTYPE;\n }\n else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_DTD_QUOTED;\n this.q = c;\n }\n continue;\n case this.S.DOCTYPE_DTD_QUOTED:\n this.doctype += c;\n if (c === this.q) {\n this.state = this.S.DOCTYPE_DTD;\n this.q = '';\n }\n continue;\n case this.S.COMMENT:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDING;\n }\n else {\n this.comment += c;\n }\n continue;\n case this.S.COMMENT_ENDING:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDED;\n this.comment = this.textApplyOptions(this.comment);\n if (this.comment) {\n this.emitNode('oncomment', this.comment);\n }\n this.comment = '';\n }\n else {\n this.comment += `-${c}`;\n this.state = this.S.COMMENT;\n }\n continue;\n case this.S.COMMENT_ENDED:\n if (c !== '>') {\n this.strictFail('Malformed comment');\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n this.comment += `--${c}`;\n this.state = this.S.COMMENT;\n }\n else {\n this.state = this.S.TEXT;\n }\n continue;\n case this.S.CDATA:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING;\n }\n else {\n this.cdata += c;\n }\n continue;\n case this.S.CDATA_ENDING:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING_2;\n }\n else {\n this.cdata += `]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n case this.S.CDATA_ENDING_2:\n if (c === '>') {\n if (this.cdata) {\n this.emitNode('oncdata', this.cdata);\n }\n this.emitNode('onclosecdata');\n this.cdata = '';\n this.state = this.S.TEXT;\n }\n else if (c === ']') {\n this.cdata += ']';\n }\n else {\n this.cdata += `]]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n case this.S.PROC_INST:\n if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n }\n else if (SAX.isWhitespace(c)) {\n this.state = this.S.PROC_INST_BODY;\n }\n else {\n this.procInstName += c;\n }\n continue;\n case this.S.PROC_INST_BODY:\n if (!this.procInstBody && SAX.isWhitespace(c)) {\n continue;\n }\n else if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n }\n else {\n this.procInstBody += c;\n }\n continue;\n case this.S.PROC_INST_ENDING:\n if (c === '>') {\n this.emitNode('onprocessinginstruction', {\n name: this.procInstName,\n body: this.procInstBody\n });\n this.procInstName = this.procInstBody = '';\n this.state = this.S.TEXT;\n }\n else {\n this.procInstBody += `?${c}`;\n this.state = this.S.PROC_INST_BODY;\n }\n continue;\n case this.S.OPEN_TAG:\n if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n }\n else {\n this.newTag();\n if (c === '>') {\n this.openTag();\n }\n else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n }\n else {\n if (!SAX.isWhitespace(c)) {\n this.strictFail('Invalid character in tag name');\n }\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n case this.S.OPEN_TAG_SLASH:\n if (c === '>') {\n this.openTag(true);\n this.closeTag();\n }\n else {\n this.strictFail('Forward-slash in opening tag not followed by >');\n this.state = this.S.ATTRIB;\n }\n continue;\n case this.S.ATTRIB:\n // haven't read the attribute name yet.\n if (SAX.isWhitespace(c)) {\n continue;\n }\n else if (c === '>') {\n this.openTag();\n }\n else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n }\n else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n case this.S.ATTRIB_NAME:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n }\n else if (c === '>') {\n this.strictFail('Attribute without value');\n this.attribValue = this.attribName;\n this.attrib();\n this.openTag();\n }\n else if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB_NAME_SAW_WHITE;\n }\n else if (SAX.isMatch(nameBody, c)) {\n this.attribName += c;\n }\n else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n case this.S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n }\n else if (SAX.isWhitespace(c)) {\n continue;\n }\n else {\n this.strictFail('Attribute without value');\n this.tag.attributes[this.attribName] = '';\n this.attribValue = '';\n this.emitNode('onattribute', {\n name: this.attribName,\n value: ''\n });\n this.attribName = '';\n if (c === '>') {\n this.openTag();\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.state = this.S.ATTRIB_NAME;\n }\n else {\n this.strictFail('Invalid attribute name');\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n case this.S.ATTRIB_VALUE:\n if (SAX.isWhitespace(c)) {\n continue;\n }\n else if (SAX.isQuote(c)) {\n this.q = c;\n this.state = this.S.ATTRIB_VALUE_QUOTED;\n }\n else {\n this.strictFail('Unquoted attribute value');\n this.state = this.S.ATTRIB_VALUE_UNQUOTED;\n this.attribValue = c;\n }\n continue;\n case this.S.ATTRIB_VALUE_QUOTED:\n if (c !== this.q) {\n if (c === '&') {\n this.state = this.S.ATTRIB_VALUE_ENTITY_Q;\n }\n else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n this.q = '';\n this.state = this.S.ATTRIB_VALUE_CLOSED;\n continue;\n case this.S.ATTRIB_VALUE_CLOSED:\n if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB;\n }\n else if (c === '>') {\n this.openTag();\n }\n else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n }\n else if (SAX.isMatch(nameStart, c)) {\n this.strictFail('No whitespace between attributes');\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n }\n else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n case this.S.ATTRIB_VALUE_UNQUOTED:\n if (!SAX.isAttribEnd(c)) {\n if (c === '&') {\n this.state = this.S.ATTRIB_VALUE_ENTITY_U;\n }\n else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n if (c === '>') {\n this.openTag();\n }\n else {\n this.state = this.S.ATTRIB;\n }\n continue;\n case this.S.CLOSE_TAG:\n if (!this.tagName) {\n if (SAX.isWhitespace(c)) {\n continue;\n }\n else if (SAX.notMatch(nameStart, c)) {\n if (this.script) {\n this.script += `</${c}`;\n this.state = this.S.SCRIPT;\n }\n else {\n this.strictFail('Invalid tagname in closing tag.');\n }\n }\n else {\n this.tagName = c;\n }\n }\n else if (c === '>') {\n this.closeTag();\n }\n else if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n }\n else if (this.script) {\n this.script += `</${this.tagName}`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\n }\n else {\n if (!SAX.isWhitespace(c)) {\n this.strictFail('Invalid tagname in closing tag');\n }\n this.state = this.S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n case this.S.CLOSE_TAG_SAW_WHITE:\n if (SAX.isWhitespace(c)) {\n continue;\n }\n if (c === '>') {\n this.closeTag();\n }\n else {\n this.strictFail('Invalid characters in closing tag');\n }\n continue;\n case this.S.TEXT_ENTITY:\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n case this.S.ATTRIB_VALUE_ENTITY_U:\n let returnState;\n let buffer;\n switch (this.state) {\n case this.S.TEXT_ENTITY:\n returnState = this.S.TEXT;\n buffer = 'textNode';\n break;\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n returnState = this.S.ATTRIB_VALUE_QUOTED;\n buffer = 'attribValue';\n break;\n case this.S.ATTRIB_VALUE_ENTITY_U:\n returnState = this.S.ATTRIB_VALUE_UNQUOTED;\n buffer = 'attribValue';\n break;\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n if (c === ';') {\n this[buffer] += this.parseEntity();\n this.entity = '';\n this.state = returnState;\n }\n else if (SAX.isMatch(this.entity.length ? entityBody : entityStart, c)) {\n this.entity += c;\n }\n else {\n this.strictFail('Invalid character in entity name');\n this[buffer] += `&${this.entity}${c}`;\n this.entity = '';\n this.state = returnState;\n }\n continue;\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n } // while\n if (this.position >= this.bufferCheckPosition) {\n this.checkBufferLength();\n }\n return this;\n }\n emit(event, data) {\n if (this.events.hasOwnProperty(event)) {\n const eventName = event.replace(/^on/, '');\n this.events[event](data, eventName, this);\n }\n }\n clearBuffers() {\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n this[this[i]] = '';\n }\n }\n flushBuffers() {\n this.closeText();\n if (this.cdata !== '') {\n this.emitNode('oncdata', this.cdata);\n this.cdata = '';\n }\n if (this.script !== '') {\n this.emitNode('onscript', this.script);\n this.script = '';\n }\n }\n end() {\n if (this.sawRoot && !this.closedRoot)\n this.strictFail('Unclosed root tag');\n if (this.state !== this.S.BEGIN &&\n this.state !== this.S.BEGIN_WHITESPACE &&\n this.state !== this.S.TEXT) {\n this.errorFunction('Unexpected end');\n }\n this.closeText();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return new SAXParser(this.opt);\n }\n errorFunction(er) {\n this.closeText();\n if (this.trackPosition) {\n er += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n }\n const error = new Error(er);\n this.error = error;\n this.emit('onerror', error);\n return this;\n }\n attrib() {\n if (!this.strict) {\n this.attribName = this.attribName[this.looseCase]();\n }\n if (this.attribList.indexOf(this.attribName) !== -1 ||\n this.tag.attributes.hasOwnProperty(this.attribName)) {\n this.attribName = this.attribValue = '';\n return;\n }\n if (this.opt.xmlns) {\n const qn = SAX.qname(this.attribName, true);\n const prefix = qn.prefix;\n const local = qn.local;\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && this.attribValue !== this.XML_NAMESPACE) {\n this.strictFail(`xml: prefix must be bound to ${this.XML_NAMESPACE}\\n` + `Actual: ${this.attribValue}`);\n }\n else if (local === 'xmlns' && this.attribValue !== this.XMLNS_NAMESPACE) {\n this.strictFail(`xmlns: prefix must be bound to ${this.XMLNS_NAMESPACE}\\n` +\n `Actual: ${this.attribValue}`);\n }\n else {\n const tag = this.tag;\n const parent = this.tags[this.tags.length - 1] || this;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = this.attribValue;\n }\n }\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n this.attribList.push([this.attribName, this.attribValue]);\n }\n else {\n // in non-xmlns mode, we can emit the event right away\n this.tag.attributes[this.attribName] = this.attribValue;\n this.emitNode('onattribute', {\n name: this.attribName,\n value: this.attribValue\n });\n }\n this.attribName = this.attribValue = '';\n }\n newTag() {\n if (!this.strict)\n this.tagName = this.tagName[this.looseCase]();\n const parent = this.tags[this.tags.length - 1] || this;\n const tag = (this.tag = { name: this.tagName, attributes: {} });\n // will be overridden if tag contains an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (this.opt.xmlns) {\n tag.ns = parent.ns;\n }\n this.attribList.length = 0;\n this.emitNode('onopentagstart', tag);\n }\n parseEntity() {\n let entity = this.entity;\n const entityLC = entity.toLowerCase();\n let num = NaN;\n let numStr = '';\n if (this.ENTITIES[entity]) {\n return this.ENTITIES[entity];\n }\n if (this.ENTITIES[entityLC]) {\n return this.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2);\n // TODO: remove tslint:disable\n // tslint:disable-next-line\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n }\n else {\n entity = entity.slice(1);\n // TODO: remove tslint:disable\n // tslint:disable-next-line\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, '');\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n this.strictFail('Invalid character entity');\n return `&${this.entity};`;\n }\n return String.fromCodePoint(num);\n }\n beginWhiteSpace(c) {\n if (c === '<') {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\n }\n else if (!SAX.isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n this.strictFail('Non-whitespace before first tag.');\n this.textNode = c;\n this.state = this.S.TEXT;\n }\n else {\n }\n }\n strictFail(message) {\n if (typeof this !== 'object' || !(this instanceof SAXParser)) {\n throw new Error('bad call to strictFail');\n }\n if (this.strict) {\n this.errorFunction(message);\n }\n }\n textApplyOptions(text) {\n if (this.opt.trim)\n text = text.trim();\n if (this.opt.normalize)\n text = text.replace(/\\s+/g, ' ');\n return text;\n }\n emitNode(nodeType, data) {\n if (this.textNode)\n this.closeText();\n this.emit(nodeType, data);\n }\n closeText() {\n this.textNode = this.textApplyOptions(this.textNode);\n // TODO: figure out why this.textNode can be \"\" and \"undefined\"\n if (this.textNode !== undefined && this.textNode !== '' && this.textNode !== 'undefined') {\n this.emit('ontext', this.textNode);\n }\n this.textNode = '';\n }\n checkBufferLength() {\n const maxAllowed = Math.max(this.opt.MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n const len = this[this.BUFFERS[i]]?.length || 0;\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (this.BUFFERS[i]) {\n case 'textNode':\n this.closeText();\n break;\n case 'cdata':\n this.emitNode('oncdata', this.cdata);\n this.cdata = '';\n break;\n case 'script':\n this.emitNode('onscript', this.script);\n this.script = '';\n break;\n default:\n this.errorFunction(`Max buffer length exceeded: ${this.BUFFERS[i]}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n // schedule the next check for the earliest possible buffer overrun.\n const m = this.opt.MAX_BUFFER_LENGTH - maxActual;\n this.bufferCheckPosition = m + this.position;\n }\n openTag(selfClosing) {\n if (this.opt.xmlns) {\n // emit namespace binding events\n const tag = this.tag;\n // add namespace info to tag\n const qn = SAX.qname(this.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || '';\n if (tag.prefix && !tag.uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(this.tagName)}`);\n tag.uri = qn.prefix;\n }\n const parent = this.tags[this.tags.length - 1] || this;\n if (tag.ns && parent.ns !== tag.ns) {\n const that = this;\n Object.keys(tag.ns).forEach((p) => {\n that.emitNode('onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n });\n });\n }\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (let i = 0, l = this.attribList.length; i < l; i++) {\n const nv = this.attribList[i];\n const name = nv[0];\n const value = nv[1];\n const qualName = SAX.qname(name, true);\n const prefix = qualName.prefix;\n const local = qualName.local;\n const uri = prefix === '' ? '' : tag.ns[prefix] || '';\n const a = {\n name,\n value,\n prefix,\n local,\n uri\n };\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(prefix)}`);\n a.uri = prefix;\n }\n this.tag.attributes[name] = a;\n this.emitNode('onattribute', a);\n }\n this.attribList.length = 0;\n }\n this.tag.isSelfClosing = Boolean(selfClosing);\n // process the tag\n this.sawRoot = true;\n this.tags.push(this.tag);\n this.emitNode('onopentag', this.tag);\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!this.noscript && this.tagName.toLowerCase() === 'script') {\n this.state = this.S.SCRIPT;\n }\n else {\n this.state = this.S.TEXT;\n }\n this.tag = null;\n this.tagName = '';\n }\n this.attribName = this.attribValue = '';\n this.attribList.length = 0;\n }\n closeTag() {\n if (!this.tagName) {\n this.strictFail('Weird empty close tag.');\n this.textNode += '</>';\n this.state = this.S.TEXT;\n return;\n }\n if (this.script) {\n if (this.tagName !== 'script') {\n this.script += `</${this.tagName}>`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\n return;\n }\n this.emitNode('onscript', this.script);\n this.script = '';\n }\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n let t = this.tags.length;\n let tagName = this.tagName;\n if (!this.strict) {\n tagName = tagName[this.looseCase]();\n }\n while (t--) {\n const close = this.tags[t];\n if (close.name !== tagName) {\n // fail the first time in strict mode\n this.strictFail('Unexpected close tag');\n }\n else {\n break;\n }\n }\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n this.strictFail(`Unmatched closing tag: ${this.tagName}`);\n this.textNode += `</${this.tagName}>`;\n this.state = this.S.TEXT;\n return;\n }\n this.tagName = tagName;\n let s = this.tags.length;\n while (s-- > t) {\n const tag = (this.tag = this.tags.pop());\n this.tagName = this.tag.name;\n this.emitNode('onclosetag', this.tagName);\n const x = {};\n for (const i in tag.ns) {\n if (tag.ns.hasOwnProperty(i)) {\n x[i] = tag.ns[i];\n }\n }\n const parent = this.tags[this.tags.length - 1] || this;\n if (this.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n const that = this;\n Object.keys(tag.ns).forEach((p) => {\n const n = tag.ns[p];\n that.emitNode('onclosenamespace', { prefix: p, uri: n });\n });\n }\n }\n if (t === 0)\n this.closedRoot = true;\n this.tagName = this.attribValue = this.attribName = '';\n this.attribList.length = 0;\n this.state = this.S.TEXT;\n }\n}\n/**\n *\n * @todo Weird inheritance, with some variables initialized in subclass\n */\nexport class SAXParser extends SAX {\n static ENTITIES = ENTITIES;\n opt = DEFAULT_SAX_PARSER_OPTIONS;\n events = DEFAULT_SAX_EVENTS;\n constructor(opt) {\n super();\n this.clearBuffers();\n this.opt = opt = { ...this.opt, ...opt };\n this.events = { ...this.events, ...opt };\n this.q = this.c = '';\n this.opt.lowercase = this.opt.lowercase || this.opt.lowercasetags;\n this.bufferCheckPosition = this.opt.MAX_BUFFER_LENGTH;\n this.looseCase = this.opt.lowercase ? 'toLowerCase' : 'toUpperCase';\n this.tags = [];\n this.closed = this.closedRoot = this.sawRoot = false;\n this.tag = this.error = null;\n this.strict = Boolean(this.opt.strict);\n this.noscript = Boolean(this.opt.strict || this.opt.noscript);\n this.state = this.S.BEGIN;\n this.strictEntities = this.opt.strictEntities;\n this.ENTITIES = this.strictEntities\n ? Object.create(this.XML_ENTITIES)\n : Object.create(this.ENTITIES);\n this.attribList = [];\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (this.opt.xmlns) {\n this.ns = Object.create(this.rootNS);\n }\n // mostly just for error reporting\n this.trackPosition = this.opt.position !== false;\n if (this.trackPosition) {\n this.position = this.line = this.column = 0;\n }\n this.emit('onready');\n }\n resume() {\n this.error = null;\n return this;\n }\n close() {\n return this.write(null);\n }\n flush() {\n this.flushBuffers();\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Uncapitalize first letter of a string\n * @param str\n * @returns\n */\nexport function uncapitalize(str) {\n return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;\n}\n/**\n * Recursively uncapitalize all keys in a nested object\n * @param object\n * @returns\n */\nexport function uncapitalizeKeys(object) {\n if (Array.isArray(object)) {\n return object.map((element) => uncapitalizeKeys(element));\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 return object;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { StreamingXMLParser } from \"./streaming-xml-parser.js\";\nimport { uncapitalizeKeys } from \"../xml-utils/uncapitalize.js\";\nimport { XMLParser as FastXMLParser } from 'fast-xml-parser';\nexport function parseXMLSync(text, options) {\n if (options?._parser && options._parser !== 'fast-xml-parser') {\n throw new Error(options?._parser);\n }\n const fastXMLOptions = {\n // Default FastXML options\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#allowbooleanattributes\n allowBooleanAttributes: true,\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#ignoredeclaration\n ignoreDeclaration: true,\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#removensprefix\n removeNSPrefix: options?.removeNSPrefix,\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#textnodename\n textNodeName: options?.textNodeName,\n // Let's application specify keys that are always arrays\n isArray: (name, jpath, isLeafNode, isAttribute) => {\n const array = Boolean(options?.arrayPaths?.some((path) => jpath === path));\n return array;\n },\n // Application overrides\n ...options?._fastXML\n };\n const xml = fastParseXML(text, fastXMLOptions);\n // Note - could be done with FastXML tag processing\n return options?.uncapitalizeKeys ? uncapitalizeKeys(xml) : xml;\n}\nexport function fastParseXML(text, options) {\n const parser = new FastXMLParser({\n ignoreAttributes: false,\n attributeNamePrefix: '',\n ...options\n });\n const parsedXML = parser.parse(text);\n return parsedXML;\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, options = {}) {\n const parser = new StreamingXMLParser({\n ...options,\n strict: true\n });\n parser.write(text);\n parser.close();\n return parser.result;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseXMLSync } from \"./lib/parsers/parse-xml.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.0-alpha.1\" !== 'undefined' ? \"4.3.0-alpha.1\" : 'latest';\n/**\n * Loader for XML files\n */\nexport const XMLLoader = {\n dataType: null,\n batchType: null,\n name: 'XML',\n id: 'xml',\n module: 'xml',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n xml: {\n _parser: 'fast-xml-parser',\n uncapitalizeKeys: false,\n removeNSPrefix: false,\n textNodeName: 'value',\n arrayPaths: []\n }\n },\n parse: async (arrayBuffer, options) => parseXMLSync(new TextDecoder().decode(arrayBuffer), {\n ...XMLLoader.options.xml,\n ...options?.xml\n }),\n parseTextSync: (text, options) => parseXMLSync(text, { ...XMLLoader.options.xml, ...options?.xml })\n};\nfunction testXMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { mergeLoaderOptions } from '@loaders.gl/loader-utils';\nimport { XMLLoader } from \"./xml-loader.js\";\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 = {\n ...XMLLoader,\n name: 'HTML',\n id: 'html',\n extensions: ['html', 'htm'],\n mimeTypes: ['text/html'],\n testText: testHTMLFile,\n parse: async (arrayBuffer, options) => parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text, options) => parseTextSync(text, options)\n};\nfunction testHTMLFile(text) {\n // TODO - There could be space first.\n return text.startsWith('<html');\n}\nfunction parseTextSync(text, options) {\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 _fastXML: {\n htmlEntities: true\n }\n }\n });\n return XMLLoader.parseTextSync?.(text, options);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// TODO - these utilities could be moved to the XML parser.\n// uncapitalizeKeys could be an XMLLoader option\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) {\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 * 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, key) {\n xml[key] = convertXMLValueToArray(xml[key]);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["FastXMLParser"]
7
7
  }
@@ -4,7 +4,7 @@
4
4
  import { parseXMLSync } from "./lib/parsers/parse-xml.js";
5
5
  // __VERSION__ is injected by babel-plugin-version-inline
6
6
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
- const VERSION = typeof "4.2.0" !== 'undefined' ? "4.2.0" : 'latest';
7
+ const VERSION = typeof "4.3.0-alpha.1" !== 'undefined' ? "4.3.0-alpha.1" : 'latest';
8
8
  /**
9
9
  * Loader for XML files
10
10
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/xml",
3
- "version": "4.2.1",
3
+ "version": "4.3.0-alpha.2",
4
4
  "description": "Framework-independent loaders for the XML (eXtensible Markup Language) format",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -41,12 +41,12 @@
41
41
  "build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
42
42
  },
43
43
  "dependencies": {
44
- "@loaders.gl/loader-utils": "4.2.1",
45
- "@loaders.gl/schema": "4.2.1",
44
+ "@loaders.gl/loader-utils": "4.3.0-alpha.2",
45
+ "@loaders.gl/schema": "4.3.0-alpha.2",
46
46
  "fast-xml-parser": "^4.2.5"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@loaders.gl/core": "^4.0.0"
50
50
  },
51
- "gitHead": "b2ea799ff9f233ab8af0a6c3696e28ddf6e3c5a3"
51
+ "gitHead": "77a3cb538ab7a1fbf74245f25590210451689f5c"
52
52
  }