diff --git a/CHANGELOG.md b/CHANGELOG.md index 272f01d7..e2f68989 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ Note: If you find missing information about particular minor version, that version must have been changed without any functional change in this library. +**⚠️ 4.0.0-beta.1 / 2021-11-18** +* Parser returns an array now + * to make the structure common + * and to return root level detail +* renamed `cdataTagName` to `cdataPropName` +* Added `commentPropName` +* fix typings + **⚠️ 4.0.0-beta.0 / 2021-11-16** * Name change of many configuration properties. * `attrNodeName` to `attributesGroupName` diff --git a/lib/fxparser.js b/lib/fxparser.js index 50e63b4f..db4fbd69 100644 --- a/lib/fxparser.js +++ b/lib/fxparser.js @@ -326,8 +326,8 @@ function getPositionFromMatch(match){return match.startIndex+match[1].length;} "use strict"; //parse Empty Node as self closing node -var buildOptions=__webpack_require__(/*! ../util */ "./src/util.js").buildOptions;var buildFromOrderedJs=__webpack_require__(/*! ./orderedJs2Xml */ "./src/xmlbuilder/orderedJs2Xml.js");var defaultOptions={attributeNamePrefix:'@_',attributesGroupName:false,textNodeName:'#text',ignoreAttributes:true,cdataTagName:false,format:false,indentBy:' ',suppressEmptyNode:false,tagValueProcessor:function tagValueProcessor(key,a){return a;},attributeValueProcessor:function attributeValueProcessor(attrName,a){return a;},preserveOrder:false};var props=['attributeNamePrefix','attributesGroupName','textNodeName','ignoreAttributes','cdataTagName','format','indentBy','suppressEmptyNode','tagValueProcessor','attributeValueProcessor','arrayNodeName',//when array as root -'preserveOrder'// 'rootNodeName', //when jsObject have multiple properties on root level +var buildOptions=__webpack_require__(/*! ../util */ "./src/util.js").buildOptions;var buildFromOrderedJs=__webpack_require__(/*! ./orderedJs2Xml */ "./src/xmlbuilder/orderedJs2Xml.js");var defaultOptions={attributeNamePrefix:'@_',attributesGroupName:false,textNodeName:'#text',ignoreAttributes:true,cdataPropName:false,format:false,indentBy:' ',suppressEmptyNode:false,tagValueProcessor:function tagValueProcessor(key,a){return a;},attributeValueProcessor:function attributeValueProcessor(attrName,a){return a;},preserveOrder:false,commentPropName:false};var props=['attributeNamePrefix','attributesGroupName','textNodeName','ignoreAttributes','cdataPropName','format','indentBy','suppressEmptyNode','tagValueProcessor','attributeValueProcessor','arrayNodeName',//when array as root +'preserveOrder',"commentPropName"// 'rootNodeName', //when jsObject have multiple properties on root level ];function Builder(options){this.options=buildOptions(options,defaultOptions,props);if(this.options.ignoreAttributes||this.options.attributesGroupName){this.isAttribute=function()/*a*/{return false;};}else{this.attrPrefixLen=this.options.attributeNamePrefix.length;this.isAttribute=isAttribute;}this.processTextOrObjNode=processTextOrObjNode;if(this.options.format){this.indentate=indentate;this.tagEndChar='>\n';this.newLine='\n';}else{this.indentate=function(){return'';};this.tagEndChar='>';this.newLine='';}if(this.options.suppressEmptyNode){this.buildTextNode=buildEmptyTextNode;this.buildObjNode=buildEmptyObjNode;}else{this.buildTextNode=buildTextValNode;this.buildObjNode=buildObjectNode;}this.buildTextValNode=buildTextValNode;this.buildObjectNode=buildObjectNode;}Builder.prototype.build=function(jObj){if(this.options.preserveOrder){return buildFromOrderedJs(jObj,this.options);}else{if(Array.isArray(jObj)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1){var _jObj;jObj=(_jObj={},_jObj[this.options.arrayNodeName]=jObj,_jObj);}return this.j2x(jObj,0).val;}};Builder.prototype.j2x=function(jObj,level){var attrStr='';var val='';for(var key in jObj){if(typeof jObj[key]==='undefined'){// supress undefined node }else if(jObj[key]===null){val+=this.indentate(level)+'<'+key+'/'+this.tagEndChar;}else if(jObj[key]instanceof Date){val+=this.buildTextNode(jObj[key],key,'',level);}else if(typeof jObj[key]!=='object'){//premitive type var attr=this.isAttribute(key);if(attr){attrStr+=' '+attr+'="'+this.options.attributeValueProcessor(attr,''+jObj[key])+'"';}else{//tag value @@ -352,8 +352,13 @@ module.exports=Builder; /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -var _require=__webpack_require__(/*! os */ "./node_modules/os-browserify/browser.js"),EOL=_require.EOL;function toXml(jObj,options){return arrToStr([jObj],options,0);}function arrToStr(arr,options,level){var xmlStr="";var indentation="";if(options.format&&options.indentBy.length>0){//TODO: this logic can be avoided for each call -indentation=EOL+""+options.indentBy.repeat(level);}for(var i=0;i");continue;}var attStr=attr_to_str(tagObj.attributes,options);var tagStart=indentation+("<"+tagName+attStr);var tagValue=arrToStr(tagObj[tagName],options,level+1);if((!tagValue||tagValue.length===0)&&options.suppressEmptyNode){xmlStr+=tagStart+"/>";}else{//TODO: node with only text value should not parse the text value in next line +var _require=__webpack_require__(/*! os */ "./node_modules/os-browserify/browser.js"),EOL=_require.EOL;/** + * + * @param {array} jArray + * @param {any} options + * @returns + */function toXml(jArray,options){return arrToStr(jArray,options,0);}function arrToStr(arr,options,level){var xmlStr="";var indentation="";if(options.format&&options.indentBy.length>0){//TODO: this logic can be avoided for each call +indentation=EOL+""+options.indentBy.repeat(level);}for(var i=0;i");continue;}else if(tagName===options.commentPropName){xmlStr+=indentation+("");continue;}var attStr=attr_to_str(tagObj.attributes,options);var tagStart=indentation+("<"+tagName+attStr);var tagValue=arrToStr(tagObj[tagName],options,level+1);if((!tagValue||tagValue.length===0)&&options.suppressEmptyNode){xmlStr+=tagStart+"/>";}else{//TODO: node with only text value should not parse the text value in next line xmlStr+=tagStart+(">"+tagValue+indentation+"");}}return xmlStr;}function propName(obj){var keys=Object.keys(obj);for(var i=0;i",i,"Closing Tag is not closed.");var tagName=xmlData.substring(i+2,closeIndex).trim();if(options.removeNSPrefix){var colonIndex=tagName.indexOf(":");if(colonIndex!==-1){tagName=tagName.substr(colonIndex+1);}}if(currentNode){textData=parseValue(textData,options,currentNode.tagname,jPath,false,currentNode.attrsMap?Object.keys(currentNode.attrsMap).length!==0:false,Object.keys(currentNode.child).length===0);if(textData!==undefined&&textData!=="")currentNode.add(options.textNodeName,textData);textData="";}if(isItStopNode(options.stopNodes,tagsNodeStack,currentNode.tagname)){var _ref;//TODO: namespace var top=tagsNodeStack[tagsNodeStack.length-1];var stopNode=top.child[top.child.length-1];stopNode[currentNode.tagname]=[(_ref={},_ref[options.textNodeName]=xmlData.substr(currentNode.startIndex+1,i-currentNode.startIndex-1),_ref)];}jPath=jPath.substr(0,jPath.lastIndexOf("."));currentNode=tagsNodeStack.pop();//avoid recurssion, set the parent tag scope -textData="";i=closeIndex;}else if(xmlData[i+1]==='?'){i=findClosingIndex(xmlData,"?>",i,"Pi Tag is not closed.");}else if(xmlData.substr(i+1,3)==='!--'){i=findClosingIndex(xmlData,"-->",i,"Comment is not closed.");}else if(xmlData.substr(i+1,2)==='!D'){var _closeIndex=findClosingIndex(xmlData,">",i,"DOCTYPE is not closed.");var tagExp=xmlData.substring(i,_closeIndex);if(tagExp.indexOf("[")>=0){i=xmlData.indexOf("]>",i)+1;}else{i=_closeIndex;}}else if(xmlData.substr(i+1,2)==='!['){var _closeIndex2=findClosingIndex(xmlData,"]]>",i,"CDATA is not closed.")-2;var _tagExp=xmlData.substring(i+9,_closeIndex2);if(textData){//store previously collected data as textNode +textData="";i=closeIndex;}else if(xmlData[i+1]==='?'){i=findClosingIndex(xmlData,"?>",i,"Pi Tag is not closed.");}else if(xmlData.substr(i+1,3)==='!--'){var endIndex=findClosingIndex(xmlData,"-->",i,"Comment is not closed.");if(options.commentPropName){var _ref2;var comment=xmlData.substring(i+4,endIndex-2);//TODO: remove repeated code +if(textData){//store previously collected data as textNode +textData=parseValue(textData,options,currentNode.tagname,jPath,false,currentNode.attrsMap?Object.keys(currentNode.attrsMap).length!==0:false,Object.keys(currentNode.child).length===0);if(textData!==undefined&&textData!=="")currentNode.add(options.textNodeName,textData);textData="";}currentNode.add(options.commentPropName,[(_ref2={},_ref2[options.textNodeName]=comment,_ref2)]);}i=endIndex;}else if(xmlData.substr(i+1,2)==='!D'){var _closeIndex=findClosingIndex(xmlData,">",i,"DOCTYPE is not closed.");var tagExp=xmlData.substring(i,_closeIndex);if(tagExp.indexOf("[")>=0){i=xmlData.indexOf("]>",i)+1;}else{i=_closeIndex;}}else if(xmlData.substr(i+1,2)==='!['){var _closeIndex2=findClosingIndex(xmlData,"]]>",i,"CDATA is not closed.")-2;var _tagExp=xmlData.substring(i+9,_closeIndex2);if(textData){//store previously collected data as textNode textData=parseValue(textData,options,currentNode.tagname,jPath,false,currentNode.attrsMap?Object.keys(currentNode.attrsMap).length!==0:false,Object.keys(currentNode.child).length===0);if(textData!==undefined&&textData!=="")currentNode.add(options.textNodeName,textData);textData="";}//cdata should be set even if it is 0 length string -if(options.cdataTagName){var _ref2;var val=parseValue(_tagExp,options,options.cdataTagName,jPath+"."+options.cdataTagName,true,false,true);if(!val)val="";currentNode.add(options.cdataTagName,[(_ref2={},_ref2[options.textNodeName]=val,_ref2)]);}else{var _val=parseValue(_tagExp,options,currentNode.tagname,jPath,true,false,true);if(!_val)_val="";currentNode.add(options.textNodeName,_val);}i=_closeIndex2+2;}else{//Opening tag +if(options.cdataPropName){var _ref3;var val=parseValue(_tagExp,options,options.cdataPropName,jPath+"."+options.cdataPropName,true,false,true);if(!val)val="";currentNode.add(options.cdataPropName,[(_ref3={},_ref3[options.textNodeName]=val,_ref3)]);}else{var _val=parseValue(_tagExp,options,currentNode.tagname,jPath,true,false,true);if(!_val)_val="";currentNode.add(options.textNodeName,_val);}i=_closeIndex2+2;}else{//Opening tag var result=tagExpWithClosingIndex(xmlData,i+1);var _tagExp2=result.data;var _closeIndex3=result.index;var separatorIndex=_tagExp2.search(/\s/);var _tagName=_tagExp2;var shouldBuildAttributesMap=true;if(separatorIndex!==-1){//separate tag name and attributes expression _tagName=_tagExp2.substr(0,separatorIndex).replace(/\s\s*$/,'');_tagExp2=_tagExp2.substr(separatorIndex+1);}if(options.removeNSPrefix){var _colonIndex=_tagName.indexOf(":");if(_colonIndex!==-1){_tagName=_tagName.substr(_colonIndex+1);shouldBuildAttributesMap=_tagName!==result.data.substr(_colonIndex+1);}}//save text as child node if(currentNode&&textData){if(currentNode.tagname!=='!xml'){//when nested tag is found @@ -421,7 +428,7 @@ if(_tagName[_tagName.length-1]==="/"){//remove trailing '/' _tagName=_tagName.substr(0,_tagName.length-1);_tagExp2=_tagName;}else{_tagExp2=_tagExp2.substr(0,_tagExp2.length-1);}var childNode=new xmlNode(_tagName);if(_tagName!==_tagExp2&&shouldBuildAttributesMap){childNode.attrsMap=buildAttributesMap(_tagExp2,jPath,options);}jPath=jPath.substr(0,jPath.lastIndexOf("."));// tagsNodeStack.push(currentNode); currentNode.addChild(childNode);}else{//opening tag var _childNode=new xmlNode(_tagName);tagsNodeStack.push(currentNode);_childNode.startIndex=_closeIndex3;//for further processing -if(_tagName!==_tagExp2&&shouldBuildAttributesMap){_childNode.attrsMap=buildAttributesMap(_tagExp2,jPath,options);}currentNode.addChild(_childNode);currentNode=_childNode;}textData="";i=_closeIndex3;}}else{textData+=xmlData[i];}}return xmlObj.child[0];};//TODO: use jPath to simplify the logic +if(_tagName!==_tagExp2&&shouldBuildAttributesMap){_childNode.attrsMap=buildAttributesMap(_tagExp2,jPath,options);}currentNode.addChild(_childNode);currentNode=_childNode;}textData="";i=_closeIndex3;}}else{textData+=xmlData[i];}}return xmlObj.child;};//TODO: use jPath to simplify the logic /** * * @param {string[]} stopNodes @@ -461,7 +468,12 @@ var result=validator.validate(xmlData,validationOption);if(result!==true){throw /***/ (function(module, exports, __webpack_require__) { "use strict"; -function prettify(node,options){return compress([node],options);}/** +/** + * + * @param {array} node + * @param {any} options + * @returns + */function prettify(node,options){return compress(node,options);}/** * * @param {array} arr * @param {object} options diff --git a/lib/fxparser.js.map b/lib/fxparser.js.map index 1f37c2de..ec2bc884 100644 --- a/lib/fxparser.js.map +++ b/lib/fxparser.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://fxparser/webpack/bootstrap","webpack://fxparser/./node_modules/os-browserify/browser.js","webpack://fxparser/./node_modules/strnum/strnum.js","webpack://fxparser/./src/fxp.js","webpack://fxparser/./src/util.js","webpack://fxparser/./src/validator.js","webpack://fxparser/./src/xmlbuilder/json2xml.js","webpack://fxparser/./src/xmlbuilder/orderedJs2Xml.js","webpack://fxparser/./src/xmlparser/OptionsBuilder.js","webpack://fxparser/./src/xmlparser/OrderedObjParser.js","webpack://fxparser/./src/xmlparser/XMLParser.js","webpack://fxparser/./src/xmlparser/node2json.js","webpack://fxparser/./src/xmlparser/xmlNode.js"],"names":["exports","endianness","hostname","location","loadavg","uptime","freemem","Number","MAX_VALUE","totalmem","cpus","type","release","navigator","appVersion","networkInterfaces","getNetworkInterfaces","arch","platform","tmpdir","tmpDir","EOL","homedir","hexRegex","numRegex","consider","hex","leadingZeros","decimalPoint","toNumber","str","options","Object","assign","trimmedStr","trim","skipLike","undefined","test","parseInt","match","exec","negative","num","eNotation","length","module","validator","require","XMLParser","XMLBuilder","XMLValidator","nameStartChar","nameChar","nameRegexp","regexName","RegExp","getAllMatches","string","regex","matches","allmatches","startIndex","lastIndex","len","index","push","isName","isExist","v","isEmptyObject","obj","keys","merge","target","a","arrayMode","i","getValue","buildOptions","defaultOptions","props","newOptions","util","allowBooleanAttributes","validate","xmlData","tags","tagFound","reachedRoot","substr","readPI","err","tagStartPos","readCommentAndCDATA","closingTag","tagName","substring","validateTagName","msg","getErrorObject","getLineNumberForPosition","result","readAttributeStr","attrStr","value","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","pop","openPos","col","afterAmp","validateAmpersand","isWhiteSpace","JSON","stringify","map","t","replace","char","start","tagname","angleBracketsCount","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","hasOwnProperty","validateNumberAmpersand","re","count","message","lineNumber","lines","split","buildFromOrderedJs","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","cdataTagName","format","indentBy","suppressEmptyNode","tagValueProcessor","key","attributeValueProcessor","preserveOrder","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","prototype","build","jObj","Array","isArray","arrayNodeName","j2x","val","level","Date","attr","arrLen","j","item","Ks","L","object","indexOf","repeat","name","startsWith","toXml","arrToStr","arr","xmlStr","indentation","tagObj","propName","attStr","attr_to_str","attributes","tagStart","tagValue","attrMap","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","numberParseOptions","stopNodes","alwaysCreateTextNode","xmlNode","regx","window","parseFloat","parseValue","jPath","dontTrim","hasAttributes","isLeafNode","newval","_parseValue","trimmedVal","resolveNameSpace","prefix","charAt","shouldParse","attrsRegx","buildAttributesMap","attrs","oldVal","aName","newVal","attrCollection","parseToOrderedJsObj","xmlObj","currentNode","textData","tagsNodeStack","ch","closeIndex","findClosingIndex","colonIndex","attrsMap","child","add","isItStopNode","top","stopNode","lastIndexOf","tagExp","tagExpWithClosingIndex","data","separatorIndex","search","shouldBuildAttributesMap","childNode","addChild","currentTagName","matchingStopNodes","forEach","node","attrBoundary","errMsg","closingIndex","Error","prettify","parse","validationOption","toString","orderedResult","compress","text","compressedObj","property","newJpath","isLeaf","isLeafTag","assignAttributes","jpath","atrrName","propCount","XmlNode"],"mappings":"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","file":"./lib/fxparser.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/fxp.js\");\n","exports.endianness = function () { return 'LE' };\n\nexports.hostname = function () {\n if (typeof location !== 'undefined') {\n return location.hostname\n }\n else return '';\n};\n\nexports.loadavg = function () { return [] };\n\nexports.uptime = function () { return 0 };\n\nexports.freemem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.totalmem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.cpus = function () { return [] };\n\nexports.type = function () { return 'Browser' };\n\nexports.release = function () {\n if (typeof navigator !== 'undefined') {\n return navigator.appVersion;\n }\n return '';\n};\n\nexports.networkInterfaces\n= exports.getNetworkInterfaces\n= function () { return {} };\n\nexports.arch = function () { return 'javascript' };\n\nexports.platform = function () { return 'browser' };\n\nexports.tmpdir = exports.tmpDir = function () {\n return '/tmp';\n};\n\nexports.EOL = '\\n';\n\nexports.homedir = function () {\n\treturn '/'\n};\n","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\nconst consider = {\n hex : true,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n // const options = Object.assign({}, consider);\n // if(opt.leadingZeros === false){\n // options.leadingZeros = false;\n // }else if(opt.hex === false){\n // options.hex = false;\n // }\n\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n \n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n // } else if (options.parseOct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n if(match){\n const negative = match[1];\n const leadingZeros = match[2];\n const num = match[3]; //complete num\n const eNotation = match[4] || match[6];\n if(leadingZeros.length === 1 && num[0] === \".\") return Number(str);\n else if(!options.leadingZeros && leadingZeros.length > 0) return str;\n else return Number(trimmedStr);\n }else{ //non-numeric string\n return str;\n }\n }\n}\n\nmodule.exports = toNumber\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}","'use strict';\n\nconst nameStartChar = ':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 nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nconst buildOptions = function(options, defaultOptions, props) {\n let newOptions = {};\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (let i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n return newOptions;\n};\n\nexports.buildOptions = buildOptions;\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n};\n\nconst props = ['allowBooleanAttributes'];\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = util.buildOptions(options, defaultOptions, props);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nconst buildOptions = require('../util').buildOptions;\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataTagName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false\n};\n\nconst props = [\n 'attributeNamePrefix',\n 'attributesGroupName',\n 'textNodeName',\n 'ignoreAttributes',\n 'cdataTagName',\n 'format',\n 'indentBy',\n 'suppressEmptyNode',\n 'tagValueProcessor',\n 'attributeValueProcessor',\n 'arrayNodeName', //when array as root\n 'preserveOrder',\n // 'rootNodeName', //when jsObject have multiple properties on root level\n];\n\nfunction Builder(options) {\n this.options = buildOptions(options, defaultOptions, props);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n\n if (this.options.suppressEmptyNode) {\n this.buildTextNode = buildEmptyTextNode;\n this.buildObjNode = buildEmptyObjNode;\n } else {\n this.buildTextNode = buildTextValNode;\n this.buildObjNode = buildObjectNode;\n }\n\n this.buildTextValNode = buildTextValNode;\n this.buildObjectNode = buildObjectNode;\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += ' ' + attr + '=\"' + this.options.attributeValueProcessor(attr, '' + jObj[key]) + '\"';\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n val += this.options.tagValueProcessor(key, '' + jObj[key]);\n } else {\n val += this.buildTextNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n val += this.processTextOrObjNode(item, key, level)\n } else {\n val += this.buildTextNode(item, key, '', level);\n }\n }\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += ' ' + Ks[j] + '=\"' + this.options.attributeValueProcessor(Ks[j], '' + jObj[key][Ks[j]]) + '\"';\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextNode(result.val, key, result.attrStr, level);\n } else {\n return this.buildObjNode(result.val, key, result.attrStr, level);\n }\n}\n\nfunction buildObjectNode(val, key, attrStr, level) {\n if (attrStr && val.indexOf('<') === -1) {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n '>' +\n val +\n //+ this.newLine\n // + this.indentate(level)\n '' +\n this.options.tagValueProcessor(key, val) +\n ' 0){//TODO: this logic can be avoided for each call\n indentation = EOL + \"\" + options.indentBy.repeat(level);\n }\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n\n if(tagName === options.textNodeName){\n xmlStr += indentation + options.tagValueProcessor( tagName, tagObj[tagName]);\n continue;\n }else if( tagName === options.cdataTagName){\n xmlStr += indentation + ``;\n continue;\n }\n const attStr = attr_to_str(tagObj.attributes, options);\n let tagStart = indentation + `<${tagName}${attStr}`;\n let tagValue = arrToStr(tagObj[tagName], options, level + 1);\n if( (!tagValue || tagValue.length === 0) && options.suppressEmptyNode){ \n xmlStr += tagStart + \"/>\"; \n }else{ \n //TODO: node with only text value should not parse the text value in next line\n xmlStr += tagStart + `>${tagValue}${indentation}` ;\n }\n }\n \n return xmlStr;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \"attributes\") return key;\n }\n }\n\nfunction attr_to_str(attrMap, options){\n let attrStr = \"\";\n if(attrMap && !options.ignoreAttributes){\n for( attr in attrMap){\n attrStr+= ` ${attr.substr(options.attributeNamePrefix.length)}=\"${options.attributeValueProcessor(attr, attrMap[attr])}\"`;\n }\n }\n return attrStr;\n}\n\nmodule.exports = toXml;","\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataTagName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false\n};\n \nconst props = [\n 'preserveOrder',\n 'attributeNamePrefix',\n 'attributesGroupName',\n 'textNodeName',\n 'ignoreAttributes',\n 'removeNSPrefix',\n 'allowBooleanAttributes',\n 'parseTagValue',\n 'parseAttributeValue',\n 'trimValues',\n 'cdataTagName',\n 'tagValueProcessor',\n 'attributeValueProcessor',\n 'numberParseOptions',\n 'stopNodes',\n 'alwaysCreateTextNode',\n 'isArray',\n];\n \nconst util = require('../util');\n\nconst buildOptions = function(options) {\n return util.buildOptions(options, defaultOptions, props);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;\nexports.props = props;","'use strict';\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\n\n/**\n * @param {string} val\n * @param {object} options\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n */\nfunction parseValue(val, options, tagName, jPath, dontTrim, hasAttributes, isLeafNode) {\n if (val !== undefined) {\n if (options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n const newval = options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(options.trimValues){\n return _parseValue(val, options.parseTagValue, options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return _parseValue(val, options.parseTagValue, options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\nfunction _parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = resolveNameSpace(matches[i][1], options);\n let oldVal = matches[i][4];\n const aName = options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (oldVal !== undefined) {\n if (options.trimValues) {\n oldVal = oldVal.trim();\n }\n \n const newVal = options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = _parseValue(\n oldVal,\n options.parseAttributeValue,\n options.numberParseOptions\n );\n }\n } else if (options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\n\nconst parseToOrderedJsObj = function(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n const tagsNodeStack = [];\n let jPath = \"\";\n\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n \n if(currentNode){\n textData = parseValue(textData\n , options\n , currentNode.tagname\n , jPath\n ,false\n , currentNode.attrsMap ? Object.keys(currentNode.attrsMap).length !== 0 : false\n , Object.keys(currentNode.child).length === 0);\n if(textData !== undefined && textData !== \"\") currentNode.add(options.textNodeName, textData);\n textData = \"\";\n }\n\n if (isItStopNode(options.stopNodes, tagsNodeStack, currentNode.tagname)) { //TODO: namespace\n const top = tagsNodeStack[tagsNodeStack.length - 1];\n const stopNode = top.child[ top.child.length -1 ];\n stopNode[currentNode.tagname] = [ { [options.textNodeName] :xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1) }];\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n \n currentNode = tagsNodeStack.pop();//avoid recurssion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\")\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n i = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\")\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\")\n const tagExp = xmlData.substring(i, closeIndex);\n if(tagExp.indexOf(\"[\") >= 0){\n i = xmlData.indexOf(\"]>\", i) + 1;\n }else{\n i = closeIndex;\n }\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n if(textData){ //store previously collected data as textNode\n textData = parseValue(textData\n , options\n , currentNode.tagname\n , jPath\n ,false\n , currentNode.attrsMap ? Object.keys(currentNode.attrsMap).length !== 0 : false\n , Object.keys(currentNode.child).length === 0);\n\n if(textData !== undefined && textData !== \"\") currentNode.add(options.textNodeName, textData);\n textData = \"\";\n }\n\n //cdata should be set even if it is 0 length string\n if(options.cdataTagName){\n let val = parseValue(tagExp, options, options.cdataTagName, jPath + \".\" + options.cdataTagName, true, false, true);\n if(!val) val = \"\";\n currentNode.add(options.cdataTagName, [ { [options.textNodeName] : val } ]);\n }else{\n let val = parseValue(tagExp, options, currentNode.tagname, jPath, true, false, true);\n if(!val) val = \"\";\n currentNode.add(options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n const result = tagExpWithClosingIndex(xmlData, i+1)\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let shouldBuildAttributesMap = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n shouldBuildAttributesMap = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = parseValue(textData\n , options\n , currentNode.tagname\n , jPath\n , false\n , currentNode.attrsMap ? Object.keys(currentNode.attrsMap).length !== 0 : false\n , false);\n if(textData !== undefined && textData !== \"\") currentNode.add(options.textNodeName, textData);\n textData = \"\";\n }\n }\n\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){//selfClosing tag\n \n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, jPath , options);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n // tagsNodeStack.push(currentNode);\n currentNode.addChild(childNode);\n }else{//opening tag\n \n const childNode = new xmlNode( tagName);\n tagsNodeStack.push(currentNode);\n \n childNode.startIndex=closeIndex; //for further processing\n \n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, jPath, options);\n }\n currentNode.addChild(childNode);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child[0];\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {XmlNode[]} tagsNodeStack \n */\nfunction isItStopNode(stopNodes, tagsNodeStack, currentTagName){\n const matchingStopNodes = [];\n //filter the list of stopNodes as per current tag\n stopNodes.forEach( jPath => {\n if( jPath.substr( jPath.length - currentTagName.length) === currentTagName) matchingStopNodes.push(jPath);\n });\n\n if(matchingStopNodes.length > 0){\n let jPath = \"\";\n for (let i = 1; i < tagsNodeStack.length; i++) {\n const node = tagsNodeStack[i];\n jPath += \".\" + node.tagname;\n }\n jPath += \".\" + currentTagName;\n jPath = jPath.substr(1);\n for (let i = 0; i < matchingStopNodes.length; i++) {\n if(matchingStopNodes[i] === jPath) return true;\n }\n }else return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-dobule quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nexports.parseToOrderedJsObj = parseToOrderedJsObj;\n","const { buildOptions} = require(\"./OptionsBuilder\");\nconst { parseToOrderedJsObj} = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n constructor(options){\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedResult = parseToOrderedJsObj(xmlData, this.options);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n}\n\nmodule.exports = XMLParser;","'use strict';\n\nfunction prettify(node, options){\n return compress( [node], options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj.attributes){\n assignAttributes( val, tagObj.attributes, newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \"attributes\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const propCount = Object.keys(obj).length;\n if( propCount === 0 || (propCount === 1 && obj[options.textNodeName]) ) return true;\n return false;\n}\nexports.prettify = prettify;\n","'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this.attrsMap = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.attrsMap && Object.keys(node.attrsMap).length > 0){\n this.child.push( { [node.tagname]: node.child, attributes: node.attrsMap });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://fxparser/webpack/bootstrap","webpack://fxparser/./node_modules/os-browserify/browser.js","webpack://fxparser/./node_modules/strnum/strnum.js","webpack://fxparser/./src/fxp.js","webpack://fxparser/./src/util.js","webpack://fxparser/./src/validator.js","webpack://fxparser/./src/xmlbuilder/json2xml.js","webpack://fxparser/./src/xmlbuilder/orderedJs2Xml.js","webpack://fxparser/./src/xmlparser/OptionsBuilder.js","webpack://fxparser/./src/xmlparser/OrderedObjParser.js","webpack://fxparser/./src/xmlparser/XMLParser.js","webpack://fxparser/./src/xmlparser/node2json.js","webpack://fxparser/./src/xmlparser/xmlNode.js"],"names":["exports","endianness","hostname","location","loadavg","uptime","freemem","Number","MAX_VALUE","totalmem","cpus","type","release","navigator","appVersion","networkInterfaces","getNetworkInterfaces","arch","platform","tmpdir","tmpDir","EOL","homedir","hexRegex","numRegex","consider","hex","leadingZeros","decimalPoint","toNumber","str","options","Object","assign","trimmedStr","trim","skipLike","undefined","test","parseInt","match","exec","negative","num","eNotation","length","module","validator","require","XMLParser","XMLBuilder","XMLValidator","nameStartChar","nameChar","nameRegexp","regexName","RegExp","getAllMatches","string","regex","matches","allmatches","startIndex","lastIndex","len","index","push","isName","isExist","v","isEmptyObject","obj","keys","merge","target","a","arrayMode","i","getValue","buildOptions","defaultOptions","props","newOptions","util","allowBooleanAttributes","validate","xmlData","tags","tagFound","reachedRoot","substr","readPI","err","tagStartPos","readCommentAndCDATA","closingTag","tagName","substring","validateTagName","msg","getErrorObject","getLineNumberForPosition","result","readAttributeStr","attrStr","value","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","pop","openPos","col","afterAmp","validateAmpersand","isWhiteSpace","JSON","stringify","map","t","replace","char","start","tagname","angleBracketsCount","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","hasOwnProperty","validateNumberAmpersand","re","count","message","lineNumber","lines","split","buildFromOrderedJs","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","cdataPropName","format","indentBy","suppressEmptyNode","tagValueProcessor","key","attributeValueProcessor","preserveOrder","commentPropName","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","prototype","build","jObj","Array","isArray","arrayNodeName","j2x","val","level","Date","attr","arrLen","j","item","Ks","L","object","indexOf","repeat","name","startsWith","toXml","jArray","arrToStr","arr","xmlStr","indentation","tagObj","propName","attStr","attr_to_str","attributes","tagStart","tagValue","attrMap","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","numberParseOptions","stopNodes","alwaysCreateTextNode","xmlNode","regx","window","parseFloat","parseValue","jPath","dontTrim","hasAttributes","isLeafNode","newval","_parseValue","trimmedVal","resolveNameSpace","prefix","charAt","shouldParse","attrsRegx","buildAttributesMap","attrs","oldVal","aName","newVal","attrCollection","parseToOrderedJsObj","xmlObj","currentNode","textData","tagsNodeStack","ch","closeIndex","findClosingIndex","colonIndex","attrsMap","child","add","isItStopNode","top","stopNode","lastIndexOf","endIndex","comment","tagExp","tagExpWithClosingIndex","data","separatorIndex","search","shouldBuildAttributesMap","childNode","addChild","currentTagName","matchingStopNodes","forEach","node","attrBoundary","errMsg","closingIndex","Error","prettify","parse","validationOption","toString","orderedResult","compress","text","compressedObj","property","newJpath","isLeaf","isLeafTag","assignAttributes","jpath","atrrName","propCount","XmlNode"],"mappings":"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","file":"./lib/fxparser.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/fxp.js\");\n","exports.endianness = function () { return 'LE' };\n\nexports.hostname = function () {\n if (typeof location !== 'undefined') {\n return location.hostname\n }\n else return '';\n};\n\nexports.loadavg = function () { return [] };\n\nexports.uptime = function () { return 0 };\n\nexports.freemem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.totalmem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.cpus = function () { return [] };\n\nexports.type = function () { return 'Browser' };\n\nexports.release = function () {\n if (typeof navigator !== 'undefined') {\n return navigator.appVersion;\n }\n return '';\n};\n\nexports.networkInterfaces\n= exports.getNetworkInterfaces\n= function () { return {} };\n\nexports.arch = function () { return 'javascript' };\n\nexports.platform = function () { return 'browser' };\n\nexports.tmpdir = exports.tmpDir = function () {\n return '/tmp';\n};\n\nexports.EOL = '\\n';\n\nexports.homedir = function () {\n\treturn '/'\n};\n","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\nconst consider = {\n hex : true,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n // const options = Object.assign({}, consider);\n // if(opt.leadingZeros === false){\n // options.leadingZeros = false;\n // }else if(opt.hex === false){\n // options.hex = false;\n // }\n\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n \n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n // } else if (options.parseOct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n if(match){\n const negative = match[1];\n const leadingZeros = match[2];\n const num = match[3]; //complete num\n const eNotation = match[4] || match[6];\n if(leadingZeros.length === 1 && num[0] === \".\") return Number(str);\n else if(!options.leadingZeros && leadingZeros.length > 0) return str;\n else return Number(trimmedStr);\n }else{ //non-numeric string\n return str;\n }\n }\n}\n\nmodule.exports = toNumber\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}","'use strict';\n\nconst nameStartChar = ':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 nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nconst buildOptions = function(options, defaultOptions, props) {\n let newOptions = {};\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (let i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n return newOptions;\n};\n\nexports.buildOptions = buildOptions;\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n};\n\nconst props = ['allowBooleanAttributes'];\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = util.buildOptions(options, defaultOptions, props);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nconst buildOptions = require('../util').buildOptions;\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false\n};\n\nconst props = [\n 'attributeNamePrefix',\n 'attributesGroupName',\n 'textNodeName',\n 'ignoreAttributes',\n 'cdataPropName',\n 'format',\n 'indentBy',\n 'suppressEmptyNode',\n 'tagValueProcessor',\n 'attributeValueProcessor',\n 'arrayNodeName', //when array as root\n 'preserveOrder',\n \"commentPropName\",\n // 'rootNodeName', //when jsObject have multiple properties on root level\n];\n\nfunction Builder(options) {\n this.options = buildOptions(options, defaultOptions, props);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n\n if (this.options.suppressEmptyNode) {\n this.buildTextNode = buildEmptyTextNode;\n this.buildObjNode = buildEmptyObjNode;\n } else {\n this.buildTextNode = buildTextValNode;\n this.buildObjNode = buildObjectNode;\n }\n\n this.buildTextValNode = buildTextValNode;\n this.buildObjectNode = buildObjectNode;\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += ' ' + attr + '=\"' + this.options.attributeValueProcessor(attr, '' + jObj[key]) + '\"';\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n val += this.options.tagValueProcessor(key, '' + jObj[key]);\n } else {\n val += this.buildTextNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n val += this.processTextOrObjNode(item, key, level)\n } else {\n val += this.buildTextNode(item, key, '', level);\n }\n }\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += ' ' + Ks[j] + '=\"' + this.options.attributeValueProcessor(Ks[j], '' + jObj[key][Ks[j]]) + '\"';\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextNode(result.val, key, result.attrStr, level);\n } else {\n return this.buildObjNode(result.val, key, result.attrStr, level);\n }\n}\n\nfunction buildObjectNode(val, key, attrStr, level) {\n if (attrStr && val.indexOf('<') === -1) {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n '>' +\n val +\n //+ this.newLine\n // + this.indentate(level)\n '' +\n this.options.tagValueProcessor(key, val) +\n ' 0){//TODO: this logic can be avoided for each call\n indentation = EOL + \"\" + options.indentBy.repeat(level);\n }\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n\n if(tagName === options.textNodeName){\n xmlStr += indentation + options.tagValueProcessor( tagName, tagObj[tagName]);\n continue;\n }else if( tagName === options.cdataPropName){\n xmlStr += indentation + ``;\n continue;\n }else if( tagName === options.commentPropName){\n xmlStr += indentation + ``;\n continue;\n }\n const attStr = attr_to_str(tagObj.attributes, options);\n let tagStart = indentation + `<${tagName}${attStr}`;\n let tagValue = arrToStr(tagObj[tagName], options, level + 1);\n if( (!tagValue || tagValue.length === 0) && options.suppressEmptyNode){ \n xmlStr += tagStart + \"/>\"; \n }else{ \n //TODO: node with only text value should not parse the text value in next line\n xmlStr += tagStart + `>${tagValue}${indentation}` ;\n }\n }\n \n return xmlStr;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \"attributes\") return key;\n }\n }\n\nfunction attr_to_str(attrMap, options){\n let attrStr = \"\";\n if(attrMap && !options.ignoreAttributes){\n for( attr in attrMap){\n attrStr+= ` ${attr.substr(options.attributeNamePrefix.length)}=\"${options.attributeValueProcessor(attr, attrMap[attr])}\"`;\n }\n }\n return attrStr;\n}\n\nmodule.exports = toXml;","\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n};\n \nconst props = [\n 'preserveOrder',\n 'attributeNamePrefix',\n 'attributesGroupName',\n 'textNodeName',\n 'ignoreAttributes',\n 'removeNSPrefix',\n 'allowBooleanAttributes',\n 'parseTagValue',\n 'parseAttributeValue',\n 'trimValues',\n 'cdataPropName',\n 'tagValueProcessor',\n 'attributeValueProcessor',\n 'numberParseOptions',\n 'stopNodes',\n 'alwaysCreateTextNode',\n 'isArray',\n 'commentPropName'\n];\n \nconst util = require('../util');\n\nconst buildOptions = function(options) {\n return util.buildOptions(options, defaultOptions, props);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;\nexports.props = props;","'use strict';\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\n\n/**\n * @param {string} val\n * @param {object} options\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n */\nfunction parseValue(val, options, tagName, jPath, dontTrim, hasAttributes, isLeafNode) {\n if (val !== undefined) {\n if (options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n const newval = options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(options.trimValues){\n return _parseValue(val, options.parseTagValue, options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return _parseValue(val, options.parseTagValue, options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\nfunction _parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = resolveNameSpace(matches[i][1], options);\n let oldVal = matches[i][4];\n const aName = options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (oldVal !== undefined) {\n if (options.trimValues) {\n oldVal = oldVal.trim();\n }\n \n const newVal = options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = _parseValue(\n oldVal,\n options.parseAttributeValue,\n options.numberParseOptions\n );\n }\n } else if (options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\n\nconst parseToOrderedJsObj = function(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n const tagsNodeStack = [];\n let jPath = \"\";\n\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n \n if(currentNode){\n textData = parseValue(textData\n , options\n , currentNode.tagname\n , jPath\n ,false\n , currentNode.attrsMap ? Object.keys(currentNode.attrsMap).length !== 0 : false\n , Object.keys(currentNode.child).length === 0);\n if(textData !== undefined && textData !== \"\") currentNode.add(options.textNodeName, textData);\n textData = \"\";\n }\n\n if (isItStopNode(options.stopNodes, tagsNodeStack, currentNode.tagname)) { //TODO: namespace\n const top = tagsNodeStack[tagsNodeStack.length - 1];\n const stopNode = top.child[ top.child.length -1 ];\n stopNode[currentNode.tagname] = [ { [options.textNodeName] :xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1) }];\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n \n currentNode = tagsNodeStack.pop();//avoid recurssion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\")\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\")\n if(options.commentPropName){\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n //TODO: remove repeated code\n if(textData){ //store previously collected data as textNode\n textData = parseValue(textData\n , options\n , currentNode.tagname\n , jPath\n ,false\n , currentNode.attrsMap ? Object.keys(currentNode.attrsMap).length !== 0 : false\n , Object.keys(currentNode.child).length === 0);\n \n if(textData !== undefined && textData !== \"\") currentNode.add(options.textNodeName, textData);\n textData = \"\";\n }\n currentNode.add(options.commentPropName, [ { [options.textNodeName] : comment } ]);\n }\n i = endIndex;\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\")\n const tagExp = xmlData.substring(i, closeIndex);\n if(tagExp.indexOf(\"[\") >= 0){\n i = xmlData.indexOf(\"]>\", i) + 1;\n }else{\n i = closeIndex;\n }\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n if(textData){ //store previously collected data as textNode\n textData = parseValue(textData\n , options\n , currentNode.tagname\n , jPath\n ,false\n , currentNode.attrsMap ? Object.keys(currentNode.attrsMap).length !== 0 : false\n , Object.keys(currentNode.child).length === 0);\n\n if(textData !== undefined && textData !== \"\") currentNode.add(options.textNodeName, textData);\n textData = \"\";\n }\n\n //cdata should be set even if it is 0 length string\n if(options.cdataPropName){\n let val = parseValue(tagExp, options, options.cdataPropName, jPath + \".\" + options.cdataPropName, true, false, true);\n if(!val) val = \"\";\n currentNode.add(options.cdataPropName, [ { [options.textNodeName] : val } ]);\n }else{\n let val = parseValue(tagExp, options, currentNode.tagname, jPath, true, false, true);\n if(!val) val = \"\";\n currentNode.add(options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n const result = tagExpWithClosingIndex(xmlData, i+1)\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let shouldBuildAttributesMap = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n shouldBuildAttributesMap = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = parseValue(textData\n , options\n , currentNode.tagname\n , jPath\n , false\n , currentNode.attrsMap ? Object.keys(currentNode.attrsMap).length !== 0 : false\n , false);\n if(textData !== undefined && textData !== \"\") currentNode.add(options.textNodeName, textData);\n textData = \"\";\n }\n }\n\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){//selfClosing tag\n \n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, jPath , options);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n // tagsNodeStack.push(currentNode);\n currentNode.addChild(childNode);\n }else{//opening tag\n \n const childNode = new xmlNode( tagName);\n tagsNodeStack.push(currentNode);\n \n childNode.startIndex=closeIndex; //for further processing\n \n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, jPath, options);\n }\n currentNode.addChild(childNode);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {XmlNode[]} tagsNodeStack \n */\nfunction isItStopNode(stopNodes, tagsNodeStack, currentTagName){\n const matchingStopNodes = [];\n //filter the list of stopNodes as per current tag\n stopNodes.forEach( jPath => {\n if( jPath.substr( jPath.length - currentTagName.length) === currentTagName) matchingStopNodes.push(jPath);\n });\n\n if(matchingStopNodes.length > 0){\n let jPath = \"\";\n for (let i = 1; i < tagsNodeStack.length; i++) {\n const node = tagsNodeStack[i];\n jPath += \".\" + node.tagname;\n }\n jPath += \".\" + currentTagName;\n jPath = jPath.substr(1);\n for (let i = 0; i < matchingStopNodes.length; i++) {\n if(matchingStopNodes[i] === jPath) return true;\n }\n }else return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-dobule quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nexports.parseToOrderedJsObj = parseToOrderedJsObj;\n","const { buildOptions} = require(\"./OptionsBuilder\");\nconst { parseToOrderedJsObj} = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n constructor(options){\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedResult = parseToOrderedJsObj(xmlData, this.options);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n}\n\nmodule.exports = XMLParser;","'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj.attributes){\n assignAttributes( val, tagObj.attributes, newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \"attributes\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const propCount = Object.keys(obj).length;\n if( propCount === 0 || (propCount === 1 && obj[options.textNodeName]) ) return true;\n return false;\n}\nexports.prettify = prettify;\n","'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this.attrsMap = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.attrsMap && Object.keys(node.attrsMap).length > 0){\n this.child.push( { [node.tagname]: node.child, attributes: node.attrsMap });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/fxparser.min.js b/lib/fxparser.min.js index 81f4ff9d..697dace3 100644 --- a/lib/fxparser.min.js +++ b/lib/fxparser.min.js @@ -1,2 +1,2 @@ -var fxparser=function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=2)}([function(t,e,r){"use strict";var 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",i="["+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\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",a=new RegExp("^"+i+"$");e.isExist=function(t){return void 0!==t},e.isEmptyObject=function(t){return 0===Object.keys(t).length},e.merge=function(t,e,r){if(e)for(var n=Object.keys(e),i=n.length,a=0;a5&&"xml"===n)return h("InvalidXml","XML declaration allowed only at the start of the document.",p(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function u(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){var r=1;for(e+=8;e"===t[e]&&0===--r)break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}e.validate=function(t,e){e=n.buildOptions(e,i,a);var r,f=[],g=!1,b=!1;"\ufeff"===t[0]&&(t=t.substr(1));for(var v=0;v"!==t[v]&&" "!==t[v]&&"\t"!==t[v]&&"\n"!==t[v]&&"\r"!==t[v];v++)x+=t[v];if("/"===(x=x.trim())[x.length-1]&&(x=x.substring(0,x.length-1),v--),r=x,!n.isName(r)){return h("InvalidTag",0===x.trim().length?"Invalid space after '<'.":"Tag '"+x+"' is an invalid name.",p(t,v))}var y=l(t,v);if(!1===y)return h("InvalidAttr","Attributes for '"+x+"' have open quote.",p(t,v));var O=y.value;if(v=y.index,"/"===O[O.length-1]){var A=v-O.length,F=d(O=O.substring(0,O.length-1),e);if(!0!==F)return h(F.err.code,F.err.msg,p(t,A+F.err.line));g=!0}else if(N){if(!y.tagClosed)return h("InvalidTag","Closing tag '"+x+"' doesn't have proper closing.",p(t,v));if(O.trim().length>0)return h("InvalidTag","Closing tag '"+x+"' can't have attributes or invalid starting.",p(t,m));var P=f.pop();if(x!==P.tagName){var T=p(t,P.tagStartPos);return h("InvalidTag","Expected closing tag '"+P.tagName+"' (opened in line "+T.line+", col "+T.col+") instead of closing tag '"+x+"'.",p(t,m))}0==f.length&&(b=!0)}else{var j=d(O,e);if(!0!==j)return h(j.err.code,j.err.msg,p(t,v-O.length+j.err.line));if(!0===b)return h("InvalidXml","Multiple possible root nodes found.",p(t,v));f.push({tagName:x,tagStartPos:m}),g=!0}for(v++;v0)||h("InvalidXml","Invalid '"+JSON.stringify(f.map((function(t){return t.tagName})),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):h("InvalidXml","Start tag expected.",1)};function l(t,e){for(var r="",n="",i=!1;e"===t[e]&&""===n){i=!0;break}r+=t[e]}return""===n&&{value:r,index:e,tagClosed:i}}var f=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function d(t,e){for(var r=n.getAllMatches(t,f),i={},a=0;a))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,n.nameRegexp);function s(t,e,r,n,i,a,s){if(void 0!==t&&(e.trimValues&&!i&&(t=t.trim()),t.length>0)){var o=e.tagValueProcessor(r,t,n,a,s);return null==o?t:typeof o!=typeof t||o!==t?o:e.trimValues||t.trim()===t?u(t,e.parseTagValue,e.numberParseOptions):t}}function o(t,e){if(e.removeNSPrefix){var r=t.split(":"),n="/"===t.charAt(0)?"/":"";if("xmlns"===r[0])return"";2===r.length&&(t=n+r[1])}return t}function u(t,e,r){if(e&&"string"==typeof t){var i=t.trim();return"true"===i||"false"!==i&&a(t,r)}return n.isExist(t)?t:""}!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function f(t,e,r){if(!r.ignoreAttributes&&"string"==typeof t){for(var i=n.getAllMatches(t,l),a=i.length,s={},f=0;f0))return!1;for(var i="",a=1;a"===a)return{data:n,index:i};"\t"===a&&(a=" ")}n+=a}}function h(t,e,r,n){var i=t.indexOf(e,r);if(-1===i)throw new Error(n);return i+e.length-1}e.parseToOrderedJsObj=function(t,e){t=t.replace(/\r\n?/g,"\n");for(var r=new i("!xml"),n=r,a="",o=[],u="",l=0;l",l,"Closing Tag is not closed."),p=t.substring(l+2,g).trim();if(e.removeNSPrefix){var b=p.indexOf(":");-1!==b&&(p=p.substr(b+1))}if(n&&(void 0!==(a=s(a,e,n.tagname,u,!1,!!n.attrsMap&&0!==Object.keys(n.attrsMap).length,0===Object.keys(n.child).length))&&""!==a&&n.add(e.textNodeName,a),a=""),d(e.stopNodes,o,n.tagname)){var v,m=o[o.length-1];m.child[m.child.length-1][n.tagname]=[(v={},v[e.textNodeName]=t.substr(n.startIndex+1,l-n.startIndex-1),v)]}u=u.substr(0,u.lastIndexOf(".")),n=o.pop(),a="",l=g}else if("?"===t[l+1])l=h(t,"?>",l,"Pi Tag is not closed.");else if("!--"===t.substr(l+1,3))l=h(t,"--\x3e",l,"Comment is not closed.");else if("!D"===t.substr(l+1,2)){var N=h(t,">",l,"DOCTYPE is not closed.");l=t.substring(l,N).indexOf("[")>=0?t.indexOf("]>",l)+1:N}else if("!["===t.substr(l+1,2)){var x=h(t,"]]>",l,"CDATA is not closed.")-2,y=t.substring(l+9,x);if(a&&(void 0!==(a=s(a,e,n.tagname,u,!1,!!n.attrsMap&&0!==Object.keys(n.attrsMap).length,0===Object.keys(n.child).length))&&""!==a&&n.add(e.textNodeName,a),a=""),e.cdataTagName){var O,A=s(y,e,e.cdataTagName,u+"."+e.cdataTagName,!0,!1,!0);A||(A=""),n.add(e.cdataTagName,[(O={},O[e.textNodeName]=A,O)])}else{var F=s(y,e,n.tagname,u,!0,!1,!0);F||(F=""),n.add(e.textNodeName,F)}l=x+2}else{var P=c(t,l+1),T=P.data,j=P.index,E=T.search(/\s/),w=T,C=!0;if(-1!==E&&(w=T.substr(0,E).replace(/\s\s*$/,""),T=T.substr(E+1)),e.removeNSPrefix){var I=w.indexOf(":");-1!==I&&(C=(w=w.substr(I+1))!==P.data.substr(I+1))}if(n&&a&&"!xml"!==n.tagname&&(void 0!==(a=s(a,e,n.tagname,u,!1,!!n.attrsMap&&0!==Object.keys(n.attrsMap).length,!1))&&""!==a&&n.add(e.textNodeName,a),a=""),w!==r.tagname&&(u+=u?"."+w:w),T.length>0&&T.lastIndexOf("/")===T.length-1){T="/"===w[w.length-1]?w=w.substr(0,w.length-1):T.substr(0,T.length-1);var V=new i(w);w!==T&&C&&(V.attrsMap=f(T,u,e)),u=u.substr(0,u.lastIndexOf(".")),n.addChild(V)}else{var k=new i(w);o.push(n),k.startIndex=j,w!==T&&C&&(k.attrsMap=f(T,u,e)),n.addChild(k),n=k}a="",l=j}else a+=t[l]}return r.child[0]}},function(t,e,r){"use strict";var n=function(){function t(t){this.tagname=t,this.child=[],this.attrsMap={}}var e=t.prototype;return e.add=function(t,e){var r;this.child.push(((r={})[t]=e,r))},e.addChild=function(t){var e,r;t.attrsMap&&Object.keys(t.attrsMap).length>0?this.child.push(((e={})[t.tagname]=t.child,e.attributes=t.attrsMap,e)):this.child.push(((r={})[t.tagname]=t.child,r))},t}();t.exports=n},function(t,e){const r=/^[-+]?0x[a-fA-F0-9]+$/,n=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/,i={hex:!0,leadingZeros:!0,decimalPoint:"."};t.exports=function(t,e={}){if(e=Object.assign({},i,e),!t||"string"!=typeof t)return t;let a=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(a))return t;if(e.hex&&r.test(a))return Number.parseInt(a,16);{const r=n.exec(a);if(r){r[1];const n=r[2],i=r[3];r[4]||r[6];return 1===n.length&&"."===i[0]?Number(t):!e.leadingZeros&&n.length>0?t:Number(a)}return t}}},function(t,e,r){"use strict";function n(t){for(var e=Object.keys(t),r=0;r0&&(u[r.textNodeName]=o):void 0!==o&&(u[r.textNodeName]=o);return u}([t],e)}},function(t,e,r){"use strict";var n=r(0).buildOptions,i=r(10),a={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataTagName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1},s=["attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","cdataTagName","format","indentBy","suppressEmptyNode","tagValueProcessor","attributeValueProcessor","arrayNodeName","preserveOrder"];function o(t){this.options=n(t,a,s),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=g),this.processTextOrObjNode=u,this.options.format?(this.indentate=h,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine=""),this.options.suppressEmptyNode?(this.buildTextNode=c,this.buildObjNode=f):(this.buildTextNode=d,this.buildObjNode=l),this.buildTextValNode=d,this.buildObjectNode=l}function u(t,e,r){var n=this.j2x(t,r+1);return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextNode(n.val,e,n.attrStr,r):this.buildObjNode(n.val,e,n.attrStr,r)}function l(t,e,r,n){return r&&-1===t.indexOf("<")?this.indentate(n)+"<"+e+r+">"+t+""+this.options.tagValueProcessor(e,t)+"1&&((e={})[this.options.arrayNodeName]=t,t=e),this.j2x(t,0).val);var e},o.prototype.j2x=function(t,e){var r="",n="";for(var i in t)if(void 0===t[i]);else if(null===t[i])n+=this.indentate(e)+"<"+i+"/"+this.tagEndChar;else if(t[i]instanceof Date)n+=this.buildTextNode(t[i],i,"",e);else if("object"!=typeof t[i]){var a=this.isAttribute(i);a?r+=" "+a+'="'+this.options.attributeValueProcessor(a,""+t[i])+'"':i===this.options.textNodeName?n+=this.options.tagValueProcessor(i,""+t[i]):n+=this.buildTextNode(t[i],i,"",e)}else if(Array.isArray(t[i]))for(var s=t[i].length,o=0;o0&&(u=n+""+r.indentBy.repeat(s));for(var l=0;l"+g+u+"":o+=h+"/>"}else o+=u+"";else o+=u+r.tagValueProcessor(d,f[d])}return o}([t],e,0)}},function(t,e){e.endianness=function(){return"LE"},e.hostname=function(){return"undefined"!=typeof location?location.hostname:""},e.loadavg=function(){return[]},e.uptime=function(){return 0},e.freemem=function(){return Number.MAX_VALUE},e.totalmem=function(){return Number.MAX_VALUE},e.cpus=function(){return[]},e.type=function(){return"Browser"},e.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},e.networkInterfaces=e.getNetworkInterfaces=function(){return{}},e.arch=function(){return"javascript"},e.platform=function(){return"browser"},e.tmpdir=e.tmpDir=function(){return"/tmp"},e.EOL="\n",e.homedir=function(){return"/"}}]); +var fxparser=function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=2)}([function(t,e,r){"use strict";var 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",i="["+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\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",a=new RegExp("^"+i+"$");e.isExist=function(t){return void 0!==t},e.isEmptyObject=function(t){return 0===Object.keys(t).length},e.merge=function(t,e,r){if(e)for(var n=Object.keys(e),i=n.length,a=0;a5&&"xml"===n)return h("InvalidXml","XML declaration allowed only at the start of the document.",g(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function u(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){var r=1;for(e+=8;e"===t[e]&&0===--r)break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}e.validate=function(t,e){e=n.buildOptions(e,i,a);var r,f=[],p=!1,m=!1;"\ufeff"===t[0]&&(t=t.substr(1));for(var b=0;b"!==t[b]&&" "!==t[b]&&"\t"!==t[b]&&"\n"!==t[b]&&"\r"!==t[b];b++)x+=t[b];if("/"===(x=x.trim())[x.length-1]&&(x=x.substring(0,x.length-1),b--),r=x,!n.isName(r)){return h("InvalidTag",0===x.trim().length?"Invalid space after '<'.":"Tag '"+x+"' is an invalid name.",g(t,b))}var y=l(t,b);if(!1===y)return h("InvalidAttr","Attributes for '"+x+"' have open quote.",g(t,b));var O=y.value;if(b=y.index,"/"===O[O.length-1]){var P=b-O.length,A=d(O=O.substring(0,O.length-1),e);if(!0!==A)return h(A.err.code,A.err.msg,g(t,P+A.err.line));p=!0}else if(N){if(!y.tagClosed)return h("InvalidTag","Closing tag '"+x+"' doesn't have proper closing.",g(t,b));if(O.trim().length>0)return h("InvalidTag","Closing tag '"+x+"' can't have attributes or invalid starting.",g(t,v));var F=f.pop();if(x!==F.tagName){var j=g(t,F.tagStartPos);return h("InvalidTag","Expected closing tag '"+F.tagName+"' (opened in line "+j.line+", col "+j.col+") instead of closing tag '"+x+"'.",g(t,v))}0==f.length&&(m=!0)}else{var E=d(O,e);if(!0!==E)return h(E.err.code,E.err.msg,g(t,b-O.length+E.err.line));if(!0===m)return h("InvalidXml","Multiple possible root nodes found.",g(t,b));f.push({tagName:x,tagStartPos:v}),p=!0}for(b++;b0)||h("InvalidXml","Invalid '"+JSON.stringify(f.map((function(t){return t.tagName})),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):h("InvalidXml","Start tag expected.",1)};function l(t,e){for(var r="",n="",i=!1;e"===t[e]&&""===n){i=!0;break}r+=t[e]}return""===n&&{value:r,index:e,tagClosed:i}}var f=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function d(t,e){for(var r=n.getAllMatches(t,f),i={},a=0;a))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,n.nameRegexp);function o(t,e,r,n,i,a,o){if(void 0!==t&&(e.trimValues&&!i&&(t=t.trim()),t.length>0)){var s=e.tagValueProcessor(r,t,n,a,o);return null==s?t:typeof s!=typeof t||s!==t?s:e.trimValues||t.trim()===t?u(t,e.parseTagValue,e.numberParseOptions):t}}function s(t,e){if(e.removeNSPrefix){var r=t.split(":"),n="/"===t.charAt(0)?"/":"";if("xmlns"===r[0])return"";2===r.length&&(t=n+r[1])}return t}function u(t,e,r){if(e&&"string"==typeof t){var i=t.trim();return"true"===i||"false"!==i&&a(t,r)}return n.isExist(t)?t:""}!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function f(t,e,r){if(!r.ignoreAttributes&&"string"==typeof t){for(var i=n.getAllMatches(t,l),a=i.length,o={},f=0;f0))return!1;for(var i="",a=1;a"===a)return{data:n,index:i};"\t"===a&&(a=" ")}n+=a}}function h(t,e,r,n){var i=t.indexOf(e,r);if(-1===i)throw new Error(n);return i+e.length-1}e.parseToOrderedJsObj=function(t,e){t=t.replace(/\r\n?/g,"\n");for(var r=new i("!xml"),n=r,a="",s=[],u="",l=0;l",l,"Closing Tag is not closed."),g=t.substring(l+2,p).trim();if(e.removeNSPrefix){var m=g.indexOf(":");-1!==m&&(g=g.substr(m+1))}if(n&&(void 0!==(a=o(a,e,n.tagname,u,!1,!!n.attrsMap&&0!==Object.keys(n.attrsMap).length,0===Object.keys(n.child).length))&&""!==a&&n.add(e.textNodeName,a),a=""),d(e.stopNodes,s,n.tagname)){var b,v=s[s.length-1];v.child[v.child.length-1][n.tagname]=[(b={},b[e.textNodeName]=t.substr(n.startIndex+1,l-n.startIndex-1),b)]}u=u.substr(0,u.lastIndexOf(".")),n=s.pop(),a="",l=p}else if("?"===t[l+1])l=h(t,"?>",l,"Pi Tag is not closed.");else if("!--"===t.substr(l+1,3)){var N=h(t,"--\x3e",l,"Comment is not closed.");if(e.commentPropName){var x,y=t.substring(l+4,N-2);a&&(void 0!==(a=o(a,e,n.tagname,u,!1,!!n.attrsMap&&0!==Object.keys(n.attrsMap).length,0===Object.keys(n.child).length))&&""!==a&&n.add(e.textNodeName,a),a=""),n.add(e.commentPropName,[(x={},x[e.textNodeName]=y,x)])}l=N}else if("!D"===t.substr(l+1,2)){var O=h(t,">",l,"DOCTYPE is not closed.");l=t.substring(l,O).indexOf("[")>=0?t.indexOf("]>",l)+1:O}else if("!["===t.substr(l+1,2)){var P=h(t,"]]>",l,"CDATA is not closed.")-2,A=t.substring(l+9,P);if(a&&(void 0!==(a=o(a,e,n.tagname,u,!1,!!n.attrsMap&&0!==Object.keys(n.attrsMap).length,0===Object.keys(n.child).length))&&""!==a&&n.add(e.textNodeName,a),a=""),e.cdataPropName){var F,j=o(A,e,e.cdataPropName,u+"."+e.cdataPropName,!0,!1,!0);j||(j=""),n.add(e.cdataPropName,[(F={},F[e.textNodeName]=j,F)])}else{var E=o(A,e,n.tagname,u,!0,!1,!0);E||(E=""),n.add(e.textNodeName,E)}l=P+2}else{var w=c(t,l+1),C=w.data,T=w.index,I=C.search(/\s/),V=C,k=!0;if(-1!==I&&(V=C.substr(0,I).replace(/\s\s*$/,""),C=C.substr(I+1)),e.removeNSPrefix){var M=V.indexOf(":");-1!==M&&(k=(V=V.substr(M+1))!==w.data.substr(M+1))}if(n&&a&&"!xml"!==n.tagname&&(void 0!==(a=o(a,e,n.tagname,u,!1,!!n.attrsMap&&0!==Object.keys(n.attrsMap).length,!1))&&""!==a&&n.add(e.textNodeName,a),a=""),V!==r.tagname&&(u+=u?"."+V:V),C.length>0&&C.lastIndexOf("/")===C.length-1){C="/"===V[V.length-1]?V=V.substr(0,V.length-1):C.substr(0,C.length-1);var D=new i(V);V!==C&&k&&(D.attrsMap=f(C,u,e)),u=u.substr(0,u.lastIndexOf(".")),n.addChild(D)}else{var S=new i(V);s.push(n),S.startIndex=T,V!==C&&k&&(S.attrsMap=f(C,u,e)),n.addChild(S),n=S}a="",l=T}else a+=t[l]}return r.child}},function(t,e,r){"use strict";var n=function(){function t(t){this.tagname=t,this.child=[],this.attrsMap={}}var e=t.prototype;return e.add=function(t,e){var r;this.child.push(((r={})[t]=e,r))},e.addChild=function(t){var e,r;t.attrsMap&&Object.keys(t.attrsMap).length>0?this.child.push(((e={})[t.tagname]=t.child,e.attributes=t.attrsMap,e)):this.child.push(((r={})[t.tagname]=t.child,r))},t}();t.exports=n},function(t,e){const r=/^[-+]?0x[a-fA-F0-9]+$/,n=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/,i={hex:!0,leadingZeros:!0,decimalPoint:"."};t.exports=function(t,e={}){if(e=Object.assign({},i,e),!t||"string"!=typeof t)return t;let a=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(a))return t;if(e.hex&&r.test(a))return Number.parseInt(a,16);{const r=n.exec(a);if(r){r[1];const n=r[2],i=r[3];r[4]||r[6];return 1===n.length&&"."===i[0]?Number(t):!e.leadingZeros&&n.length>0?t:Number(a)}return t}}},function(t,e,r){"use strict";function n(t){for(var e=Object.keys(t),r=0;r0&&(u[r.textNodeName]=s):void 0!==s&&(u[r.textNodeName]=s);return u}(t,e)}},function(t,e,r){"use strict";var n=r(0).buildOptions,i=r(10),a={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1},o=["attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","cdataPropName","format","indentBy","suppressEmptyNode","tagValueProcessor","attributeValueProcessor","arrayNodeName","preserveOrder","commentPropName"];function s(t){this.options=n(t,a,o),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=p),this.processTextOrObjNode=u,this.options.format?(this.indentate=h,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine=""),this.options.suppressEmptyNode?(this.buildTextNode=c,this.buildObjNode=f):(this.buildTextNode=d,this.buildObjNode=l),this.buildTextValNode=d,this.buildObjectNode=l}function u(t,e,r){var n=this.j2x(t,r+1);return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextNode(n.val,e,n.attrStr,r):this.buildObjNode(n.val,e,n.attrStr,r)}function l(t,e,r,n){return r&&-1===t.indexOf("<")?this.indentate(n)+"<"+e+r+">"+t+""+this.options.tagValueProcessor(e,t)+"1&&((e={})[this.options.arrayNodeName]=t,t=e),this.j2x(t,0).val);var e},s.prototype.j2x=function(t,e){var r="",n="";for(var i in t)if(void 0===t[i]);else if(null===t[i])n+=this.indentate(e)+"<"+i+"/"+this.tagEndChar;else if(t[i]instanceof Date)n+=this.buildTextNode(t[i],i,"",e);else if("object"!=typeof t[i]){var a=this.isAttribute(i);a?r+=" "+a+'="'+this.options.attributeValueProcessor(a,""+t[i])+'"':i===this.options.textNodeName?n+=this.options.tagValueProcessor(i,""+t[i]):n+=this.buildTextNode(t[i],i,"",e)}else if(Array.isArray(t[i]))for(var o=t[i].length,s=0;s0&&(u=n+""+r.indentBy.repeat(o));for(var l=0;l"+p+u+"":s+=h+"/>"}else s+=u+"\x3c!--"+f[d][0][r.textNodeName]+"--\x3e";else s+=u+"";else s+=u+r.tagValueProcessor(d,f[d])}return s}(t,e,0)}},function(t,e){e.endianness=function(){return"LE"},e.hostname=function(){return"undefined"!=typeof location?location.hostname:""},e.loadavg=function(){return[]},e.uptime=function(){return 0},e.freemem=function(){return Number.MAX_VALUE},e.totalmem=function(){return Number.MAX_VALUE},e.cpus=function(){return[]},e.type=function(){return"Browser"},e.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},e.networkInterfaces=e.getNetworkInterfaces=function(){return{}},e.arch=function(){return"javascript"},e.platform=function(){return"browser"},e.tmpdir=e.tmpDir=function(){return"/tmp"},e.EOL="\n",e.homedir=function(){return"/"}}]); //# sourceMappingURL=fxparser.min.js.map \ No newline at end of file diff --git a/lib/fxparser.min.js.map b/lib/fxparser.min.js.map index b6c41619..fc9d74fc 100644 --- a/lib/fxparser.min.js.map +++ b/lib/fxparser.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://fxparser/lib/fxparser.min.js"],"names":["fxparser","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","nameStartChar","nameRegexp","regexName","RegExp","isExist","v","isEmptyObject","obj","keys","length","merge","target","a","arrayMode","len","getValue","buildOptions","options","defaultOptions","props","newOptions","undefined","isName","string","match","exec","getAllMatches","regex","matches","allmatches","startIndex","lastIndex","index","push","util","allowBooleanAttributes","isWhiteSpace","_char","readPI","xmlData","start","tagname","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","trim","substring","result","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","msg","line","tagClosed","otg","pop","openPos","col","_isValid","afterAmp","validateAmpersand","JSON","stringify","map","replace","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re","validateNumberAmpersand","count","message","lineNumber","lines","split","validator","XMLParser","XMLBuilder","XMLValidator","parseToOrderedJsObj","prettify","this","parse","validationOption","toString","Error","orderedResult","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataTagName","numberParseOptions","hex","leadingZeros","tagValueProcessor","val","attributeValueProcessor","stopNodes","alwaysCreateTextNode","isArray","xmlNode","toNumber","parseValue","jPath","dontTrim","hasAttributes","isLeafNode","newval","_parseValue","resolveNameSpace","prefix","charAt","shouldParse","Number","parseInt","window","parseFloat","attrsRegx","buildAttributesMap","attrs","oldVal","aName","newVal","attrCollection","isItStopNode","tagsNodeStack","currentTagName","matchingStopNodes","forEach","_i","tagExpWithClosingIndex","attrBoundary","tagExp","ch","data","findClosingIndex","str","errMsg","closingIndex","indexOf","xmlObj","currentNode","textData","closeIndex","colonIndex","attrsMap","child","add","_ref","top","lastIndexOf","_closeIndex","_closeIndex2","_tagExp","_ref2","_val","_tagExp2","_closeIndex3","separatorIndex","search","_tagName","shouldBuildAttributesMap","_colonIndex","childNode","addChild","_childNode","XmlNode","_proto","_this$child$push","node","_this$child$push2","_this$child$push3","attributes","hexRegex","numRegex","consider","decimalPoint","assign","trimmedStr","skipLike","test","num","propName","assignAttributes","attrMap","jpath","atrrName","isLeafTag","propCount","compress","arr","text","compressedObj","tagObj","newJpath","isLeaf","Array","buildFromOrderedJs","format","indentBy","suppressEmptyNode","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","level","j2x","repeat","startsWith","build","jObj","arrayNodeName","_jObj","Date","attr","arrLen","j","item","Ks","L","_j","EOL","attr_to_str","arrToStr","xmlStr","indentation","attStr","tagStart","tagValue","endianness","hostname","location","loadavg","uptime","freemem","MAX_VALUE","totalmem","cpus","type","release","navigator","appVersion","networkInterfaces","getNetworkInterfaces","arch","platform","tmpdir","tmpDir","homedir"],"mappings":"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","file":"./lib/fxparser.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://fxparser/lib/fxparser.min.js"],"names":["fxparser","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","nameStartChar","nameRegexp","regexName","RegExp","isExist","v","isEmptyObject","obj","keys","length","merge","target","a","arrayMode","len","getValue","buildOptions","options","defaultOptions","props","newOptions","undefined","isName","string","match","exec","getAllMatches","regex","matches","allmatches","startIndex","lastIndex","index","push","util","allowBooleanAttributes","isWhiteSpace","_char","readPI","xmlData","start","tagname","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","trim","substring","result","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","msg","line","tagClosed","otg","pop","openPos","col","_isValid","afterAmp","validateAmpersand","JSON","stringify","map","replace","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re","validateNumberAmpersand","count","message","lineNumber","lines","split","validator","XMLParser","XMLBuilder","XMLValidator","parseToOrderedJsObj","prettify","this","parse","validationOption","toString","Error","orderedResult","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","tagValueProcessor","val","attributeValueProcessor","stopNodes","alwaysCreateTextNode","isArray","commentPropName","xmlNode","toNumber","parseValue","jPath","dontTrim","hasAttributes","isLeafNode","newval","_parseValue","resolveNameSpace","prefix","charAt","shouldParse","Number","parseInt","window","parseFloat","attrsRegx","buildAttributesMap","attrs","oldVal","aName","newVal","attrCollection","isItStopNode","tagsNodeStack","currentTagName","matchingStopNodes","forEach","_i","tagExpWithClosingIndex","attrBoundary","tagExp","ch","data","findClosingIndex","str","errMsg","closingIndex","indexOf","xmlObj","currentNode","textData","closeIndex","colonIndex","attrsMap","child","add","_ref","top","lastIndexOf","endIndex","_ref2","comment","_closeIndex","_closeIndex2","_tagExp","_ref3","_val","_tagExp2","_closeIndex3","separatorIndex","search","_tagName","shouldBuildAttributesMap","_colonIndex","childNode","addChild","_childNode","XmlNode","_proto","_this$child$push","node","_this$child$push2","_this$child$push3","attributes","hexRegex","numRegex","consider","decimalPoint","assign","trimmedStr","skipLike","test","num","propName","assignAttributes","attrMap","jpath","atrrName","isLeafTag","propCount","compress","arr","text","compressedObj","tagObj","newJpath","isLeaf","Array","buildFromOrderedJs","format","indentBy","suppressEmptyNode","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","level","j2x","repeat","startsWith","build","jObj","arrayNodeName","_jObj","Date","attr","arrLen","j","item","Ks","L","_j","EOL","attr_to_str","jArray","arrToStr","xmlStr","indentation","attStr","tagStart","tagValue","endianness","hostname","location","loadavg","uptime","freemem","MAX_VALUE","totalmem","cpus","type","release","navigator","appVersion","networkInterfaces","getNetworkInterfaces","arch","platform","tmpdir","tmpDir","homedir"],"mappings":"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","file":"./lib/fxparser.min.js","sourceRoot":""} \ No newline at end of file diff --git a/nexttodo.md b/nexttodo.md index dc790039..05f75ef7 100644 --- a/nexttodo.md +++ b/nexttodo.md @@ -14,6 +14,7 @@ P1 P2 * skip parsing of particular tag * boolean tag to support HTML parsing + * https://github.com/NaturalIntelligence/fast-xml-parser/issues/206 * Generating comments and build them back https://github.com/NaturalIntelligence/fast-xml-parser/issues/372 * validate XML stream data diff --git a/package-lock.json b/package-lock.json index bfc840a1..b25fbe18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "fast-xml-parser", - "version": "4.0.0-beta.0", + "version": "4.0.0-beta.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7ad5ceb7..4f441a28 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fast-xml-parser", - "version": "4.0.0-beta.0", + "version": "4.0.0-beta.1", "description": "Validate XML, Parse XML, Build XML without C/C++ based libraries", "main": "./src/fxp.js", "scripts": {