opennms
Version:
Client API for the OpenNMS network monitoring platform
1 lines • 64.3 kB
JSON
{"remainingRequest":"/data/node_modules/babel-loader/lib/index.js!/data/node_modules/xmldom/sax.js","dependencies":[{"path":"/data/node_modules/xmldom/sax.js","mtime":1553611386916},{"path":"/data/.babelrc","mtime":1553611371556},{"path":"/data/node_modules/cache-loader/dist/cjs.js","mtime":1553611387012},{"path":"/data/node_modules/babel-loader/lib/index.js","mtime":1553611386992}],"contextDependencies":[],"result":["\"use strict\";\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/; //\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^' + nameStartChar.source + nameChar.source + '*(?:\\:' + nameStartChar.source + nameChar.source + '*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0; //tag name offerring\nvar S_ATTR = 1; //attr name offerring \nvar S_ATTR_SPACE = 2; //attr name end and space offer\nvar S_EQ = 3; //=space?\nvar S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar S_ATTR_END = 5; //attr value end and no space(quot end)\nvar S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7; //closed el<el />\n\nfunction XMLReader() {}\n\nXMLReader.prototype = {\n\tparse: function parse(source, defaultNSMap, entityMap) {\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap, defaultNSMap = {});\n\t\t_parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n};\nfunction _parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10),\n\t\t\t surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a) {\n\t\tvar k = a.slice(1, -1);\n\t\tif (k in entityMap) {\n\t\t\treturn entityMap[k];\n\t\t} else if (k.charAt(0) === '#') {\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x', '0x')));\n\t\t} else {\n\t\t\terrorHandler.error('entity not found:' + a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end) {\n\t\t//has some bugs\n\t\tif (end > start) {\n\t\t\tvar xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n\t\t\tlocator && position(start);\n\t\t\tdomBuilder.characters(xt, 0, end - start);\n\t\t\tstart = end;\n\t\t}\n\t}\n\tfunction position(p, m) {\n\t\twhile (p >= lineEnd && (m = linePattern.exec(source))) {\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p - lineStart + 1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{ currentNSMap: defaultNSMapCopy }];\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile (true) {\n\t\ttry {\n\t\t\tvar tagStart = source.indexOf('<', start);\n\t\t\tif (tagStart < 0) {\n\t\t\t\tif (!source.substr(start).match(/^\\s*$/)) {\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t\t\t\t\tvar text = doc.createTextNode(source.substr(start));\n\t\t\t\t\tdoc.appendChild(text);\n\t\t\t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (tagStart > start) {\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch (source.charAt(tagStart + 1)) {\n\t\t\t\tcase '/':\n\t\t\t\t\tvar end = source.indexOf('>', tagStart + 3);\n\t\t\t\t\tvar tagName = source.substring(tagStart + 2, end);\n\t\t\t\t\tvar config = parseStack.pop();\n\t\t\t\t\tif (end < 0) {\n\n\t\t\t\t\t\ttagName = source.substring(tagStart + 2).replace(/[\\s<].*/, '');\n\t\t\t\t\t\t//console.error('#@@@@@@'+tagName)\n\t\t\t\t\t\terrorHandler.error(\"end tag name: \" + tagName + ' is not complete:' + config.tagName);\n\t\t\t\t\t\tend = tagStart + 1 + tagName.length;\n\t\t\t\t\t} else if (tagName.match(/\\s</)) {\n\t\t\t\t\t\ttagName = tagName.replace(/[\\s<].*/, '');\n\t\t\t\t\t\terrorHandler.error(\"end tag name: \" + tagName + ' maybe not complete');\n\t\t\t\t\t\tend = tagStart + 1 + tagName.length;\n\t\t\t\t\t}\n\t\t\t\t\t//console.error(parseStack.length,parseStack)\n\t\t\t\t\t//console.error(config);\n\t\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName && config.tagName.toLowerCase() == tagName.toLowerCase();\n\t\t\t\t\tif (endIgnoreCaseMach) {\n\t\t\t\t\t\tdomBuilder.endElement(config.uri, config.localName, tagName);\n\t\t\t\t\t\tif (localNSMap) {\n\t\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!endMatch) {\n\t\t\t\t\t\t\terrorHandler.fatalError(\"end tag name: \" + tagName + ' is not match the current start tagName:' + config.tagName);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparseStack.push(config);\n\t\t\t\t\t}\n\n\t\t\t\t\tend++;\n\t\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\t\tcase '?':\n\t\t\t\t\t// <?...?>\n\t\t\t\t\tlocator && position(tagStart);\n\t\t\t\t\tend = parseInstruction(source, tagStart, domBuilder);\n\t\t\t\t\tbreak;\n\t\t\t\tcase '!':\n\t\t\t\t\t// <!doctype,<![CDATA,<!--\n\t\t\t\t\tlocator && position(tagStart);\n\t\t\t\t\tend = parseDCC(source, tagStart, domBuilder, errorHandler);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tlocator && position(tagStart);\n\t\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\t\tvar currentNSMap = parseStack[parseStack.length - 1].currentNSMap;\n\t\t\t\t\t//elStartEnd\n\t\t\t\t\tvar end = parseElementStartPart(source, tagStart, el, currentNSMap, entityReplacer, errorHandler);\n\t\t\t\t\tvar len = el.length;\n\n\t\t\t\t\tif (!el.closed && fixSelfClosed(source, end, el.tagName, closeMap)) {\n\t\t\t\t\t\tel.closed = true;\n\t\t\t\t\t\tif (!entityMap.nbsp) {\n\t\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (locator && len) {\n\t\t\t\t\t\tvar locator2 = copyLocator(locator, {});\n\t\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\t\ta.locator = copyLocator(locator, {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//}catch(e){console.error('@@@@@'+e)}\n\t\t\t\t\t\tdomBuilder.locator = locator2;\n\t\t\t\t\t\tif (appendElement(el, domBuilder, currentNSMap)) {\n\t\t\t\t\t\t\tparseStack.push(el);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (appendElement(el, domBuilder, currentNSMap)) {\n\t\t\t\t\t\t\tparseStack.push(el);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed) {\n\t\t\t\t\t\tend = parseHtmlSpecialContent(source, end, el.tagName, entityReplacer, domBuilder);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tend++;\n\t\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\terrorHandler.error('element parse error: ' + e);\n\t\t\t//errorHandler.error('element parse error: '+e);\n\t\t\tend = -1;\n\t\t\t//throw e;\n\t\t}\n\t\tif (end > start) {\n\t\t\tstart = end;\n\t\t} else {\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart, start) + 1);\n\t\t}\n\t}\n}\nfunction copyLocator(f, t) {\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\r\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\r\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\r\n */\nfunction parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG; //status\n\twhile (true) {\n\t\tvar c = source.charAt(p);\n\t\tswitch (c) {\n\t\t\tcase '=':\n\t\t\t\tif (s === S_ATTR) {\n\t\t\t\t\t//attrName\n\t\t\t\t\tattrName = source.slice(start, p);\n\t\t\t\t\ts = S_EQ;\n\t\t\t\t} else if (s === S_ATTR_SPACE) {\n\t\t\t\t\ts = S_EQ;\n\t\t\t\t} else {\n\t\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\t\tthrow new Error('attribute equal must after attrName');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase '\\'':\n\t\t\tcase '\"':\n\t\t\t\tif (s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t) {\n\t\t\t\t\t\t//equal\n\t\t\t\t\t\tif (s === S_ATTR) {\n\t\t\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"');\n\t\t\t\t\t\t\tattrName = source.slice(start, p);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstart = p + 1;\n\t\t\t\t\t\tp = source.indexOf(c, start);\n\t\t\t\t\t\tif (p > 0) {\n\t\t\t\t\t\t\tvalue = source.slice(start, p).replace(/&#?\\w+;/g, entityReplacer);\n\t\t\t\t\t\t\tel.add(attrName, value, start - 1);\n\t\t\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\t\t\tthrow new Error('attribute value no end \\'' + c + '\\' match');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (s == S_ATTR_NOQUOT_VALUE) {\n\t\t\t\t\tvalue = source.slice(start, p).replace(/&#?\\w+;/g, entityReplacer);\n\t\t\t\t\t//console.log(attrName,value,start,p)\n\t\t\t\t\tel.add(attrName, value, start);\n\t\t\t\t\t//console.dir(el)\n\t\t\t\t\terrorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + ')!!');\n\t\t\t\t\tstart = p + 1;\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t} else {\n\t\t\t\t\t//fatalError: no equal before\n\t\t\t\t\tthrow new Error('attribute value must after \"=\"');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase '/':\n\t\t\t\tswitch (s) {\n\t\t\t\t\tcase S_TAG:\n\t\t\t\t\t\tel.setTagName(source.slice(start, p));\n\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\t\ts = S_TAG_CLOSE;\n\t\t\t\t\t\tel.closed = true;\n\t\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tcase S_ATTR:\n\t\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case S_EQ:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(\"attribute invalid close char('/')\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase '':\n\t\t\t\t//end document\n\t\t\t\t//throw new Error('unexpected end of input')\n\t\t\t\terrorHandler.error('unexpected end of input');\n\t\t\t\tif (s == S_TAG) {\n\t\t\t\t\tel.setTagName(source.slice(start, p));\n\t\t\t\t}\n\t\t\t\treturn p;\n\t\t\tcase '>':\n\t\t\t\tswitch (s) {\n\t\t\t\t\tcase S_TAG:\n\t\t\t\t\t\tel.setTagName(source.slice(start, p));\n\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\t\tbreak; //normal\n\t\t\t\t\tcase S_ATTR_NOQUOT_VALUE: //Compatible state\n\t\t\t\t\tcase S_ATTR:\n\t\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\t\tif (value.slice(-1) === '/') {\n\t\t\t\t\t\t\tel.closed = true;\n\t\t\t\t\t\t\tvalue = value.slice(0, -1);\n\t\t\t\t\t\t}\n\t\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\t\tif (s === S_ATTR_SPACE) {\n\t\t\t\t\t\t\tvalue = attrName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (s == S_ATTR_NOQUOT_VALUE) {\n\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n\t\t\t\t\t\t\tel.add(attrName, value.replace(/&#?\\w+;/g, entityReplacer), start);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !value.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tel.add(value, value, start);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase S_EQ:\n\t\t\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t\t}\n\t\t\t\t//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\t\treturn p;\n\t\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\t\tcase \"\\x80\":\n\t\t\t\tc = ' ';\n\t\t\tdefault:\n\t\t\t\tif (c <= ' ') {\n\t\t\t\t\t//space\n\t\t\t\t\tswitch (s) {\n\t\t\t\t\t\tcase S_TAG:\n\t\t\t\t\t\t\tel.setTagName(source.slice(start, p)); //tagName\n\t\t\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_ATTR:\n\t\t\t\t\t\t\tattrName = source.slice(start, p);\n\t\t\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\t\t\tvar value = source.slice(start, p).replace(/&#?\\w+;/g, entityReplacer);\n\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n\t\t\t\t\t\t\tel.add(attrName, value, start);\n\t\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t\t\t//case S_EQ:\n\t\t\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t\t\t//\tvoid();break;\n\t\t\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t\t//ignore warning\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t//not space\n\t\t\t\t\t//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n\t\t\t\t\t//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\t\tswitch (s) {\n\t\t\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\t\t\tif (currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\t\t\terrorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tel.add(attrName, attrName, start);\n\t\t\t\t\t\t\tstart = p;\n\t\t\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\t\t\terrorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n\t\t\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\t\t\tstart = p;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_EQ:\n\t\t\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\t\t\tstart = p;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t} //end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\r\n * @return true if has new namespace define\r\n */\nfunction appendElement(el, domBuilder, currentNSMap) {\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile (i--) {\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif (nsp > 0) {\n\t\t\tvar prefix = a.prefix = qName.slice(0, nsp);\n\t\t\tvar localName = qName.slice(nsp + 1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName;\n\t\t} else {\n\t\t\tlocalName = qName;\n\t\t\tprefix = null;\n\t\t\tnsPrefix = qName === 'xmlns' && '';\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName;\n\t\t//prefix == null for no ns prefix attribute \n\t\tif (nsPrefix !== false) {\n\t\t\t//hack!!\n\t\t\tif (localNSMap == null) {\n\t\t\t\tlocalNSMap = {};\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap, currentNSMap = {});\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = 'http://www.w3.org/2000/xmlns/';\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value);\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile (i--) {\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif (prefix) {\n\t\t\t//no prefix attribute has no namespace\n\t\t\tif (prefix === 'xml') {\n\t\t\t\ta.uri = 'http://www.w3.org/XML/1998/namespace';\n\t\t\t}if (prefix !== 'xmlns') {\n\t\t\t\ta.uri = currentNSMap[prefix || ''];\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif (nsp > 0) {\n\t\tprefix = el.prefix = tagName.slice(0, nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp + 1);\n\t} else {\n\t\tprefix = null; //important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns, localName, tagName, el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif (el.closed) {\n\t\tdomBuilder.endElement(ns, localName, tagName);\n\t\tif (localNSMap) {\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n\tif (/^(?:script|textarea)$/i.test(tagName)) {\n\t\tvar elEndStart = source.indexOf('</' + tagName + '>', elStartEnd);\n\t\tvar text = source.substring(elStartEnd + 1, elEndStart);\n\t\tif (/[&<]/.test(text)) {\n\t\t\tif (/^script$/i.test(tagName)) {\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\tdomBuilder.characters(text, 0, text.length);\n\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t} //}else{//text area\n\t\t\ttext = text.replace(/&#?\\w+;/g, entityReplacer);\n\t\t\tdomBuilder.characters(text, 0, text.length);\n\t\t\treturn elEndStart;\n\t\t\t//}\n\t\t}\n\t}\n\treturn elStartEnd + 1;\n}\nfunction fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif (pos == null) {\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('</' + tagName + '>');\n\t\tif (pos < elStartEnd) {\n\t\t\t//忘记闭合\n\t\t\tpos = source.lastIndexOf('</' + tagName);\n\t\t}\n\t\tcloseMap[tagName] = pos;\n\t}\n\treturn pos < elStartEnd;\n\t//} \n}\nfunction _copy(source, target) {\n\tfor (var n in source) {\n\t\ttarget[n] = source[n];\n\t}\n}\nfunction parseDCC(source, start, domBuilder, errorHandler) {\n\t//sure start with '<!'\n\tvar next = source.charAt(start + 2);\n\tswitch (next) {\n\t\tcase '-':\n\t\t\tif (source.charAt(start + 3) === '-') {\n\t\t\t\tvar end = source.indexOf('-->', start + 4);\n\t\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\t\tif (end > start) {\n\t\t\t\t\tdomBuilder.comment(source, start + 4, end - start - 4);\n\t\t\t\t\treturn end + 3;\n\t\t\t\t} else {\n\t\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//error\n\t\t\t\treturn -1;\n\t\t\t}\n\t\tdefault:\n\t\t\tif (source.substr(start + 3, 6) == 'CDATA[') {\n\t\t\t\tvar end = source.indexOf(']]>', start + 9);\n\t\t\t\tdomBuilder.startCDATA();\n\t\t\t\tdomBuilder.characters(source, start + 9, end - start - 9);\n\t\t\t\tdomBuilder.endCDATA();\n\t\t\t\treturn end + 3;\n\t\t\t}\n\t\t\t//<!DOCTYPE\n\t\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) \n\t\t\tvar matchs = split(source, start);\n\t\t\tvar len = matchs.length;\n\t\t\tif (len > 1 && /!doctype/i.test(matchs[0][0])) {\n\t\t\t\tvar name = matchs[1][0];\n\t\t\t\tvar pubid = len > 3 && /^public$/i.test(matchs[2][0]) && matchs[3][0];\n\t\t\t\tvar sysid = len > 4 && matchs[4][0];\n\t\t\t\tvar lastMatch = matchs[len - 1];\n\t\t\t\tdomBuilder.startDTD(name, pubid && pubid.replace(/^(['\"])(.*?)\\1$/, '$2'), sysid && sysid.replace(/^(['\"])(.*?)\\1$/, '$2'));\n\t\t\t\tdomBuilder.endDTD();\n\n\t\t\t\treturn lastMatch.index + lastMatch[0].length;\n\t\t\t}\n\t}\n\treturn -1;\n}\n\nfunction parseInstruction(source, start, domBuilder) {\n\tvar end = source.indexOf('?>', start);\n\tif (end) {\n\t\tvar match = source.substring(start, end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif (match) {\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]);\n\t\t\treturn end + 2;\n\t\t} else {\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\n/**\r\n * @param source\r\n */\nfunction ElementAttributes(source) {}\nElementAttributes.prototype = {\n\tsetTagName: function setTagName(tagName) {\n\t\tif (!tagNamePattern.test(tagName)) {\n\t\t\tthrow new Error('invalid tagName:' + tagName);\n\t\t}\n\t\tthis.tagName = tagName;\n\t},\n\tadd: function add(qName, value, offset) {\n\t\tif (!tagNamePattern.test(qName)) {\n\t\t\tthrow new Error('invalid attribute:' + qName);\n\t\t}\n\t\tthis[this.length++] = { qName: qName, value: value, offset: offset };\n\t},\n\tlength: 0,\n\tgetLocalName: function getLocalName(i) {\n\t\treturn this[i].localName;\n\t},\n\tgetLocator: function getLocator(i) {\n\t\treturn this[i].locator;\n\t},\n\tgetQName: function getQName(i) {\n\t\treturn this[i].qName;\n\t},\n\tgetURI: function getURI(i) {\n\t\treturn this[i].uri;\n\t},\n\tgetValue: function getValue(i) {\n\t\treturn this[i].value;\n\t}\n\t//\t,getIndex:function(uri, localName)){\n\t//\t\tif(localName){\n\t//\t\t\t\n\t//\t\t}else{\n\t//\t\t\tvar qName = uri\n\t//\t\t}\n\t//\t},\n\t//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n\t//\tgetType:function(uri,localName){}\n\t//\tgetType:function(i){},\n};\n\nfunction _set_proto_(thiz, parent) {\n\tthiz.__proto__ = parent;\n\treturn thiz;\n}\nif (!(_set_proto_({}, _set_proto_.prototype) instanceof _set_proto_)) {\n\t_set_proto_ = function _set_proto_(thiz, parent) {\n\t\tfunction p() {};\n\t\tp.prototype = parent;\n\t\tp = new p();\n\t\tfor (parent in thiz) {\n\t\t\tp[parent] = thiz[parent];\n\t\t}\n\t\treturn p;\n\t};\n}\n\nfunction split(source, start) {\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source); //skip <\n\twhile (match = reg.exec(source)) {\n\t\tbuf.push(match);\n\t\tif (match[1]) return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;",{"version":3,"sources":["node_modules/xmldom/sax.js"],"names":["nameStartChar","nameChar","RegExp","source","slice","tagNamePattern","S_TAG","S_ATTR","S_ATTR_SPACE","S_EQ","S_ATTR_NOQUOT_VALUE","S_ATTR_END","S_TAG_SPACE","S_TAG_CLOSE","XMLReader","prototype","parse","defaultNSMap","entityMap","domBuilder","startDocument","_copy","errorHandler","endDocument","defaultNSMapCopy","fixedFromCharCode","code","surrogate1","surrogate2","String","fromCharCode","entityReplacer","a","k","charAt","parseInt","substr","replace","error","appendText","end","start","xt","substring","locator","position","characters","p","m","lineEnd","linePattern","exec","lineStart","index","length","lineNumber","columnNumber","parseStack","currentNSMap","closeMap","tagStart","indexOf","match","doc","text","createTextNode","appendChild","currentElement","tagName","config","pop","localNSMap","endMatch","endIgnoreCaseMach","toLowerCase","endElement","uri","localName","prefix","endPrefixMapping","fatalError","push","parseInstruction","parseDCC","el","ElementAttributes","parseElementStartPart","len","closed","fixSelfClosed","nbsp","warning","locator2","copyLocator","i","offset","appendElement","parseHtmlSpecialContent","e","Math","max","f","t","attrName","value","s","c","Error","add","setTagName","qName","nsp","nsPrefix","startPrefixMapping","ns","startElement","elStartEnd","test","elEndStart","pos","lastIndexOf","target","n","next","comment","startCDATA","endCDATA","matchs","split","name","pubid","sysid","lastMatch","startDTD","endDTD","processingInstruction","getLocalName","getLocator","getQName","getURI","getValue","_set_proto_","thiz","parent","__proto__","buf","reg","lastIndex","exports"],"mappings":"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","file":"sax.js","sourceRoot":"/data","sourcesContent":["//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\r\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\r\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\r\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\r\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\r\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\r\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\r\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\r\n\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\nvar S_TAG = 0;//tag name offerring\r\nvar S_ATTR = 1;//attr name offerring \r\nvar S_ATTR_SPACE=2;//attr name end and space offer\r\nvar S_EQ = 3;//=space?\r\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\r\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\r\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\r\nvar S_TAG_CLOSE = 7;//closed el<el />\r\n\r\nfunction XMLReader(){\r\n\t\r\n}\r\n\r\nXMLReader.prototype = {\r\n\tparse:function(source,defaultNSMap,entityMap){\r\n\t\tvar domBuilder = this.domBuilder;\r\n\t\tdomBuilder.startDocument();\r\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\r\n\t\tparse(source,defaultNSMap,entityMap,\r\n\t\t\t\tdomBuilder,this.errorHandler);\r\n\t\tdomBuilder.endDocument();\r\n\t}\r\n}\r\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\r\n\tfunction fixedFromCharCode(code) {\r\n\t\t// String.prototype.fromCharCode does not supports\r\n\t\t// > 2 bytes unicode chars directly\r\n\t\tif (code > 0xffff) {\r\n\t\t\tcode -= 0x10000;\r\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\r\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\r\n\r\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\r\n\t\t} else {\r\n\t\t\treturn String.fromCharCode(code);\r\n\t\t}\r\n\t}\r\n\tfunction entityReplacer(a){\r\n\t\tvar k = a.slice(1,-1);\r\n\t\tif(k in entityMap){\r\n\t\t\treturn entityMap[k]; \r\n\t\t}else if(k.charAt(0) === '#'){\r\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\r\n\t\t}else{\r\n\t\t\terrorHandler.error('entity not found:'+a);\r\n\t\t\treturn a;\r\n\t\t}\r\n\t}\r\n\tfunction appendText(end){//has some bugs\r\n\t\tif(end>start){\r\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\tlocator&&position(start);\r\n\t\t\tdomBuilder.characters(xt,0,end-start);\r\n\t\t\tstart = end\r\n\t\t}\r\n\t}\r\n\tfunction position(p,m){\r\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\r\n\t\t\tlineStart = m.index;\r\n\t\t\tlineEnd = lineStart + m[0].length;\r\n\t\t\tlocator.lineNumber++;\r\n\t\t\t//console.log('line++:',locator,startPos,endPos)\r\n\t\t}\r\n\t\tlocator.columnNumber = p-lineStart+1;\r\n\t}\r\n\tvar lineStart = 0;\r\n\tvar lineEnd = 0;\r\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\r\n\tvar locator = domBuilder.locator;\r\n\t\r\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\r\n\tvar closeMap = {};\r\n\tvar start = 0;\r\n\twhile(true){\r\n\t\ttry{\r\n\t\t\tvar tagStart = source.indexOf('<',start);\r\n\t\t\tif(tagStart<0){\r\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\r\n\t\t\t\t\tvar doc = domBuilder.doc;\r\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\r\n\t \t\t\tdoc.appendChild(text);\r\n\t \t\t\tdomBuilder.currentElement = text;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(tagStart>start){\r\n\t\t\t\tappendText(tagStart);\r\n\t\t\t}\r\n\t\t\tswitch(source.charAt(tagStart+1)){\r\n\t\t\tcase '/':\r\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\r\n\t\t\t\tvar tagName = source.substring(tagStart+2,end);\r\n\t\t\t\tvar config = parseStack.pop();\r\n\t\t\t\tif(end<0){\r\n\t\t\t\t\t\r\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\r\n\t \t\t//console.error('#@@@@@@'+tagName)\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t \t}else if(tagName.match(/\\s</)){\r\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t\t\t\t}\r\n\t\t\t\t//console.error(parseStack.length,parseStack)\r\n\t\t\t\t//console.error(config);\r\n\t\t\t\tvar localNSMap = config.localNSMap;\r\n\t\t\t\tvar endMatch = config.tagName == tagName;\r\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\r\n\t\t if(endIgnoreCaseMach){\r\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\r\n\t\t\t\t\tif(localNSMap){\r\n\t\t\t\t\t\tfor(var prefix in localNSMap){\r\n\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix) ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!endMatch){\r\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName );\r\n\t\t\t\t\t}\r\n\t\t }else{\r\n\t\t \tparseStack.push(config)\r\n\t\t }\r\n\t\t\t\t\r\n\t\t\t\tend++;\r\n\t\t\t\tbreak;\r\n\t\t\t\t// end elment\r\n\t\t\tcase '?':// <?...?>\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tvar el = new ElementAttributes();\r\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\t\t\t\t//elStartEnd\r\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\r\n\t\t\t\tvar len = el.length;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tif(!entityMap.nbsp){\r\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(locator && len){\r\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\r\n\t\t\t\t\t//try{//attribute position fixed\r\n\t\t\t\t\tfor(var i = 0;i<len;i++){\r\n\t\t\t\t\t\tvar a = el[i];\r\n\t\t\t\t\t\tposition(a.offset);\r\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//}catch(e){console.error('@@@@@'+e)}\r\n\t\t\t\t\tdomBuilder.locator = locator2\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdomBuilder.locator = locator;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){\r\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tend++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}catch(e){\r\n\t\t\terrorHandler.error('element parse error: '+e)\r\n\t\t\t//errorHandler.error('element parse error: '+e);\r\