@loaders.gl/xml 3.4.14 → 3.4.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"sax.js","names":["DEFAULT_SAX_EVENTS","ontext","onprocessinginstruction","onsgmldeclaration","ondoctype","oncomment","onopentagstart","onattribute","onopentag","onclosetag","onopencdata","oncdata","onclosecdata","onerror","onend","onready","onscript","onopennamespace","onclosenamespace","DEFAULT_SAX_PARSER_OPTIONS","_objectSpread","strict","MAX_BUFFER_LENGTH","lowercase","lowercasetags","noscript","strictEntities","xmlns","undefined","position","trim","normalize","EVENTS","BUFFERS","nameStart","nameBody","entityStart","entityBody","ENTITIES","amp","gt","lt","quot","apos","AElig","Aacute","Acirc","Agrave","Aring","Atilde","Auml","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","Iacute","Icirc","Igrave","Iuml","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","aelig","agrave","aring","atilde","auml","ccedil","eacute","ecirc","egrave","eth","euml","iacute","icirc","igrave","iuml","ntilde","oacute","ocirc","ograve","oslash","otilde","ouml","szlig","thorn","uacute","ucirc","ugrave","uuml","yacute","yuml","copy","reg","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","macr","deg","plusmn","sup1","sup2","sup3","acute","micro","para","middot","cedil","ordm","raquo","frac14","frac12","frac34","iquest","times","divide","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","exports","Object","keys","forEach","key","e","String","fromCharCode","SAX","_classCallCheck2","default","_defineProperty2","BEGIN","S","BEGIN_WHITESPACE","TEXT","TEXT_ENTITY","OPEN_WAKA","SGML_DECL","SGML_DECL_QUOTED","DOCTYPE","DOCTYPE_QUOTED","DOCTYPE_DTD","DOCTYPE_DTD_QUOTED","COMMENT_STARTING","COMMENT","COMMENT_ENDING","COMMENT_ENDED","CDATA","CDATA_ENDING","CDATA_ENDING_2","PROC_INST","PROC_INST_BODY","PROC_INST_ENDING","OPEN_TAG","OPEN_TAG_SLASH","ATTRIB","ATTRIB_NAME","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_CLOSED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG","CLOSE_TAG_SAW_WHITE","SCRIPT","SCRIPT_ENDING","xml","XML_NAMESPACE","XMLNS_NAMESPACE","s","STATE","hasOwnProperty","_createClass2","value","write","chunk","error","closed","errorFunction","end","_typeof2","toString","i","c","charAt","trackPosition","line","column","state","beginWhiteSpace","sawRoot","closedRoot","starti","textNode","substring","startTagPosition","isWhitespace","strictFail","script","concat","sgmlDecl","isMatch","tagName","procInstName","procInstBody","pad","Array","join","toUpperCase","emitNode","cdata","comment","doctype","isQuote","q","textApplyOptions","name","body","newTag","openTag","closeTag","attribName","attribValue","attrib","tag","attributes","isAttribEnd","notMatch","returnState","buffer","Error","parseEntity","entity","length","bufferCheckPosition","checkBufferLength","emit","event","data","events","eventName","replace","clearBuffers","l","flushBuffers","closeText","SAXParser","opt","er","looseCase","attribList","indexOf","qn","qname","prefix","local","parent","tags","ns","create","push","entityLC","toLowerCase","num","NaN","numStr","slice","parseInt","isNaN","fromCodePoint","message","text","nodeType","maxAllowed","Math","max","maxActual","_this$this$BUFFERS$i","len","m","selfClosing","uri","JSON","stringify","that","p","nv","qualName","a","isSelfClosing","Boolean","_this","t","close","_loop","pop","x","n","result","regex","test","attribute","split","_SAX","_inherits2","_super","_createSuper","_this2","call","_assertThisInitialized2","XML_ENTITIES","rootNS","resume","flush"],"sources":["../../../src/sax-ts/sax.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// This file is forked from https://github.com/Maxim-Mazurok/sax-ts under ISC license,\n// which in turn is forked from https://github.com/isaacs/sax-js under ISC license\n\n// Copyright (c) Isaac Z. Schlueter and Contributors\n// Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n/* eslint-disable */\n\nexport type SAXEventName =\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\nexport type SAXEventCallback = (data: any, eventName: SAXEventName, SAXParser) => void;\n\nexport type SAXEvents = {\n ontext?: SAXEventCallback;\n onprocessinginstruction?: SAXEventCallback;\n onsgmldeclaration?: SAXEventCallback;\n ondoctype?: SAXEventCallback;\n oncomment?: SAXEventCallback;\n onopentagstart?: SAXEventCallback;\n onattribute?: SAXEventCallback;\n onopentag?: SAXEventCallback;\n onclosetag?: SAXEventCallback;\n onopencdata?: SAXEventCallback;\n oncdata?: SAXEventCallback;\n onclosecdata?: SAXEventCallback;\n onerror?: SAXEventCallback;\n onend?: SAXEventCallback;\n onready?: SAXEventCallback;\n onscript?: SAXEventCallback;\n onopennamespace?: SAXEventCallback;\n onclosenamespace?: SAXEventCallback;\n};\n\nexport type SAXParserOptions = SAXEvents & {\n strict?: boolean;\n MAX_BUFFER_LENGTH?: number;\n lowercase?: boolean;\n lowercasetags?: boolean;\n noscript?: boolean;\n strictEntities?: boolean;\n xmlns?: any;\n position?: any;\n trim?: any;\n normalize?: any;\n};\n\nconst DEFAULT_SAX_EVENTS: Required<SAXEvents> = {\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};\n\nconst DEFAULT_SAX_PARSER_OPTIONS: Required<SAXParserOptions> = {\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};\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];\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];\n\nconst nameStart =\n /[:_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 =\n /[:_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 =\n /[#:_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 =\n /[#:_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-]/;\n\nexport const ENTITIES: {[key: string]: number | string} = {\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};\n\nObject.keys(ENTITIES).forEach((key) => {\n const e = ENTITIES[key];\n ENTITIES[key] = typeof e === 'number' ? String.fromCharCode(e) : e;\n});\n\n/**\n * Internal helper class\n */\nabstract class SAX {\n EVENTS: string[] = EVENTS;\n ENTITIES: {[key: string]: number | string} = {\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\n protected abstract events: SAXEvents;\n\n protected XML_ENTITIES: {[key: string]: string} = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\"\n };\n protected S: any = 0;\n protected opt: any;\n protected trackPosition = false;\n protected column = 0;\n protected line = 0;\n protected c = '';\n protected error: any;\n protected q = '';\n protected bufferCheckPosition: any;\n protected closed = false;\n protected tags: any[] = [];\n protected looseCase = '';\n protected closedRoot = false;\n protected sawRoot = false;\n protected strict = false;\n protected tag: any;\n protected strictEntities: any;\n protected state: any;\n protected noscript = false;\n protected attribList: any[] = [];\n protected ns: any;\n protected position = 0;\n\n private STATE: {[index: string]: any} = {\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\n private readonly BUFFERS: string[] = BUFFERS;\n // private parser: (strict: boolean, opt: any) => SAXParser;\n private CDATA = '[CDATA[';\n private DOCTYPE = 'DOCTYPE';\n private XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n private XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n protected rootNS: {} = {\n xml: this.XML_NAMESPACE,\n xmlns: this.XMLNS_NAMESPACE\n };\n private comment: any;\n private sgmlDecl: any;\n private textNode = '';\n private tagName: any;\n private doctype: any;\n private procInstName: any;\n private procInstBody: any;\n private entity = '';\n private attribName: any;\n private attribValue: any;\n private cdata = '';\n private script = '';\n private startTagPosition = 0;\n\n constructor() {\n this.S = 0;\n\n for (const s in this.STATE) {\n if (this.STATE.hasOwnProperty(s)) {\n this.STATE[this.STATE[s]] = s;\n }\n }\n\n // shorthand\n this.S = this.STATE;\n }\n\n private static charAt(chunk: string, i: number): string {\n let result = '';\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result;\n }\n\n private static isWhitespace(c: string): boolean {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t';\n }\n\n private static isQuote(c: string): boolean {\n return c === '\"' || c === \"'\";\n }\n\n private static isAttribEnd(c: string): boolean {\n return c === '>' || SAX.isWhitespace(c);\n }\n\n private static isMatch(regex: RegExp, c: string): boolean {\n return regex.test(c);\n }\n\n private static notMatch(regex: RegExp, c: string): boolean {\n return !SAX.isMatch(regex, c);\n }\n\n private static qname(\n name: string,\n attribute?: string | boolean\n ): {prefix: string; local: string} {\n const i = name.indexOf(':');\n const qualName = i < 0 ? ['', name] : name.split(':');\n let prefix = qualName[0];\n let local = qualName[1];\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns';\n local = '';\n }\n\n return {prefix, local};\n }\n\n write(chunk: null | object | string): this | SAXParser {\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: string;\n while (true) {\n c = SAX.charAt(chunk, i++);\n this.c = c;\n\n if (!c) {\n break;\n }\n\n if (this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\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\n case this.S.BEGIN_WHITESPACE:\n this.beginWhiteSpace(c);\n continue;\n\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 } 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 } 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 } else {\n this.textNode += c;\n }\n }\n continue;\n\n case this.S.SCRIPT:\n // only non-strict\n if (c === '<') {\n this.state = this.S.SCRIPT_ENDING;\n } else {\n this.script += c;\n }\n continue;\n\n case this.S.SCRIPT_ENDING:\n if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n } else {\n this.script += `<${c}`;\n this.state = this.S.SCRIPT;\n }\n continue;\n\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 } else if (SAX.isWhitespace(c)) {\n // wait for it...\n } else if (SAX.isMatch(nameStart, c)) {\n this.state = this.S.OPEN_TAG;\n this.tagName = c;\n } else if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n this.tagName = '';\n } else if (c === '?') {\n this.state = this.S.PROC_INST;\n this.procInstName = this.procInstBody = '';\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\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 } else if (this.sgmlDecl + c === '--') {\n this.state = this.S.COMMENT;\n this.comment = '';\n this.sgmlDecl = '';\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 } else if (c === '>') {\n this.emitNode('onsgmldeclaration', this.sgmlDecl);\n this.sgmlDecl = '';\n this.state = this.S.TEXT;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.SGML_DECL_QUOTED;\n this.sgmlDecl += c;\n } else {\n this.sgmlDecl += c;\n }\n continue;\n\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\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 } else {\n this.doctype += c;\n if (c === '[') {\n this.state = this.S.DOCTYPE_DTD;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_QUOTED;\n this.q = c;\n }\n }\n continue;\n\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\n case this.S.DOCTYPE_DTD:\n this.doctype += c;\n if (c === ']') {\n this.state = this.S.DOCTYPE;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_DTD_QUOTED;\n this.q = c;\n }\n continue;\n\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\n case this.S.COMMENT:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDING;\n } else {\n this.comment += c;\n }\n continue;\n\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 } else {\n this.comment += `-${c}`;\n this.state = this.S.COMMENT;\n }\n continue;\n\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 } else {\n this.state = this.S.TEXT;\n }\n continue;\n\n case this.S.CDATA:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING;\n } else {\n this.cdata += c;\n }\n continue;\n\n case this.S.CDATA_ENDING:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING_2;\n } else {\n this.cdata += `]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n\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 } else if (c === ']') {\n this.cdata += ']';\n } else {\n this.cdata += `]]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n\n case this.S.PROC_INST:\n if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n } else if (SAX.isWhitespace(c)) {\n this.state = this.S.PROC_INST_BODY;\n } else {\n this.procInstName += c;\n }\n continue;\n\n case this.S.PROC_INST_BODY:\n if (!this.procInstBody && SAX.isWhitespace(c)) {\n continue;\n } else if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n } else {\n this.procInstBody += c;\n }\n continue;\n\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 } else {\n this.procInstBody += `?${c}`;\n this.state = this.S.PROC_INST_BODY;\n }\n continue;\n\n case this.S.OPEN_TAG:\n if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n } else {\n this.newTag();\n if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\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\n case this.S.OPEN_TAG_SLASH:\n if (c === '>') {\n this.openTag(true);\n this.closeTag();\n } else {\n this.strictFail('Forward-slash in opening tag not followed by >');\n this.state = this.S.ATTRIB;\n }\n continue;\n\n case this.S.ATTRIB:\n // haven't read the attribute name yet.\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n } else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\n case this.S.ATTRIB_NAME:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n } else if (c === '>') {\n this.strictFail('Attribute without value');\n this.attribValue = this.attribName;\n this.attrib();\n this.openTag();\n } else if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB_NAME_SAW_WHITE;\n } else if (SAX.isMatch(nameBody, c)) {\n this.attribName += c;\n } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\n case this.S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n } else if (SAX.isWhitespace(c)) {\n continue;\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 } else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.state = this.S.ATTRIB_NAME;\n } else {\n this.strictFail('Invalid attribute name');\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n\n case this.S.ATTRIB_VALUE:\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (SAX.isQuote(c)) {\n this.q = c;\n this.state = this.S.ATTRIB_VALUE_QUOTED;\n } else {\n this.strictFail('Unquoted attribute value');\n this.state = this.S.ATTRIB_VALUE_UNQUOTED;\n this.attribValue = c;\n }\n continue;\n\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 } 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\n case this.S.ATTRIB_VALUE_CLOSED:\n if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB;\n } else if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\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 } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\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 } else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n if (c === '>') {\n this.openTag();\n } else {\n this.state = this.S.ATTRIB;\n }\n continue;\n\n case this.S.CLOSE_TAG:\n if (!this.tagName) {\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (SAX.notMatch(nameStart, c)) {\n if (this.script) {\n this.script += `</${c}`;\n this.state = this.S.SCRIPT;\n } else {\n this.strictFail('Invalid tagname in closing tag.');\n }\n } else {\n this.tagName = c;\n }\n } else if (c === '>') {\n this.closeTag();\n } else if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n } else if (this.script) {\n this.script += `</${this.tagName}`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\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\n case this.S.CLOSE_TAG_SAW_WHITE:\n if (SAX.isWhitespace(c)) {\n continue;\n }\n if (c === '>') {\n this.closeTag();\n } else {\n this.strictFail('Invalid characters in closing tag');\n }\n continue;\n\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\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n returnState = this.S.ATTRIB_VALUE_QUOTED;\n buffer = 'attribValue';\n break;\n\n case this.S.ATTRIB_VALUE_ENTITY_U:\n returnState = this.S.ATTRIB_VALUE_UNQUOTED;\n buffer = 'attribValue';\n break;\n\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n\n if (c === ';') {\n this[buffer] += this.parseEntity();\n this.entity = '';\n this.state = returnState;\n } else if (SAX.isMatch(this.entity.length ? entityBody : entityStart, c)) {\n this.entity += c;\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\n continue;\n\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n } // while\n\n if (this.position >= this.bufferCheckPosition) {\n this.checkBufferLength();\n }\n return this;\n }\n\n protected emit(event: string, data?: Error | {}): void {\n if (this.events.hasOwnProperty(event)) {\n const eventName = event.replace(/^on/, '');\n this.events[event](data, eventName, this);\n }\n }\n\n protected clearBuffers(): void {\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n this[this[i]] = '';\n }\n }\n\n protected flushBuffers(): void {\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\n protected end(): SAXParser {\n if (this.sawRoot && !this.closedRoot) this.strictFail('Unclosed root tag');\n if (\n this.state !== this.S.BEGIN &&\n this.state !== this.S.BEGIN_WHITESPACE &&\n this.state !== this.S.TEXT\n ) {\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\n protected errorFunction(er: string): this {\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\n private attrib(): void {\n if (!this.strict) {\n this.attribName = this.attribName[this.looseCase]();\n }\n\n if (\n this.attribList.indexOf(this.attribName) !== -1 ||\n this.tag.attributes.hasOwnProperty(this.attribName)\n ) {\n this.attribName = this.attribValue = '';\n return;\n }\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\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(\n `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(\n `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\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 } 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\n this.attribName = this.attribValue = '';\n }\n\n private newTag(): void {\n if (!this.strict) this.tagName = this.tagName[this.looseCase]();\n const parent = this.tags[this.tags.length - 1] || this;\n const tag: any = (this.tag = {name: this.tagName, attributes: {}});\n\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\n private parseEntity(): string | number {\n let entity = this.entity;\n const entityLC = entity.toLowerCase();\n let num = NaN;\n let numStr = '';\n\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 } 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\n entity = entity.replace(/^0+/, '');\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n this.strictFail('Invalid character entity');\n return `&${this.entity};`;\n }\n\n return String.fromCodePoint(num);\n }\n\n private beginWhiteSpace(c: string): void {\n if (c === '<') {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\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 } else {\n }\n }\n\n private strictFail(message: string): void {\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\n private textApplyOptions(text: string): string {\n if (this.opt.trim) text = text.trim();\n if (this.opt.normalize) text = text.replace(/\\s+/g, ' ');\n return text;\n }\n\n private emitNode(nodeType: string, data?: {}): void {\n if (this.textNode) this.closeText();\n this.emit(nodeType, data);\n }\n\n private closeText(): void {\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\n private checkBufferLength(): void {\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\n private openTag(selfClosing?: boolean): void {\n if (this.opt.xmlns) {\n // emit namespace binding events\n const tag = this.tag;\n\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\n if (tag.prefix && !tag.uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(this.tagName)}`);\n tag.uri = qn.prefix;\n }\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\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\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\n this.tag.isSelfClosing = Boolean(selfClosing);\n\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 } 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\n private closeTag(): void {\n if (!this.tagName) {\n this.strictFail('Weird empty close tag.');\n this.textNode += '</>';\n this.state = this.S.TEXT;\n return;\n }\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\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 } else {\n break;\n }\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\n const x: {[index: string]: any} = {};\n for (const i in tag.ns) {\n if (tag.ns.hasOwnProperty(i)) {\n x[i] = tag.ns[i];\n }\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) 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 *\n * @todo Weird inheritance, with some variables initialized in subclass\n */\nexport class SAXParser extends SAX {\n static ENTITIES = ENTITIES;\n\n opt: Required<SAXParserOptions> = DEFAULT_SAX_PARSER_OPTIONS;\n\n events: Required<SAXEvents> = DEFAULT_SAX_EVENTS;\n\n constructor(opt?: SAXParserOptions) {\n super();\n\n this.clearBuffers();\n\n this.opt = opt = {...this.opt, ...opt};\n\n this.events = {...this.events, ...opt};\n\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\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\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\n resume(): this {\n this.error = null;\n return this;\n }\n\n close(): this | SAXParser {\n return this.write(null);\n }\n\n flush(): void {\n this.flushBuffers();\n }\n}\n"],"mappings":"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AAG;EACVC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG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"}
1
+ {"version":3,"file":"sax.js","names":["DEFAULT_SAX_EVENTS","ontext","onprocessinginstruction","onsgmldeclaration","ondoctype","oncomment","onopentagstart","onattribute","onopentag","onclosetag","onopencdata","oncdata","onclosecdata","onerror","onend","onready","onscript","onopennamespace","onclosenamespace","DEFAULT_SAX_PARSER_OPTIONS","strict","MAX_BUFFER_LENGTH","lowercase","lowercasetags","noscript","strictEntities","xmlns","undefined","position","trim","normalize","EVENTS","BUFFERS","nameStart","nameBody","entityStart","entityBody","ENTITIES","amp","gt","lt","quot","apos","AElig","Aacute","Acirc","Agrave","Aring","Atilde","Auml","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","Iacute","Icirc","Igrave","Iuml","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","aelig","agrave","aring","atilde","auml","ccedil","eacute","ecirc","egrave","eth","euml","iacute","icirc","igrave","iuml","ntilde","oacute","ocirc","ograve","oslash","otilde","ouml","szlig","thorn","uacute","ucirc","ugrave","uuml","yacute","yuml","copy","reg","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","macr","deg","plusmn","sup1","sup2","sup3","acute","micro","para","middot","cedil","ordm","raquo","frac14","frac12","frac34","iquest","times","divide","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","exports","Object","keys","forEach","key","e","String","fromCharCode","SAX","constructor","_defineProperty2","default","BEGIN","S","BEGIN_WHITESPACE","TEXT","TEXT_ENTITY","OPEN_WAKA","SGML_DECL","SGML_DECL_QUOTED","DOCTYPE","DOCTYPE_QUOTED","DOCTYPE_DTD","DOCTYPE_DTD_QUOTED","COMMENT_STARTING","COMMENT","COMMENT_ENDING","COMMENT_ENDED","CDATA","CDATA_ENDING","CDATA_ENDING_2","PROC_INST","PROC_INST_BODY","PROC_INST_ENDING","OPEN_TAG","OPEN_TAG_SLASH","ATTRIB","ATTRIB_NAME","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_CLOSED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG","CLOSE_TAG_SAW_WHITE","SCRIPT","SCRIPT_ENDING","xml","XML_NAMESPACE","XMLNS_NAMESPACE","s","STATE","hasOwnProperty","charAt","chunk","i","result","length","isWhitespace","c","isQuote","isAttribEnd","isMatch","regex","test","notMatch","qname","name","attribute","indexOf","qualName","split","prefix","local","write","error","closed","errorFunction","end","toString","trackPosition","line","column","state","beginWhiteSpace","sawRoot","closedRoot","starti","textNode","substring","startTagPosition","strictFail","script","concat","sgmlDecl","tagName","procInstName","procInstBody","pad","Array","join","toUpperCase","emitNode","cdata","comment","doctype","q","textApplyOptions","body","newTag","openTag","closeTag","attribName","attribValue","attrib","tag","attributes","value","returnState","buffer","Error","parseEntity","entity","bufferCheckPosition","checkBufferLength","emit","event","data","events","eventName","replace","clearBuffers","l","flushBuffers","closeText","SAXParser","opt","er","looseCase","attribList","qn","parent","tags","ns","create","push","entityLC","toLowerCase","num","NaN","numStr","slice","parseInt","isNaN","fromCodePoint","message","text","nodeType","maxAllowed","Math","max","maxActual","_this$this$BUFFERS$i","len","m","selfClosing","uri","JSON","stringify","that","p","nv","a","isSelfClosing","Boolean","t","close","pop","x","n","XML_ENTITIES","rootNS","resume","flush"],"sources":["../../../src/sax-ts/sax.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// This file is forked from https://github.com/Maxim-Mazurok/sax-ts under ISC license,\n// which in turn is forked from https://github.com/isaacs/sax-js under ISC license\n\n// Copyright (c) Isaac Z. Schlueter and Contributors\n// Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n/* eslint-disable */\n\nexport type SAXEventName =\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\nexport type SAXEventCallback = (data: any, eventName: SAXEventName, SAXParser) => void;\n\nexport type SAXEvents = {\n ontext?: SAXEventCallback;\n onprocessinginstruction?: SAXEventCallback;\n onsgmldeclaration?: SAXEventCallback;\n ondoctype?: SAXEventCallback;\n oncomment?: SAXEventCallback;\n onopentagstart?: SAXEventCallback;\n onattribute?: SAXEventCallback;\n onopentag?: SAXEventCallback;\n onclosetag?: SAXEventCallback;\n onopencdata?: SAXEventCallback;\n oncdata?: SAXEventCallback;\n onclosecdata?: SAXEventCallback;\n onerror?: SAXEventCallback;\n onend?: SAXEventCallback;\n onready?: SAXEventCallback;\n onscript?: SAXEventCallback;\n onopennamespace?: SAXEventCallback;\n onclosenamespace?: SAXEventCallback;\n};\n\nexport type SAXParserOptions = SAXEvents & {\n strict?: boolean;\n MAX_BUFFER_LENGTH?: number;\n lowercase?: boolean;\n lowercasetags?: boolean;\n noscript?: boolean;\n strictEntities?: boolean;\n xmlns?: any;\n position?: any;\n trim?: any;\n normalize?: any;\n};\n\nconst DEFAULT_SAX_EVENTS: Required<SAXEvents> = {\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};\n\nconst DEFAULT_SAX_PARSER_OPTIONS: Required<SAXParserOptions> = {\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};\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];\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];\n\nconst nameStart =\n /[:_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 =\n /[:_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 =\n /[#:_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 =\n /[#:_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-]/;\n\nexport const ENTITIES: {[key: string]: number | string} = {\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};\n\nObject.keys(ENTITIES).forEach((key) => {\n const e = ENTITIES[key];\n ENTITIES[key] = typeof e === 'number' ? String.fromCharCode(e) : e;\n});\n\n/**\n * Internal helper class\n */\nabstract class SAX {\n EVENTS: string[] = EVENTS;\n ENTITIES: {[key: string]: number | string} = {\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\n protected abstract events: SAXEvents;\n\n protected XML_ENTITIES: {[key: string]: string} = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\"\n };\n protected S: any = 0;\n protected opt: any;\n protected trackPosition = false;\n protected column = 0;\n protected line = 0;\n protected c = '';\n protected error: any;\n protected q = '';\n protected bufferCheckPosition: any;\n protected closed = false;\n protected tags: any[] = [];\n protected looseCase = '';\n protected closedRoot = false;\n protected sawRoot = false;\n protected strict = false;\n protected tag: any;\n protected strictEntities: any;\n protected state: any;\n protected noscript = false;\n protected attribList: any[] = [];\n protected ns: any;\n protected position = 0;\n\n private STATE: {[index: string]: any} = {\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\n private readonly BUFFERS: string[] = BUFFERS;\n // private parser: (strict: boolean, opt: any) => SAXParser;\n private CDATA = '[CDATA[';\n private DOCTYPE = 'DOCTYPE';\n private XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n private XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n protected rootNS: {} = {\n xml: this.XML_NAMESPACE,\n xmlns: this.XMLNS_NAMESPACE\n };\n private comment: any;\n private sgmlDecl: any;\n private textNode = '';\n private tagName: any;\n private doctype: any;\n private procInstName: any;\n private procInstBody: any;\n private entity = '';\n private attribName: any;\n private attribValue: any;\n private cdata = '';\n private script = '';\n private startTagPosition = 0;\n\n constructor() {\n this.S = 0;\n\n for (const s in this.STATE) {\n if (this.STATE.hasOwnProperty(s)) {\n this.STATE[this.STATE[s]] = s;\n }\n }\n\n // shorthand\n this.S = this.STATE;\n }\n\n private static charAt(chunk: string, i: number): string {\n let result = '';\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result;\n }\n\n private static isWhitespace(c: string): boolean {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t';\n }\n\n private static isQuote(c: string): boolean {\n return c === '\"' || c === \"'\";\n }\n\n private static isAttribEnd(c: string): boolean {\n return c === '>' || SAX.isWhitespace(c);\n }\n\n private static isMatch(regex: RegExp, c: string): boolean {\n return regex.test(c);\n }\n\n private static notMatch(regex: RegExp, c: string): boolean {\n return !SAX.isMatch(regex, c);\n }\n\n private static qname(\n name: string,\n attribute?: string | boolean\n ): {prefix: string; local: string} {\n const i = name.indexOf(':');\n const qualName = i < 0 ? ['', name] : name.split(':');\n let prefix = qualName[0];\n let local = qualName[1];\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns';\n local = '';\n }\n\n return {prefix, local};\n }\n\n write(chunk: null | object | string): this | SAXParser {\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: string;\n while (true) {\n c = SAX.charAt(chunk, i++);\n this.c = c;\n\n if (!c) {\n break;\n }\n\n if (this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\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\n case this.S.BEGIN_WHITESPACE:\n this.beginWhiteSpace(c);\n continue;\n\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 } 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 } 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 } else {\n this.textNode += c;\n }\n }\n continue;\n\n case this.S.SCRIPT:\n // only non-strict\n if (c === '<') {\n this.state = this.S.SCRIPT_ENDING;\n } else {\n this.script += c;\n }\n continue;\n\n case this.S.SCRIPT_ENDING:\n if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n } else {\n this.script += `<${c}`;\n this.state = this.S.SCRIPT;\n }\n continue;\n\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 } else if (SAX.isWhitespace(c)) {\n // wait for it...\n } else if (SAX.isMatch(nameStart, c)) {\n this.state = this.S.OPEN_TAG;\n this.tagName = c;\n } else if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n this.tagName = '';\n } else if (c === '?') {\n this.state = this.S.PROC_INST;\n this.procInstName = this.procInstBody = '';\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\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 } else if (this.sgmlDecl + c === '--') {\n this.state = this.S.COMMENT;\n this.comment = '';\n this.sgmlDecl = '';\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 } else if (c === '>') {\n this.emitNode('onsgmldeclaration', this.sgmlDecl);\n this.sgmlDecl = '';\n this.state = this.S.TEXT;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.SGML_DECL_QUOTED;\n this.sgmlDecl += c;\n } else {\n this.sgmlDecl += c;\n }\n continue;\n\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\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 } else {\n this.doctype += c;\n if (c === '[') {\n this.state = this.S.DOCTYPE_DTD;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_QUOTED;\n this.q = c;\n }\n }\n continue;\n\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\n case this.S.DOCTYPE_DTD:\n this.doctype += c;\n if (c === ']') {\n this.state = this.S.DOCTYPE;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_DTD_QUOTED;\n this.q = c;\n }\n continue;\n\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\n case this.S.COMMENT:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDING;\n } else {\n this.comment += c;\n }\n continue;\n\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 } else {\n this.comment += `-${c}`;\n this.state = this.S.COMMENT;\n }\n continue;\n\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 } else {\n this.state = this.S.TEXT;\n }\n continue;\n\n case this.S.CDATA:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING;\n } else {\n this.cdata += c;\n }\n continue;\n\n case this.S.CDATA_ENDING:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING_2;\n } else {\n this.cdata += `]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n\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 } else if (c === ']') {\n this.cdata += ']';\n } else {\n this.cdata += `]]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n\n case this.S.PROC_INST:\n if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n } else if (SAX.isWhitespace(c)) {\n this.state = this.S.PROC_INST_BODY;\n } else {\n this.procInstName += c;\n }\n continue;\n\n case this.S.PROC_INST_BODY:\n if (!this.procInstBody && SAX.isWhitespace(c)) {\n continue;\n } else if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n } else {\n this.procInstBody += c;\n }\n continue;\n\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 } else {\n this.procInstBody += `?${c}`;\n this.state = this.S.PROC_INST_BODY;\n }\n continue;\n\n case this.S.OPEN_TAG:\n if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n } else {\n this.newTag();\n if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\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\n case this.S.OPEN_TAG_SLASH:\n if (c === '>') {\n this.openTag(true);\n this.closeTag();\n } else {\n this.strictFail('Forward-slash in opening tag not followed by >');\n this.state = this.S.ATTRIB;\n }\n continue;\n\n case this.S.ATTRIB:\n // haven't read the attribute name yet.\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n } else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\n case this.S.ATTRIB_NAME:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n } else if (c === '>') {\n this.strictFail('Attribute without value');\n this.attribValue = this.attribName;\n this.attrib();\n this.openTag();\n } else if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB_NAME_SAW_WHITE;\n } else if (SAX.isMatch(nameBody, c)) {\n this.attribName += c;\n } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\n case this.S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n } else if (SAX.isWhitespace(c)) {\n continue;\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 } else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.state = this.S.ATTRIB_NAME;\n } else {\n this.strictFail('Invalid attribute name');\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n\n case this.S.ATTRIB_VALUE:\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (SAX.isQuote(c)) {\n this.q = c;\n this.state = this.S.ATTRIB_VALUE_QUOTED;\n } else {\n this.strictFail('Unquoted attribute value');\n this.state = this.S.ATTRIB_VALUE_UNQUOTED;\n this.attribValue = c;\n }\n continue;\n\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 } 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\n case this.S.ATTRIB_VALUE_CLOSED:\n if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB;\n } else if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\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 } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\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 } else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n if (c === '>') {\n this.openTag();\n } else {\n this.state = this.S.ATTRIB;\n }\n continue;\n\n case this.S.CLOSE_TAG:\n if (!this.tagName) {\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (SAX.notMatch(nameStart, c)) {\n if (this.script) {\n this.script += `</${c}`;\n this.state = this.S.SCRIPT;\n } else {\n this.strictFail('Invalid tagname in closing tag.');\n }\n } else {\n this.tagName = c;\n }\n } else if (c === '>') {\n this.closeTag();\n } else if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n } else if (this.script) {\n this.script += `</${this.tagName}`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\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\n case this.S.CLOSE_TAG_SAW_WHITE:\n if (SAX.isWhitespace(c)) {\n continue;\n }\n if (c === '>') {\n this.closeTag();\n } else {\n this.strictFail('Invalid characters in closing tag');\n }\n continue;\n\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\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n returnState = this.S.ATTRIB_VALUE_QUOTED;\n buffer = 'attribValue';\n break;\n\n case this.S.ATTRIB_VALUE_ENTITY_U:\n returnState = this.S.ATTRIB_VALUE_UNQUOTED;\n buffer = 'attribValue';\n break;\n\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n\n if (c === ';') {\n this[buffer] += this.parseEntity();\n this.entity = '';\n this.state = returnState;\n } else if (SAX.isMatch(this.entity.length ? entityBody : entityStart, c)) {\n this.entity += c;\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\n continue;\n\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n } // while\n\n if (this.position >= this.bufferCheckPosition) {\n this.checkBufferLength();\n }\n return this;\n }\n\n protected emit(event: string, data?: Error | {}): void {\n if (this.events.hasOwnProperty(event)) {\n const eventName = event.replace(/^on/, '');\n this.events[event](data, eventName, this);\n }\n }\n\n protected clearBuffers(): void {\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n this[this[i]] = '';\n }\n }\n\n protected flushBuffers(): void {\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\n protected end(): SAXParser {\n if (this.sawRoot && !this.closedRoot) this.strictFail('Unclosed root tag');\n if (\n this.state !== this.S.BEGIN &&\n this.state !== this.S.BEGIN_WHITESPACE &&\n this.state !== this.S.TEXT\n ) {\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\n protected errorFunction(er: string): this {\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\n private attrib(): void {\n if (!this.strict) {\n this.attribName = this.attribName[this.looseCase]();\n }\n\n if (\n this.attribList.indexOf(this.attribName) !== -1 ||\n this.tag.attributes.hasOwnProperty(this.attribName)\n ) {\n this.attribName = this.attribValue = '';\n return;\n }\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\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(\n `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(\n `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\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 } 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\n this.attribName = this.attribValue = '';\n }\n\n private newTag(): void {\n if (!this.strict) this.tagName = this.tagName[this.looseCase]();\n const parent = this.tags[this.tags.length - 1] || this;\n const tag: any = (this.tag = {name: this.tagName, attributes: {}});\n\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\n private parseEntity(): string | number {\n let entity = this.entity;\n const entityLC = entity.toLowerCase();\n let num = NaN;\n let numStr = '';\n\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 } 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\n entity = entity.replace(/^0+/, '');\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n this.strictFail('Invalid character entity');\n return `&${this.entity};`;\n }\n\n return String.fromCodePoint(num);\n }\n\n private beginWhiteSpace(c: string): void {\n if (c === '<') {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\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 } else {\n }\n }\n\n private strictFail(message: string): void {\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\n private textApplyOptions(text: string): string {\n if (this.opt.trim) text = text.trim();\n if (this.opt.normalize) text = text.replace(/\\s+/g, ' ');\n return text;\n }\n\n private emitNode(nodeType: string, data?: {}): void {\n if (this.textNode) this.closeText();\n this.emit(nodeType, data);\n }\n\n private closeText(): void {\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\n private checkBufferLength(): void {\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\n private openTag(selfClosing?: boolean): void {\n if (this.opt.xmlns) {\n // emit namespace binding events\n const tag = this.tag;\n\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\n if (tag.prefix && !tag.uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(this.tagName)}`);\n tag.uri = qn.prefix;\n }\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\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\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\n this.tag.isSelfClosing = Boolean(selfClosing);\n\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 } 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\n private closeTag(): void {\n if (!this.tagName) {\n this.strictFail('Weird empty close tag.');\n this.textNode += '</>';\n this.state = this.S.TEXT;\n return;\n }\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\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 } else {\n break;\n }\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\n const x: {[index: string]: any} = {};\n for (const i in tag.ns) {\n if (tag.ns.hasOwnProperty(i)) {\n x[i] = tag.ns[i];\n }\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) 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 *\n * @todo Weird inheritance, with some variables initialized in subclass\n */\nexport class SAXParser extends SAX {\n static ENTITIES = ENTITIES;\n\n opt: Required<SAXParserOptions> = DEFAULT_SAX_PARSER_OPTIONS;\n\n events: Required<SAXEvents> = DEFAULT_SAX_EVENTS;\n\n constructor(opt?: SAXParserOptions) {\n super();\n\n this.clearBuffers();\n\n this.opt = opt = {...this.opt, ...opt};\n\n this.events = {...this.events, ...opt};\n\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\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\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\n resume(): this {\n this.error = null;\n return this;\n }\n\n close(): this | SAXParser {\n return this.write(null);\n }\n\n flush(): void {\n this.flushBuffers();\n }\n}\n"],"mappings":"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M,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,E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"}
@@ -1,19 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports._typecheckXMLLoader = exports.XMLLoader = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
7
  var _parseXml = require("./lib/parsers/parse-xml");
12
8
  var _uncapitalize = require("./lib/xml-utils/uncapitalize");
13
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- var VERSION = typeof "3.4.14" !== 'undefined' ? "3.4.14" : 'latest';
16
- var XMLLoader = {
9
+ const VERSION = typeof "3.4.15" !== 'undefined' ? "3.4.15" : 'latest';
10
+ const XMLLoader = {
17
11
  name: 'XML',
18
12
  id: 'xml',
19
13
  module: 'xml',
@@ -31,55 +25,39 @@ var XMLLoader = {
31
25
  arrayPaths: []
32
26
  }
33
27
  },
34
- parse: function () {
35
- var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
36
- return _regenerator.default.wrap(function _callee$(_context) {
37
- while (1) switch (_context.prev = _context.next) {
38
- case 0:
39
- return _context.abrupt("return", _parseTextSync(new TextDecoder().decode(arrayBuffer), options));
40
- case 1:
41
- case "end":
42
- return _context.stop();
43
- }
44
- }, _callee);
45
- }));
46
- function parse(_x, _x2) {
47
- return _parse.apply(this, arguments);
48
- }
49
- return parse;
50
- }(),
51
- parseTextSync: function parseTextSync(text, options) {
52
- return _parseTextSync(text, options);
53
- }
28
+ parse: async (arrayBuffer, options) => parseTextSync(new TextDecoder().decode(arrayBuffer), options),
29
+ parseTextSync: (text, options) => parseTextSync(text, options)
54
30
  };
55
31
  exports.XMLLoader = XMLLoader;
56
32
  function testXMLFile(text) {
57
33
  return text.startsWith('<?xml');
58
34
  }
59
- function _parseTextSync(text, options) {
35
+ function parseTextSync(text, options) {
60
36
  var _options$xml;
61
- var xmlOptions = _objectSpread(_objectSpread({}, XMLLoader.options.xml), options === null || options === void 0 ? void 0 : options.xml);
37
+ const xmlOptions = {
38
+ ...XMLLoader.options.xml,
39
+ ...(options === null || options === void 0 ? void 0 : options.xml)
40
+ };
62
41
  switch (xmlOptions.parser) {
63
42
  case 'fast-xml-parser':
64
- var fastXMLOptions = _objectSpread({
43
+ const fastXMLOptions = {
65
44
  allowBooleanAttributes: true,
66
45
  ignoreDeclaration: true,
67
46
  removeNSPrefix: xmlOptions.removeNSPrefix,
68
47
  textNodeName: xmlOptions.textNodeName,
69
- isArray: function isArray(name, jpath, isLeafNode, isAttribute) {
48
+ isArray: (name, jpath, isLeafNode, isAttribute) => {
70
49
  var _xmlOptions$arrayPath;
71
- var array = Boolean(xmlOptions === null || xmlOptions === void 0 ? void 0 : (_xmlOptions$arrayPath = xmlOptions.arrayPaths) === null || _xmlOptions$arrayPath === void 0 ? void 0 : _xmlOptions$arrayPath.some(function (path) {
72
- return jpath === path;
73
- }));
50
+ const array = Boolean(xmlOptions === null || xmlOptions === void 0 ? void 0 : (_xmlOptions$arrayPath = xmlOptions.arrayPaths) === null || _xmlOptions$arrayPath === void 0 ? void 0 : _xmlOptions$arrayPath.some(path => jpath === path));
74
51
  return array;
75
- }
76
- }, options === null || options === void 0 ? void 0 : options._fastXML);
77
- var xml = (0, _parseXml.fastParseXML)(text, fastXMLOptions);
52
+ },
53
+ ...(options === null || options === void 0 ? void 0 : options._fastXML)
54
+ };
55
+ const xml = (0, _parseXml.fastParseXML)(text, fastXMLOptions);
78
56
  return xmlOptions.uncapitalizeKeys ? (0, _uncapitalize.uncapitalizeKeys)(xml) : xml;
79
57
  default:
80
58
  throw new Error(options === null || options === void 0 ? void 0 : (_options$xml = options.xml) === null || _options$xml === void 0 ? void 0 : _options$xml.parser);
81
59
  }
82
60
  }
83
- var _typecheckXMLLoader = XMLLoader;
61
+ const _typecheckXMLLoader = XMLLoader;
84
62
  exports._typecheckXMLLoader = _typecheckXMLLoader;
85
63
  //# sourceMappingURL=xml-loader.js.map