{"version":3,"file":"dom-parser.mjs","sources":["../../../../../../node_modules/@xmldom/xmldom/lib/dom-parser.js"],"sourcesContent":["var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax =  new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n  \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tif(source && typeof source === 'string'){\n\t\tsax.parse(source,defaultNSMap,entityMap);\n\t}else{\n\t\tsax.errorHandler.error(\"invalid doc source\");\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n    this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n    \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n    \tif (this.locator) {\n        \tthis.doc.documentURI = this.locator.systemId;\n    \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t    var el = doc.createElementNS(namespaceURI, qName||localName);\n\t    var len = attrs.length;\n\t    appendElement(this, el);\n\t    this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t    for (var i = 0 ; i < len; i++) {\n\t        var namespaceURI = attrs.getURI(i);\n\t        var value = attrs.getValue(i);\n\t        var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t    }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t    var ins = this.doc.createProcessingInstruction(target, data);\n\t    this.locator && position(this.locator,ins)\n\t    appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t    if(this.locator = locator){// && !('lineNumber' in locator)){\n\t    \tlocator.lineNumber = 0;\n\t    }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t    var comm = this.doc.createComment(chars);\n\t    this.locator && position(this.locator,comm)\n\t    appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t    //used in characters() methods\n\t    this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t    this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t    if (impl && impl.createDocumentType) {\n\t        var dt = impl.createDocumentType(name, publicId, systemId);\n\t        this.locator && position(this.locator,dt)\n\t        appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t    }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n *  #comment(chars, start, length)\n *  #startCDATA()\n *  #endCDATA()\n *  #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n *  #endDTD()\n *  #startEntity(name)\n *  #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n *  #elementDecl(name, model)\n *  #externalEntityDecl(name, publicId, systemId)\n *  #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n *  #resolveEntity(String name,String publicId,String baseURI,String systemId)\n *  #resolveEntity(publicId, systemId)\n *  #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n *  #notationDecl(name, publicId, systemId) {};\n *  #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n    if (!hander.currentElement) {\n        hander.doc.appendChild(node);\n    } else {\n        hander.currentElement.appendChild(node);\n    }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.DOMParser = DOMParser;\n\n/**\n * @deprecated Import/require from main entry point instead\n */\nexports.DOMImplementation = dom.DOMImplementation;\n\n/**\n * @deprecated Import/require from main entry point instead\n */\nexports.XMLSerializer = dom.XMLSerializer;\n"],"names":["conventions","require$$0","dom","require$$1","entities","require$$2","sax","require$$3","DOMImplementation","NAMESPACE","ParseError","XMLReader","DOMParser","options","source","mimeType","domBuilder","DOMHandler","errorHandler","locator","defaultNSMap","isHTML","entityMap","buildErrorHandler","errorImpl","isCallback","build","key","fn","msg","_locator","position","node","namespaceURI","localName","qName","attrs","doc","el","len","appendElement","i","value","attr","current","prefix","uri","target","data","ins","ch","start","length","chars","_toString","charNode","name","comm","publicId","systemId","impl","dt","error","l","hander","domParser"],"mappings":"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","x_google_ignoreList":[0]}