2 lines
46 KiB
JavaScript
2 lines
46 KiB
JavaScript
|
|
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fxp=e():t.fxp=e()}(this,()=>(()=>{"use strict";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),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>It,XMLParser:()=>gt,XMLValidator:()=>jt});var i=":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",r=new RegExp("^["+i+"]["+i+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function n(t,e){for(var i=[],r=e.exec(t);r;){var n=[];n.startIndex=e.lastIndex-r[0].length;for(var s=r.length,o=0;o<s;o++)n.push(r[o]);i.push(n),r=e.exec(t)}return i}var s=function(t){return!(null==r.exec(t))},o=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],a=["__proto__","constructor","prototype"],h={allowBooleanAttributes:!1,unpairedTags:[]};function u(t,e){e=Object.assign({},h,e);var i=[],r=!1,n=!1;"\ufeff"===t[0]&&(t=t.substr(1));for(var s=0;s<t.length;s++)if("<"===t[s]&&"?"===t[s+1]){if((s=p(t,s+=2)).err)return s}else{if("<"!==t[s]){if(l(t[s]))continue;return N("InvalidChar","char '"+t[s]+"' is not expected.",y(t,s))}var o=s;if("!"===t[++s]){s=d(t,s);continue}var a=!1;"/"===t[s]&&(a=!0,s++);for(var u="";s<t.length&&">"!==t[s]&&" "!==t[s]&&"\t"!==t[s]&&"\n"!==t[s]&&"\r"!==t[s];s++)u+=t[s];if("/"===(u=u.trim())[u.length-1]&&(u=u.substring(0,u.length-1),s--),!E(u))return N("InvalidTag",0===u.trim().length?"Invalid space after '<'.":"Tag '"+u+"' is an invalid name.",y(t,s));var f=g(t,s);if(!1===f)return N("InvalidAttr","Attributes for '"+u+"' have open quote.",y(t,s));var c=f.value;if(s=f.index,"/"===c[c.length-1]){var m=s-c.length,b=v(c=c.substring(0,c.length-1),e);if(!0!==b)return N(b.err.code,b.err.msg,y(t,m+b.err.line));r=!0}else if(a){if(!f.tagClosed)return N("InvalidTag","Closing tag '"+u+"' doesn't have proper closing.",y(t,s));if(c.trim().length>0)return N("InvalidTag","Closing tag '"+u+"' can't have attributes or invalid starting.",y(t,o));if(0===i.length)return N("InvalidTag","Closing tag '"+u+"' has not been opened.",y(t,o));var w=i.pop();if(u!==w.tagName){var S=y(t,w.tagStartPos);return N("InvalidTag","Expected closing tag '"+w.tagName+"' (opened in line "+S.line+", col "+S.col+") instead of closing tag '"+u+"'.",y(t,o))}0==i.length&&(n=!0)}else{var P=v(c,e);if(!0!==P)return N(P.err.code,P.err.msg,y(t,s-c.length+P.err.line));if(!0===n)return N("InvalidXml","Multiple possible root nodes found.",y(t,s));-1!==e.unpairedTags.indexOf(u)||i.push({tagName:u,tagStartPos:o}),r=!0}for(s++;s<t.length;s++)if("<"===t[s]){if("!"===t[s+1]){s=d(t,++s);continue}if("?"!==t[s+1])break;if((s=p(t,++s)).err)return s}else if("&"===t[s]){var T=x(t,s);if(-1==T)return N("InvalidChar","char '&' is not expected.",y(t,s));s=T}else if(!0===n&&!l(t[s]))return N("InvalidXml","Extra text at the end",y(t,s));"<"===t[s]&&s--}return r?1==i.length?N("InvalidTag","Unclosed tag '"+i[0].tagName+"'.",y(t,i[0].tagStartPos)):!(i.length>0)||N("InvalidXml","Invalid '"+JSON.stringify(i.map(function(t){return t.tagName}),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):N("InvalidXml","Start tag expected.",1)}function l(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function p(t,e){for(var i=e;e<t.length;e++)if("?"!=t[e]&&" "!=t[e]);else{var r=t.substr(i,e-i);if(e>5&&"xml"===r)return N("InvalidXml","XML declaration allowed only at the start of the document.",y(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function d(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
|
||
|
|
//# sourceMappingURL=fxp.min.js.map
|