fast-xml-parser 5.0.3 → 5.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/fxbuilder.min.js +1 -1
- package/lib/fxbuilder.min.js.map +1 -1
- package/lib/fxp.cjs +14 -14
- package/lib/fxp.min.js +1 -1
- package/lib/fxp.min.js.map +1 -1
- package/lib/fxparser.min.js +1 -1
- package/lib/fxparser.min.js.map +1 -1
- package/lib/fxvalidator.min.js +1 -1
- package/lib/fxvalidator.min.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/cli.js +3 -3
- package/src/cli/man.js +4 -3
- package/lib/fxbuilder.min.esm.js +0 -2
- package/lib/fxbuilder.min.esm.js.map +0 -1
- package/lib/fxp.min.esm.js +0 -2
- package/lib/fxp.min.esm.js.map +0 -1
- package/lib/fxparser.min.esm.js +0 -2
- package/lib/fxparser.min.esm.js.map +0 -1
- package/lib/fxvalidator.min.esm.js +0 -2
- package/lib/fxvalidator.min.esm.js.map +0 -1
package/lib/fxvalidator.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.XMLValidator=t():e.XMLValidator=t()}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{validate:()=>l});var r=":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",n=new RegExp("^["+r+"]["+r+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),i=function(e){return!(null==n.exec(e))},a={allowBooleanAttributes:!1,unpairedTags:[]};function l(e,t){t=Object.assign({},a,t);var r=[],n=!1,l=!1;"\ufeff"===e[0]&&(e=e.substr(1));for(var s=0;s<e.length;s++)if("<"===e[s]&&"?"===e[s+1]){if((s=u(e,s+=2)).err)return s}else{if("<"!==e[s]){if(o(e[s]))continue;return p("InvalidChar","char '"+e[s]+"' is not expected.",m(e,s))}var g=s;if("!"===e[++s]){s=f(e,s);continue}var v=!1;"/"===e[s]&&(v=!0,s++);for(var b="";s<e.length&&">"!==e[s]&&" "!==e[s]&&"\t"!==e[s]&&"\n"!==e[s]&&"\r"!==e[s];s++)b+=e[s];if("/"===(b=b.trim())[b.length-1]&&(b=b.substring(0,b.length-1),s--),!i(b))return p("InvalidTag",0===b.trim().length?"Invalid space after '<'.":"Tag '"+b+"' is an invalid name.",m(e,s));var F=d(e,s);if(!1===F)return p("InvalidAttr","Attributes for '"+b+"' have open quote.",m(e,s));var I=F.value;if(s=F.index,"/"===I[I.length-1]){var x=s-I.length,A=c(I=I.substring(0,I.length-1),t);if(!0!==A)return p(A.err.code,A.err.msg,m(e,x+A.err.line));n=!0}else if(v){if(!F.tagClosed)return p("InvalidTag","Closing tag '"+b+"' doesn't have proper closing.",m(e,s));if(I.trim().length>0)return p("InvalidTag","Closing tag '"+b+"' can't have attributes or invalid starting.",m(e,g));if(0===r.length)return p("InvalidTag","Closing tag '"+b+"' has not been opened.",m(e,g));var y=r.pop();if(b!==y.tagName){var C=m(e,y.tagStartPos);return p("InvalidTag","Expected closing tag '"+y.tagName+"' (opened in line "+C.line+", col "+C.col+") instead of closing tag '"+b+"'.",m(e,g))}0==r.length&&(l=!0)}else{var T=c(I,t);if(!0!==T)return p(T.err.code,T.err.msg,m(e,s-I.length+T.err.line));if(!0===l)return p("InvalidXml","Multiple possible root nodes found.",m(e,s));-1!==t.unpairedTags.indexOf(b)||r.push({tagName:b,tagStartPos:g}),n=!0}for(s++;s<e.length;s++)if("<"===e[s]){if("!"===e[s+1]){s=f(e,++s);continue}if("?"!==e[s+1])break;if((s=u(e,++s)).err)return s}else if("&"===e[s]){var S=h(e,s);if(-1==S)return p("InvalidChar","char '&' is not expected.",m(e,s));s=S}else if(!0===l&&!o(e[s]))return p("InvalidXml","Extra text at the end",m(e,s));"<"===e[s]&&s--}return n?1==r.length?p("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",m(e,r[0].tagStartPos)):!(r.length>0)||p("InvalidXml","Invalid '"+JSON.stringify(r.map((function(e){return e.tagName})),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):p("InvalidXml","Start tag expected.",1)}function o(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function u(e,t){for(var r=t;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{var n=e.substr(r,t-r);if(t>5&&"xml"===n)return p("InvalidXml","XML declaration allowed only at the start of the document.",m(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function f(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){var r=1;for(t+=8;t<e.length;t++)if("<"===e[t])r++;else if(">"===e[t]&&0==--r)break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}var s='"',g="'";function d(e,t){for(var r="",n="",i=!1;t<e.length;t++){if(e[t]===s||e[t]===g)""===n?n=e[t]:n!==e[t]||(n="");else if(">"===e[t]&&""===n){i=!0;break}r+=e[t]}return""===n&&{value:r,index:t,tagClosed:i}}var v=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function c(e,t){for(var r=function(e,t){for(var r=[],n=t.exec(e);n;){var i=[];i.startIndex=t.lastIndex-n[0].length;for(var a=n.length,l=0;l<a;l++)i.push(n[l]);r.push(i),n=t.exec(e)}return r}(e,v),n={},i=0;i<r.length;i++){if(0===r[i][1].length)return p("InvalidAttr","Attribute '"+r[i][2]+"' has no space in starting.",F(r[i]));if(void 0!==r[i][3]&&void 0===r[i][4])return p("InvalidAttr","Attribute '"+r[i][2]+"' is without value.",F(r[i]));if(void 0===r[i][3]&&!t.allowBooleanAttributes)return p("InvalidAttr","boolean attribute '"+r[i][2]+"' is not allowed.",F(r[i]));var a=r[i][2];if(!b(a))return p("InvalidAttr","Attribute '"+a+"' is an invalid name.",F(r[i]));if(n.hasOwnProperty(a))return p("InvalidAttr","Attribute '"+a+"' is repeated.",F(r[i]));n[a]=1}return!0}function h(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){var r=/\d/;for("x"===e[t]&&(t++,r=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(r))break}return-1}(e,++t);for(var r=0;t<e.length;t++,r++)if(!(e[t].match(/\w/)&&r<20)){if(";"===e[t])break;return-1}return t}function p(e,t,r){return{err:{code:e,msg:t,line:r.line||r,col:r.col}}}function b(e){return i(e)}function m(e,t){var r=e.substring(0,t).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function F(e){return e.startIndex+e[1].length}return t})()));
|
|
2
2
|
//# sourceMappingURL=fxvalidator.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"./lib/fxvalidator.min.js","mappings":"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","sources":["webpack://XMLValidator/webpack/bootstrap","webpack://XMLValidator/webpack/runtime/define property getters","webpack://XMLValidator/webpack/runtime/hasOwnProperty shorthand","webpack://XMLValidator/webpack/runtime/make namespace object","webpack://XMLValidator/./src/util.js","webpack://XMLValidator/./src/validator.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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';\nexport const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nexport function getAllMatches(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\nexport const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n}\n\nexport function isExist(v) {\n return typeof v !== 'undefined';\n}\n\nexport function isEmptyObject(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 */\nexport function merge(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\nexport function getValue(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() {};","'use strict';\n\nimport {getAllMatches, isName} from './util.js';\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexport function validate(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\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(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/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 if (tags.length === 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", 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 if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\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 = 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 && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", 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 isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return 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"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","nameStartChar","regexName","RegExp","isName","string","exec","defaultOptions","allowBooleanAttributes","unpairedTags","validate","xmlData","options","assign","tags","tagFound","reachedRoot","substr","i","length","readPI","err","isWhiteSpace","getErrorObject","getLineNumberForPosition","tagStartPos","readCommentAndCDATA","closingTag","tagName","trim","substring","result","readAttributeStr","attrStr","index","attrStrStart","isValid","validateAttributeString","code","msg","line","tagClosed","otg","pop","openPos","col","indexOf","push","afterAmp","validateAmpersand","JSON","stringify","map","t","replace","char","start","tagname","angleBracketsCount","doubleQuote","singleQuote","startChar","validAttrStrRegxp","matches","regex","match","allmatches","startIndex","lastIndex","len","getAllMatches","attrNames","getPositionFromMatch","undefined","attrName","validateAttrName","re","validateNumberAmpersand","count","message","lineNumber","lines","split"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"./lib/fxvalidator.min.js","mappings":"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","sources":["webpack://XMLValidator/webpack/universalModuleDefinition","webpack://XMLValidator/webpack/bootstrap","webpack://XMLValidator/webpack/runtime/define property getters","webpack://XMLValidator/webpack/runtime/hasOwnProperty shorthand","webpack://XMLValidator/webpack/runtime/make namespace object","webpack://XMLValidator/./src/util.js","webpack://XMLValidator/./src/validator.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"XMLValidator\"] = factory();\n\telse\n\t\troot[\"XMLValidator\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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';\nexport const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nexport function getAllMatches(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\nexport const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n}\n\nexport function isExist(v) {\n return typeof v !== 'undefined';\n}\n\nexport function isEmptyObject(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 */\nexport function merge(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\nexport function getValue(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() {};","'use strict';\n\nimport {getAllMatches, isName} from './util.js';\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexport function validate(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\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(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/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 if (tags.length === 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", 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 if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\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 = 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 && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", 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 isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return 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"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","nameStartChar","regexName","RegExp","isName","string","exec","defaultOptions","allowBooleanAttributes","unpairedTags","validate","xmlData","options","assign","tags","tagFound","reachedRoot","substr","i","length","readPI","err","isWhiteSpace","getErrorObject","getLineNumberForPosition","tagStartPos","readCommentAndCDATA","closingTag","tagName","trim","substring","result","readAttributeStr","attrStr","index","attrStrStart","isValid","validateAttributeString","code","msg","line","tagClosed","otg","pop","openPos","col","indexOf","push","afterAmp","validateAmpersand","JSON","stringify","map","t","replace","char","start","tagname","angleBracketsCount","doubleQuote","singleQuote","startChar","validAttrStrRegxp","matches","regex","match","allmatches","startIndex","lastIndex","len","getAllMatches","attrNames","getPositionFromMatch","undefined","attrName","validateAttrName","re","validateNumberAmpersand","count","message","lineNumber","lines","split"],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fast-xml-parser",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.5",
|
|
4
4
|
"description": "Validate XML, Parse XML, Build XML without C/C++ based libraries",
|
|
5
5
|
"main": "./lib/fxp.cjs",
|
|
6
6
|
"type": "module",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"coverage": "nyc report --reporter html --reporter text -t .nyc_output --report-dir .nyc_output/summary",
|
|
22
22
|
"perf": "node ./benchmark/perfTest3.js",
|
|
23
23
|
"lint": "eslint src/**/*.js spec/**/*.js benchmark/**/*.js",
|
|
24
|
-
"bundle": "webpack --config webpack.
|
|
24
|
+
"bundle": "webpack --config webpack.cjs.config.js",
|
|
25
25
|
"prettier": "prettier --write src/**/*.js",
|
|
26
26
|
"checkReadiness": "publish-please --dry-run"
|
|
27
27
|
},
|
|
@@ -81,6 +81,6 @@
|
|
|
81
81
|
}
|
|
82
82
|
],
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"strnum": "^2.0.
|
|
84
|
+
"strnum": "^2.0.4"
|
|
85
85
|
}
|
|
86
86
|
}
|
package/src/cli/cli.js
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
/*eslint-disable no-console*/
|
|
4
4
|
import fs from 'fs';
|
|
5
|
+
import { resolve } from 'path';
|
|
5
6
|
import {XMLParser, XMLValidator} from "../fxp.js";
|
|
6
7
|
import ReadToEnd from './read.js';
|
|
7
8
|
import cmdDetail from "./man.js"
|
|
8
|
-
import pkg from '../../package.json' assert { type: 'json' };
|
|
9
|
-
const version = pkg.version;
|
|
10
|
-
|
|
11
9
|
|
|
12
10
|
if (process.argv[2] === '--help' || process.argv[2] === '-h') {
|
|
13
11
|
console.log(cmdDetail);
|
|
14
12
|
} else if (process.argv[2] === '--version') {
|
|
13
|
+
const packageJsonPath = resolve(process.cwd(), 'package.json');
|
|
14
|
+
const version = JSON.parse(fs.readFileSync(packageJsonPath).toString()).version;
|
|
15
15
|
console.log(version);
|
|
16
16
|
} else {
|
|
17
17
|
const options = {
|
package/src/cli/man.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { resolve } from 'path';
|
|
3
|
+
const packageJsonPath = resolve(process.cwd(), 'package.json');
|
|
4
|
+
const version = JSON.parse(fs.readFileSync(packageJsonPath).toString()).version;
|
|
4
5
|
|
|
5
6
|
export default `Fast XML Parser ${version}
|
|
6
7
|
----------------
|
package/lib/fxbuilder.min.esm.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var t={d:(e,i)=>{for(var r in i)t.o(i,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:i[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};function i(t,e){var i="";return e.format&&e.indentBy.length>0&&(i="\n"),r(t,e,"",i)}function r(t,e,i,u){for(var p="",h=!1,l=0;l<t.length;l++){var d=t[l],f=n(d);if(void 0!==f){var c;if(c=0===i.length?f:i+"."+f,f!==e.textNodeName)if(f!==e.cdataPropName)if(f!==e.commentPropName)if("?"!==f[0]){var g=u;""!==g&&(g+=e.indentBy);var b=u+"<"+f+s(d[":@"],e),N=r(d[f],e,c,g);-1!==e.unpairedTags.indexOf(f)?e.suppressUnpairedNode?p+=b+">":p+=b+"/>":N&&0!==N.length||!e.suppressEmptyNode?N&&N.endsWith(">")?p+=b+">"+N+u+"</"+f+">":(p+=b+">",N&&""!==u&&(N.includes("/>")||N.includes("</"))?p+=u+e.indentBy+N+u:p+=N,p+="</"+f+">"):p+=b+"/>",h=!0}else{var m=s(d[":@"],e),v="?xml"===f?"":u,x=d[f][0][e.textNodeName];p+=v+"<"+f+(x=0!==x.length?" "+x:"")+m+"?>",h=!0}else p+=u+"\x3c!--"+d[f][0][e.textNodeName]+"--\x3e",h=!0;else h&&(p+=u),p+="<![CDATA["+d[f][0][e.textNodeName]+"]]>",h=!1;else{var y=d[f];o(c,e)||(y=a(y=e.tagValueProcessor(f,y),e)),h&&(p+=u),p+=y,h=!1}}}return p}function n(t){for(var e=Object.keys(t),i=0;i<e.length;i++){var r=e[i];if(t.hasOwnProperty(r)&&":@"!==r)return r}}function s(t,e){var i="";if(t&&!e.ignoreAttributes)for(var r in t)if(t.hasOwnProperty(r)){var n=e.attributeValueProcessor(r,t[r]);!0===(n=a(n,e))&&e.suppressBooleanAttributes?i+=" "+r.substr(e.attributeNamePrefix.length):i+=" "+r.substr(e.attributeNamePrefix.length)+'="'+n+'"'}return i}function o(t,e){var i=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(var r in e.stopNodes)if(e.stopNodes[r]===t||e.stopNodes[r]==="*."+i)return!0;return!1}function a(t,e){if(t&&t.length>0&&e.processEntities)for(var i=0;i<e.entities.length;i++){var r=e.entities[i];t=t.replace(r.regex,r.val)}return t}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,r=Array(e);i<e;i++)r[i]=t[i];return r}t.d(e,{A:()=>h});var p={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function h(t){var e;this.options=Object.assign({},p,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?function(t){for(var i,r=function(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(i)return(i=i.call(t)).next.bind(i);if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return u(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?u(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(e);!(i=r()).done;){var n=i.value;if("string"==typeof n&&t===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}}:function(){return!1},this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=f),this.processTextOrObjNode=l,this.options.format?(this.indentate=d,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function l(t,e,i,r){var n=this.j2x(t,i+1,r.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,n.attrStr,i):this.buildObjectNode(n.val,e,n.attrStr,i)}function d(t){return this.options.indentBy.repeat(t)}function f(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}h.prototype.build=function(t){return this.options.preserveOrder?i(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&((e={})[this.options.arrayNodeName]=t,t=e),this.j2x(t,0,[]).val);var e},h.prototype.j2x=function(t,e,i){var r="",n="",s=i.join(".");for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(n+="");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?n+="":"?"===o[0]?n+=this.indentate(e)+"<"+o+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+o+"/"+this.tagEndChar;else if(t[o]instanceof Date)n+=this.buildTextValNode(t[o],o,"",e);else if("object"!=typeof t[o]){var a=this.isAttribute(o);if(a&&!this.ignoreAttributesFn(a,s))r+=this.buildAttrPairStr(a,""+t[o]);else if(!a)if(o===this.options.textNodeName){var u=this.options.tagValueProcessor(o,""+t[o]);n+=this.replaceEntitiesValue(u)}else n+=this.buildTextValNode(t[o],o,"",e)}else if(Array.isArray(t[o])){for(var p=t[o].length,h="",l="",d=0;d<p;d++){var f=t[o][d];if(void 0===f);else if(null===f)"?"===o[0]?n+=this.indentate(e)+"<"+o+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+o+"/"+this.tagEndChar;else if("object"==typeof f)if(this.options.oneListGroup){var c=this.j2x(f,e+1,i.concat(o));h+=c.val,this.options.attributesGroupName&&f.hasOwnProperty(this.options.attributesGroupName)&&(l+=c.attrStr)}else h+=this.processTextOrObjNode(f,o,e,i);else if(this.options.oneListGroup){var g=this.options.tagValueProcessor(o,f);h+=g=this.replaceEntitiesValue(g)}else h+=this.buildTextValNode(f,o,"",e)}this.options.oneListGroup&&(h=this.buildObjectNode(h,o,l,e)),n+=h}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName)for(var b=Object.keys(t[o]),N=b.length,m=0;m<N;m++)r+=this.buildAttrPairStr(b[m],""+t[o][b[m]]);else n+=this.processTextOrObjNode(t[o],o,e,i);return{attrStr:r,val:n}},h.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},h.prototype.buildObjectNode=function(t,e,i,r){if(""===t)return"?"===e[0]?this.indentate(r)+"<"+e+i+"?"+this.tagEndChar:this.indentate(r)+"<"+e+i+this.closeTag(e)+this.tagEndChar;var n="</"+e+this.tagEndChar,s="";return"?"===e[0]&&(s="?",n=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===s.length?this.indentate(r)+"\x3c!--"+t+"--\x3e"+this.newLine:this.indentate(r)+"<"+e+i+s+this.tagEndChar+t+this.indentate(r)+n:this.indentate(r)+"<"+e+i+s+">"+t+n},h.prototype.closeTag=function(t){var e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":"></"+t,e},h.prototype.buildTextValNode=function(t,e,i,r){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(r)+"<![CDATA["+t+"]]>"+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(r)+"\x3c!--"+t+"--\x3e"+this.newLine;if("?"===e[0])return this.indentate(r)+"<"+e+i+"?"+this.tagEndChar;var n=this.options.tagValueProcessor(e,t);return""===(n=this.replaceEntitiesValue(n))?this.indentate(r)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(r)+"<"+e+i+">"+n+"</"+e+this.tagEndChar},h.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(var e=0;e<this.options.entities.length;e++){var i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t};var c=e.A;export{c as default};
|
|
2
|
-
//# sourceMappingURL=fxbuilder.min.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"./lib/fxbuilder.min.esm.js","mappings":"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","sources":["webpack://fast-xml-parser/webpack/bootstrap","webpack://fast-xml-parser/webpack/runtime/define property getters","webpack://fast-xml-parser/webpack/runtime/hasOwnProperty shorthand","webpack://fast-xml-parser/./src/xmlbuilder/orderedJs2Xml.js","webpack://fast-xml-parser/./src/xmlbuilder/json2xml.js","webpack://fast-xml-parser/./src/ignoreAttributes.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nexport default function toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n if(tagName === undefined) continue;\n\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName\n else newJPath = `${jPath}.${tagName}`;\n\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\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(!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n}\n\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if(!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\n","'use strict';\n//parse Empty Node as self closing node\nimport buildFromOrderedJs from './orderedJs2Xml.js';\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\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 suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\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 unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n};\n\nexport default function Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\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\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, ajPath) {\n let attrStr = '';\n let val = '';\n const jPath = ajPath.join('.')\n for (let key in jObj) {\n if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node only if it is not an attribute\n if (this.isAttribute(key)) {\n val += '';\n }\n } else if (jObj[key] === null) {\n // null attribute should be ignored by the attribute list, but should not cause the tag closing\n if (this.isAttribute(key)) {\n val += '';\n } else if (key === this.options.cdataPropName) {\n val += '';\n } else if (key[0] === '?') {\n val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n } else {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n }\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n } else if (!attr) {\n //tag value\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\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 if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n if(this.options.oneListGroup){\n const result = this.j2x(item, level + 1, ajPath.concat(key));\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr\n }\n }else{\n listTagVal += this.processTextOrObjNode(item, key, level, ajPath)\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, '', level);\n }\n }\n }\n if(this.options.oneListGroup){\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\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 += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level, ajPath)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n val = this.options.attributeValueProcessor(attrName, '' + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return ' ' + attrName;\n } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level, ajPath) {\n const result = this.j2x(object, level + 1, ajPath.concat(key));\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if(val === \"\"){\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n }else{\n\n let tagEndExp = '</' + key + this.tagEndChar;\n let piClosingChar = \"\";\n \n if(key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n \n // attrStr is an empty string in case the attribute came as undefined or null\n if ((attrStr || attrStr === '') && val.indexOf('<') === -1) {\n return ( this.indentate(level) + '<' + key + attrStr + piClosingChar + '>' + val + tagEndExp );\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n }else {\n return (\n this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n val +\n this.indentate(level) + tagEndExp );\n }\n }\n}\n\nBuilder.prototype.closeTag = function(key){\n let closeTag = \"\";\n if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n }else if(this.options.suppressEmptyNode){ //empty\n closeTag = \"/\";\n }else{\n closeTag = `></${key}`\n }\n return closeTag;\n}\n\nfunction buildEmptyObjNode(val, key, attrStr, level) {\n if (val !== '') {\n return this.buildObjectNode(val, key, attrStr, level);\n } else {\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n // return this.buildTagStr(level,key, attrStr);\n }\n }\n}\n\nBuilder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n }else if(key[0] === \"?\") {//PI tag\n return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n }else{\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n \n if( textValue === ''){\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }else{\n return this.indentate(level) + '<' + key + attrStr + '>' +\n textValue +\n '</' + key + this.tagEndChar;\n }\n }\n}\n\nBuilder.prototype.replaceEntitiesValue = function(textValue){\n if(textValue && textValue.length > 0 && this.options.processEntities){\n for (let i=0; i<this.options.entities.length; i++) {\n const entity = this.options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\n\nfunction indentate(level) {\n return this.options.indentBy.repeat(level);\n}\n\nfunction isAttribute(name /*, options*/) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n}\n\n","export default function getIgnoreAttributesFn(ignoreAttributes) {\n if (typeof ignoreAttributes === 'function') {\n return ignoreAttributes\n }\n if (Array.isArray(ignoreAttributes)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes) {\n if (typeof pattern === 'string' && attrName === pattern) {\n return true\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true\n }\n }\n }\n }\n return () => false\n}"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","toXml","jArray","options","indentation","format","indentBy","length","arrToStr","arr","jPath","xmlStr","isPreviousElementTag","i","tagObj","tagName","propName","undefined","newJPath","textNodeName","cdataPropName","commentPropName","newIdentation","tagStart","attr_to_str","tagValue","unpairedTags","indexOf","suppressUnpairedNode","suppressEmptyNode","endsWith","includes","attStr","tempInd","piTextNodeName","tagText","isStopNode","replaceEntitiesValue","tagValueProcessor","keys","attrMap","attrStr","ignoreAttributes","attr","attrVal","attributeValueProcessor","suppressBooleanAttributes","substr","attributeNamePrefix","lastIndexOf","index","stopNodes","textValue","processEntities","entities","entity","replace","regex","val","defaultOptions","attributesGroupName","a","attrName","preserveOrder","RegExp","oneListGroup","Builder","this","assign","isAttribute","ignoreAttributesFn","Array","isArray","_step","_iterator","_createForOfIteratorHelperLoose","done","pattern","value","test","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","level","ajPath","result","j2x","concat","buildTextValNode","buildObjectNode","repeat","name","startsWith","build","jObj","buildFromOrderedJs","arrayNodeName","_jObj","join","Date","buildAttrPairStr","newval","arrLen","listTagVal","listTagAttr","j","item","Ks","L","closeTag","tagEndExp","piClosingChar"],"sourceRoot":""}
|
package/lib/fxp.min.esm.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var t={d:(e,r)=>{for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};t.d(e,{lG:()=>ht,vf:()=>rt,iI:()=>gt});var r=":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=new RegExp("^["+r+"]["+r+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function n(t,e){for(var r=[],i=e.exec(t);i;){var n=[];n.startIndex=e.lastIndex-i[0].length;for(var a=i.length,s=0;s<a;s++)n.push(i[s]);r.push(n),i=e.exec(t)}return r}var a=function(t){return!(null==i.exec(t))},s={allowBooleanAttributes:!1,unpairedTags:[]};function o(t,e){e=Object.assign({},s,e);var r=[],i=!1,n=!1;"\ufeff"===t[0]&&(t=t.substr(1));for(var o=0;o<t.length;o++)if("<"===t[o]&&"?"===t[o+1]){if((o=l(t,o+=2)).err)return o}else{if("<"!==t[o]){if(u(t[o]))continue;return m("InvalidChar","char '"+t[o]+"' is not expected.",b(t,o))}var f=o;if("!"===t[++o]){o=h(t,o);continue}var d=!1;"/"===t[o]&&(d=!0,o++);for(var g="";o<t.length&&">"!==t[o]&&" "!==t[o]&&"\t"!==t[o]&&"\n"!==t[o]&&"\r"!==t[o];o++)g+=t[o];if("/"===(g=g.trim())[g.length-1]&&(g=g.substring(0,g.length-1),o--),!a(g))return m("InvalidTag",0===g.trim().length?"Invalid space after '<'.":"Tag '"+g+"' is an invalid name.",b(t,o));var x=p(t,o);if(!1===x)return m("InvalidAttr","Attributes for '"+g+"' have open quote.",b(t,o));var N=x.value;if(o=x.index,"/"===N[N.length-1]){var E=o-N.length,y=c(N=N.substring(0,N.length-1),e);if(!0!==y)return m(y.err.code,y.err.msg,b(t,E+y.err.line));i=!0}else if(d){if(!x.tagClosed)return m("InvalidTag","Closing tag '"+g+"' doesn't have proper closing.",b(t,o));if(N.trim().length>0)return m("InvalidTag","Closing tag '"+g+"' can't have attributes or invalid starting.",b(t,f));if(0===r.length)return m("InvalidTag","Closing tag '"+g+"' has not been opened.",b(t,f));var T=r.pop();if(g!==T.tagName){var w=b(t,T.tagStartPos);return m("InvalidTag","Expected closing tag '"+T.tagName+"' (opened in line "+w.line+", col "+w.col+") instead of closing tag '"+g+"'.",b(t,f))}0==r.length&&(n=!0)}else{var A=c(N,e);if(!0!==A)return m(A.err.code,A.err.msg,b(t,o-N.length+A.err.line));if(!0===n)return m("InvalidXml","Multiple possible root nodes found.",b(t,o));-1!==e.unpairedTags.indexOf(g)||r.push({tagName:g,tagStartPos:f}),i=!0}for(o++;o<t.length;o++)if("<"===t[o]){if("!"===t[o+1]){o=h(t,++o);continue}if("?"!==t[o+1])break;if((o=l(t,++o)).err)return o}else if("&"===t[o]){var O=v(t,o);if(-1==O)return m("InvalidChar","char '&' is not expected.",b(t,o));o=O}else if(!0===n&&!u(t[o]))return m("InvalidXml","Extra text at the end",b(t,o));"<"===t[o]&&o--}return i?1==r.length?m("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",b(t,r[0].tagStartPos)):!(r.length>0)||m("InvalidXml","Invalid '"+JSON.stringify(r.map((function(t){return t.tagName})),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):m("InvalidXml","Start tag expected.",1)}function u(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function l(t,e){for(var r=e;e<t.length;e++)if("?"!=t[e]&&" "!=t[e]);else{var i=t.substr(r,e-r);if(e>5&&"xml"===i)return m("InvalidXml","XML declaration allowed only at the start of the document.",b(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e<t.length;e++)if("-"===t[e]&&"-"===t[e+1]&&">"===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.length;e++)if("<"===t[e])r++;else if(">"===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.length;e++)if("]"===t[e]&&"]"===t[e+1]&&">"===t[e+2]){e+=2;break}return e}var f='"',d="'";function p(t,e){for(var r="",i="",n=!1;e<t.length;e++){if(t[e]===f||t[e]===d)""===i?i=t[e]:i!==t[e]||(i="");else if(">"===t[e]&&""===i){n=!0;break}r+=t[e]}return""===i&&{value:r,index:e,tagClosed:n}}var g=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function c(t,e){for(var r=n(t,g),i={},a=0;a<r.length;a++){if(0===r[a][1].length)return m("InvalidAttr","Attribute '"+r[a][2]+"' has no space in starting.",N(r[a]));if(void 0!==r[a][3]&&void 0===r[a][4])return m("InvalidAttr","Attribute '"+r[a][2]+"' is without value.",N(r[a]));if(void 0===r[a][3]&&!e.allowBooleanAttributes)return m("InvalidAttr","boolean attribute '"+r[a][2]+"' is not allowed.",N(r[a]));var s=r[a][2];if(!x(s))return m("InvalidAttr","Attribute '"+s+"' is an invalid name.",N(r[a]));if(i.hasOwnProperty(s))return m("InvalidAttr","Attribute '"+s+"' is repeated.",N(r[a]));i[s]=1}return!0}function v(t,e){if(";"===t[++e])return-1;if("#"===t[e])return function(t,e){var r=/\d/;for("x"===t[e]&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(";"===t[e])return e;if(!t[e].match(r))break}return-1}(t,++e);for(var r=0;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(";"===t[e])break;return-1}return e}function m(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function x(t){return a(t)}function b(t,e){var r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function N(t){return t.startIndex+t[1].length}var E={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:function(){return!1},commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t}},y=function(){function t(t){this.tagname=t,this.child=[],this[":@"]={}}var e=t.prototype;return e.add=function(t,e){var r;"__proto__"===t&&(t="#__proto__"),this.child.push(((r={})[t]=e,r))},e.addChild=function(t){var e,r;"__proto__"===t.tagname&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push(((e={})[t.tagname]=t.child,e[":@"]=t[":@"],e)):this.child.push(((r={})[t.tagname]=t.child,r))},t}();function T(t,e){var r={};if("O"!==t[e+3]||"C"!==t[e+4]||"T"!==t[e+5]||"Y"!==t[e+6]||"P"!==t[e+7]||"E"!==t[e+8])throw new Error("Invalid Tag instead of DOCTYPE");e+=9;for(var i=1,n=!1,a=!1;e<t.length;e++)if("<"!==t[e]||a)if(">"===t[e]){if(a?"-"===t[e-1]&&"-"===t[e-2]&&(a=!1,i--):i--,0===i)break}else"["===t[e]?n=!0:t[e];else{if(n&&O(t,e)){var s,o=void 0,u=w(t,(e+=7)+1);s=u[0],o=u[1],e=u[2],-1===o.indexOf("&")&&(r[S(s)]={regx:RegExp("&"+s+";","g"),val:o})}else if(n&&P(t,e))e+=8;else if(n&&I(t,e))e+=8;else if(n&&C(t,e))e+=9;else{if(!A)throw new Error("Invalid DOCTYPE");a=!0}i++}if(0!==i)throw new Error("Unclosed DOCTYPE");return{entities:r,i:e}}function w(t,e){for(var r="";e<t.length&&"'"!==t[e]&&'"'!==t[e];e++)r+=t[e];if(-1!==(r=r.trim()).indexOf(" "))throw new Error("External entites are not supported");for(var i=t[e++],n="";e<t.length&&t[e]!==i;e++)n+=t[e];return[r,n,e]}function A(t,e){return"!"===t[e+1]&&"-"===t[e+2]&&"-"===t[e+3]}function O(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"N"===t[e+3]&&"T"===t[e+4]&&"I"===t[e+5]&&"T"===t[e+6]&&"Y"===t[e+7]}function P(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"L"===t[e+3]&&"E"===t[e+4]&&"M"===t[e+5]&&"E"===t[e+6]&&"N"===t[e+7]&&"T"===t[e+8]}function I(t,e){return"!"===t[e+1]&&"A"===t[e+2]&&"T"===t[e+3]&&"T"===t[e+4]&&"L"===t[e+5]&&"I"===t[e+6]&&"S"===t[e+7]&&"T"===t[e+8]}function C(t,e){return"!"===t[e+1]&&"N"===t[e+2]&&"O"===t[e+3]&&"T"===t[e+4]&&"A"===t[e+5]&&"T"===t[e+6]&&"I"===t[e+7]&&"O"===t[e+8]&&"N"===t[e+9]}function S(t){if(a(t))return t;throw new Error("Invalid entity name "+t)}const j=/^[-+]?0x[a-fA-F0-9]+$/,V=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,k={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function F(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=Array(e);r<e;r++)i[r]=t[r];return i}function _(t){return"function"==typeof t?t:Array.isArray(t)?function(e){for(var r,i=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return F(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?F(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var i=0;return function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(t);!(r=i()).done;){var n=r.value;if("string"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:function(){return!1}}var D=function(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:function(t,e){return String.fromCharCode(Number.parseInt(e,10))}},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:function(t,e){return String.fromCharCode(Number.parseInt(e,16))}}},this.addExternalEntities=L,this.parseXml=R,this.parseTextData=B,this.resolveNameSpace=G,this.buildAttributesMap=X,this.isItStopNode=$,this.replaceEntitiesValue=Z,this.readStopNodeData=z,this.saveTextToParentTag=Y,this.addChild=U,this.ignoreAttributesFn=_(this.options.ignoreAttributes)};function L(t){for(var e=Object.keys(t),r=0;r<e.length;r++){var i=e[r];this.lastEntities[i]={regex:new RegExp("&"+i+";","g"),val:t[i]}}}function B(t,e,r,i,n,a,s){if(void 0!==t&&(this.options.trimValues&&!i&&(t=t.trim()),t.length>0)){s||(t=this.replaceEntitiesValue(t));var o=this.options.tagValueProcessor(e,t,r,n,a);return null==o?t:typeof o!=typeof t||o!==t?o:this.options.trimValues||t.trim()===t?J(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function G(t){if(this.options.removeNSPrefix){var e=t.split(":"),r="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=r+e[1])}return t}var M=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function X(t,e,r){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){for(var i=n(t,M),a=i.length,s={},o=0;o<a;o++){var u=this.resolveNameSpace(i[o][1]);if(!this.ignoreAttributesFn(u,e)){var l=i[o][4],h=this.options.attributeNamePrefix+u;if(u.length)if(this.options.transformAttributeName&&(h=this.options.transformAttributeName(h)),"__proto__"===h&&(h="#__proto__"),void 0!==l){this.options.trimValues&&(l=l.trim()),l=this.replaceEntitiesValue(l);var f=this.options.attributeValueProcessor(u,l,e);s[h]=null==f?l:typeof f!=typeof l||f!==l?f:J(l,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[h]=!0)}}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){var d={};return d[this.options.attributesGroupName]=s,d}return s}}var R=function(t){t=t.replace(/\r\n?/g,"\n");for(var e=new y("!xml"),r=e,i="",n="",a=0;a<t.length;a++)if("<"===t[a])if("/"===t[a+1]){var s=q(t,">",a,"Closing Tag is not closed."),o=t.substring(a+2,s).trim();if(this.options.removeNSPrefix){var u=o.indexOf(":");-1!==u&&(o=o.substr(u+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),r&&(i=this.saveTextToParentTag(i,r,n));var l=n.substring(n.lastIndexOf(".")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error("Unpaired tag can not be used as closing tag: </"+o+">");var h=0;l&&-1!==this.options.unpairedTags.indexOf(l)?(h=n.lastIndexOf(".",n.lastIndexOf(".")-1),this.tagsNodeStack.pop()):h=n.lastIndexOf("."),n=n.substring(0,h),r=this.tagsNodeStack.pop(),i="",a=s}else if("?"===t[a+1]){var f=W(t,a,!1,"?>");if(!f)throw new Error("Pi Tag is not closed.");if(i=this.saveTextToParentTag(i,r,n),this.options.ignoreDeclaration&&"?xml"===f.tagName||this.options.ignorePiTags);else{var d=new y(f.tagName);d.add(this.options.textNodeName,""),f.tagName!==f.tagExp&&f.attrExpPresent&&(d[":@"]=this.buildAttributesMap(f.tagExp,n,f.tagName)),this.addChild(r,d,n)}a=f.closeIndex+1}else if("!--"===t.substr(a+1,3)){var p=q(t,"--\x3e",a+4,"Comment is not closed.");if(this.options.commentPropName){var g,c=t.substring(a+4,p-2);i=this.saveTextToParentTag(i,r,n),r.add(this.options.commentPropName,[(g={},g[this.options.textNodeName]=c,g)])}a=p}else if("!D"===t.substr(a+1,2)){var v=T(t,a);this.docTypeEntities=v.entities,a=v.i}else if("!["===t.substr(a+1,2)){var m=q(t,"]]>",a,"CDATA is not closed.")-2,x=t.substring(a+9,m);i=this.saveTextToParentTag(i,r,n);var b,N=this.parseTextData(x,r.tagname,n,!0,!1,!0,!0);null==N&&(N=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[(b={},b[this.options.textNodeName]=x,b)]):r.add(this.options.textNodeName,N),a=m+2}else{var E=W(t,a,this.options.removeNSPrefix),w=E.tagName,A=E.rawTagName,O=E.tagExp,P=E.attrExpPresent,I=E.closeIndex;this.options.transformTagName&&(w=this.options.transformTagName(w)),r&&i&&"!xml"!==r.tagname&&(i=this.saveTextToParentTag(i,r,n,!1));var C=r;if(C&&-1!==this.options.unpairedTags.indexOf(C.tagname)&&(r=this.tagsNodeStack.pop(),n=n.substring(0,n.lastIndexOf("."))),w!==e.tagname&&(n+=n?"."+w:w),this.isItStopNode(this.options.stopNodes,n,w)){var S="";if(O.length>0&&O.lastIndexOf("/")===O.length-1)"/"===w[w.length-1]?(w=w.substr(0,w.length-1),n=n.substr(0,n.length-1),O=w):O=O.substr(0,O.length-1),a=E.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(w))a=E.closeIndex;else{var j=this.readStopNodeData(t,A,I+1);if(!j)throw new Error("Unexpected end of "+A);a=j.i,S=j.tagContent}var V=new y(w);w!==O&&P&&(V[":@"]=this.buildAttributesMap(O,n,w)),S&&(S=this.parseTextData(S,w,n,!0,P,!0,!0)),n=n.substr(0,n.lastIndexOf(".")),V.add(this.options.textNodeName,S),this.addChild(r,V,n)}else{if(O.length>0&&O.lastIndexOf("/")===O.length-1){"/"===w[w.length-1]?(w=w.substr(0,w.length-1),n=n.substr(0,n.length-1),O=w):O=O.substr(0,O.length-1),this.options.transformTagName&&(w=this.options.transformTagName(w));var k=new y(w);w!==O&&P&&(k[":@"]=this.buildAttributesMap(O,n,w)),this.addChild(r,k,n),n=n.substr(0,n.lastIndexOf("."))}else{var F=new y(w);this.tagsNodeStack.push(r),w!==O&&P&&(F[":@"]=this.buildAttributesMap(O,n,w)),this.addChild(r,F,n),r=F}i="",a=I}}else i+=t[a];return e.child};function U(t,e,r){var i=this.options.updateTag(e.tagname,r,e[":@"]);!1===i||("string"==typeof i?(e.tagname=i,t.addChild(e)):t.addChild(e))}var Z=function(t){if(this.options.processEntities){for(var e in this.docTypeEntities){var r=this.docTypeEntities[e];t=t.replace(r.regx,r.val)}for(var i in this.lastEntities){var n=this.lastEntities[i];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(var a in this.htmlEntities){var s=this.htmlEntities[a];t=t.replace(s.regex,s.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function Y(t,e,r,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,r,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,i))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function $(t,e,r){var i="*."+r;for(var n in t){var a=t[n];if(i===a||e===a)return!0}return!1}function q(t,e,r,i){var n=t.indexOf(e,r);if(-1===n)throw new Error(i);return n+e.length-1}function W(t,e,r,i){void 0===i&&(i=">");var n=function(t,e,r){var i;void 0===r&&(r=">");for(var n="",a=e;a<t.length;a++){var s=t[a];if(i)s===i&&(i="");else if('"'===s||"'"===s)i=s;else if(s===r[0]){if(!r[1])return{data:n,index:a};if(t[a+1]===r[1])return{data:n,index:a}}else"\t"===s&&(s=" ");n+=s}}(t,e+1,i);if(n){var a=n.data,s=n.index,o=a.search(/\s/),u=a,l=!0;-1!==o&&(u=a.substring(0,o),a=a.substring(o+1).trimStart());var h=u;if(r){var f=u.indexOf(":");-1!==f&&(l=(u=u.substr(f+1))!==n.data.substr(f+1))}return{tagName:u,tagExp:a,closeIndex:s,attrExpPresent:l,rawTagName:h}}}function z(t,e,r){for(var i=r,n=1;r<t.length;r++)if("<"===t[r])if("/"===t[r+1]){var a=q(t,">",r,e+" is not closed");if(t.substring(r+2,a).trim()===e&&0==--n)return{tagContent:t.substring(i,r),i:a};r=a}else if("?"===t[r+1])r=q(t,"?>",r+1,"StopNode is not closed.");else if("!--"===t.substr(r+1,3))r=q(t,"--\x3e",r+3,"StopNode is not closed.");else if("!["===t.substr(r+1,2))r=q(t,"]]>",r,"StopNode is not closed.")-2;else{var s=W(t,r,">");s&&((s&&s.tagName)===e&&"/"!==s.tagExp[s.tagExp.length-1]&&n++,r=s.closeIndex)}}function J(t,e,r){if(e&&"string"==typeof t){var i=t.trim();return"true"===i||"false"!==i&&function(t,e={}){if(e=Object.assign({},k,e),!t||"string"!=typeof t)return t;if("0"===t)return 0;let r=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(r))return t;if(e.hex&&j.test(r))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}(r);if(-1!==r.search(/[eE]/)){const i=r.match(/^([-\+])?(0*)([0-9]*(\.[0-9]*)?[eE][-\+]?[0-9]+)/);if(i){if(e.leadingZeros)r=(i[1]||"")+i[3];else if("0"!==i[2]||"."!==i[3][0])return t;return e.eNotation?Number(r):t}return t}{const n=V.exec(r);if(n){const a=n[1],s=n[2];let o=(i=n[3])&&-1!==i.indexOf(".")?("."===(i=i.replace(/0+$/,""))?i="0":"."===i[0]?i="0"+i:"."===i[i.length-1]&&(i=i.substr(0,i.length-1)),i):i;if(!e.leadingZeros&&s.length>0&&a&&"."!==r[2])return t;if(!e.leadingZeros&&s.length>0&&!a&&"."!==r[1])return t;if(e.leadingZeros&&s===t)return 0;{const i=Number(r),n=""+i;return-1!==n.search(/[eE]/)?e.eNotation?i:t:-1!==r.indexOf(".")?"0"===n&&""===o||n===o||a&&n==="-"+o?i:t:s?o===n||a+o===n?i:t:r===n||r===a+n?i:t}}return t}var i}(t,r)}return void 0!==t?t:""}function H(t,e){return K(t,e)}function K(t,e,r){for(var i,n={},a=0;a<t.length;a++){var s,o=t[a],u=Q(o);if(s=void 0===r?u:r+"."+u,u===e.textNodeName)void 0===i?i=o[u]:i+=""+o[u];else{if(void 0===u)continue;if(o[u]){var l=K(o[u],e,s),h=et(l,e);o[":@"]?tt(l,o[":@"],s,e):1!==Object.keys(l).length||void 0===l[e.textNodeName]||e.alwaysCreateTextNode?0===Object.keys(l).length&&(e.alwaysCreateTextNode?l[e.textNodeName]="":l=""):l=l[e.textNodeName],void 0!==n[u]&&n.hasOwnProperty(u)?(Array.isArray(n[u])||(n[u]=[n[u]]),n[u].push(l)):e.isArray(u,s,h)?n[u]=[l]:n[u]=l}}}return"string"==typeof i?i.length>0&&(n[e.textNodeName]=i):void 0!==i&&(n[e.textNodeName]=i),n}function Q(t){for(var e=Object.keys(t),r=0;r<e.length;r++){var i=e[r];if(":@"!==i)return i}}function tt(t,e,r,i){if(e)for(var n=Object.keys(e),a=n.length,s=0;s<a;s++){var o=n[s];i.isArray(o,r+"."+o,!0,!0)?t[o]=[e[o]]:t[o]=e[o]}}function et(t,e){var r=e.textNodeName,i=Object.keys(t).length;return 0===i||!(1!==i||!t[r]&&"boolean"!=typeof t[r]&&0!==t[r])}var rt=function(){function t(t){this.externalEntities={},this.options=function(t){return Object.assign({},E,t)}(t)}var e=t.prototype;return e.parse=function(t,e){if("string"==typeof t);else{if(!t.toString)throw new Error("XML data is accepted in String or Bytes[] form.");t=t.toString()}if(e){!0===e&&(e={});var r=o(t,e);if(!0!==r)throw Error(r.err.msg+":"+r.err.line+":"+r.err.col)}var i=new D(this.options);i.addExternalEntities(this.externalEntities);var n=i.parseXml(t);return this.options.preserveOrder||void 0===n?n:H(n,this.options)},e.addEntity=function(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e},t}();function it(t,e){var r="";return e.format&&e.indentBy.length>0&&(r="\n"),nt(t,e,"",r)}function nt(t,e,r,i){for(var n="",a=!1,s=0;s<t.length;s++){var o=t[s],u=at(o);if(void 0!==u){var l;if(l=0===r.length?u:r+"."+u,u!==e.textNodeName)if(u!==e.cdataPropName)if(u!==e.commentPropName)if("?"!==u[0]){var h=i;""!==h&&(h+=e.indentBy);var f=i+"<"+u+st(o[":@"],e),d=nt(o[u],e,l,h);-1!==e.unpairedTags.indexOf(u)?e.suppressUnpairedNode?n+=f+">":n+=f+"/>":d&&0!==d.length||!e.suppressEmptyNode?d&&d.endsWith(">")?n+=f+">"+d+i+"</"+u+">":(n+=f+">",d&&""!==i&&(d.includes("/>")||d.includes("</"))?n+=i+e.indentBy+d+i:n+=d,n+="</"+u+">"):n+=f+"/>",a=!0}else{var p=st(o[":@"],e),g="?xml"===u?"":i,c=o[u][0][e.textNodeName];n+=g+"<"+u+(c=0!==c.length?" "+c:"")+p+"?>",a=!0}else n+=i+"\x3c!--"+o[u][0][e.textNodeName]+"--\x3e",a=!0;else a&&(n+=i),n+="<![CDATA["+o[u][0][e.textNodeName]+"]]>",a=!1;else{var v=o[u];ot(l,e)||(v=ut(v=e.tagValueProcessor(u,v),e)),a&&(n+=i),n+=v,a=!1}}}return n}function at(t){for(var e=Object.keys(t),r=0;r<e.length;r++){var i=e[r];if(t.hasOwnProperty(i)&&":@"!==i)return i}}function st(t,e){var r="";if(t&&!e.ignoreAttributes)for(var i in t)if(t.hasOwnProperty(i)){var n=e.attributeValueProcessor(i,t[i]);!0===(n=ut(n,e))&&e.suppressBooleanAttributes?r+=" "+i.substr(e.attributeNamePrefix.length):r+=" "+i.substr(e.attributeNamePrefix.length)+'="'+n+'"'}return r}function ot(t,e){var r=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(var i in e.stopNodes)if(e.stopNodes[i]===t||e.stopNodes[i]==="*."+r)return!0;return!1}function ut(t,e){if(t&&t.length>0&&e.processEntities)for(var r=0;r<e.entities.length;r++){var i=e.entities[r];t=t.replace(i.regex,i.val)}return t}var lt={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ht(t){this.options=Object.assign({},lt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=pt),this.processTextOrObjNode=ft,this.options.format?(this.indentate=dt,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function ft(t,e,r,i){var n=this.j2x(t,r+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,n.attrStr,r):this.buildObjectNode(n.val,e,n.attrStr,r)}function dt(t){return this.options.indentBy.repeat(t)}function pt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ht.prototype.build=function(t){return this.options.preserveOrder?it(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&((e={})[this.options.arrayNodeName]=t,t=e),this.j2x(t,0,[]).val);var e},ht.prototype.j2x=function(t,e,r){var i="",n="",a=r.join(".");for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))if(void 0===t[s])this.isAttribute(s)&&(n+="");else if(null===t[s])this.isAttribute(s)||s===this.options.cdataPropName?n+="":"?"===s[0]?n+=this.indentate(e)+"<"+s+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+s+"/"+this.tagEndChar;else if(t[s]instanceof Date)n+=this.buildTextValNode(t[s],s,"",e);else if("object"!=typeof t[s]){var o=this.isAttribute(s);if(o&&!this.ignoreAttributesFn(o,a))i+=this.buildAttrPairStr(o,""+t[s]);else if(!o)if(s===this.options.textNodeName){var u=this.options.tagValueProcessor(s,""+t[s]);n+=this.replaceEntitiesValue(u)}else n+=this.buildTextValNode(t[s],s,"",e)}else if(Array.isArray(t[s])){for(var l=t[s].length,h="",f="",d=0;d<l;d++){var p=t[s][d];if(void 0===p);else if(null===p)"?"===s[0]?n+=this.indentate(e)+"<"+s+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+s+"/"+this.tagEndChar;else if("object"==typeof p)if(this.options.oneListGroup){var g=this.j2x(p,e+1,r.concat(s));h+=g.val,this.options.attributesGroupName&&p.hasOwnProperty(this.options.attributesGroupName)&&(f+=g.attrStr)}else h+=this.processTextOrObjNode(p,s,e,r);else if(this.options.oneListGroup){var c=this.options.tagValueProcessor(s,p);h+=c=this.replaceEntitiesValue(c)}else h+=this.buildTextValNode(p,s,"",e)}this.options.oneListGroup&&(h=this.buildObjectNode(h,s,f,e)),n+=h}else if(this.options.attributesGroupName&&s===this.options.attributesGroupName)for(var v=Object.keys(t[s]),m=v.length,x=0;x<m;x++)i+=this.buildAttrPairStr(v[x],""+t[s][v[x]]);else n+=this.processTextOrObjNode(t[s],s,e,r);return{attrStr:i,val:n}},ht.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},ht.prototype.buildObjectNode=function(t,e,r,i){if(""===t)return"?"===e[0]?this.indentate(i)+"<"+e+r+"?"+this.tagEndChar:this.indentate(i)+"<"+e+r+this.closeTag(e)+this.tagEndChar;var n="</"+e+this.tagEndChar,a="";return"?"===e[0]&&(a="?",n=""),!r&&""!==r||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===a.length?this.indentate(i)+"\x3c!--"+t+"--\x3e"+this.newLine:this.indentate(i)+"<"+e+r+a+this.tagEndChar+t+this.indentate(i)+n:this.indentate(i)+"<"+e+r+a+">"+t+n},ht.prototype.closeTag=function(t){var e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":"></"+t,e},ht.prototype.buildTextValNode=function(t,e,r,i){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(i)+"<![CDATA["+t+"]]>"+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+"\x3c!--"+t+"--\x3e"+this.newLine;if("?"===e[0])return this.indentate(i)+"<"+e+r+"?"+this.tagEndChar;var n=this.options.tagValueProcessor(e,t);return""===(n=this.replaceEntitiesValue(n))?this.indentate(i)+"<"+e+r+this.closeTag(e)+this.tagEndChar:this.indentate(i)+"<"+e+r+">"+n+"</"+e+this.tagEndChar},ht.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(var e=0;e<this.options.entities.length;e++){var r=this.options.entities[e];t=t.replace(r.regex,r.val)}return t};var gt={validate:o},ct=e.lG,vt=e.vf,mt=e.iI;export{ct as XMLBuilder,vt as XMLParser,mt as XMLValidator};
|
|
2
|
-
//# sourceMappingURL=fxp.min.esm.js.map
|