node-red-contrib-knx-ultimate 7.1.1 → 7.1.3
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 +1264 -1862
- package/README.md +3 -11
- package/nodes/knxUltimateHueController.html +1 -1
- package/nodes/knxUltimateMatterBridge.html +1 -1
- package/nodes/knxUltimateMatterControllerDevice.html +1 -1
- package/nodes/plugins/knxUltimateAI-vue/assets/chunk-purify.es.js +3 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -6,17 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
## The most popular KNX node for Node-RED
|
|
8
8
|
|
|
9
|
-
KNX Ultimate is the most advanced KNX integration for Node-RED, providing secure KNX/IP communication, routing, ETS project import,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
When the editor opens, a migration reminder appears only if its flows or subflows contain legacy HUE or KNX utility nodes. It shows a migration button for each family present; **Later** dismisses the reminder for the current editor session. Existing nodes continue to work, and each migration keeps its backup, confirmation and manual Deploy steps.
|
|
14
|
-
|
|
15
|
-
Starting with **7.1.1**, HUE and Matter nodes are hidden from the palette. All their runtimes, configuration nodes and dependencies remain included, so existing flows can still be edited and deployed.
|
|
16
|
-
|
|
17
|
-
**KNX Viewer** opens a simple ETS-style list of group address state changes, with time, telegram type (Read, Write, Response), source, GA, name, DPT, previous value and new value. Read requests are also recorded, without changing the last known GA value. Search the history or pause the live view; the node keeps recording to local files and retains the last 24 hours across Node-RED restarts. See the [KNX Viewer guide](https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/knxUltimateViewer).
|
|
18
|
-
|
|
19
|
-
The AI assistant is available in the standalone [Cerebrum Ultimate](https://github.com/Supergiovane/node-red-contrib-cerebrum-ultimate) package, with KNX Ultimate as an optional compatible integration. Since **7.1.1**, the legacy `knxUltimateAI` and `knxUltimateAIHomeAssistant` nodes and their web dashboard are included again for compatibility with existing flows. The nodes are hidden from the palette; existing configurations and saved AI data remain supported. Migration to standalone Cerebrum Ultimate is optional and there is no automatic conversion.
|
|
9
|
+
KNX Ultimate is the most advanced KNX integration for Node-RED, providing secure KNX/IP communication, routing, ETS project import, ETS diagnostics, virtual devices, and powerful automation nodes. Build professional, reliable, and scalable smart home and building automation projects with minimal effort. ù
|
|
10
|
+
You can optionally increase the power of KNX, by installing node-red-contrig-hue-ultimate for Philips Hue and installing node-red-contrig-matter-ultimate form Matter Controller and Matter Bridge (control matter device via KNX and expose KNX GA via Matter).
|
|
11
|
+
These optional nodes will detect KNX-Ultimate and seamlessy integrate with KNX, without further configurations.
|
|
20
12
|
|
|
21
13
|
<br/>
|
|
22
14
|
<br/>
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
};
|
|
306
306
|
|
|
307
307
|
RED.nodes.registerType('knxUltimateHueController', {
|
|
308
|
-
category: '
|
|
308
|
+
category: 'KNX Ultimate',
|
|
309
309
|
color: '#C0C7E9',
|
|
310
310
|
defaults: buildDefaults(),
|
|
311
311
|
// catalogDefaults is consumed by the Cerebrum Ultimate catalog. It intentionally
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
function
|
|
2
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pn(o,i){return wn(o)||Cn(o,i)||xn(o,i)||Mn()}function xn(o,i){if(o){if(typeof o=="string")return ke(o,i);var s={}.toString.call(o).slice(8,-1);return s==="Object"&&o.constructor&&(s=o.constructor.name),s==="Map"||s==="Set"?Array.from(o):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?ke(o,i):void 0}}const Ke=Object.entries,ve=Object.setPrototypeOf,kn=Object.isFrozen,vn=Object.getPrototypeOf,Un=Object.getOwnPropertyDescriptor;let R=Object.freeze,N=Object.seal,st=Object.create,Ze=typeof Reflect<"u"&&Reflect,ie=Ze.apply,ae=Ze.construct;R||(R=function(i){return i});N||(N=function(i){return i});ie||(ie=function(i,s){for(var c=arguments.length,f=new Array(c>2?c-2:0),d=2;d<c;d++)f[d-2]=arguments[d];return i.apply(s,f)});ae||(ae=function(i){for(var s=arguments.length,c=new Array(s>1?s-1:0),f=1;f<s;f++)c[f-1]=arguments[f];return new i(...c)});const it=y(Array.prototype.forEach),Fn=y(Array.prototype.lastIndexOf),Ue=y(Array.prototype.pop),at=y(Array.prototype.push),zn=y(Array.prototype.splice),j=Array.isArray,_t=y(String.prototype.toLowerCase),te=y(String.prototype.toString),Fe=y(String.prototype.match),Tt=y(String.prototype.replace),ze=y(String.prototype.indexOf),Hn=y(String.prototype.trim),Gn=y(Number.prototype.toString),Bn=y(Boolean.prototype.toString),He=typeof BigInt>"u"?null:y(BigInt.prototype.toString),Ge=typeof Symbol>"u"?null:y(Symbol.prototype.toString),O=y(Object.prototype.hasOwnProperty),ht=y(Object.prototype.toString),b=y(RegExp.prototype.test),Z=Wn(TypeError);function y(o){return function(i){i instanceof RegExp&&(i.lastIndex=0);for(var s=arguments.length,c=new Array(s>1?s-1:0),f=1;f<s;f++)c[f-1]=arguments[f];return ie(o,i,c)}}function Wn(o){return function(){for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return ae(o,s)}}function p(o,i){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_t;if(ve&&ve(o,null),!j(i))return o;let c=i.length;for(;c--;){let f=i[c];if(typeof f=="string"){const d=s(f);d!==f&&(kn(i)||(i[c]=d),f=d)}o[f]=!0}return o}function Yn(o){for(let i=0;i<o.length;i++)O(o,i)||(o[i]=null);return o}function I(o){const i=st(null);for(const c of Ke(o)){var s=Pn(c,2);const f=s[0],d=s[1];O(o,f)&&(j(d)?i[f]=Yn(d):d&&typeof d=="object"&&d.constructor===Object?i[f]=I(d):i[f]=d)}return i}function jn(o){switch(typeof o){case"string":return o;case"number":return Gn(o);case"boolean":return Bn(o);case"bigint":return He?He(o):"0";case"symbol":return Ge?Ge(o):"Symbol()";case"undefined":return ht(o);case"function":case"object":{if(o===null)return ht(o);const i=o,s=k(i,"toString");if(typeof s=="function"){const c=s(i);return typeof c=="string"?c:ht(c)}return ht(o)}default:return ht(o)}}function k(o,i){for(;o!==null;){const c=Un(o,i);if(c){if(c.get)return y(c.get);if(typeof c.value=="function")return y(c.value)}o=vn(o)}function s(){return null}return s}function $n(o){try{return b(o,""),!0}catch{return!1}}const Be=R(["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","search","section","select","shadow","slot","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"]),ee=R(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),ne=R(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Xn=R(["animate","color-profile","cursor","discard","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"]),oe=R(["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","mprescripts"]),Vn=R(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),We=R(["#text"]),Ye=R(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","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","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),re=R(["accent-height","accumulate","additive","alignment-baseline","amplitude","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","dominant-baseline","dur","edgemode","elevation","end","exponent","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","intercept","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","mask-type","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","slope","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","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","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"]),je=R(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","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"]),Mt=R(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),qn=N(/{{[\w\W]*|^[\w\W]*}}/g),Kn=N(/<%[\w\W]*|^[\w\W]*%>/g),Zn=N(/\${[\w\W]*/g),Jn=N(/^data-[\-\w.\u00B7-\uFFFF]+$/),Qn=N(/^aria-[\-\w]+$/),$e=N(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),to=N(/^(?:\w+script|data):/i),eo=N(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),no=N(/^html$/i),oo=N(/^[a-z][.\w]*(-[.\w]+)+$/i),Xe=N(/<[/\w!]/g),Ve=N(/<[/\w]/g),ro=N(/<\/no(script|embed|frames)/i),io=N(/\/>/i),x={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},ao=function(){return typeof window>"u"?null:window},so=function(i,s){if(typeof i!="object"||typeof i.createPolicy!="function")return null;let c=null;const f="data-tt-policy-suffix";s&&s.hasAttribute(f)&&(c=s.getAttribute(f));const d="dompurify"+(c?"#"+c:"");try{return i.createPolicy(d,{createHTML(S){return S},createScriptURL(S){return S}})}catch{return console.warn("TrustedTypes policy "+d+" could not be created."),null}},qe=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Y=function(i,s,c,f){return O(i,s)&&j(i[s])?p(f.base?I(f.base):{},i[s],f.transform):c};function Je(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ao();const i=r=>Je(r);if(i.version="3.4.13",i.removed=[],!o||!o.document||o.document.nodeType!==x.document||!o.Element)return i.isSupported=!1,i;let s=o.document;const c=s,f=c.currentScript;o.DocumentFragment;const d=o.HTMLTemplateElement,S=o.Node,lt=o.Element,P=o.NodeFilter,ct=o.NamedNodeMap;ct===void 0&&(o.NamedNodeMap||o.MozNamedAttrMap),o.HTMLFormElement;const Pt=o.DOMParser,gt=o.trustedTypes,$=lt.prototype,Qe=k($,"cloneNode"),xt=k($,"remove"),tn=k($,"nextSibling"),J=k($,"childNodes"),X=k($,"parentNode"),se=k($,"shadowRoot"),kt=k($,"attributes"),D=S&&S.prototype?k(S.prototype,"nodeType"):null,v=S&&S.prototype?k(S.prototype,"nodeName"):null,Et=S&&S.prototype?k(S.prototype,"ownerDocument"):null;if(typeof d=="function"){const r=s.createElement("template");r.content&&r.content.ownerDocument&&(s=r.content.ownerDocument)}let w,V="",vt,le=!1,ut=0;const ce=function(){if(ut>0)throw Z('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},Q=function(t){ce(),ut++;try{return w.createHTML(t)}finally{ut--}},en=function(t){ce(),ut++;try{return w.createScriptURL(t)}finally{ut--}},nn=function(){return le||(vt=so(gt,f),le=!0),vt},At=s,Ut=At.implementation,ue=At.createNodeIterator,on=At.createDocumentFragment,rn=At.getElementsByTagName,an=c.importNode;let T=qe();i.isSupported=typeof Ke=="function"&&typeof X=="function"&&Ut&&Ut.createHTMLDocument!==void 0;const sn=qn,ln=Kn,cn=Zn,un=Jn,fn=Qn,pn=to,fe=eo,mn=oo;let pe=$e,h=null;const Ft=p({},[...Be,...ee,...ne,...oe,...We]);let _=null;const zt=p({},[...Ye,...re,...je,...Mt]);let A=Object.seal(st(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}})),ft=null,me=null;const H=Object.seal(st(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let de=!0,Ht=!0,Te=!1,he=!0,G=!1,B=!0,q=!1,Gt=!1,yt=null,St=null,Bt=!1,tt=!1,bt=!1,Ot=!1,_e=!0,ge=!1;const Ee="user-content-";let Wt=!0,Rt=!1,et={},U=null;const Yt=p({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Ae=null;const ye=p({},["audio","video","img","source","image","track"]);let jt=null;const Se=p({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Nt="http://www.w3.org/1998/Math/MathML",It="http://www.w3.org/2000/svg",F="http://www.w3.org/1999/xhtml";let nt=F,$t=!1,Xt=null;const dn=p({},[Nt,It,F],te),be=R(["mi","mo","mn","ms","mtext"]);let Vt=p({},be);const Oe=R(["annotation-xml"]);let qt=p({},Oe);const Tn=p({},["title","style","font","a","script"]);let pt=null;const hn=["application/xhtml+xml","text/html"],_n="text/html";let g=null,ot=null;const gn=s.createElement("form"),Re=function(t){return t instanceof RegExp||t instanceof Function},Kt=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ot&&ot===t)return;(!t||typeof t!="object")&&(t={}),t=I(t),pt=hn.indexOf(t.PARSER_MEDIA_TYPE)===-1?_n:t.PARSER_MEDIA_TYPE,g=pt==="application/xhtml+xml"?te:_t,h=Y(t,"ALLOWED_TAGS",Ft,{transform:g}),_=Y(t,"ALLOWED_ATTR",zt,{transform:g}),Xt=Y(t,"ALLOWED_NAMESPACES",dn,{transform:te}),jt=Y(t,"ADD_URI_SAFE_ATTR",Se,{transform:g,base:Se}),Ae=Y(t,"ADD_DATA_URI_TAGS",ye,{transform:g,base:ye}),U=Y(t,"FORBID_CONTENTS",Yt,{transform:g}),ft=Y(t,"FORBID_TAGS",I({}),{transform:g}),me=Y(t,"FORBID_ATTR",I({}),{transform:g}),et=O(t,"USE_PROFILES")?t.USE_PROFILES&&typeof t.USE_PROFILES=="object"?I(t.USE_PROFILES):t.USE_PROFILES:!1,de=t.ALLOW_ARIA_ATTR!==!1,Ht=t.ALLOW_DATA_ATTR!==!1,Te=t.ALLOW_UNKNOWN_PROTOCOLS||!1,he=t.ALLOW_SELF_CLOSE_IN_ATTR!==!1,G=t.SAFE_FOR_TEMPLATES||!1,B=t.SAFE_FOR_XML!==!1,q=t.WHOLE_DOCUMENT||!1,tt=t.RETURN_DOM||!1,bt=t.RETURN_DOM_FRAGMENT||!1,Ot=t.RETURN_TRUSTED_TYPE||!1,Bt=t.FORCE_BODY||!1,_e=t.SANITIZE_DOM!==!1,ge=t.SANITIZE_NAMED_PROPS||!1,Wt=t.KEEP_CONTENT!==!1,Rt=t.IN_PLACE||!1,pe=$n(t.ALLOWED_URI_REGEXP)?t.ALLOWED_URI_REGEXP:$e,nt=typeof t.NAMESPACE=="string"?t.NAMESPACE:F,Vt=O(t,"MATHML_TEXT_INTEGRATION_POINTS")&&t.MATHML_TEXT_INTEGRATION_POINTS&&typeof t.MATHML_TEXT_INTEGRATION_POINTS=="object"?I(t.MATHML_TEXT_INTEGRATION_POINTS):p({},be),qt=O(t,"HTML_INTEGRATION_POINTS")&&t.HTML_INTEGRATION_POINTS&&typeof t.HTML_INTEGRATION_POINTS=="object"?I(t.HTML_INTEGRATION_POINTS):p({},Oe);const e=O(t,"CUSTOM_ELEMENT_HANDLING")&&t.CUSTOM_ELEMENT_HANDLING&&typeof t.CUSTOM_ELEMENT_HANDLING=="object"?I(t.CUSTOM_ELEMENT_HANDLING):st(null);if(A=st(null),O(e,"tagNameCheck")&&Re(e.tagNameCheck)&&(A.tagNameCheck=e.tagNameCheck),O(e,"attributeNameCheck")&&Re(e.attributeNameCheck)&&(A.attributeNameCheck=e.attributeNameCheck),O(e,"allowCustomizedBuiltInElements")&&typeof e.allowCustomizedBuiltInElements=="boolean"&&(A.allowCustomizedBuiltInElements=e.allowCustomizedBuiltInElements),N(A),G&&(Ht=!1),bt&&(tt=!0),et&&(h=p({},We),_=st(null),et.html===!0&&(p(h,Be),p(_,Ye)),et.svg===!0&&(p(h,ee),p(_,re),p(_,Mt)),et.svgFilters===!0&&(p(h,ne),p(_,re),p(_,Mt)),et.mathMl===!0&&(p(h,oe),p(_,je),p(_,Mt))),H.tagCheck=null,H.attributeCheck=null,O(t,"ADD_TAGS")&&(typeof t.ADD_TAGS=="function"?H.tagCheck=t.ADD_TAGS:j(t.ADD_TAGS)&&(h===Ft&&(h=I(h)),p(h,t.ADD_TAGS,g))),O(t,"ADD_ATTR")&&(typeof t.ADD_ATTR=="function"?H.attributeCheck=t.ADD_ATTR:j(t.ADD_ATTR)&&(_===zt&&(_=I(_)),p(_,t.ADD_ATTR,g))),O(t,"ADD_URI_SAFE_ATTR")&&j(t.ADD_URI_SAFE_ATTR)&&p(jt,t.ADD_URI_SAFE_ATTR,g),O(t,"FORBID_CONTENTS")&&j(t.FORBID_CONTENTS)&&(U===Yt&&(U=I(U)),p(U,t.FORBID_CONTENTS,g)),O(t,"ADD_FORBID_CONTENTS")&&j(t.ADD_FORBID_CONTENTS)&&(U===Yt&&(U=I(U)),p(U,t.ADD_FORBID_CONTENTS,g)),Wt&&(h["#text"]=!0),q&&p(h,["html","head","body"]),h.table&&(p(h,["tbody"]),delete ft.tbody),t.TRUSTED_TYPES_POLICY){if(typeof t.TRUSTED_TYPES_POLICY.createHTML!="function")throw Z('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof t.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Z('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const n=w;w=t.TRUSTED_TYPES_POLICY;try{V=Q("")}catch(a){throw w=n,a}}else t.TRUSTED_TYPES_POLICY===null?(w=void 0,V=""):(w===void 0&&(w=nn()),w&&typeof V=="string"&&(V=Q("")));R&&R(t),ot=t},Ne=p({},[...ee,...ne,...Xn]),Ie=p({},[...oe,...Vn]),En=function(t,e,n){return e.namespaceURI===F?t==="svg":e.namespaceURI===Nt?t==="svg"&&(n==="annotation-xml"||Vt[n]):!!Ne[t]},An=function(t,e,n){return e.namespaceURI===F?t==="math":e.namespaceURI===It?t==="math"&&qt[n]:!!Ie[t]},yn=function(t,e,n){return e.namespaceURI===It&&!qt[n]||e.namespaceURI===Nt&&!Vt[n]?!1:!Ie[t]&&(Tn[t]||!Ne[t])},Sn=function(t){let e=X(t);(!e||!e.tagName)&&(e={namespaceURI:nt,tagName:"template"});const n=_t(t.tagName),a=_t(e.tagName);return Xt[t.namespaceURI]?t.namespaceURI===It?En(n,e,a):t.namespaceURI===Nt?An(n,e,a):t.namespaceURI===F?yn(n,e,a):!!(pt==="application/xhtml+xml"&&Xt[t.namespaceURI]):!1},W=function(t){at(i.removed,{element:t});try{X(t).removeChild(t)}catch{if(xt(t),!X(t))throw Z("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Dt=function(t){mt(t);const e=J(t);if(e){const a=[];it(e,l=>{at(a,l)}),it(a,l=>{try{xt(l)}catch{}})}const n=kt(t);if(n)for(let a=n.length-1;a>=0;--a){const l=n[a],u=l&&l.name;if(typeof u=="string")try{t.removeAttribute(u)}catch{}}},K=function(t,e){try{at(i.removed,{attribute:e.getAttributeNode(t),from:e})}catch{at(i.removed,{attribute:null,from:e})}if(e.removeAttribute(t),t==="is")if(tt||bt)try{W(e)}catch{}else try{e.setAttribute(t,"")}catch{}},bn=function(t){const e=kt(t);if(e)for(let n=e.length-1;n>=0;--n){const a=e[n],l=a&&a.name;if(!(typeof l!="string"||_[g(l)]))try{t.removeAttribute(l)}catch{}}},mt=function(t){const e=[t];for(;e.length>0;){const n=e.pop();(D?D(n):n.nodeType)===x.element&&bn(n);const l=J(n);if(l)for(let u=l.length-1;u>=0;--u)e.push(l[u])}},On=function(t){if(!B)return;const e=[t];for(;e.length>0;){const n=e.pop(),a=D?D(n):n.nodeType;if(a===x.processingInstruction||a===x.comment&&b(Ve,n.data)){try{xt(n)}catch{}continue}if(a===x.element){const u=n,m=g(v?v(n):n.nodeName);try{u.hasAttribute&&u.hasAttribute("patchsrc")&&u.removeAttribute("patchsrc"),u.hasAttribute&&u.hasAttribute("for")&&m!=="label"&&m!=="output"&&u.removeAttribute("for")}catch{}}const l=J(n);if(l)for(let u=l.length-1;u>=0;--u)e.push(l[u])}},De=function(t){let e=null,n=null;if(Bt)t="<remove></remove>"+t;else{const u=Fe(t,/^[\r\n\t ]+/);n=u&&u[0]}pt==="application/xhtml+xml"&&nt===F&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");const a=w?Q(t):t;if(nt===F)try{e=new Pt().parseFromString(a,pt)}catch{}if(!e||!e.documentElement){e=Ut.createDocument(nt,"template",null);try{e.documentElement.innerHTML=$t?V:a}catch{}}const l=e.body||e.documentElement;return t&&n&&l.insertBefore(s.createTextNode(n),l.childNodes[0]||null),nt===F?rn.call(e,q?"html":"body")[0]:q?e.documentElement:l},Le=function(t){const e=Et?Et(t):t.ownerDocument;return ue.call(e||t,t,P.SHOW_ELEMENT|P.SHOW_COMMENT|P.SHOW_TEXT|P.SHOW_PROCESSING_INSTRUCTION|P.SHOW_CDATA_SECTION,null)},Lt=function(t){return t=Tt(t,sn," "),t=Tt(t,ln," "),t=Tt(t,cn," "),t},Zt=function(t){var e;t.normalize();const n=Et?Et(t):t.ownerDocument,a=ue.call(n||t,t,P.SHOW_TEXT|P.SHOW_COMMENT|P.SHOW_CDATA_SECTION|P.SHOW_PROCESSING_INSTRUCTION,null);let l=a.nextNode();for(;l;)l.data=Lt(l.data),l=a.nextNode();const u=(e=t.querySelectorAll)===null||e===void 0?void 0:e.call(t,"template");u&&it(u,m=>{rt(m.content)&&Zt(m.content)})},wt=function(t){const e=v?v(t):null;return typeof e!="string"||g(e)!=="form"?!1:typeof t.nodeName!="string"||typeof t.textContent!="string"||typeof t.removeChild!="function"||t.attributes!==kt(t)||typeof t.removeAttribute!="function"||typeof t.setAttribute!="function"||typeof t.namespaceURI!="string"||typeof t.insertBefore!="function"||typeof t.hasChildNodes!="function"||t.nodeType!==D(t)||t.childNodes!==J(t)},rt=function(t){if(!D||typeof t!="object"||t===null)return!1;try{return D(t)===x.documentFragment}catch{return!1}},dt=function(t){if(!D||typeof t!="object"||t===null)return!1;try{return typeof D(t)=="number"}catch{return!1}};function z(r,t,e){r.length!==0&&it(r,n=>{n.call(i,t,e,ot)})}const Rn=function(t,e){return!!(B&&t.hasChildNodes()&&!dt(t.firstElementChild)&&b(Xe,t.textContent)&&b(Xe,t.innerHTML)||B&&t.namespaceURI===F&&e==="style"&&dt(t.firstElementChild)||t.nodeType===x.processingInstruction||B&&t.nodeType===x.comment&&b(Ve,t.data))},Nn=function(t,e,n){if(!ft[e]&&Pe(e)&&(A.tagNameCheck instanceof RegExp&&b(A.tagNameCheck,e)||A.tagNameCheck instanceof Function&&A.tagNameCheck(e)))return!1;if(Wt&&!U[e]){const a=X(t),l=J(t);if(l&&a){const u=l.length;for(let m=u-1;m>=0;--m){const E=t===n?Qe(l[m],!0):l[m];a.insertBefore(E,tn(t))}}}return W(t),!0},we=function(t,e,n,a){return t.length===0?e:e===n||e===a?I(e):e},Ce=function(t,e){if(z(T.beforeSanitizeElements,t,null),t!==e&&X(t)===null)return Rt&&mt(t),!0;if(wt(t))return W(t),!0;const n=g(v?v(t):t.nodeName);if(h=we(T.uponSanitizeElement,h,Ft,yt),z(T.uponSanitizeElement,t,{tagName:n,allowedTags:h}),t!==e&&X(t)===null)return Rt&&mt(t),!0;if(Rn(t,n))return W(t),!0;if(ft[n]||!(H.tagCheck instanceof Function&&H.tagCheck(n))&&!h[n]){const l=Nn(t,n,e);return l===!1&&z(T.afterSanitizeElements,t,null),l}if((D?D(t):t.nodeType)===x.element&&!Sn(t)||(n==="noscript"||n==="noembed"||n==="noframes")&&b(ro,t.innerHTML))return W(t),!0;if(G&&t.nodeType===x.text){const l=Lt(t.textContent);t.textContent!==l&&(at(i.removed,{element:t.cloneNode()}),t.textContent=l)}return z(T.afterSanitizeElements,t,null),!1},Me=function(t,e,n){if(me[e]||B&&e==="patchsrc"||B&&e==="for"&&t!=="label"&&t!=="output"||_e&&(e==="id"||e==="name")&&(n in s||n in gn))return!1;const a=_[e]||H.attributeCheck instanceof Function&&H.attributeCheck(e,t);if(!(Ht&&b(un,e))){if(!(de&&b(fn,e))){if(a){if(!jt[e]){if(!b(pe,Tt(n,fe,""))){if(!((e==="src"||e==="xlink:href"||e==="href")&&t!=="script"&&ze(n,"data:")===0&&Ae[t])){if(!(Te&&!b(pn,Tt(n,fe,"")))){if(n)return!1}}}}}else if(!(Pe(t)&&(A.tagNameCheck instanceof RegExp&&b(A.tagNameCheck,t)||A.tagNameCheck instanceof Function&&A.tagNameCheck(t))&&(A.attributeNameCheck instanceof RegExp&&b(A.attributeNameCheck,e)||A.attributeNameCheck instanceof Function&&A.attributeNameCheck(e,t))||e==="is"&&A.allowCustomizedBuiltInElements&&(A.tagNameCheck instanceof RegExp&&b(A.tagNameCheck,n)||A.tagNameCheck instanceof Function&&A.tagNameCheck(n))))return!1}}return!0},In=p({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Pe=function(t){return!In[_t(t)]&&b(mn,t)},Dn=function(t,e,n,a){if(w&&typeof gt=="object"&&typeof gt.getAttributeType=="function"&&!n)switch(gt.getAttributeType(t,e)){case"TrustedHTML":return Q(a);case"TrustedScriptURL":return en(a)}return a},Ln=function(t,e,n,a){try{n?t.setAttributeNS(n,e,a):t.setAttribute(e,a),wt(t)?W(t):Ue(i.removed)}catch{K(e,t)}},xe=function(t){z(T.beforeSanitizeAttributes,t,null);const e=t.attributes;if(!e||wt(t))return;_=we(T.uponSanitizeAttribute,_,zt,St);const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:_,forceKeepAttr:void 0};let a=e.length;const l=g(t.nodeName);for(;a--;){const u=e[a],m=u.name,E=u.namespaceURI,C=u.value,M=g(m),Qt=C;let L=m==="value"?Qt:Hn(Qt);if(n.attrName=M,n.attrValue=L,n.keepAttr=!0,n.forceKeepAttr=void 0,z(T.uponSanitizeAttribute,t,n),L=n.attrValue,ge&&(M==="id"||M==="name")&&ze(L,Ee)!==0&&(K(m,t),L=Ee+L),B&&b(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,L)){K(m,t);continue}if(M==="attributename"&&Fe(L,"href")){K(m,t);continue}if(!n.forceKeepAttr){if(!n.keepAttr){K(m,t);continue}if(!he&&b(io,L)){K(m,t);continue}if(G&&(L=Lt(L)),!Me(l,M,L)){K(m,t);continue}L=Dn(l,M,E,L),L!==Qt&&Ln(t,m,E,L)}}z(T.afterSanitizeAttributes,t,null)},Ct=function(t){let e=null;const n=Le(t);for(z(T.beforeSanitizeShadowDOM,t,null);e=n.nextNode();)if(z(T.uponSanitizeShadowNode,e,null),Ce(e,t),xe(e),rt(e.content)&&Ct(e.content),(D?D(e):e.nodeType)===x.element){const l=se(e);rt(l)&&(Jt(l),Ct(l))}z(T.afterSanitizeShadowDOM,t,null)},Jt=function(t){const e=[{node:t,shadow:null}];for(;e.length>0;){const n=e.pop();if(n.shadow){Ct(n.shadow);continue}const a=n.node,u=(D?D(a):a.nodeType)===x.element,m=J(a);if(m)for(let E=m.length-1;E>=0;--E)e.push({node:m[E],shadow:null});if(u){const E=v?v(a):null;if(typeof E=="string"&&g(E)==="template"){const C=a.content;rt(C)&&e.push({node:C,shadow:null})}}if(u){const E=se(a);rt(E)&&e.push({node:null,shadow:E},{node:E,shadow:null})}}};return i.sanitize=function(r){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=null,n=null,a=null,l=null;if($t=!r,$t&&(r="<!-->"),typeof r!="string"&&!dt(r)&&(r=jn(r),typeof r!="string"))throw Z("dirty is not a string, aborting");if(!i.isSupported)return r;Gt?(h=yt,_=St):Kt(t),(T.uponSanitizeElement.length>0||T.uponSanitizeAttribute.length>0)&&(h=I(h)),T.uponSanitizeAttribute.length>0&&(_=I(_)),i.removed=[];const u=Rt&&typeof r!="string"&&dt(r);if(u){On(r);const C=v?v(r):r.nodeName;if(typeof C=="string"){const M=g(C);if(!h[M]||ft[M])throw Dt(r),Z("root node is forbidden and cannot be sanitized in-place")}if(wt(r))throw Dt(r),Z("root node is clobbered and cannot be sanitized in-place");try{Jt(r)}catch(M){throw Dt(r),M}}else if(dt(r))e=De("<!---->"),n=e.ownerDocument.importNode(r,!0),n.nodeType===x.element&&n.nodeName==="BODY"||n.nodeName==="HTML"?e=n:e.appendChild(n),Jt(n);else{if(!tt&&!G&&!q&&r.indexOf("<")===-1)return w&&Ot?Q(r):r;if(e=De(r),!e)return tt?null:Ot?V:""}e&&Bt&&W(e.firstChild);const m=u?r:e;try{const C=Le(m);for(;a=C.nextNode();)Ce(a,m),xe(a),rt(a.content)&&Ct(a.content)}catch(C){throw u&&(Dt(r),it(i.removed,M=>{M.element&&mt(M.element)})),C}if(u)return it(i.removed,C=>{C.element&&mt(C.element)}),G&&Zt(r),r;if(tt){if(G&&Zt(e),bt)for(l=on.call(e.ownerDocument);e.firstChild;)l.appendChild(e.firstChild);else l=e;return(_.shadowroot||_.shadowrootmode)&&(l=an.call(c,l,!0)),l}let E=q?e.outerHTML:e.innerHTML;return q&&h["!doctype"]&&e.ownerDocument&&e.ownerDocument.doctype&&e.ownerDocument.doctype.name&&b(no,e.ownerDocument.doctype.name)&&(E="<!DOCTYPE "+e.ownerDocument.doctype.name+`>
|
|
3
|
-
`+
|
|
1
|
+
function Ye(r,i){(i==null||i>r.length)&&(i=r.length);for(var s=0,c=Array(i);s<i;s++)c[s]=r[s];return c}function Hn(r){if(Array.isArray(r))return r}function Wn(r,i){var s=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(s!=null){var c,f,d,y,st=[],I=!0,lt=!1;try{if(d=(s=s.call(r)).next,i!==0)for(;!(I=(c=d.call(s)).done)&&(st.push(c.value),st.length!==i);I=!0);}catch(xt){lt=!0,f=xt}finally{try{if(!I&&s.return!=null&&(y=s.return(),Object(y)!==y))return}finally{if(lt)throw f}}return st}}function Gn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bn(r,i){return Hn(r)||Wn(r,i)||Yn(r,i)||Gn()}function Yn(r,i){if(r){if(typeof r=="string")return Ye(r,i);var s={}.toString.call(r).slice(8,-1);return s==="Object"&&r.constructor&&(s=r.constructor.name),s==="Map"||s==="Set"?Array.from(r):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?Ye(r,i):void 0}}const an=Object.entries,je=Object.setPrototypeOf,jn=Object.isFrozen,$n=Object.getPrototypeOf,Xn=Object.getOwnPropertyDescriptor;let S=Object.freeze,b=Object.seal,it=Object.create,sn=typeof Reflect<"u"&&Reflect,se=sn.apply,le=sn.construct;S||(S=function(i){return i});b||(b=function(i){return i});se||(se=function(i,s){for(var c=arguments.length,f=new Array(c>2?c-2:0),d=2;d<c;d++)f[d-2]=arguments[d];return i.apply(s,f)});le||(le=function(i){for(var s=arguments.length,c=new Array(s>1?s-1:0),f=1;f<s;f++)c[f-1]=arguments[f];return new i(...c)});const V=A(Array.prototype.forEach),Vn=A(Array.prototype.lastIndexOf),$e=A(Array.prototype.pop),dt=A(Array.prototype.push),qn=A(Array.prototype.splice),at=Array.isArray,_t=A(String.prototype.toLowerCase),ee=A(String.prototype.toString),Xe=A(String.prototype.match),Tt=A(String.prototype.replace),Ve=A(String.prototype.indexOf),Kn=A(String.prototype.trim),Zn=A(Number.prototype.toString),Jn=A(Boolean.prototype.toString),qe=typeof BigInt>"u"?null:A(BigInt.prototype.toString),Ke=typeof Symbol>"u"?null:A(Symbol.prototype.toString),N=A(Object.prototype.hasOwnProperty),ht=A(Object.prototype.toString),O=A(RegExp.prototype.test),X=Qn(TypeError);function A(r){return function(i){i instanceof RegExp&&(i.lastIndex=0);for(var s=arguments.length,c=new Array(s>1?s-1:0),f=1;f<s;f++)c[f-1]=arguments[f];return se(r,i,c)}}function Qn(r){return function(){for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return le(r,s)}}function p(r,i){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_t;if(je&&je(r,null),!at(i))return r;let c=i.length;for(;c--;){let f=i[c];if(typeof f=="string"){const d=s(f);d!==f&&(jn(i)||(i[c]=d),f=d)}r[f]=!0}return r}function to(r){for(let i=0;i<r.length;i++)N(r,i)||(r[i]=null);return r}function C(r){const i=it(null);for(const c of an(r)){var s=Bn(c,2);const f=s[0],d=s[1];N(r,f)&&(at(d)?i[f]=to(d):d&&typeof d=="object"&&d.constructor===Object?i[f]=C(d):i[f]=d)}return i}function eo(r){switch(typeof r){case"string":return r;case"number":return Zn(r);case"boolean":return Jn(r);case"bigint":return qe?qe(r):"0";case"symbol":return Ke?Ke(r):"Symbol()";case"undefined":return ht(r);case"function":case"object":{if(r===null)return ht(r);const i=r,s=P(i,"toString");if(typeof s=="function"){const c=s(i);return typeof c=="string"?c:ht(c)}return ht(r)}default:return ht(r)}}function P(r,i){for(;r!==null;){const c=Xn(r,i);if(c){if(c.get)return A(c.get);if(typeof c.value=="function")return A(c.value)}r=$n(r)}function s(){return null}return s}function no(r){try{return O(r,""),!0}catch{return!1}}const Ze=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","search","section","select","shadow","slot","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"]),ne=S(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),oe=S(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),oo=S(["animate","color-profile","cursor","discard","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"]),re=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","mprescripts"]),ro=S(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Je=S(["#text"]),Qe=S(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","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","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),ie=S(["accent-height","accumulate","additive","alignment-baseline","amplitude","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","dominant-baseline","dur","edgemode","elevation","end","exponent","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","intercept","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","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","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","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","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"]),tn=S(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","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"]),Pt=S(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),io=b(/{{[\w\W]*|^[\w\W]*}}/g),ao=b(/<%[\w\W]*|^[\w\W]*%>/g),so=b(/\${[\w\W]*/g),lo=b(/^data-[\-\w.\u00B7-\uFFFF]+$/),co=b(/^aria-[\-\w]+$/),en=b(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),uo=b(/^(?:\w+script|data):/i),fo=b(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),po=b(/^html$/i),mo=b(/^[a-z][.\w]*(-[.\w]+)+$/i),nn=b(/<[/\w!]/g),on=b(/<[/\w]/g),To=b(/<\/no(script|embed|frames)/i),ho=b(/\/>/i),M={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},ln=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],_o=S(p({},ln)),go=(function(){const r={};return V(ln,i=>{r[i]=b(new RegExp("</"+i+"(?=[\\t\\n\\f\\r />])","i"))}),S(r)})(),Eo=function(){return typeof window>"u"?null:window},Ao=function(i,s){if(typeof i!="object"||typeof i.createPolicy!="function")return null;let c=null;const f="data-tt-policy-suffix";s&&s.hasAttribute(f)&&(c=s.getAttribute(f));const d="dompurify"+(c?"#"+c:"");try{return i.createPolicy(d,{createHTML(y){return y},createScriptURL(y){return y}})}catch{return console.warn("TrustedTypes policy "+d+" could not be created."),null}},rn=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},W=function(i,s,c,f){return N(i,s)&&at(i[s])?p(f.base?C(f.base):{},i[s],f.transform):c},ae=function(i,s,c){const f=N(i,s)?i[s]:void 0;return f&&typeof f=="object"?C(f):c()};function cn(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Eo();const i=o=>cn(o);if(i.version="3.4.15",i.removed=[],!r||!r.document||r.document.nodeType!==M.document||!r.Element)return i.isSupported=!1,i;let s=r.document;const c=s,f=c.currentScript;r.DocumentFragment;const d=r.HTMLTemplateElement,y=r.Node,st=r.Element,I=r.NodeFilter,lt=r.NamedNodeMap;lt===void 0&&(r.NamedNodeMap||r.MozNamedAttrMap),r.HTMLFormElement;const xt=r.DOMParser,gt=r.trustedTypes,U=st.prototype,un=P(U,"cloneNode"),vt=P(U,"remove"),ce=P(U,"removeAttributeNode"),fn=P(U,"nextSibling"),q=P(U,"childNodes"),K=P(U,"parentNode"),ue=P(U,"shadowRoot"),kt=P(U,"attributes"),G=y&&y.prototype?P(y.prototype,"nodeType"):null,Z=y&&y.prototype?P(y.prototype,"nodeName"):null,Et=y&&y.prototype?P(y.prototype,"ownerDocument"):null,ct=function(t){return G?G(t):t.nodeType},Ut=function(t){return Z?Z(t):t.nodeName};if(typeof d=="function"){const o=s.createElement("template");o.content&&o.content.ownerDocument&&(s=o.content.ownerDocument)}let L,B="",Ft,fe=!1,ut=0;const pe=function(){if(ut>0)throw X('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},J=function(t){pe(),ut++;try{return L.createHTML(t)}finally{ut--}},pn=function(t){pe(),ut++;try{return L.createScriptURL(t)}finally{ut--}},mn=function(){return fe||(Ft=Ao(gt,f),fe=!0),Ft},At=s,zt=At.implementation,me=At.createNodeIterator,dn=At.createDocumentFragment,Tn=At.getElementsByTagName,hn=c.importNode;let T=rn();i.isSupported=typeof an=="function"&&typeof K=="function"&&zt&&zt.createHTMLDocument!==void 0;const _n=io,gn=ao,En=so,An=lo,yn=co,Sn=uo,de=fo,bn=mo;let Te=en,h=null;const Ht=p({},[...Ze,...ne,...oe,...re,...Je]);let _=null;const Wt=p({},[...Qe,...ie,...tn,...Pt]);let x=Object.seal(it(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}})),ft=null,he=null;const F=Object.seal(it(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let _e=!0,Gt=!0,ge=!1,Ee=!0,z=!1,Y=!0,j=!1,Bt=!1,yt=null,St=null,Yt=!1,Q=!1,bt=!1,Ot=!1,Ae=!0,ye=!1;const Se="user-content-";let jt=!0,$t=!1,tt={},et=null;const be=p({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Oe=null;const Re=p({},["audio","video","img","source","image","track"]);let Le=null;const De=p({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Rt="http://www.w3.org/1998/Math/MathML",Lt="http://www.w3.org/2000/svg",v="http://www.w3.org/1999/xhtml";let nt=v,Xt=!1,Vt=null;const On=p({},[Rt,Lt,v],ee),we=S(["mi","mo","mn","ms","mtext"]);let qt=p({},we);const Ne=S(["annotation-xml"]);let Kt=p({},Ne);const Rn=p({},["title","style","font","a","script"]);let pt=null;const Ln=["application/xhtml+xml","text/html"],Dn="text/html";let E=null,ot=null;const wn=s.createElement("form"),Ie=function(t){return t instanceof RegExp||t instanceof Function},Zt=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ot&&ot===t)return;(!t||typeof t!="object")&&(t={}),t=C(t),pt=Ln.indexOf(t.PARSER_MEDIA_TYPE)===-1?Dn:t.PARSER_MEDIA_TYPE,E=pt==="application/xhtml+xml"?ee:_t,h=W(t,"ALLOWED_TAGS",Ht,{transform:E}),_=W(t,"ALLOWED_ATTR",Wt,{transform:E}),Vt=W(t,"ALLOWED_NAMESPACES",On,{transform:ee}),Le=W(t,"ADD_URI_SAFE_ATTR",De,{transform:E,base:De}),Oe=W(t,"ADD_DATA_URI_TAGS",Re,{transform:E,base:Re}),et=W(t,"FORBID_CONTENTS",be,{transform:E}),ft=W(t,"FORBID_TAGS",C({}),{transform:E}),he=W(t,"FORBID_ATTR",C({}),{transform:E}),tt=N(t,"USE_PROFILES")?t.USE_PROFILES&&typeof t.USE_PROFILES=="object"?C(t.USE_PROFILES):t.USE_PROFILES:!1,_e=t.ALLOW_ARIA_ATTR!==!1,Gt=t.ALLOW_DATA_ATTR!==!1,ge=t.ALLOW_UNKNOWN_PROTOCOLS||!1,Ee=t.ALLOW_SELF_CLOSE_IN_ATTR!==!1,z=t.SAFE_FOR_TEMPLATES||!1,Y=t.SAFE_FOR_XML!==!1,j=t.WHOLE_DOCUMENT||!1,Q=t.RETURN_DOM||!1,bt=t.RETURN_DOM_FRAGMENT||!1,Ot=t.RETURN_TRUSTED_TYPE||!1,Yt=t.FORCE_BODY||!1,Ae=t.SANITIZE_DOM!==!1,ye=t.SANITIZE_NAMED_PROPS||!1,jt=t.KEEP_CONTENT!==!1,$t=t.IN_PLACE||!1,Te=no(t.ALLOWED_URI_REGEXP)?t.ALLOWED_URI_REGEXP:en,nt=typeof t.NAMESPACE=="string"?t.NAMESPACE:v,qt=ae(t,"MATHML_TEXT_INTEGRATION_POINTS",()=>p({},we)),Kt=ae(t,"HTML_INTEGRATION_POINTS",()=>p({},Ne));const e=ae(t,"CUSTOM_ELEMENT_HANDLING",()=>it(null));if(x=it(null),N(e,"tagNameCheck")&&Ie(e.tagNameCheck)&&(x.tagNameCheck=e.tagNameCheck),N(e,"attributeNameCheck")&&Ie(e.attributeNameCheck)&&(x.attributeNameCheck=e.attributeNameCheck),N(e,"allowCustomizedBuiltInElements")&&typeof e.allowCustomizedBuiltInElements=="boolean"&&(x.allowCustomizedBuiltInElements=e.allowCustomizedBuiltInElements),b(x),z&&(Gt=!1),bt&&(Q=!0),tt&&(h=p({},Je),_=it(null),tt.html===!0&&(p(h,Ze),p(_,Qe)),tt.svg===!0&&(p(h,ne),p(_,ie),p(_,Pt)),tt.svgFilters===!0&&(p(h,oe),p(_,ie),p(_,Pt)),tt.mathMl===!0&&(p(h,re),p(_,tn),p(_,Pt))),F.tagCheck=null,F.attributeCheck=null,N(t,"ADD_TAGS")&&(typeof t.ADD_TAGS=="function"?F.tagCheck=t.ADD_TAGS:at(t.ADD_TAGS)&&(h===Ht&&(h=C(h)),p(h,t.ADD_TAGS,E))),N(t,"ADD_ATTR")&&(typeof t.ADD_ATTR=="function"?F.attributeCheck=t.ADD_ATTR:at(t.ADD_ATTR)&&(_===Wt&&(_=C(_)),p(_,t.ADD_ATTR,E))),N(t,"ADD_FORBID_CONTENTS")&&at(t.ADD_FORBID_CONTENTS)&&(et===be&&(et=C(et)),p(et,t.ADD_FORBID_CONTENTS,E)),jt&&(h["#text"]=!0),j&&p(h,["html","head","body"]),h.table&&(p(h,["tbody"]),delete ft.tbody),t.TRUSTED_TYPES_POLICY){if(typeof t.TRUSTED_TYPES_POLICY.createHTML!="function")throw X('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof t.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw X('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const n=L;L=t.TRUSTED_TYPES_POLICY;try{B=J("")}catch(a){throw L=n,a}}else t.TRUSTED_TYPES_POLICY===null?(L=void 0,B=""):(L===void 0&&(L=mn()),L&&typeof B=="string"&&(B=J("")));S&&S(t),ot=t},Me=p({},[...ne,...oe,...oo]),Ce=p({},[...re,...ro]),Nn=function(t,e,n){return e.namespaceURI===v?t==="svg":e.namespaceURI===Rt?t==="svg"&&(n==="annotation-xml"||qt[n]):!!Me[t]},In=function(t,e,n){return e.namespaceURI===v?t==="math":e.namespaceURI===Lt?t==="math"&&Kt[n]:!!Ce[t]},Mn=function(t,e,n){return e.namespaceURI===Lt&&!Kt[n]||e.namespaceURI===Rt&&!qt[n]?!1:!Ce[t]&&(Rn[t]||!Me[t])},Cn=function(t){let e=K(t);(!e||!e.tagName)&&(e={namespaceURI:nt,tagName:"template"});const n=_t(t.tagName),a=_t(e.tagName);return Vt[t.namespaceURI]?t.namespaceURI===Lt?Nn(n,e,a):t.namespaceURI===Rt?In(n,e,a):t.namespaceURI===v?Mn(n,e,a):!!(pt==="application/xhtml+xml"&&Vt[t.namespaceURI]):!1},H=function(t){dt(i.removed,{element:t});try{K(t).removeChild(t)}catch{if(vt(t),!K(t))throw X("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Pe=function(t,e,n){try{ce(t,e)}catch{try{t.removeAttribute(n)}catch{}}},Dt=function(t){wt(t);const e=q(t);if(e){const a=[];V(e,l=>{dt(a,l)}),V(a,l=>{try{vt(l)}catch{}})}const n=kt(t);if(n)for(let a=n.length-1;a>=0;--a){const l=n[a],u=l&&l.name;typeof u=="string"&&Pe(t,l,u)}},$=function(t,e,n){if(!n)try{n=e.getAttributeNode(t)}catch{n=null}dt(i.removed,{attribute:n||null,from:e});try{n?ce(e,n):e.removeAttribute(t)}catch{try{e.removeAttribute(t)}catch{}}if(t==="is")if(Q||bt)try{H(e)}catch{}else try{e.setAttribute(t,"")}catch{}},Pn=function(t){const e=kt(t);if(e)for(let n=e.length-1;n>=0;--n){const a=e[n],l=a&&a.name;typeof l!="string"||_[E(l)]||Pe(t,a,l)}},wt=function(t){const e=[t];for(;e.length>0;){const n=e.pop();ct(n)===M.element&&Pn(n);const l=q(n);if(l)for(let u=l.length-1;u>=0;--u)e.push(l[u])}},xe=function(t,e){return Y?t==="patchsrc"?!0:t==="for"&&e!=="label"&&e!=="output":!1},xn=function(t){if(!Y)return;const e=[t];for(;e.length>0;){const n=e.pop(),a=ct(n);if(a===M.processingInstruction||a===M.comment&&O(on,n.data)){try{vt(n)}catch{}continue}if(a===M.element){const u=n,m=E(Ut(n));try{u.hasAttribute&&u.hasAttribute("patchsrc")&&u.removeAttribute("patchsrc"),u.hasAttribute&&u.hasAttribute("for")&&xe("for",m)&&u.removeAttribute("for")}catch{}}const l=q(n);if(l)for(let u=l.length-1;u>=0;--u)e.push(l[u])}},ve=function(t){let e=null,n=null;if(Yt)t="<remove></remove>"+t;else{const u=Xe(t,/^[\r\n\t ]+/);n=u&&u[0]}pt==="application/xhtml+xml"&&nt===v&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");const a=L?J(t):t;if(nt===v)try{e=new xt().parseFromString(a,pt)}catch{}if(!e||!e.documentElement){e=zt.createDocument(nt,"template",null);try{e.documentElement.innerHTML=Xt?B:a}catch{}}const l=e.body||e.documentElement;return t&&n&&l.insertBefore(s.createTextNode(n),l.childNodes[0]||null),nt===v?Tn.call(e,j?"html":"body")[0]:j?e.documentElement:l},ke=function(t){const e=Et?Et(t):t.ownerDocument;return me.call(e||t,t,I.SHOW_ELEMENT|I.SHOW_COMMENT|I.SHOW_TEXT|I.SHOW_PROCESSING_INSTRUCTION|I.SHOW_CDATA_SECTION,null)},Nt=function(t){return t=Tt(t,_n," "),t=Tt(t,gn," "),t=Tt(t,En," "),t},Jt=function(t){var e;t.normalize();const n=Et?Et(t):t.ownerDocument,a=me.call(n||t,t,I.SHOW_TEXT|I.SHOW_COMMENT|I.SHOW_CDATA_SECTION|I.SHOW_PROCESSING_INSTRUCTION,null);let l=a.nextNode();for(;l;)l.data=Nt(l.data),l=a.nextNode();const u=(e=t.querySelectorAll)===null||e===void 0?void 0:e.call(t,"template");u&&V(u,m=>{rt(m.content)&&Jt(m.content)})},It=function(t){const e=Z?Z(t):null;return typeof e!="string"||E(e)!=="form"?!1:typeof t.nodeName!="string"||typeof t.textContent!="string"||typeof t.removeChild!="function"||t.attributes!==kt(t)||typeof t.removeAttribute!="function"||typeof t.removeAttributeNode!="function"||typeof t.getAttributeNode!="function"||typeof t.setAttribute!="function"||typeof t.namespaceURI!="string"||typeof t.insertBefore!="function"||typeof t.hasChildNodes!="function"||t.nodeType!==G(t)||t.childNodes!==q(t)},rt=function(t){if(!G||typeof t!="object"||t===null)return!1;try{return G(t)===M.documentFragment}catch{return!1}},mt=function(t){if(!G||typeof t!="object"||t===null)return!1;try{return typeof G(t)=="number"}catch{return!1}};function k(o,t,e){o.length!==0&&V(o,n=>{n.call(i,t,e,ot)})}const vn=function(t,e){return!!(Y&&t.hasChildNodes()&&!mt(t.firstElementChild)&&O(nn,t.textContent)&&O(nn,t.innerHTML)||Y&&t.namespaceURI===v&&_o[e]&&(mt(t.firstElementChild)||typeof t.textContent=="string"&&O(go[e],t.textContent))||t.nodeType===M.processingInstruction||Y&&t.nodeType===M.comment&&O(on,t.data))},Mt=function(t,e){if(t instanceof RegExp)return O(t,e);if(t instanceof Function){for(var n=arguments.length,a=new Array(n>2?n-2:0),l=2;l<n;l++)a[l-2]=arguments[l];return!!t(e,...a)}return!1},kn=function(t,e,n){if(!ft[e]&&We(e)&&Mt(x.tagNameCheck,e))return!1;if(jt&&!et[e]){const a=K(t),l=q(t);if(l&&a){const u=l.length;for(let m=u-1;m>=0;--m){const g=t===n?un(l[m],!0):l[m];a.insertBefore(g,fn(t))}}}return H(t),!0},Ue=function(t,e,n,a){return t.length===0?e:e===n||e===a?C(e):e},Fe=function(t,e){return t===e||K(t)!==null?!1:($t&&wt(t),!0)},ze=function(t,e){if(k(T.beforeSanitizeElements,t,null),Fe(t,e))return!0;if(It(t))return H(t),!0;const n=E(Ut(t));if(h=Ue(T.uponSanitizeElement,h,Ht,yt),k(T.uponSanitizeElement,t,{tagName:n,allowedTags:h}),Fe(t,e))return!0;if(vn(t,n))return H(t),!0;if(ft[n]||!(F.tagCheck instanceof Function&&F.tagCheck(n))&&!h[n]){const l=kn(t,n,e);return l===!1&&k(T.afterSanitizeElements,t,null),l}if(ct(t)===M.element&&!Cn(t)||(n==="noscript"||n==="noembed"||n==="noframes")&&O(To,t.innerHTML))return H(t),!0;if(z&&t.nodeType===M.text){const l=Nt(t.textContent);t.textContent!==l&&(dt(i.removed,{element:t.cloneNode()}),t.textContent=l)}return k(T.afterSanitizeElements,t,null),!1},He=function(t,e,n){if(he[e]||xe(e,t)||Ae&&(e==="id"||e==="name")&&(n in s||n in wn))return!1;const a=_[e]||F.attributeCheck instanceof Function&&F.attributeCheck(e,t);return Gt&&O(An,e)||_e&&O(yn,e)?!0:a?Le[e]||O(Te,Tt(n,de,""))||(e==="src"||e==="xlink:href"||e==="href")&&t!=="script"&&Ve(n,"data:")===0&&Oe[t]||ge&&!O(Sn,Tt(n,de,""))?!0:!n:We(t)&&Mt(x.tagNameCheck,t)&&Mt(x.attributeNameCheck,e,t)||e==="is"&&x.allowCustomizedBuiltInElements&&Mt(x.tagNameCheck,n)},Un=p({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),We=function(t){return!Un[_t(t)]&&O(bn,t)},Fn=function(t,e,n,a){if(L&&typeof gt=="object"&&typeof gt.getAttributeType=="function"&&!n)switch(gt.getAttributeType(t,e)){case"TrustedHTML":return J(a);case"TrustedScriptURL":return pn(a)}return a},zn=function(t,e,n,a){try{return n?t.setAttributeNS(n,e,a):t.setAttribute(e,a),It(t)?(H(t),!1):!0}catch{return $(e,t),!1}},Ge=function(t){k(T.beforeSanitizeAttributes,t,null);const e=t.attributes;if(!e||It(t))return;_=Ue(T.uponSanitizeAttribute,_,Wt,St);const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:_,forceKeepAttr:void 0};let a=e.length;const l=E(t.nodeName);for(;a--;){const u=e[a],m=u.name,g=u.namespaceURI,D=u.value,w=E(m),te=D;let R=m==="value"?te:Kn(te),Be=!1;if(n.attrName=w,n.attrValue=R,n.keepAttr=!0,n.forceKeepAttr=void 0,k(T.uponSanitizeAttribute,t,n),R=n.attrValue,ye&&(w==="id"||w==="name")&&Ve(R,Se)!==0&&($(m,t,u),R=Se+R,Be=!0),Y&&O(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,R)){$(m,t,u);continue}if(w==="attributename"&&Xe(R,"href")){$(m,t,u);continue}if(!n.forceKeepAttr){if(!n.keepAttr){$(m,t,u);continue}if(!Ee&&O(ho,R)){$(m,t,u);continue}if(z&&(R=Nt(R)),!He(l,w,R)){$(m,t,u);continue}R=Fn(l,w,g,R),R!==te&&zn(t,m,g,R)&&Be&&$e(i.removed)}}k(T.afterSanitizeAttributes,t,null)},Ct=function(t){let e=null;const n=ke(t);for(k(T.beforeSanitizeShadowDOM,t,null);e=n.nextNode();)if(k(T.uponSanitizeShadowNode,e,null),ze(e,t),Ge(e),rt(e.content)&&Ct(e.content),ct(e)===M.element){const a=ue(e);rt(a)&&(Qt(a),Ct(a))}k(T.afterSanitizeShadowDOM,t,null)},Qt=function(t){const e=[{node:t,shadow:null}];for(;e.length>0;){const n=e.pop();if(n.shadow){Ct(n.shadow);continue}const a=n.node,u=ct(a)===M.element,m=q(a);if(m)for(let g=m.length-1;g>=0;--g)e.push({node:m[g],shadow:null});if(u){const g=Z?Z(a):null;if(typeof g=="string"&&E(g)==="template"){const D=a.content;rt(D)&&e.push({node:D,shadow:null})}}if(u){const g=ue(a);rt(g)&&e.push({node:null,shadow:g},{node:g,shadow:null})}}};return i.sanitize=function(o){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=null,n=null,a=null,l=null;if(Xt=!o,Xt&&(o="<!-->"),typeof o!="string"&&!mt(o)&&(o=eo(o),typeof o!="string"))throw X("dirty is not a string, aborting");if(!i.isSupported)return o;Bt?(h=yt,_=St):Zt(t),(T.uponSanitizeElement.length>0||T.uponSanitizeAttribute.length>0)&&(h=C(h)),T.uponSanitizeAttribute.length>0&&(_=C(_)),i.removed=[];const u=$t&&typeof o!="string"&&mt(o);if(u){xn(o);const D=Ut(o);if(typeof D=="string"){const w=E(D);if(!h[w]||ft[w])throw Dt(o),X("root node is forbidden and cannot be sanitized in-place")}if(It(o))throw Dt(o),X("root node is clobbered and cannot be sanitized in-place");try{Qt(o)}catch(w){throw Dt(o),w}}else if(mt(o))e=ve("<!---->"),n=e.ownerDocument.importNode(o,!0),n.nodeType===M.element&&n.nodeName==="BODY"||n.nodeName==="HTML"?e=n:e.appendChild(n),Qt(e);else{if(!Q&&!z&&!j&&o.indexOf("<")===-1)return L&&Ot?J(o):o;if(e=ve(o),!e)return Q?null:Ot?B:""}e&&Yt&&H(e.firstChild);const m=u?o:e;try{const D=ke(m);for(;a=D.nextNode();)ze(a,m),Ge(a),rt(a.content)&&Ct(a.content)}catch(D){throw u&&(Dt(o),V(i.removed,w=>{w.element&&wt(w.element)})),D}if(u)return V(i.removed,D=>{D.element&&wt(D.element)}),z&&Jt(o),o;if(Q){if(z&&Jt(e),bt)for(l=dn.call(e.ownerDocument);e.firstChild;)l.appendChild(e.firstChild);else l=e;return(_.shadowroot||_.shadowrootmode)&&(l=hn.call(c,l,!0)),l}let g=j?e.outerHTML:e.innerHTML;return j&&h["!doctype"]&&e.ownerDocument&&e.ownerDocument.doctype&&e.ownerDocument.doctype.name&&O(po,e.ownerDocument.doctype.name)&&(g="<!DOCTYPE "+e.ownerDocument.doctype.name+`>
|
|
3
|
+
`+g),z&&(g=Nt(g)),L&&Ot?J(g):g},i.setConfig=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Zt(o),Bt=!0,yt=h,St=_},i.clearConfig=function(){ot=null,Bt=!1,yt=null,St=null,L=Ft,B=""},i.isValidAttribute=function(o,t,e){ot||Zt({});const n=E(o),a=E(t);return He(n,a,e)},i.addHook=function(o,t){typeof t=="function"&&N(T,o)&&dt(T[o],t)},i.removeHook=function(o,t){if(N(T,o)){if(t!==void 0){const e=Vn(T[o],t);return e===-1?void 0:qn(T[o],e,1)[0]}return $e(T[o])}},i.removeHooks=function(o){N(T,o)&&(T[o]=[])},i.removeAllHooks=function(){T=rn()},i}var So=cn();export{So as default};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=20.18.1"
|
|
5
5
|
},
|
|
6
|
-
"version": "7.1.
|
|
6
|
+
"version": "7.1.3",
|
|
7
7
|
"description": "KNX Ultimate is the most advanced KNX integration for Node-RED, providing secure KNX/IP communication, routing, ETS project import, Philips Hue, Matter Controller and Matter Bridge (control matter device via KNX and expose KNX GA via Matter), MQTT and Modbus adapters, diagnostics, virtual devices, and powerful automation nodes. Build professional, reliable, and scalable smart home and building automation projects with minimal effort.",
|
|
8
8
|
"files": [
|
|
9
9
|
"nodes/",
|
|
@@ -156,4 +156,4 @@
|
|
|
156
156
|
"vue": "^3.5.41",
|
|
157
157
|
"jspdf": "^4.2.1"
|
|
158
158
|
}
|
|
159
|
-
}
|
|
159
|
+
}
|