url-sanitizer 0.7.2 → 0.7.4

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.
@@ -1,6 +1,6 @@
1
- var Nr=Object.create;var $t=Object.defineProperty;var Ir=Object.getOwnPropertyDescriptor;var kr=Object.getOwnPropertyNames;var Ur=Object.getPrototypeOf,Pr=Object.prototype.hasOwnProperty;var Fr=(r,a)=>()=>(a||r((a={exports:{}}).exports,a),a.exports);var Hr=(r,a,m,v)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of kr(a))!Pr.call(r,c)&&c!==m&&$t(r,c,{get:()=>a[c],enumerable:!(v=Ir(a,c))||v.enumerable});return r};var zr=(r,a,m)=>(m=r!=null?Nr(Ur(r)):{},Hr(a||!r||!r.__esModule?$t(m,"default",{value:r,enumerable:!0}):m,r));var Gt=Fr((ot,lt)=>{(function(r,a){typeof ot=="object"&&typeof lt<"u"?lt.exports=a():typeof define=="function"&&define.amd?define(a):(r=typeof globalThis<"u"?globalThis:r||self,r.DOMPurify=a())})(ot,function(){"use strict";function r(n){return r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},r(n)}function a(n,s){return a=Object.setPrototypeOf||function(f,E){return f.__proto__=E,f},a(n,s)}function m(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function v(n,s,l){return m()?v=Reflect.construct:v=function(E,Y,K){var V=[null];V.push.apply(V,Y);var ye=Function.bind.apply(E,V),Te=new ye;return K&&a(Te,K.prototype),Te},v.apply(null,arguments)}function c(n){return T(n)||B(n)||d(n)||b()}function T(n){if(Array.isArray(n))return C(n)}function B(n){if(typeof Symbol<"u"&&n[Symbol.iterator]!=null||n["@@iterator"]!=null)return Array.from(n)}function d(n,s){if(n){if(typeof n=="string")return C(n,s);var l=Object.prototype.toString.call(n).slice(8,-1);if(l==="Object"&&n.constructor&&(l=n.constructor.name),l==="Map"||l==="Set")return Array.from(n);if(l==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l))return C(n,s)}}function C(n,s){(s==null||s>n.length)&&(s=n.length);for(var l=0,f=new Array(s);l<s;l++)f[l]=n[l];return f}function b(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var w=Object.hasOwnProperty,h=Object.setPrototypeOf,_=Object.isFrozen,j=Object.getPrototypeOf,ae=Object.getOwnPropertyDescriptor,y=Object.freeze,g=Object.seal,z=Object.create,k=typeof Reflect<"u"&&Reflect,S=k.apply,$=k.construct;S||(S=function(s,l,f){return s.apply(l,f)}),y||(y=function(s){return s}),g||(g=function(s){return s}),$||($=function(s,l){return v(s,c(l))});var ee=F(Array.prototype.forEach),te=F(Array.prototype.pop),G=F(Array.prototype.push),N=F(String.prototype.toLowerCase),oe=F(String.prototype.toString),ve=F(String.prototype.match),U=F(String.prototype.replace),ge=F(String.prototype.indexOf),q=F(String.prototype.trim),R=F(RegExp.prototype.test),le=Ue(TypeError);function F(n){return function(s){for(var l=arguments.length,f=new Array(l>1?l-1:0),E=1;E<l;E++)f[E-1]=arguments[E];return S(n,s,f)}}function Ue(n){return function(){for(var s=arguments.length,l=new Array(s),f=0;f<s;f++)l[f]=arguments[f];return $(n,l)}}function p(n,s,l){l=l||N,h&&h(n,null);for(var f=s.length;f--;){var E=s[f];if(typeof E=="string"){var Y=l(E);Y!==E&&(_(s)||(s[f]=Y),E=Y)}n[E]=!0}return n}function ne(n){var s=z(null),l;for(l in n)S(w,n,[l])===!0&&(s[l]=n[l]);return s}function we(n,s){for(;n!==null;){var l=ae(n,s);if(l){if(l.get)return F(l.get);if(typeof l.value=="function")return F(l.value)}n=j(n)}function f(E){return console.warn("fallback value for",E),null}return f}var dt=y(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Pe=y(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Fe=y(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Zt=y(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),He=y(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),Jt=y(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),ht=y(["#text"]),vt=y(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),ze=y(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),gt=y(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Se=y(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Qt=g(/\{\{[\w\W]*|[\w\W]*\}\}/gm),er=g(/<%[\w\W]*|[\w\W]*%>/gm),tr=g(/\${[\w\W]*}/gm),rr=g(/^data-[\-\w.\u00B7-\uFFFF]/),ar=g(/^aria-[\-\w]+$/),nr=g(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ir=g(/^(?:\w+script|data):/i),sr=g(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),or=g(/^html$/i),lr=function(){return typeof window>"u"?null:window},cr=function(s,l){if(r(s)!=="object"||typeof s.createPolicy!="function")return null;var f=null,E="data-tt-policy-suffix";l.currentScript&&l.currentScript.hasAttribute(E)&&(f=l.currentScript.getAttribute(E));var Y="dompurify"+(f?"#"+f:"");try{return s.createPolicy(Y,{createHTML:function(V){return V},createScriptURL:function(V){return V}})}catch{return console.warn("TrustedTypes policy "+Y+" could not be created."),null}};function yt(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:lr(),s=function(e){return yt(e)};if(s.version="2.4.3",s.removed=[],!n||!n.document||n.document.nodeType!==9)return s.isSupported=!1,s;var l=n.document,f=n.document,E=n.DocumentFragment,Y=n.HTMLTemplateElement,K=n.Node,V=n.Element,ye=n.NodeFilter,Te=n.NamedNodeMap,mr=Te===void 0?n.NamedNodeMap||n.MozNamedAttrMap:Te,fr=n.HTMLFormElement,ur=n.DOMParser,Re=n.trustedTypes,xe=V.prototype,dr=we(xe,"cloneNode"),hr=we(xe,"nextSibling"),vr=we(xe,"childNodes"),$e=we(xe,"parentNode");if(typeof Y=="function"){var Ge=f.createElement("template");Ge.content&&Ge.content.ownerDocument&&(f=Ge.content.ownerDocument)}var W=cr(Re,l),Be=W?W.createHTML(""):"",Le=f,je=Le.implementation,gr=Le.createNodeIterator,yr=Le.createDocumentFragment,Tr=Le.getElementsByTagName,Er=l.importNode,Tt={};try{Tt=ne(f).documentMode?f.documentMode:{}}catch{}var X={};s.isSupported=typeof $e=="function"&&je&&typeof je.createHTMLDocument<"u"&&Tt!==9;var We=Qt,qe=er,Ye=tr,_r=rr,Ar=ar,br=ir,Et=sr,Ve=nr,x=null,_t=p({},[].concat(c(dt),c(Pe),c(Fe),c(He),c(ht))),M=null,At=p({},[].concat(c(vt),c(ze),c(gt),c(Se))),A=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ee=null,Xe=null,bt=!0,Ke=!0,wt=!1,ce=!1,ie=!1,Ze=!1,Je=!1,pe=!1,Oe=!1,Me=!1,St=!0,Rt=!1,wr="user-content-",Qe=!0,_e=!1,me={},fe=null,xt=p({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Lt=null,Ot=p({},["audio","video","img","source","image","track"]),et=null,Mt=p({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),De="http://www.w3.org/1998/Math/MathML",Ce="http://www.w3.org/2000/svg",Z="http://www.w3.org/1999/xhtml",ue=Z,tt=!1,rt=null,Sr=p({},[De,Ce,Z],oe),se,Rr=["application/xhtml+xml","text/html"],xr="text/html",L,de=null,Lr=f.createElement("form"),Dt=function(e){return e instanceof RegExp||e instanceof Function},at=function(e){de&&de===e||((!e||r(e)!=="object")&&(e={}),e=ne(e),se=Rr.indexOf(e.PARSER_MEDIA_TYPE)===-1?se=xr:se=e.PARSER_MEDIA_TYPE,L=se==="application/xhtml+xml"?oe:N,x="ALLOWED_TAGS"in e?p({},e.ALLOWED_TAGS,L):_t,M="ALLOWED_ATTR"in e?p({},e.ALLOWED_ATTR,L):At,rt="ALLOWED_NAMESPACES"in e?p({},e.ALLOWED_NAMESPACES,oe):Sr,et="ADD_URI_SAFE_ATTR"in e?p(ne(Mt),e.ADD_URI_SAFE_ATTR,L):Mt,Lt="ADD_DATA_URI_TAGS"in e?p(ne(Ot),e.ADD_DATA_URI_TAGS,L):Ot,fe="FORBID_CONTENTS"in e?p({},e.FORBID_CONTENTS,L):xt,Ee="FORBID_TAGS"in e?p({},e.FORBID_TAGS,L):{},Xe="FORBID_ATTR"in e?p({},e.FORBID_ATTR,L):{},me="USE_PROFILES"in e?e.USE_PROFILES:!1,bt=e.ALLOW_ARIA_ATTR!==!1,Ke=e.ALLOW_DATA_ATTR!==!1,wt=e.ALLOW_UNKNOWN_PROTOCOLS||!1,ce=e.SAFE_FOR_TEMPLATES||!1,ie=e.WHOLE_DOCUMENT||!1,pe=e.RETURN_DOM||!1,Oe=e.RETURN_DOM_FRAGMENT||!1,Me=e.RETURN_TRUSTED_TYPE||!1,Je=e.FORCE_BODY||!1,St=e.SANITIZE_DOM!==!1,Rt=e.SANITIZE_NAMED_PROPS||!1,Qe=e.KEEP_CONTENT!==!1,_e=e.IN_PLACE||!1,Ve=e.ALLOWED_URI_REGEXP||Ve,ue=e.NAMESPACE||Z,e.CUSTOM_ELEMENT_HANDLING&&Dt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(A.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&Dt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(A.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(A.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ce&&(Ke=!1),Oe&&(pe=!0),me&&(x=p({},c(ht)),M=[],me.html===!0&&(p(x,dt),p(M,vt)),me.svg===!0&&(p(x,Pe),p(M,ze),p(M,Se)),me.svgFilters===!0&&(p(x,Fe),p(M,ze),p(M,Se)),me.mathMl===!0&&(p(x,He),p(M,gt),p(M,Se))),e.ADD_TAGS&&(x===_t&&(x=ne(x)),p(x,e.ADD_TAGS,L)),e.ADD_ATTR&&(M===At&&(M=ne(M)),p(M,e.ADD_ATTR,L)),e.ADD_URI_SAFE_ATTR&&p(et,e.ADD_URI_SAFE_ATTR,L),e.FORBID_CONTENTS&&(fe===xt&&(fe=ne(fe)),p(fe,e.FORBID_CONTENTS,L)),Qe&&(x["#text"]=!0),ie&&p(x,["html","head","body"]),x.table&&(p(x,["tbody"]),delete Ee.tbody),y&&y(e),de=e)},Ct=p({},["mi","mo","mn","ms","mtext"]),Nt=p({},["foreignobject","desc","title","annotation-xml"]),Or=p({},["title","style","font","a","script"]),Ne=p({},Pe);p(Ne,Fe),p(Ne,Zt);var nt=p({},He);p(nt,Jt);var Mr=function(e){var t=$e(e);(!t||!t.tagName)&&(t={namespaceURI:ue,tagName:"template"});var i=N(e.tagName),u=N(t.tagName);return rt[e.namespaceURI]?e.namespaceURI===Ce?t.namespaceURI===Z?i==="svg":t.namespaceURI===De?i==="svg"&&(u==="annotation-xml"||Ct[u]):Boolean(Ne[i]):e.namespaceURI===De?t.namespaceURI===Z?i==="math":t.namespaceURI===Ce?i==="math"&&Nt[u]:Boolean(nt[i]):e.namespaceURI===Z?t.namespaceURI===Ce&&!Nt[u]||t.namespaceURI===De&&!Ct[u]?!1:!nt[i]&&(Or[i]||!Ne[i]):!!(se==="application/xhtml+xml"&&rt[e.namespaceURI]):!1},J=function(e){G(s.removed,{element:e});try{e.parentNode.removeChild(e)}catch{try{e.outerHTML=Be}catch{e.remove()}}},it=function(e,t){try{G(s.removed,{attribute:t.getAttributeNode(e),from:t})}catch{G(s.removed,{attribute:null,from:t})}if(t.removeAttribute(e),e==="is"&&!M[e])if(pe||Oe)try{J(t)}catch{}else try{t.setAttribute(e,"")}catch{}},It=function(e){var t,i;if(Je)e="<remove></remove>"+e;else{var u=ve(e,/^[\r\n\t ]+/);i=u&&u[0]}se==="application/xhtml+xml"&&ue===Z&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");var H=W?W.createHTML(e):e;if(ue===Z)try{t=new ur().parseFromString(H,se)}catch{}if(!t||!t.documentElement){t=je.createDocument(ue,"template",null);try{t.documentElement.innerHTML=tt?Be:H}catch{}}var I=t.body||t.documentElement;return e&&i&&I.insertBefore(f.createTextNode(i),I.childNodes[0]||null),ue===Z?Tr.call(t,ie?"html":"body")[0]:ie?t.documentElement:I},kt=function(e){return gr.call(e.ownerDocument||e,e,ye.SHOW_ELEMENT|ye.SHOW_COMMENT|ye.SHOW_TEXT,null,!1)},Dr=function(e){return e instanceof fr&&(typeof e.nodeName!="string"||typeof e.textContent!="string"||typeof e.removeChild!="function"||!(e.attributes instanceof mr)||typeof e.removeAttribute!="function"||typeof e.setAttribute!="function"||typeof e.namespaceURI!="string"||typeof e.insertBefore!="function"||typeof e.hasChildNodes!="function")},Ae=function(e){return r(K)==="object"?e instanceof K:e&&r(e)==="object"&&typeof e.nodeType=="number"&&typeof e.nodeName=="string"},Q=function(e,t,i){X[e]&&ee(X[e],function(u){u.call(s,t,i,de)})},Ut=function(e){var t;if(Q("beforeSanitizeElements",e,null),Dr(e)||R(/[\u0080-\uFFFF]/,e.nodeName))return J(e),!0;var i=L(e.nodeName);if(Q("uponSanitizeElement",e,{tagName:i,allowedTags:x}),e.hasChildNodes()&&!Ae(e.firstElementChild)&&(!Ae(e.content)||!Ae(e.content.firstElementChild))&&R(/<[/\w]/g,e.innerHTML)&&R(/<[/\w]/g,e.textContent)||i==="select"&&R(/<template/i,e.innerHTML))return J(e),!0;if(!x[i]||Ee[i]){if(!Ee[i]&&Ft(i)&&(A.tagNameCheck instanceof RegExp&&R(A.tagNameCheck,i)||A.tagNameCheck instanceof Function&&A.tagNameCheck(i)))return!1;if(Qe&&!fe[i]){var u=$e(e)||e.parentNode,H=vr(e)||e.childNodes;if(H&&u)for(var I=H.length,D=I-1;D>=0;--D)u.insertBefore(dr(H[D],!0),hr(e))}return J(e),!0}return e instanceof V&&!Mr(e)||(i==="noscript"||i==="noembed")&&R(/<\/no(script|embed)/i,e.innerHTML)?(J(e),!0):(ce&&e.nodeType===3&&(t=e.textContent,t=U(t,We," "),t=U(t,qe," "),t=U(t,Ye," "),e.textContent!==t&&(G(s.removed,{element:e.cloneNode()}),e.textContent=t)),Q("afterSanitizeElements",e,null),!1)},Pt=function(e,t,i){if(St&&(t==="id"||t==="name")&&(i in f||i in Lr))return!1;if(!(Ke&&!Xe[t]&&R(_r,t))){if(!(bt&&R(Ar,t))){if(!M[t]||Xe[t]){if(!(Ft(e)&&(A.tagNameCheck instanceof RegExp&&R(A.tagNameCheck,e)||A.tagNameCheck instanceof Function&&A.tagNameCheck(e))&&(A.attributeNameCheck instanceof RegExp&&R(A.attributeNameCheck,t)||A.attributeNameCheck instanceof Function&&A.attributeNameCheck(t))||t==="is"&&A.allowCustomizedBuiltInElements&&(A.tagNameCheck instanceof RegExp&&R(A.tagNameCheck,i)||A.tagNameCheck instanceof Function&&A.tagNameCheck(i))))return!1}else if(!et[t]){if(!R(Ve,U(i,Et,""))){if(!((t==="src"||t==="xlink:href"||t==="href")&&e!=="script"&&ge(i,"data:")===0&&Lt[e])){if(!(wt&&!R(br,U(i,Et,"")))){if(i)return!1}}}}}}return!0},Ft=function(e){return e.indexOf("-")>0},Ht=function(e){var t,i,u,H;Q("beforeSanitizeAttributes",e,null);var I=e.attributes;if(I){var D={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:M};for(H=I.length;H--;){t=I[H];var Ie=t,O=Ie.name,st=Ie.namespaceURI;if(i=O==="value"?t.value:q(t.value),u=L(O),D.attrName=u,D.attrValue=i,D.keepAttr=!0,D.forceKeepAttr=void 0,Q("uponSanitizeAttribute",e,D),i=D.attrValue,!D.forceKeepAttr&&(it(O,e),!!D.keepAttr)){if(R(/\/>/i,i)){it(O,e);continue}ce&&(i=U(i,We," "),i=U(i,qe," "),i=U(i,Ye," "));var zt=L(e.nodeName);if(Pt(zt,u,i)){if(Rt&&(u==="id"||u==="name")&&(it(O,e),i=wr+i),W&&r(Re)==="object"&&typeof Re.getAttributeType=="function"&&!st)switch(Re.getAttributeType(zt,u)){case"TrustedHTML":i=W.createHTML(i);break;case"TrustedScriptURL":i=W.createScriptURL(i);break}try{st?e.setAttributeNS(st,O,i):e.setAttribute(O,i),te(s.removed)}catch{}}}}Q("afterSanitizeAttributes",e,null)}},Cr=function o(e){var t,i=kt(e);for(Q("beforeSanitizeShadowDOM",e,null);t=i.nextNode();)Q("uponSanitizeShadowNode",t,null),!Ut(t)&&(t.content instanceof E&&o(t.content),Ht(t));Q("afterSanitizeShadowDOM",e,null)};return s.sanitize=function(o){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t,i,u,H,I;if(tt=!o,tt&&(o="<!-->"),typeof o!="string"&&!Ae(o)){if(typeof o.toString!="function")throw le("toString is not a function");if(o=o.toString(),typeof o!="string")throw le("dirty is not a string, aborting")}if(!s.isSupported){if(r(n.toStaticHTML)==="object"||typeof n.toStaticHTML=="function"){if(typeof o=="string")return n.toStaticHTML(o);if(Ae(o))return n.toStaticHTML(o.outerHTML)}return o}if(Ze||at(e),s.removed=[],typeof o=="string"&&(_e=!1),_e){if(o.nodeName){var D=L(o.nodeName);if(!x[D]||Ee[D])throw le("root node is forbidden and cannot be sanitized in-place")}}else if(o instanceof K)t=It("<!---->"),i=t.ownerDocument.importNode(o,!0),i.nodeType===1&&i.nodeName==="BODY"||i.nodeName==="HTML"?t=i:t.appendChild(i);else{if(!pe&&!ce&&!ie&&o.indexOf("<")===-1)return W&&Me?W.createHTML(o):o;if(t=It(o),!t)return pe?null:Me?Be:""}t&&Je&&J(t.firstChild);for(var Ie=kt(_e?o:t);u=Ie.nextNode();)u.nodeType===3&&u===H||Ut(u)||(u.content instanceof E&&Cr(u.content),Ht(u),H=u);if(H=null,_e)return o;if(pe){if(Oe)for(I=yr.call(t.ownerDocument);t.firstChild;)I.appendChild(t.firstChild);else I=t;return M.shadowroot&&(I=Er.call(l,I,!0)),I}var O=ie?t.outerHTML:t.innerHTML;return ie&&x["!doctype"]&&t.ownerDocument&&t.ownerDocument.doctype&&t.ownerDocument.doctype.name&&R(or,t.ownerDocument.doctype.name)&&(O="<!DOCTYPE "+t.ownerDocument.doctype.name+`>
3
- `+O),ce&&(O=U(O,We," "),O=U(O,qe," "),O=U(O,Ye," ")),W&&Me?W.createHTML(O):O},s.setConfig=function(o){at(o),Ze=!0},s.clearConfig=function(){de=null,Ze=!1},s.isValidAttribute=function(o,e,t){de||at({});var i=L(o),u=L(e);return Pt(i,u,t)},s.addHook=function(o,e){typeof e=="function"&&(X[o]=X[o]||[],G(X[o],e))},s.removeHook=function(o){if(X[o])return te(X[o])},s.removeHooks=function(o){X[o]&&(X[o]=[])},s.removeAllHooks=function(){X={}},s}var pr=yt();return pr})});var re=r=>Object.prototype.toString.call(r).slice(8,-1),P=r=>typeof r=="string"||r instanceof String;var ct=zr(Gt(),1);var pt=[7,8,9,10,11,12,13,27,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255];var Bt=["aaa","aaas","about","acap","acct","acd","acr","adiumxtra","adt","afp","afs","aim","amss","android","appdata","apt","ar","ark","attachment","aw","barion","beshare","bitcoin","bitcoincash","blob","bolo","browserext","cabal","calculator","callto","cap","cast","casts","chrome","chrome-extension","cid","coap","coaps","com-eventbrite-attendee","content","content-type","crid","cstr","cvs","dab","dat","data","dav","diaspora","dict","did","dis","dlna-playcontainer","dlna-playsingle","dns","dntp","doi","dpp","drm","dtmi","dtn","dvb","dvx","dweb","ed2k","eid","elsi","embedded","ens","ethereum","example","facetime","feed","feedready","fido","file","finger","first-run-pen-experience","fish","fm","ftp","fuchsia-pkg","geo","gg","git","gitoid","gizmoproject","go","gopher","graph","gtalk","h323","ham","hcap","hcp","http","https","hxxp","hxxps","hydrazone","hyper","iax","icap","icon","im","imap","info","iotdisco","ipfs","ipn","ipns","ipp","ipps","irc","irc6","ircs","iris","iris.beep","iris.lwz","iris.xpc","iris.xpcs","isostore","itms","jabber","jar","jms","keyparc","lastfm","lbry","ldap","ldaps","leaptofrogans","lorawan","lpa","lvlt","magnet","mailto","maps","market","matrix","message","microsoft.windows.camera","microsoft.windows.camera.multipicker","microsoft.windows.camera.picker","mid","mms","mongodb","moz","moz-extension","ms-access","ms-appinstaller","ms-browser-extension","ms-calculator","ms-drive-to","ms-enrollment","ms-excel","ms-eyecontrolspeech","ms-gamebarservices","ms-gamingoverlay","ms-getoffice","ms-help","ms-infopath","ms-inputapp","ms-lockscreencomponent-config","ms-media-stream-id","ms-meetnow","ms-mixedrealitycapture","ms-mobileplans","ms-newsandinterests","ms-officeapp","ms-people","ms-powerpoint","ms-project","ms-publisher","ms-remotedesktop-launch","ms-restoretabcompanion","ms-screenclip","ms-screensketch","ms-search","ms-search-repair","ms-secondary-screen-controller","ms-secondary-screen-setup","ms-settings","ms-settings-airplanemode","ms-settings-bluetooth","ms-settings-camera","ms-settings-cellular","ms-settings-cloudstorage","ms-settings-connectabledevices","ms-settings-displays-topology","ms-settings-emailandaccounts","ms-settings-language","ms-settings-location","ms-settings-lock","ms-settings-nfctransactions","ms-settings-notifications","ms-settings-power","ms-settings-privacy","ms-settings-proximity","ms-settings-screenrotation","ms-settings-wifi","ms-settings-workplace","ms-spd","ms-stickers","ms-sttoverlay","ms-transit-to","ms-useractivityset","ms-virtualtouchpad","ms-visio","ms-walk-to","ms-whiteboard","ms-whiteboard-cmd","ms-word","msnim","msrp","msrps","mss","mt","mtqp","mumble","mupdate","mvn","news","nfs","ni","nih","nntp","notes","num","ocf","oid","onenote","onenote-cmd","opaquelocktoken","openpgp4fpr","otpauth","palm","paparazzi","payment","payto","pkcs11","platform","pop","pres","proxy","psyc","pttp","pwid","qb","query","quic-transport","redis","rediss","reload","res","resource","rmi","rsync","rtmfp","rtmp","rtsp","rtsps","rtspu","sarif","secondlife","secret-token","service","session","sftp","sgn","shc","sieve","simpleledger","simplex","sip","sips","skype","smb","smp","sms","smtp","snmp","soap.beep","soap.beeps","soldat","spiffe","spotify","ssb","ssh","starknet","steam","stun","stuns","submit","svn","swh","swid","swidpath","tag","taler","teamspeak","tel","teliaeid","telnet","tftp","things","thismessage","tip","tn3270","tool","turn","turns","tv","udp","unreal","urn","ut2004","uuid-in-package","v-event","vemmi","ventrilo","ves","view-source","vnc","vscode","vscode-insiders","vsls","w3","wcr","web3","webcal","wifi","ws","wss","wtai","wyciwyg","xcon","xcon-userid","xfire","xmlrpc.beep","xmlrpc.beeps","xmpp","xri","ymsgr","z39.50r","z39.50s"];var he=16,Br=/^[\da-z+/\-_=]+$/i,jr=/data:[^,]*,[^"]+/g,jt=/data:[^,]*;?base64,[\da-z+/\-_=]+/i,Wr=/[<>"'\s]/g,qr=/%(?:2(?:2|7)|3(?:C|E))/g,Wt=/%(?:2(?:2|7)|3(?:C|E))+?/,Yr=/^(?:text\/(?:ht|x)ml|application\/(?:xhtml\+)?xml|image\/svg\+xml)/,Vr=/&#(x(?:00)?[\dA-F]{2}|0?\d{1,3});?/ig,Xr=/^[a-z][\da-z+\-.]*$/,Kr=/^(?:ext|web)\+[a-z]+$/,be=/(?:java|vb)script/,Zr=/^%[\dA-F]{2}$/i,Jr=/%26/g,Qr=/%26(?:(?:l|g|quo)t|%2339);?/g,ut=r=>{if(!P(r))throw new TypeError(`Expected String but got ${re(r)}.`);let a=[];for(let m of r)a.push(`%${m.charCodeAt(0).toString(he).toUpperCase()}`);return a.join("")},qt=r=>{P(r)&&Zr.test(r)&&(r=r.toUpperCase());let[a,m,v,c,T,B]=["&","#","<",">",'"',"'"].map(ut),d;return r===a?d=`${a}amp;`:r===v?d=`${a}lt;`:r===c?d=`${a}gt;`:r===T?d=`${a}quot;`:r===B?d=`${a}${m}39;`:d=r,d},ea=r=>{let a;return/%26lt;?/.test(r)?a="<":/%26gt;?/.test(r)?a=">":/%26quot;?/.test(r)?a='"':/%26%2339;?/.test(r)?a="'":a=r,a},ta=r=>{if(P(r)){if(!Br.test(r))throw new Error(`Invalid base64 data: ${r}`)}else throw new TypeError(`Expected String but got ${re(r)}.`);let a=atob(r),m=Uint8Array.from([...a].map(T=>T.charCodeAt(0))),v=new Set(pt),c;return m.every(T=>v.has(T))?c=a.replace(/\s/g,ut):c=r,c},Yt=(r,a=0)=>{if(!P(r))throw new TypeError(`Expected String but got ${re(r)}.`);if(Number.isInteger(a)){if(a>he)throw new Error("Character references nested too deeply.")}else throw new TypeError(`Expected Number but got ${re(a)}.`);let m=decodeURIComponent(r);if(/&#/.test(m)){let v=new Set(pt),c=[...m.matchAll(Vr)].reverse();for(let T of c){let[B,d]=T,C;if(/^x[\dA-F]+/i.test(d)?C=parseInt(`0${d}`,he):/^[\d]+/.test(d)&&(C=parseInt(d)),Number.isInteger(C)){let{index:b}=T,[w,h]=[m.substring(0,b),m.substring(b+B.length)];v.has(C)?(m=`${w}${String.fromCharCode(C)}${h}`,(/#x?$/.test(w)||/^#(?:x(?:00)?[2-7]|\d)/.test(h))&&(m=Yt(m,++a))):C<he*he&&(m=`${w}${h}`)}}}return m},ra=r=>{if(!P(r))throw new TypeError(`Expected String but got ${re(r)}.`);return encodeURIComponent(ct.default.sanitize(decodeURIComponent(r)))},mt=class{#e;constructor(){this.#e=new Set(Bt)}get(){return[...this.#e]}has(a){return this.#e.has(a)}add(a){if(P(a)){if(be.test(a)||!Xr.test(a))throw new Error(`Invalid scheme: ${a}`)}else throw new TypeError(`Expected String but got ${re(a)}.`);return this.#e.add(a),[...this.#e]}remove(a){return this.#e.delete(a)}verify(a){let m;if(P(a))try{let{protocol:v}=new URL(a),c=v.replace(/:$/,""),T=c.split("+");m=!be.test(c)&&Kr.test(c)||T.every(B=>this.#e.has(B))}catch{m=!1}return!!m}},ft=class extends mt{#e;#t;constructor(){super(),this.#e=0,this.#t=new Set}sanitize(a,m={allow:[],deny:[],only:[]}){if(this.#e>he)throw this.#e=0,new Error("Data URLs nested too deeply.");let{allow:v,deny:c,only:T,truncate:B}=m??{},d=new Map([["data",!1],["file",!1],["javascrpt",!1],["vbscript",!1]]),C=!1;if(Array.isArray(T)&&T.length){let w=super.get();for(let _ of w)d.set(_,!1);let h=Object.values(T);for(let _ of h)if(P(_)&&(_=_.trim(),!be.test(_))){if(super.has(_))d.set(_,!0);else{try{super.add(_)}catch{}super.has(_)&&d.set(_,!0)}!C&&d.has(_)&&(C=d.get(_))}}else{if(Array.isArray(v)&&v.length){let w=Object.values(v);for(let h of w)if(P(h)&&(h=h.trim(),!be.test(h)))if(super.has(h))d.set(h,!0);else{try{super.add(h)}catch{}super.has(h)&&d.set(h,!0)}}if(Array.isArray(c)&&c.length){let w=Object.values(c);for(let h of w)P(h)&&(h=h.trim(),h&&d.set(h,!1))}}let b;if(super.verify(a)){let{hash:w,href:h,pathname:_,protocol:j,search:ae}=new URL(a),y=j.replace(/:$/,""),g=y.split("+"),z;if(C)z=g.every(k=>d.get(k));else for(let[k,S]of d.entries())if(z=S||y!==k&&g.every($=>$!==k),!z)break;if(z){let k,S=h;if(g.includes("data")){let[$,...ee]=_.split(","),te=`${ee.join(",")}${ae}${w}`,G=$.split(";"),N=te;if(G[G.length-1]==="base64")G.pop(),N=ta(te);else try{let ve=Yt(N),{protocol:U}=new URL(ve.trim());U.replace(/:$/,"").split("+").some(q=>be.test(q))&&(S="")}catch{}let oe=/data:[^,]*,/.test(N);if(N!==te||oe){if(oe){let U=[...N.matchAll(jr)].reverse();for(let ge of U){let[q]=ge;jt.test(q)&&([q]=jt.exec(q)),this.#e++,this.#t.add(q);let R=this.sanitize(q,{allow:["data"]});if(R){let{index:le}=ge,[F,Ue]=[N.substring(0,le),N.substring(le+q.length)];N=`${F}${R}${Ue}`}}this.#t.has(a)?this.#t.delete(a):k=!0}else this.#t.has(a)?this.#t.delete(a):k=!0;S=`${y}:${G.join(";")},${N}`}else this.#t.has(a)?this.#t.delete(a):k=!0}else k=!0;if(!g.includes("data")&&B&&Wt.test(S)){let $=Wt.exec(S),{index:ee}=$;S=S.substring(0,ee)}S?(b=S.replace(Wr,ut).replace(Jr,qt),k&&(b=b.replace(qr,qt),this.#e=0)):(b=S,this.#e=0)}}return b||null}parse(a,m){if(!P(a))throw new TypeError(`Expected String but got ${re(a)}.`);let v=this.sanitize(a,m??{allow:["data","file"]}),c=new Map([["input",a]]);if(v){let T=new URL(v),{pathname:B,protocol:d}=T,C=d.replace(/:$/,"").split("+");if(c.set("valid",!0),C.includes("data")){let b=new Map,[w,...h]=B.split(","),_=`${h.join(",")}`,j=w.split(";"),ae=j[j.length-1]==="base64";ae&&j.pop(),b.set("mime",j.join(";")),b.set("base64",ae);let y;if(!ae&&Yr.test(w)){let g=_,k=[...g.matchAll(Qr)].reverse();for(let S of k){let[$]=S,{index:ee}=S,[te,G]=[g.substring(0,ee),g.substring(ee+$.length)],N=ea($);g=`${te}${N}${G}`}y=ra(g),b.set("data",y)}else b.set("data",_);c.set("data",Object.fromEntries(b));for(let g in T){let z=T[g];if(P(z)){if(P(y))switch(g){case"href":z=`${d}${j.join(";")},${y}`;break;case"pathname":z=`${j.join(";")},${y}`;break;default:}c.set(g,z)}}}else{c.set("data",null);for(let b in T){let w=T[b];P(w)&&c.set(b,w)}}}else c.set("valid",!1);return Object.fromEntries(c)}},ke=new ft,Vt=r=>ke.verify(r),aa=async r=>await Vt(r),Xt=r=>ke.parse(r),na=async r=>await Xt(r),Kt=(r,a)=>{let m=ke.parse(r,a??{allow:[],deny:[],only:[]}),v;if(m){let{href:c}=m;v=c}return v??null},ia=async(r,a)=>await Kt(r,a);export{ke as default,aa as isURI,Vt as isURISync,na as parseURL,Xt as parseURLSync,ia as sanitizeURL,Kt as sanitizeURLSync};
1
+ var Ir=Object.create;var Gt=Object.defineProperty;var Ur=Object.getOwnPropertyDescriptor;var kr=Object.getOwnPropertyNames;var Pr=Object.getPrototypeOf,Fr=Object.prototype.hasOwnProperty;var zr=(i,r)=>()=>(r||i((r={exports:{}}).exports,r),r.exports);var Hr=(i,r,p,v)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of kr(r))!Fr.call(i,c)&&c!==p&&Gt(i,c,{get:()=>r[c],enumerable:!(v=Ur(r,c))||v.enumerable});return i};var $r=(i,r,p)=>(p=i!=null?Ir(Pr(i)):{},Hr(r||!i||!i.__esModule?Gt(p,"default",{value:i,enumerable:!0}):p,i));var Bt=zr((lt,ct)=>{(function(i,r){typeof lt=="object"&&typeof ct<"u"?ct.exports=r():typeof define=="function"&&define.amd?define(r):(i=typeof globalThis<"u"?globalThis:i||self,i.DOMPurify=r())})(lt,function(){"use strict";function i(a){return i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},i(a)}function r(a,s){return r=Object.setPrototypeOf||function(m,T){return m.__proto__=T,m},r(a,s)}function p(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function v(a,s,l){return p()?v=Reflect.construct:v=function(T,j,V){var W=[null];W.push.apply(W,j);var ge=Function.bind.apply(T,W),ye=new ge;return V&&r(ye,V.prototype),ye},v.apply(null,arguments)}function c(a){return y(a)||R(a)||d(a)||E()}function y(a){if(Array.isArray(a))return w(a)}function R(a){if(typeof Symbol<"u"&&a[Symbol.iterator]!=null||a["@@iterator"]!=null)return Array.from(a)}function d(a,s){if(a){if(typeof a=="string")return w(a,s);var l=Object.prototype.toString.call(a).slice(8,-1);if(l==="Object"&&a.constructor&&(l=a.constructor.name),l==="Map"||l==="Set")return Array.from(a);if(l==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l))return w(a,s)}}function w(a,s){(s==null||s>a.length)&&(s=a.length);for(var l=0,m=new Array(s);l<s;l++)m[l]=a[l];return m}function E(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var _=Object.hasOwnProperty,h=Object.setPrototypeOf,A=Object.isFrozen,q=Object.getPrototypeOf,ne=Object.getOwnPropertyDescriptor,S=Object.freeze,M=Object.seal,ie=Object.create,z=typeof Reflect<"u"&&Reflect,x=z.apply,G=z.construct;x||(x=function(s,l,m){return s.apply(l,m)}),S||(S=function(s){return s}),M||(M=function(s){return s}),G||(G=function(s,l){return v(s,c(l))});var de=P(Array.prototype.forEach),Q=P(Array.prototype.pop),B=P(Array.prototype.push),ee=P(String.prototype.toLowerCase),N=P(String.prototype.toString),be=P(String.prototype.match),k=P(String.prototype.replace),he=P(String.prototype.indexOf),ve=P(String.prototype.trim),g=P(RegExp.prototype.test),se=Pe(TypeError);function P(a){return function(s){for(var l=arguments.length,m=new Array(l>1?l-1:0),T=1;T<l;T++)m[T-1]=arguments[T];return x(a,s,m)}}function Pe(a){return function(){for(var s=arguments.length,l=new Array(s),m=0;m<s;m++)l[m]=arguments[m];return G(a,l)}}function f(a,s,l){l=l||ee,h&&h(a,null);for(var m=s.length;m--;){var T=s[m];if(typeof T=="string"){var j=l(T);j!==T&&(A(s)||(s[m]=j),T=j)}a[T]=!0}return a}function te(a){var s=ie(null),l;for(l in a)x(_,a,[l])===!0&&(s[l]=a[l]);return s}function we(a,s){for(;a!==null;){var l=ne(a,s);if(l){if(l.get)return P(l.get);if(typeof l.value=="function")return P(l.value)}a=q(a)}function m(T){return console.warn("fallback value for",T),null}return m}var ht=S(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Fe=S(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),ze=S(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Jt=S(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),He=S(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),Qt=S(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),vt=S(["#text"]),gt=S(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),$e=S(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),yt=S(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Se=S(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),er=M(/\{\{[\w\W]*|[\w\W]*\}\}/gm),tr=M(/<%[\w\W]*|[\w\W]*%>/gm),rr=M(/\${[\w\W]*}/gm),ar=M(/^data-[\-\w.\u00B7-\uFFFF]/),nr=M(/^aria-[\-\w]+$/),ir=M(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),sr=M(/^(?:\w+script|data):/i),or=M(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),lr=M(/^html$/i),cr=function(){return typeof window>"u"?null:window},pr=function(s,l){if(i(s)!=="object"||typeof s.createPolicy!="function")return null;var m=null,T="data-tt-policy-suffix";l.currentScript&&l.currentScript.hasAttribute(T)&&(m=l.currentScript.getAttribute(T));var j="dompurify"+(m?"#"+m:"");try{return s.createPolicy(j,{createHTML:function(W){return W},createScriptURL:function(W){return W}})}catch{return console.warn("TrustedTypes policy "+j+" could not be created."),null}};function Tt(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:cr(),s=function(e){return Tt(e)};if(s.version="2.4.3",s.removed=[],!a||!a.document||a.document.nodeType!==9)return s.isSupported=!1,s;var l=a.document,m=a.document,T=a.DocumentFragment,j=a.HTMLTemplateElement,V=a.Node,W=a.Element,ge=a.NodeFilter,ye=a.NamedNodeMap,mr=ye===void 0?a.NamedNodeMap||a.MozNamedAttrMap:ye,ur=a.HTMLFormElement,dr=a.DOMParser,Re=a.trustedTypes,xe=W.prototype,hr=we(xe,"cloneNode"),vr=we(xe,"nextSibling"),gr=we(xe,"childNodes"),Ge=we(xe,"parentNode");if(typeof j=="function"){var Be=m.createElement("template");Be.content&&Be.content.ownerDocument&&(m=Be.content.ownerDocument)}var $=pr(Re,l),je=$?$.createHTML(""):"",Le=m,We=Le.implementation,yr=Le.createNodeIterator,Tr=Le.createDocumentFragment,Er=Le.getElementsByTagName,_r=l.importNode,Et={};try{Et=te(m).documentMode?m.documentMode:{}}catch{}var Y={};s.isSupported=typeof Ge=="function"&&We&&typeof We.createHTMLDocument<"u"&&Et!==9;var Ye=er,qe=tr,Ve=rr,Ar=ar,br=nr,wr=sr,_t=or,Xe=ir,L=null,At=f({},[].concat(c(ht),c(Fe),c(ze),c(He),c(vt))),C=null,bt=f({},[].concat(c(gt),c($e),c(yt),c(Se))),b=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Te=null,Ke=null,wt=!0,Ze=!0,St=!1,oe=!1,re=!1,Je=!1,Qe=!1,le=!1,Oe=!1,De=!1,Rt=!0,xt=!1,Sr="user-content-",et=!0,Ee=!1,ce={},pe=null,Lt=f({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ot=null,Dt=f({},["audio","video","img","source","image","track"]),tt=null,Mt=f({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Me="http://www.w3.org/1998/Math/MathML",Ne="http://www.w3.org/2000/svg",X="http://www.w3.org/1999/xhtml",fe=X,rt=!1,at=null,Rr=f({},[Me,Ne,X],N),ae,xr=["application/xhtml+xml","text/html"],Lr="text/html",O,me=null,Or=m.createElement("form"),Nt=function(e){return e instanceof RegExp||e instanceof Function},nt=function(e){me&&me===e||((!e||i(e)!=="object")&&(e={}),e=te(e),ae=xr.indexOf(e.PARSER_MEDIA_TYPE)===-1?ae=Lr:ae=e.PARSER_MEDIA_TYPE,O=ae==="application/xhtml+xml"?N:ee,L="ALLOWED_TAGS"in e?f({},e.ALLOWED_TAGS,O):At,C="ALLOWED_ATTR"in e?f({},e.ALLOWED_ATTR,O):bt,at="ALLOWED_NAMESPACES"in e?f({},e.ALLOWED_NAMESPACES,N):Rr,tt="ADD_URI_SAFE_ATTR"in e?f(te(Mt),e.ADD_URI_SAFE_ATTR,O):Mt,Ot="ADD_DATA_URI_TAGS"in e?f(te(Dt),e.ADD_DATA_URI_TAGS,O):Dt,pe="FORBID_CONTENTS"in e?f({},e.FORBID_CONTENTS,O):Lt,Te="FORBID_TAGS"in e?f({},e.FORBID_TAGS,O):{},Ke="FORBID_ATTR"in e?f({},e.FORBID_ATTR,O):{},ce="USE_PROFILES"in e?e.USE_PROFILES:!1,wt=e.ALLOW_ARIA_ATTR!==!1,Ze=e.ALLOW_DATA_ATTR!==!1,St=e.ALLOW_UNKNOWN_PROTOCOLS||!1,oe=e.SAFE_FOR_TEMPLATES||!1,re=e.WHOLE_DOCUMENT||!1,le=e.RETURN_DOM||!1,Oe=e.RETURN_DOM_FRAGMENT||!1,De=e.RETURN_TRUSTED_TYPE||!1,Qe=e.FORCE_BODY||!1,Rt=e.SANITIZE_DOM!==!1,xt=e.SANITIZE_NAMED_PROPS||!1,et=e.KEEP_CONTENT!==!1,Ee=e.IN_PLACE||!1,Xe=e.ALLOWED_URI_REGEXP||Xe,fe=e.NAMESPACE||X,e.CUSTOM_ELEMENT_HANDLING&&Nt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(b.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&Nt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(b.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(b.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),oe&&(Ze=!1),Oe&&(le=!0),ce&&(L=f({},c(vt)),C=[],ce.html===!0&&(f(L,ht),f(C,gt)),ce.svg===!0&&(f(L,Fe),f(C,$e),f(C,Se)),ce.svgFilters===!0&&(f(L,ze),f(C,$e),f(C,Se)),ce.mathMl===!0&&(f(L,He),f(C,yt),f(C,Se))),e.ADD_TAGS&&(L===At&&(L=te(L)),f(L,e.ADD_TAGS,O)),e.ADD_ATTR&&(C===bt&&(C=te(C)),f(C,e.ADD_ATTR,O)),e.ADD_URI_SAFE_ATTR&&f(tt,e.ADD_URI_SAFE_ATTR,O),e.FORBID_CONTENTS&&(pe===Lt&&(pe=te(pe)),f(pe,e.FORBID_CONTENTS,O)),et&&(L["#text"]=!0),re&&f(L,["html","head","body"]),L.table&&(f(L,["tbody"]),delete Te.tbody),S&&S(e),me=e)},Ct=f({},["mi","mo","mn","ms","mtext"]),It=f({},["foreignobject","desc","title","annotation-xml"]),Dr=f({},["title","style","font","a","script"]),Ce=f({},Fe);f(Ce,ze),f(Ce,Jt);var it=f({},He);f(it,Qt);var Mr=function(e){var t=Ge(e);(!t||!t.tagName)&&(t={namespaceURI:fe,tagName:"template"});var n=ee(e.tagName),u=ee(t.tagName);return at[e.namespaceURI]?e.namespaceURI===Ne?t.namespaceURI===X?n==="svg":t.namespaceURI===Me?n==="svg"&&(u==="annotation-xml"||Ct[u]):Boolean(Ce[n]):e.namespaceURI===Me?t.namespaceURI===X?n==="math":t.namespaceURI===Ne?n==="math"&&It[u]:Boolean(it[n]):e.namespaceURI===X?t.namespaceURI===Ne&&!It[u]||t.namespaceURI===Me&&!Ct[u]?!1:!it[n]&&(Dr[n]||!Ce[n]):!!(ae==="application/xhtml+xml"&&at[e.namespaceURI]):!1},K=function(e){B(s.removed,{element:e});try{e.parentNode.removeChild(e)}catch{try{e.outerHTML=je}catch{e.remove()}}},st=function(e,t){try{B(s.removed,{attribute:t.getAttributeNode(e),from:t})}catch{B(s.removed,{attribute:null,from:t})}if(t.removeAttribute(e),e==="is"&&!C[e])if(le||Oe)try{K(t)}catch{}else try{t.setAttribute(e,"")}catch{}},Ut=function(e){var t,n;if(Qe)e="<remove></remove>"+e;else{var u=be(e,/^[\r\n\t ]+/);n=u&&u[0]}ae==="application/xhtml+xml"&&fe===X&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");var F=$?$.createHTML(e):e;if(fe===X)try{t=new dr().parseFromString(F,ae)}catch{}if(!t||!t.documentElement){t=We.createDocument(fe,"template",null);try{t.documentElement.innerHTML=rt?je:F}catch{}}var U=t.body||t.documentElement;return e&&n&&U.insertBefore(m.createTextNode(n),U.childNodes[0]||null),fe===X?Er.call(t,re?"html":"body")[0]:re?t.documentElement:U},kt=function(e){return yr.call(e.ownerDocument||e,e,ge.SHOW_ELEMENT|ge.SHOW_COMMENT|ge.SHOW_TEXT,null,!1)},Nr=function(e){return e instanceof ur&&(typeof e.nodeName!="string"||typeof e.textContent!="string"||typeof e.removeChild!="function"||!(e.attributes instanceof mr)||typeof e.removeAttribute!="function"||typeof e.setAttribute!="function"||typeof e.namespaceURI!="string"||typeof e.insertBefore!="function"||typeof e.hasChildNodes!="function")},_e=function(e){return i(V)==="object"?e instanceof V:e&&i(e)==="object"&&typeof e.nodeType=="number"&&typeof e.nodeName=="string"},Z=function(e,t,n){Y[e]&&de(Y[e],function(u){u.call(s,t,n,me)})},Pt=function(e){var t;if(Z("beforeSanitizeElements",e,null),Nr(e)||g(/[\u0080-\uFFFF]/,e.nodeName))return K(e),!0;var n=O(e.nodeName);if(Z("uponSanitizeElement",e,{tagName:n,allowedTags:L}),e.hasChildNodes()&&!_e(e.firstElementChild)&&(!_e(e.content)||!_e(e.content.firstElementChild))&&g(/<[/\w]/g,e.innerHTML)&&g(/<[/\w]/g,e.textContent)||n==="select"&&g(/<template/i,e.innerHTML))return K(e),!0;if(!L[n]||Te[n]){if(!Te[n]&&zt(n)&&(b.tagNameCheck instanceof RegExp&&g(b.tagNameCheck,n)||b.tagNameCheck instanceof Function&&b.tagNameCheck(n)))return!1;if(et&&!pe[n]){var u=Ge(e)||e.parentNode,F=gr(e)||e.childNodes;if(F&&u)for(var U=F.length,I=U-1;I>=0;--I)u.insertBefore(hr(F[I],!0),vr(e))}return K(e),!0}return e instanceof W&&!Mr(e)||(n==="noscript"||n==="noembed")&&g(/<\/no(script|embed)/i,e.innerHTML)?(K(e),!0):(oe&&e.nodeType===3&&(t=e.textContent,t=k(t,Ye," "),t=k(t,qe," "),t=k(t,Ve," "),e.textContent!==t&&(B(s.removed,{element:e.cloneNode()}),e.textContent=t)),Z("afterSanitizeElements",e,null),!1)},Ft=function(e,t,n){if(Rt&&(t==="id"||t==="name")&&(n in m||n in Or))return!1;if(!(Ze&&!Ke[t]&&g(Ar,t))){if(!(wt&&g(br,t))){if(!C[t]||Ke[t]){if(!(zt(e)&&(b.tagNameCheck instanceof RegExp&&g(b.tagNameCheck,e)||b.tagNameCheck instanceof Function&&b.tagNameCheck(e))&&(b.attributeNameCheck instanceof RegExp&&g(b.attributeNameCheck,t)||b.attributeNameCheck instanceof Function&&b.attributeNameCheck(t))||t==="is"&&b.allowCustomizedBuiltInElements&&(b.tagNameCheck instanceof RegExp&&g(b.tagNameCheck,n)||b.tagNameCheck instanceof Function&&b.tagNameCheck(n))))return!1}else if(!tt[t]){if(!g(Xe,k(n,_t,""))){if(!((t==="src"||t==="xlink:href"||t==="href")&&e!=="script"&&he(n,"data:")===0&&Ot[e])){if(!(St&&!g(wr,k(n,_t,"")))){if(n)return!1}}}}}}return!0},zt=function(e){return e.indexOf("-")>0},Ht=function(e){var t,n,u,F;Z("beforeSanitizeAttributes",e,null);var U=e.attributes;if(U){var I={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:C};for(F=U.length;F--;){t=U[F];var Ie=t,D=Ie.name,ot=Ie.namespaceURI;if(n=D==="value"?t.value:ve(t.value),u=O(D),I.attrName=u,I.attrValue=n,I.keepAttr=!0,I.forceKeepAttr=void 0,Z("uponSanitizeAttribute",e,I),n=I.attrValue,!I.forceKeepAttr&&(st(D,e),!!I.keepAttr)){if(g(/\/>/i,n)){st(D,e);continue}oe&&(n=k(n,Ye," "),n=k(n,qe," "),n=k(n,Ve," "));var $t=O(e.nodeName);if(Ft($t,u,n)){if(xt&&(u==="id"||u==="name")&&(st(D,e),n=Sr+n),$&&i(Re)==="object"&&typeof Re.getAttributeType=="function"&&!ot)switch(Re.getAttributeType($t,u)){case"TrustedHTML":n=$.createHTML(n);break;case"TrustedScriptURL":n=$.createScriptURL(n);break}try{ot?e.setAttributeNS(ot,D,n):e.setAttribute(D,n),Q(s.removed)}catch{}}}}Z("afterSanitizeAttributes",e,null)}},Cr=function o(e){var t,n=kt(e);for(Z("beforeSanitizeShadowDOM",e,null);t=n.nextNode();)Z("uponSanitizeShadowNode",t,null),!Pt(t)&&(t.content instanceof T&&o(t.content),Ht(t));Z("afterSanitizeShadowDOM",e,null)};return s.sanitize=function(o){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t,n,u,F,U;if(rt=!o,rt&&(o="<!-->"),typeof o!="string"&&!_e(o)){if(typeof o.toString!="function")throw se("toString is not a function");if(o=o.toString(),typeof o!="string")throw se("dirty is not a string, aborting")}if(!s.isSupported){if(i(a.toStaticHTML)==="object"||typeof a.toStaticHTML=="function"){if(typeof o=="string")return a.toStaticHTML(o);if(_e(o))return a.toStaticHTML(o.outerHTML)}return o}if(Je||nt(e),s.removed=[],typeof o=="string"&&(Ee=!1),Ee){if(o.nodeName){var I=O(o.nodeName);if(!L[I]||Te[I])throw se("root node is forbidden and cannot be sanitized in-place")}}else if(o instanceof V)t=Ut("<!---->"),n=t.ownerDocument.importNode(o,!0),n.nodeType===1&&n.nodeName==="BODY"||n.nodeName==="HTML"?t=n:t.appendChild(n);else{if(!le&&!oe&&!re&&o.indexOf("<")===-1)return $&&De?$.createHTML(o):o;if(t=Ut(o),!t)return le?null:De?je:""}t&&Qe&&K(t.firstChild);for(var Ie=kt(Ee?o:t);u=Ie.nextNode();)u.nodeType===3&&u===F||Pt(u)||(u.content instanceof T&&Cr(u.content),Ht(u),F=u);if(F=null,Ee)return o;if(le){if(Oe)for(U=Tr.call(t.ownerDocument);t.firstChild;)U.appendChild(t.firstChild);else U=t;return C.shadowroot&&(U=_r.call(l,U,!0)),U}var D=re?t.outerHTML:t.innerHTML;return re&&L["!doctype"]&&t.ownerDocument&&t.ownerDocument.doctype&&t.ownerDocument.doctype.name&&g(lr,t.ownerDocument.doctype.name)&&(D="<!DOCTYPE "+t.ownerDocument.doctype.name+`>
3
+ `+D),oe&&(D=k(D,Ye," "),D=k(D,qe," "),D=k(D,Ve," ")),$&&De?$.createHTML(D):D},s.setConfig=function(o){nt(o),Je=!0},s.clearConfig=function(){me=null,Je=!1},s.isValidAttribute=function(o,e,t){me||nt({});var n=O(o),u=O(e);return Ft(n,u,t)},s.addHook=function(o,e){typeof e=="function"&&(Y[o]=Y[o]||[],B(Y[o],e))},s.removeHook=function(o){if(Y[o])return Q(Y[o])},s.removeHooks=function(o){Y[o]&&(Y[o]=[])},s.removeAllHooks=function(){Y={}},s}var fr=Tt();return fr})});var J=i=>Object.prototype.toString.call(i).slice(8,-1),H=i=>typeof i=="string"||i instanceof String;var pt=$r(Bt(),1);var ft=[7,8,9,10,11,12,13,27,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255];var jt=["aaa","aaas","about","acap","acct","acd","acr","adiumxtra","adt","afp","afs","aim","amss","android","appdata","apt","ar","ark","attachment","aw","barion","beshare","bitcoin","bitcoincash","blob","bolo","browserext","cabal","calculator","callto","cap","cast","casts","chrome","chrome-extension","cid","coap","coaps","com-eventbrite-attendee","content","content-type","crid","cstr","cvs","dab","dat","data","dav","diaspora","dict","did","dis","dlna-playcontainer","dlna-playsingle","dns","dntp","doi","dpp","drm","dtmi","dtn","dvb","dvx","dweb","ed2k","eid","elsi","embedded","ens","ethereum","example","facetime","feed","feedready","fido","file","finger","first-run-pen-experience","fish","fm","ftp","fuchsia-pkg","geo","gg","git","gitoid","gizmoproject","go","gopher","graph","gtalk","h323","ham","hcap","hcp","http","https","hxxp","hxxps","hydrazone","hyper","iax","icap","icon","im","imap","info","iotdisco","ipfs","ipn","ipns","ipp","ipps","irc","irc6","ircs","iris","iris.beep","iris.lwz","iris.xpc","iris.xpcs","isostore","itms","jabber","jar","jms","keyparc","lastfm","lbry","ldap","ldaps","leaptofrogans","lorawan","lpa","lvlt","magnet","mailto","maps","market","matrix","message","microsoft.windows.camera","microsoft.windows.camera.multipicker","microsoft.windows.camera.picker","mid","mms","mongodb","moz","moz-extension","ms-access","ms-appinstaller","ms-browser-extension","ms-calculator","ms-drive-to","ms-enrollment","ms-excel","ms-eyecontrolspeech","ms-gamebarservices","ms-gamingoverlay","ms-getoffice","ms-help","ms-infopath","ms-inputapp","ms-lockscreencomponent-config","ms-media-stream-id","ms-meetnow","ms-mixedrealitycapture","ms-mobileplans","ms-newsandinterests","ms-officeapp","ms-people","ms-powerpoint","ms-project","ms-publisher","ms-remotedesktop-launch","ms-restoretabcompanion","ms-screenclip","ms-screensketch","ms-search","ms-search-repair","ms-secondary-screen-controller","ms-secondary-screen-setup","ms-settings","ms-settings-airplanemode","ms-settings-bluetooth","ms-settings-camera","ms-settings-cellular","ms-settings-cloudstorage","ms-settings-connectabledevices","ms-settings-displays-topology","ms-settings-emailandaccounts","ms-settings-language","ms-settings-location","ms-settings-lock","ms-settings-nfctransactions","ms-settings-notifications","ms-settings-power","ms-settings-privacy","ms-settings-proximity","ms-settings-screenrotation","ms-settings-wifi","ms-settings-workplace","ms-spd","ms-stickers","ms-sttoverlay","ms-transit-to","ms-useractivityset","ms-virtualtouchpad","ms-visio","ms-walk-to","ms-whiteboard","ms-whiteboard-cmd","ms-word","msnim","msrp","msrps","mss","mt","mtqp","mumble","mupdate","mvn","news","nfs","ni","nih","nntp","notes","num","ocf","oid","onenote","onenote-cmd","opaquelocktoken","openpgp4fpr","otpauth","palm","paparazzi","payment","payto","pkcs11","platform","pop","pres","proxy","psyc","pttp","pwid","qb","query","quic-transport","redis","rediss","reload","res","resource","rmi","rsync","rtmfp","rtmp","rtsp","rtsps","rtspu","sarif","secondlife","secret-token","service","session","sftp","sgn","shc","sieve","simpleledger","simplex","sip","sips","skype","smb","smp","sms","smtp","snmp","soap.beep","soap.beeps","soldat","spiffe","spotify","ssb","ssh","starknet","steam","stun","stuns","submit","svn","swh","swid","swidpath","tag","taler","teamspeak","tel","teliaeid","telnet","tftp","things","thismessage","tip","tn3270","tool","turn","turns","tv","udp","unreal","urn","ut2004","uuid-in-package","v-event","vemmi","ventrilo","ves","view-source","vnc","vscode","vscode-insiders","vsls","w3","wcr","web3","webcal","wifi","ws","wss","wtai","wyciwyg","xcon","xcon-userid","xfire","xmlrpc.beep","xmlrpc.beeps","xmpp","xri","ymsgr","z39.50r","z39.50s"];var ue=16,jr=/^[\da-z+/\-_=]+$/i,Wt=/data:[^,]*,[^"]+/g,Ue=/data:[^,]*;?base64,[\da-z+/\-_=]+/i,Wr=/[<>"'\s]/g,Yr=/%(?:2(?:2|7)|3(?:C|E))/g,Yt=/%(?:2(?:2|7)|3(?:C|E))+?/,qr=/^(?:text\/(?:ht|x)ml|application\/(?:xhtml\+)?xml|image\/svg\+xml)/,Vr=/&#(x(?:00)?[\dA-F]{2}|0?\d{1,3});?/ig,Xr=/^[a-z][\da-z+\-.]*$/,Kr=/^(?:ext|web)\+[a-z]+$/,Ae=/(?:java|vb)script/,Zr=/^%[\dA-F]{2}$/i,Jr=/%26/g,dt=i=>{if(!H(i))throw new TypeError(`Expected String but got ${J(i)}.`);let r=[];for(let p of i)r.push(`%${p.charCodeAt(0).toString(ue).toUpperCase()}`);return r.join("")},qt=i=>{H(i)&&Zr.test(i)&&(i=i.toUpperCase());let[r,p,v,c,y,R]=["&","#","<",">",'"',"'"].map(dt),d;return i===r?d=`${r}amp;`:i===v?d=`${r}lt;`:i===c?d=`${r}gt;`:i===y?d=`${r}quot;`:i===R?d=`${r}${p}39;`:d=i,d};var Qr=i=>{if(H(i)){if(!jr.test(i))throw new Error(`Invalid base64 data: ${i}`)}else throw new TypeError(`Expected String but got ${J(i)}.`);let r=atob(i),p=Uint8Array.from([...r].map(y=>y.charCodeAt(0))),v=new Set(ft),c;return p.every(y=>v.has(y))?c=r.replace(/\s/g,dt):c=i,c},Vt=(i,r=0)=>{if(!H(i))throw new TypeError(`Expected String but got ${J(i)}.`);if(Number.isInteger(r)){if(r>ue)throw new Error("Character references nested too deeply.")}else throw new TypeError(`Expected Number but got ${J(r)}.`);let p=decodeURIComponent(i);if(/&#/.test(p)){let v=new Set(ft),c=[...p.matchAll(Vr)].reverse();for(let y of c){let[R,d]=y,w;if(/^x[\dA-F]+/i.test(d)?w=parseInt(`0${d}`,ue):/^[\d]+/.test(d)&&(w=parseInt(d)),Number.isInteger(w)){let{index:E}=y,[_,h]=[p.substring(0,E),p.substring(E+R.length)];v.has(w)?(p=`${_}${String.fromCharCode(w)}${h}`,(/#x?$/.test(_)||/^#(?:x(?:00)?[2-7]|\d)/.test(h))&&(p=Vt(p,++r))):w<ue*ue&&(p=`${_}${h}`)}}}return p},mt=class{#e;constructor(){this.#e=new Set(jt)}get(){return[...this.#e]}has(r){return this.#e.has(r)}add(r){if(H(r)){if(Ae.test(r)||!Xr.test(r))throw new Error(`Invalid scheme: ${r}`)}else throw new TypeError(`Expected String but got ${J(r)}.`);return this.#e.add(r),[...this.#e]}remove(r){return this.#e.delete(r)}verify(r){let p;if(H(r))try{let{protocol:v}=new URL(r),c=v.replace(/:$/,""),y=c.split("+");p=!Ae.test(c)&&Kr.test(c)||y.every(R=>this.#e.has(R))}catch{p=!1}return!!p}},ut=class extends mt{#e;#t;constructor(){super(),this.#e=0,this.#t=new Set}purify(r){if(!H(r))throw new TypeError(`Expected String but got ${J(r)}.`);let p=pt.default.sanitize(decodeURIComponent(r));if(p){let c=[...p.matchAll(Wt)].reverse();for(let y of c){let[R]=y;Ue.test(R)&&([R]=Ue.exec(R)),this.#e++,this.#t.add(R);let d=this.sanitize(R,{allow:["data"]}),{index:w}=y,[E,_]=[p.substring(0,w),p.substring(w+R.length)];d?p=`${E}${d}${_}`:p=`${E}${_}`}}return encodeURIComponent(p)}sanitize(r,p={allow:[],deny:[],only:[]}){if(this.#e>ue)throw this.#e=0,new Error("Data URLs nested too deeply.");let{allow:v,deny:c,only:y,remove:R}=p??{},d=new Map([["data",!1],["file",!1],["javascrpt",!1],["vbscript",!1]]),w=!1;if(Array.isArray(y)&&y.length){let _=super.get();for(let A of _)d.set(A,!1);let h=Object.values(y);for(let A of h)if(H(A)&&(A=A.trim(),!Ae.test(A))){if(super.has(A))d.set(A,!0);else{try{super.add(A)}catch{}super.has(A)&&d.set(A,!0)}!w&&d.has(A)&&(w=d.get(A))}}else{if(Array.isArray(v)&&v.length){let _=Object.values(v);for(let h of _)if(H(h)&&(h=h.trim(),!Ae.test(h)))if(super.has(h))d.set(h,!0);else{try{super.add(h)}catch{}super.has(h)&&d.set(h,!0)}}if(Array.isArray(c)&&c.length){let _=Object.values(c);for(let h of _)H(h)&&(h=h.trim(),h&&d.set(h,!1))}}let E;if(super.verify(r)){let{hash:_,href:h,pathname:A,protocol:q,search:ne}=new URL(r),S=q.replace(/:$/,""),M=S.split("+"),ie;if(w)ie=M.every(z=>d.get(z));else for(let[z,x]of d.entries())if(ie=x||S!==z&&M.every(G=>G!==z),!ie)break;if(ie){let z,x=h;if(M.includes("data")){let[G,...de]=A.split(","),Q=`${de.join(",")}${ne}${_}`,B=G.split(";"),ee=B[B.length-1]==="base64",N=Q;if(ee)N=Qr(Q);else try{let k=Vt(N),{protocol:he}=new URL(k.trim());he.replace(/:$/,"").split("+").some(g=>Ae.test(g))&&(x="")}catch{}let be=/data:[^,]*,/.test(N);if(N!==Q||be)if(be){let he=[...N.matchAll(Wt)].reverse();for(let ve of he){let[g]=ve;Ue.test(g)&&([g]=Ue.exec(g)),this.#e++,this.#t.add(g);let se=this.sanitize(g,{allow:["data"]});if(se){let{index:P}=ve,[Pe,f]=[N.substring(0,P),N.substring(P+g.length)];N=`${Pe}${se}${f}`}}this.#t.has(r)?this.#t.delete(r):z=!0}else this.#t.has(r)?this.#t.delete(r):z=!0;else this.#t.has(r)?this.#t.delete(r):z=!0;qr.test(G)&&(N=this.purify(N).replace(/%23$/,"").replace(/%3F$/,"")),x&&N?(ee&&N!==Q&&B.pop(),x=`${S}:${B.join(";")},${N}`):x=""}else z=!0;if(!M.includes("data")&&R&&Yt.test(x)){let G=Yt.exec(x),{index:de}=G;x=x.substring(0,de)}x?(E=x.replace(Wr,dt).replace(Jr,qt),z&&(M.includes("data")||(E=E.replace(Yr,qt)),this.#e=0)):(E=x,this.#e=0)}}return E||null}parse(r,p){if(!H(r))throw new TypeError(`Expected String but got ${J(r)}.`);let v=this.sanitize(r,p??{allow:["data","file"]}),c=new Map([["input",r]]);if(v){let y=new URL(v),{pathname:R,protocol:d}=y,w=d.replace(/:$/,"").split("+");if(c.set("valid",!0),w.includes("data")){let E=new Map,[_,...h]=R.split(","),A=`${h.join(",")}`,q=_.split(";"),ne=q[q.length-1]==="base64";ne&&q.pop(),E.set("mime",q.join(";")),E.set("base64",ne),E.set("data",A),c.set("data",Object.fromEntries(E))}else c.set("data",null);for(let E in y){let _=y[E];H(_)&&c.set(E,_)}}else c.set("valid",!1);return Object.fromEntries(c)}},ke=new ut,Xt=i=>ke.verify(i),ea=async i=>await Xt(i),Kt=i=>ke.parse(i),ta=async i=>await Kt(i),Zt=(i,r)=>{let p=ke.parse(i,r??{allow:[],deny:[],only:[]}),v;if(p){let{href:c}=p;v=c}return v??null},ra=async(i,r)=>await Zt(i,r);export{ke as default,ea as isURI,Xt as isURISync,ta as parseURL,Kt as parseURLSync,ra as sanitizeURL,Zt as sanitizeURLSync};
4
4
  /*!
5
5
  * URL Sanitizer
6
6
  * @license MIT