liberty-framework 6.0.59__py3-none-any.whl → 6.0.61__py3-none-any.whl
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.
- {app → liberty}/alembic/env.py +4 -4
- {app → liberty}/controllers/api_controller.py +30 -27
- {app → liberty}/controllers/setup_controller.py +4 -4
- {app → liberty}/controllers/socket_controller.py +2 -2
- {app → liberty}/database/base_dao.py +1 -1
- {app → liberty}/database/ora_dao.py +3 -3
- {app → liberty}/database/pg_dao.py +2 -2
- {app → liberty}/main.py +19 -15
- {app → liberty}/models/apidb.py +9 -0
- liberty/postgres/dump/airflow.dump +0 -0
- {app → liberty}/postgres/dump/gitea.dump +0 -0
- {app → liberty}/postgres/dump/keycloak.dump +0 -0
- {app → liberty}/postgres/dump/liberty.dump +0 -0
- {app → liberty}/postgres/dump/libnetl.dump +0 -0
- {app → liberty}/postgres/dump/libnjde.dump +0 -0
- {app → liberty}/postgres/dump/libnsx1.dump +0 -0
- liberty/postgres/dump/nomajde.dump +0 -0
- liberty/postgres/dump/nomasx1.dump +0 -0
- liberty/postgres/dump/test.dump +0 -0
- app/public/frontend/assets/index-HlYGfx6q.js → liberty/public/frontend/assets/index-D-FD6vMP.js +4 -4
- app/public/frontend/assets/index-HlYGfx6q.js.map → liberty/public/frontend/assets/index-D-FD6vMP.js.map +1 -1
- app/public/frontend/assets/index.es-mB7ZF8OM-f6QJp5B4.js → liberty/public/frontend/assets/index.es-mB7ZF8OM-BtuhuoJS.js +2 -2
- liberty/public/frontend/assets/index.es-mB7ZF8OM-BtuhuoJS.js.map +1 -0
- app/public/frontend/assets/purify.es-CKk_t3XZ-DHuNJQNB.js → liberty/public/frontend/assets/purify.es-CKk_t3XZ-DsD8-A7d.js +3 -3
- liberty/public/frontend/assets/purify.es-CKk_t3XZ-DsD8-A7d.js.map +1 -0
- {app → liberty}/public/frontend/index.html +1 -1
- {app → liberty}/routes/api_routes.py +38 -17
- {app → liberty}/routes/react_routes.py +1 -1
- {app → liberty}/routes/setup_routes.py +4 -4
- {app → liberty}/routes/socket_routes.py +1 -1
- app/services/db_query.py → liberty/services/api_services.py +4 -4
- {app → liberty}/services/db_pool.py +3 -3
- app/services/api_rest.py → liberty/services/rest_services.py +23 -16
- {app → liberty}/setup/services/alembic.py +6 -6
- {app → liberty}/setup/services/dump.py +7 -7
- {app → liberty}/setup/services/install.py +4 -4
- {app → liberty}/setup/services/models.py +4 -4
- {app → liberty}/setup/services/setup.py +19 -19
- {app → liberty}/utils/encrypt.py +1 -1
- {app → liberty}/utils/jwt.py +1 -1
- {liberty_framework-6.0.59.dist-info → liberty_framework-6.0.61.dist-info}/METADATA +1 -1
- liberty_framework-6.0.61.dist-info/RECORD +98 -0
- liberty_framework-6.0.61.dist-info/entry_points.txt +2 -0
- liberty_framework-6.0.61.dist-info/top_level.txt +1 -0
- app/postgres/dump/airflow.dump +0 -0
- app/postgres/dump/nomajde.dump +0 -0
- app/postgres/dump/nomasx1.dump +0 -0
- app/public/frontend/assets/index.es-mB7ZF8OM-f6QJp5B4.js.map +0 -1
- app/public/frontend/assets/purify.es-CKk_t3XZ-DHuNJQNB.js.map +0 -1
- liberty_framework-6.0.59.dist-info/RECORD +0 -97
- liberty_framework-6.0.59.dist-info/entry_points.txt +0 -2
- liberty_framework-6.0.59.dist-info/top_level.txt +0 -1
- {app → liberty}/__init__.py +0 -0
- {app → liberty}/alembic/README +0 -0
- {app → liberty}/alembic/script.py.mako +0 -0
- {app → liberty}/alembic/versions/README +0 -0
- {app → liberty}/alembic.ini +0 -0
- {app → liberty}/business/__init__.py +0 -0
- {app → liberty}/business/oracle.py +0 -0
- {app → liberty}/business/postgres.py +0 -0
- {app → liberty}/config/__init__.py +0 -0
- {app → liberty}/config/files/liberty.ini +0 -0
- {app → liberty}/controllers/__init__.py +0 -0
- {app → liberty}/database/__init__.py +0 -0
- {app → liberty}/logs/__init__.py +0 -0
- {app → liberty}/models/__init__.py +0 -0
- {app → liberty}/models/ai.py +0 -0
- {app → liberty}/models/applications.py +0 -0
- {app → liberty}/models/auth.py +0 -0
- {app → liberty}/models/base.py +0 -0
- {app → liberty}/models/modules.py +0 -0
- {app → liberty}/models/pool.py +0 -0
- {app → liberty}/models/setup.py +0 -0
- {app → liberty}/models/themes.py +0 -0
- {app → liberty}/postgres/__init__.py +0 -0
- {app → liberty}/postgres/dump/__init__.py +0 -0
- {app → liberty}/public/__init__.py +0 -0
- {app → liberty}/public/frontend/assets/background_ly-VdfFMP8a.jpg +0 -0
- {app → liberty}/public/frontend/assets/logo_ly-HGj2PB94.svg +0 -0
- {app → liberty}/public/offline/assets/logo_ly.png +0 -0
- /app/public/offline/offline.html → /liberty/public/offline/index.html +0 -0
- {app → liberty}/public/setup/index.html +0 -0
- {app → liberty}/public/setup/setup/assets/background_ly-VdfFMP8a.jpg +0 -0
- {app → liberty}/public/setup/setup/assets/index-BBGAGXd2.css +0 -0
- {app → liberty}/public/setup/setup/assets/index-knz6QXph.js +0 -0
- {app → liberty}/public/setup/setup/assets/index-knz6QXph.js.map +0 -0
- {app → liberty}/public/setup/setup/assets/logo_ly-HGj2PB94.svg +0 -0
- {app → liberty}/routes/__init__.py +0 -0
- {app → liberty}/services/__init__.py +0 -0
- {app → liberty}/setup/__init__.py +0 -0
- {app → liberty}/setup/data/__init__.py +0 -0
- {app → liberty}/setup/data/liberty.json +0 -0
- {app → liberty}/setup/data/libnetl.json +0 -0
- {app → liberty}/setup/data/libnjde.json +0 -0
- {app → liberty}/setup/data/libnsx1.json +0 -0
- {app → liberty}/setup/data/nomasx1.json +0 -0
- {app → liberty}/setup/models/__init__.py +0 -0
- {app → liberty}/setup/models/liberty.py +0 -0
- {app → liberty}/setup/models/nomasx1.py +0 -0
- {app → liberty}/setup/services/__init__.py +0 -0
- {app → liberty}/utils/__init__.py +0 -0
- {app → liberty}/utils/common.py +0 -0
- {app → liberty}/utils/logs.py +0 -0
- {app → liberty}/utils/test.py +0 -0
- {liberty_framework-6.0.59.dist-info → liberty_framework-6.0.61.dist-info}/LICENSE +0 -0
- {liberty_framework-6.0.59.dist-info → liberty_framework-6.0.61.dist-info}/WHEEL +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import"./index-D-FD6vMP.js";try{let n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new n.Error().stack;a&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[a]="d0d73c56-6139-4ae6-b55e-ebc5547518df",n._sentryDebugIdIdentifier="sentry-dbid-d0d73c56-6139-4ae6-b55e-ebc5547518df")}catch{}/*! @license DOMPurify 2.5.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.8/LICENSE */function R(n){"@babel/helpers - typeof";return R=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},R(n)}function It(n,a){return It=Object.setPrototypeOf||function(o,l){return o.__proto__=l,o},It(n,a)}function ze(){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 it(n,a,o){return ze()?it=Reflect.construct:it=function(l,m,b){var A=[null];A.push.apply(A,m);var K=Function.bind.apply(l,A),L=new K;return b&&It(L,b.prototype),L},it.apply(null,arguments)}function S(n){return Pe(n)||je(n)||Be(n)||Ge()}function Pe(n){if(Array.isArray(n))return Ft(n)}function je(n){if(typeof Symbol<"u"&&n[Symbol.iterator]!=null||n["@@iterator"]!=null)return Array.from(n)}function Be(n,a){if(n){if(typeof n=="string")return Ft(n,a);var o=Object.prototype.toString.call(n).slice(8,-1);if(o==="Object"&&n.constructor&&(o=n.constructor.name),o==="Map"||o==="Set")return Array.from(n);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return Ft(n,a)}}function Ft(n,a){(a==null||a>n.length)&&(a=n.length);for(var o=0,l=new Array(a);o<a;o++)l[o]=n[o];return l}function Ge(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var We=Object.hasOwnProperty,ce=Object.setPrototypeOf,qe=Object.isFrozen,$e=Object.getPrototypeOf,Ye=Object.getOwnPropertyDescriptor,y=Object.freeze,v=Object.seal,Ke=Object.create,he=typeof Reflect<"u"&&Reflect,ct=he.apply,Ut=he.construct;ct||(ct=function(n,a,o){return n.apply(a,o)});y||(y=function(n){return n});v||(v=function(n){return n});Ut||(Ut=function(n,a){return it(n,S(a))});var Ve=E(Array.prototype.forEach),se=E(Array.prototype.pop),Y=E(Array.prototype.push),lt=E(String.prototype.toLowerCase),Ot=E(String.prototype.toString),ue=E(String.prototype.match),w=E(String.prototype.replace),Xe=E(String.prototype.indexOf),Ze=E(String.prototype.trim),g=E(RegExp.prototype.test),Dt=Je(TypeError);function E(n){return function(a){for(var o=arguments.length,l=new Array(o>1?o-1:0),m=1;m<o;m++)l[m-1]=arguments[m];return ct(n,a,l)}}function Je(n){return function(){for(var a=arguments.length,o=new Array(a),l=0;l<a;l++)o[l]=arguments[l];return Ut(n,o)}}function i(n,a,o){var l;o=(l=o)!==null&&l!==void 0?l:lt,ce&&ce(n,null);for(var m=a.length;m--;){var b=a[m];if(typeof b=="string"){var A=o(b);A!==b&&(qe(a)||(a[m]=A),b=A)}n[b]=!0}return n}function U(n){var a=Ke(null),o;for(o in n)ct(We,n,[o])===!0&&(a[o]=n[o]);return a}function at(n,a){for(;n!==null;){var o=Ye(n,a);if(o){if(o.get)return E(o.get);if(typeof o.value=="function")return E(o.value)}n=$e(n)}function l(m){return console.warn("fallback value for",m),null}return l}var fe=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"]),Lt=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"]),Ct=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"]),Qe=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"]),Rt=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"]),tn=y(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),me=y(["#text"]),pe=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"]),Mt=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"]),de=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"]),ot=y(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),en=v(/\{\{[\w\W]*|[\w\W]*\}\}/gm),nn=v(/<%[\w\W]*|[\w\W]*%>/gm),rn=v(/\${[\w\W]*}/gm),an=v(/^data-[\-\w.\u00B7-\uFFFF]+$/),on=v(/^aria-[\-\w]+$/),ln=v(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),cn=v(/^(?:\w+script|data):/i),sn=v(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),un=v(/^html$/i),fn=v(/^[a-z][.\w]*(-[.\w]+)+$/i),mn=function(){return typeof window>"u"?null:window},pn=function(n,a){if(R(n)!=="object"||typeof n.createPolicy!="function")return null;var o=null,l="data-tt-policy-suffix";a.currentScript&&a.currentScript.hasAttribute(l)&&(o=a.currentScript.getAttribute(l));var m="dompurify"+(o?"#"+o:"");try{return n.createPolicy(m,{createHTML:function(b){return b},createScriptURL:function(b){return b}})}catch{return console.warn("TrustedTypes policy "+m+" could not be created."),null}};function ge(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:mn(),a=function(t){return ge(t)};if(a.version="2.5.8",a.removed=[],!n||!n.document||n.document.nodeType!==9)return a.isSupported=!1,a;var o=n.document,l=n.document,m=n.DocumentFragment,b=n.HTMLTemplateElement,A=n.Node,K=n.Element,L=n.NodeFilter,Ht=n.NamedNodeMap,ye=Ht===void 0?n.NamedNodeMap||n.MozNamedAttrMap:Ht,be=n.HTMLFormElement,Te=n.DOMParser,V=n.trustedTypes,X=K.prototype,Ne=at(X,"cloneNode"),ve=at(X,"nextSibling"),Ee=at(X,"childNodes"),st=at(X,"parentNode");if(typeof b=="function"){var ut=l.createElement("template");ut.content&&ut.content.ownerDocument&&(l=ut.content.ownerDocument)}var _=pn(V,o),ft=_?_.createHTML(""):"",Z=l,mt=Z.implementation,Ae=Z.createNodeIterator,_e=Z.createDocumentFragment,we=Z.getElementsByTagName,Se=o.importNode,zt={};try{zt=U(l).documentMode?l.documentMode:{}}catch{}var k={};a.isSupported=typeof st=="function"&&mt&&mt.createHTMLDocument!==void 0&&zt!==9;var pt=en,dt=nn,ht=rn,ke=an,xe=on,Oe=cn,Pt=sn,De=fn,gt=ln,p=null,jt=i({},[].concat(S(fe),S(Lt),S(Ct),S(Rt),S(me))),d=null,Bt=i({},[].concat(S(pe),S(Mt),S(de),S(ot))),s=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}})),W=null,yt=null,Gt=!0,bt=!0,Wt=!1,qt=!0,H=!1,Tt=!0,M=!1,Nt=!1,vt=!1,z=!1,J=!1,Q=!1,$t=!0,Yt=!1,Le="user-content-",Et=!0,q=!1,P={},j=null,Kt=i({},["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"]),Vt=null,Xt=i({},["audio","video","img","source","image","track"]),At=null,Zt=i({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),tt="http://www.w3.org/1998/Math/MathML",et="http://www.w3.org/2000/svg",O="http://www.w3.org/1999/xhtml",B=O,_t=!1,wt=null,Ce=i({},[tt,et,O],Ot),I,Re=["application/xhtml+xml","text/html"],Me="text/html",h,G=null,Ie=l.createElement("form"),Jt=function(t){return t instanceof RegExp||t instanceof Function},St=function(t){G&&G===t||((!t||R(t)!=="object")&&(t={}),t=U(t),I=Re.indexOf(t.PARSER_MEDIA_TYPE)===-1?I=Me:I=t.PARSER_MEDIA_TYPE,h=I==="application/xhtml+xml"?Ot:lt,p="ALLOWED_TAGS"in t?i({},t.ALLOWED_TAGS,h):jt,d="ALLOWED_ATTR"in t?i({},t.ALLOWED_ATTR,h):Bt,wt="ALLOWED_NAMESPACES"in t?i({},t.ALLOWED_NAMESPACES,Ot):Ce,At="ADD_URI_SAFE_ATTR"in t?i(U(Zt),t.ADD_URI_SAFE_ATTR,h):Zt,Vt="ADD_DATA_URI_TAGS"in t?i(U(Xt),t.ADD_DATA_URI_TAGS,h):Xt,j="FORBID_CONTENTS"in t?i({},t.FORBID_CONTENTS,h):Kt,W="FORBID_TAGS"in t?i({},t.FORBID_TAGS,h):{},yt="FORBID_ATTR"in t?i({},t.FORBID_ATTR,h):{},P="USE_PROFILES"in t?t.USE_PROFILES:!1,Gt=t.ALLOW_ARIA_ATTR!==!1,bt=t.ALLOW_DATA_ATTR!==!1,Wt=t.ALLOW_UNKNOWN_PROTOCOLS||!1,qt=t.ALLOW_SELF_CLOSE_IN_ATTR!==!1,H=t.SAFE_FOR_TEMPLATES||!1,Tt=t.SAFE_FOR_XML!==!1,M=t.WHOLE_DOCUMENT||!1,z=t.RETURN_DOM||!1,J=t.RETURN_DOM_FRAGMENT||!1,Q=t.RETURN_TRUSTED_TYPE||!1,vt=t.FORCE_BODY||!1,$t=t.SANITIZE_DOM!==!1,Yt=t.SANITIZE_NAMED_PROPS||!1,Et=t.KEEP_CONTENT!==!1,q=t.IN_PLACE||!1,gt=t.ALLOWED_URI_REGEXP||gt,B=t.NAMESPACE||O,s=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&Jt(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(s.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&Jt(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(s.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(s.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),H&&(bt=!1),J&&(z=!0),P&&(p=i({},S(me)),d=[],P.html===!0&&(i(p,fe),i(d,pe)),P.svg===!0&&(i(p,Lt),i(d,Mt),i(d,ot)),P.svgFilters===!0&&(i(p,Ct),i(d,Mt),i(d,ot)),P.mathMl===!0&&(i(p,Rt),i(d,de),i(d,ot))),t.ADD_TAGS&&(p===jt&&(p=U(p)),i(p,t.ADD_TAGS,h)),t.ADD_ATTR&&(d===Bt&&(d=U(d)),i(d,t.ADD_ATTR,h)),t.ADD_URI_SAFE_ATTR&&i(At,t.ADD_URI_SAFE_ATTR,h),t.FORBID_CONTENTS&&(j===Kt&&(j=U(j)),i(j,t.FORBID_CONTENTS,h)),Et&&(p["#text"]=!0),M&&i(p,["html","head","body"]),p.table&&(i(p,["tbody"]),delete W.tbody),y&&y(t),G=t)},Qt=i({},["mi","mo","mn","ms","mtext"]),te=i({},["annotation-xml"]),Fe=i({},["title","style","font","a","script"]),nt=i({},Lt);i(nt,Ct),i(nt,Qe);var kt=i({},Rt);i(kt,tn);var Ue=function(t){var r=st(t);(!r||!r.tagName)&&(r={namespaceURI:B,tagName:"template"});var e=lt(t.tagName),c=lt(r.tagName);return wt[t.namespaceURI]?t.namespaceURI===et?r.namespaceURI===O?e==="svg":r.namespaceURI===tt?e==="svg"&&(c==="annotation-xml"||Qt[c]):!!nt[e]:t.namespaceURI===tt?r.namespaceURI===O?e==="math":r.namespaceURI===et?e==="math"&&te[c]:!!kt[e]:t.namespaceURI===O?r.namespaceURI===et&&!te[c]||r.namespaceURI===tt&&!Qt[c]?!1:!kt[e]&&(Fe[e]||!nt[e]):!!(I==="application/xhtml+xml"&&wt[t.namespaceURI]):!1},F=function(t){Y(a.removed,{element:t});try{t.parentNode.removeChild(t)}catch{try{t.outerHTML=ft}catch{t.remove()}}},rt=function(t,r){try{Y(a.removed,{attribute:r.getAttributeNode(t),from:r})}catch{Y(a.removed,{attribute:null,from:r})}if(r.removeAttribute(t),t==="is"&&!d[t])if(z||J)try{F(r)}catch{}else try{r.setAttribute(t,"")}catch{}},ee=function(t){var r,e;if(vt)t="<remove></remove>"+t;else{var c=ue(t,/^[\r\n\t ]+/);e=c&&c[0]}I==="application/xhtml+xml"&&B===O&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");var u=_?_.createHTML(t):t;if(B===O)try{r=new Te().parseFromString(u,I)}catch{}if(!r||!r.documentElement){r=mt.createDocument(B,"template",null);try{r.documentElement.innerHTML=_t?ft:u}catch{}}var N=r.body||r.documentElement;return t&&e&&N.insertBefore(l.createTextNode(e),N.childNodes[0]||null),B===O?we.call(r,M?"html":"body")[0]:M?r.documentElement:N},ne=function(t){return Ae.call(t.ownerDocument||t,t,L.SHOW_ELEMENT|L.SHOW_COMMENT|L.SHOW_TEXT|L.SHOW_PROCESSING_INSTRUCTION|L.SHOW_CDATA_SECTION,null,!1)},xt=function(t){return t instanceof be&&(typeof t.nodeName!="string"||typeof t.textContent!="string"||typeof t.removeChild!="function"||!(t.attributes instanceof ye)||typeof t.removeAttribute!="function"||typeof t.setAttribute!="function"||typeof t.namespaceURI!="string"||typeof t.insertBefore!="function"||typeof t.hasChildNodes!="function")},$=function(t){return R(A)==="object"?t instanceof A:t&&R(t)==="object"&&typeof t.nodeType=="number"&&typeof t.nodeName=="string"},D=function(t,r,e){k[t]&&Ve(k[t],function(c){c.call(a,r,e,G)})},re=function(t){var r;if(D("beforeSanitizeElements",t,null),xt(t)||g(/[\u0080-\uFFFF]/,t.nodeName))return F(t),!0;var e=h(t.nodeName);if(D("uponSanitizeElement",t,{tagName:e,allowedTags:p}),t.hasChildNodes()&&!$(t.firstElementChild)&&(!$(t.content)||!$(t.content.firstElementChild))&&g(/<[/\w]/g,t.innerHTML)&&g(/<[/\w]/g,t.textContent)||e==="select"&&g(/<template/i,t.innerHTML)||t.nodeType===7||Tt&&t.nodeType===8&&g(/<[/\w]/g,t.data))return F(t),!0;if(!p[e]||W[e]){if(!W[e]&&oe(e)&&(s.tagNameCheck instanceof RegExp&&g(s.tagNameCheck,e)||s.tagNameCheck instanceof Function&&s.tagNameCheck(e)))return!1;if(Et&&!j[e]){var c=st(t)||t.parentNode,u=Ee(t)||t.childNodes;if(u&&c)for(var N=u.length,f=N-1;f>=0;--f){var C=Ne(u[f],!0);C.__removalCount=(t.__removalCount||0)+1,c.insertBefore(C,ve(t))}}return F(t),!0}return t instanceof K&&!Ue(t)||(e==="noscript"||e==="noembed"||e==="noframes")&&g(/<\/no(script|embed|frames)/i,t.innerHTML)?(F(t),!0):(H&&t.nodeType===3&&(r=t.textContent,r=w(r,pt," "),r=w(r,dt," "),r=w(r,ht," "),t.textContent!==r&&(Y(a.removed,{element:t.cloneNode()}),t.textContent=r)),D("afterSanitizeElements",t,null),!1)},ae=function(t,r,e){if($t&&(r==="id"||r==="name")&&(e in l||e in Ie))return!1;if(!(bt&&!yt[r]&&g(ke,r))&&!(Gt&&g(xe,r))){if(!d[r]||yt[r]){if(!(oe(t)&&(s.tagNameCheck instanceof RegExp&&g(s.tagNameCheck,t)||s.tagNameCheck instanceof Function&&s.tagNameCheck(t))&&(s.attributeNameCheck instanceof RegExp&&g(s.attributeNameCheck,r)||s.attributeNameCheck instanceof Function&&s.attributeNameCheck(r))||r==="is"&&s.allowCustomizedBuiltInElements&&(s.tagNameCheck instanceof RegExp&&g(s.tagNameCheck,e)||s.tagNameCheck instanceof Function&&s.tagNameCheck(e))))return!1}else if(!At[r]&&!g(gt,w(e,Pt,""))&&!((r==="src"||r==="xlink:href"||r==="href")&&t!=="script"&&Xe(e,"data:")===0&&Vt[t])&&!(Wt&&!g(Oe,w(e,Pt,"")))&&e)return!1}return!0},oe=function(t){return t!=="annotation-xml"&&ue(t,De)},ie=function(t){var r,e,c,u;D("beforeSanitizeAttributes",t,null);var N=t.attributes;if(!(!N||xt(t))){var f={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:d};for(u=N.length;u--;){r=N[u];var C=r,x=C.name,T=C.namespaceURI;if(e=x==="value"?r.value:Ze(r.value),c=h(x),f.attrName=c,f.attrValue=e,f.keepAttr=!0,f.forceKeepAttr=void 0,D("uponSanitizeAttribute",t,f),e=f.attrValue,!f.forceKeepAttr&&(rt(x,t),!!f.keepAttr)){if(!qt&&g(/\/>/i,e)){rt(x,t);continue}H&&(e=w(e,pt," "),e=w(e,dt," "),e=w(e,ht," "));var le=h(t.nodeName);if(ae(le,c,e)){if(Yt&&(c==="id"||c==="name")&&(rt(x,t),e=Le+e),Tt&&g(/((--!?|])>)|<\/(style|title)/i,e)){rt(x,t);continue}if(_&&R(V)==="object"&&typeof V.getAttributeType=="function"&&!T)switch(V.getAttributeType(le,c)){case"TrustedHTML":{e=_.createHTML(e);break}case"TrustedScriptURL":{e=_.createScriptURL(e);break}}try{T?t.setAttributeNS(T,x,e):t.setAttribute(x,e),xt(t)?F(t):se(a.removed)}catch{}}}}D("afterSanitizeAttributes",t,null)}},He=function t(r){var e,c=ne(r);for(D("beforeSanitizeShadowDOM",r,null);e=c.nextNode();)D("uponSanitizeShadowNode",e,null),re(e),ie(e),e.content instanceof m&&t(e.content);D("afterSanitizeShadowDOM",r,null)};return a.sanitize=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e,c,u,N,f;if(_t=!t,_t&&(t="<!-->"),typeof t!="string"&&!$(t))if(typeof t.toString=="function"){if(t=t.toString(),typeof t!="string")throw Dt("dirty is not a string, aborting")}else throw Dt("toString is not a function");if(!a.isSupported){if(R(n.toStaticHTML)==="object"||typeof n.toStaticHTML=="function"){if(typeof t=="string")return n.toStaticHTML(t);if($(t))return n.toStaticHTML(t.outerHTML)}return t}if(Nt||St(r),a.removed=[],typeof t=="string"&&(q=!1),q){if(t.nodeName){var C=h(t.nodeName);if(!p[C]||W[C])throw Dt("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof A)e=ee("<!---->"),c=e.ownerDocument.importNode(t,!0),c.nodeType===1&&c.nodeName==="BODY"||c.nodeName==="HTML"?e=c:e.appendChild(c);else{if(!z&&!H&&!M&&t.indexOf("<")===-1)return _&&Q?_.createHTML(t):t;if(e=ee(t),!e)return z?null:Q?ft:""}e&&vt&&F(e.firstChild);for(var x=ne(q?t:e);u=x.nextNode();)u.nodeType===3&&u===N||(re(u),ie(u),u.content instanceof m&&He(u.content),N=u);if(N=null,q)return t;if(z){if(J)for(f=_e.call(e.ownerDocument);e.firstChild;)f.appendChild(e.firstChild);else f=e;return(d.shadowroot||d.shadowrootmod)&&(f=Se.call(o,f,!0)),f}var T=M?e.outerHTML:e.innerHTML;return M&&p["!doctype"]&&e.ownerDocument&&e.ownerDocument.doctype&&e.ownerDocument.doctype.name&&g(un,e.ownerDocument.doctype.name)&&(T="<!DOCTYPE "+e.ownerDocument.doctype.name+`>
|
|
3
|
-
`+T),H&&(T=w(T,pt," "),T=w(T,dt," "),T=w(T,ht," ")),_&&Q?_.createHTML(T):T},a.setConfig=function(t){St(t),Nt=!0},a.clearConfig=function(){G=null,Nt=!1},a.isValidAttribute=function(t,r,e){G||St({});var c=h(t),u=h(r);return ae(c,u,e)},a.addHook=function(t,r){typeof r=="function"&&(k[t]=k[t]||[],Y(k[t],r))},a.removeHook=function(t){if(k[t])return se(k[t])},a.removeHooks=function(t){k[t]&&(k[t]=[])},a.removeAllHooks=function(){k={}},a}var
|
|
4
|
-
//# sourceMappingURL=purify.es-CKk_t3XZ-
|
|
3
|
+
`+T),H&&(T=w(T,pt," "),T=w(T,dt," "),T=w(T,ht," ")),_&&Q?_.createHTML(T):T},a.setConfig=function(t){St(t),Nt=!0},a.clearConfig=function(){G=null,Nt=!1},a.isValidAttribute=function(t,r,e){G||St({});var c=h(t),u=h(r);return ae(c,u,e)},a.addHook=function(t,r){typeof r=="function"&&(k[t]=k[t]||[],Y(k[t],r))},a.removeHook=function(t){if(k[t])return se(k[t])},a.removeHooks=function(t){k[t]&&(k[t]=[])},a.removeAllHooks=function(){k={}},a}var hn=ge();export{hn as default};
|
|
4
|
+
//# sourceMappingURL=purify.es-CKk_t3XZ-DsD8-A7d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purify.es-CKk_t3XZ-DsD8-A7d.js","sources":["../../../../../../liberty-core/dist/purify.es-CKk_t3XZ.mjs"],"sourcesContent":["/*! @license DOMPurify 2.5.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.8/LICENSE */\nfunction I(a) {\n \"@babel/helpers - typeof\";\n return I = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n } : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n }, I(a);\n}\nfunction Fe(a, n) {\n return Fe = Object.setPrototypeOf || function(s, c) {\n return s.__proto__ = c, s;\n }, Fe(a, n);\n}\nfunction zt() {\n if (typeof Reflect > \"u\" || !Reflect.construct || Reflect.construct.sham) return !1;\n if (typeof Proxy == \"function\") return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), !0;\n } catch {\n return !1;\n }\n}\nfunction le(a, n, o) {\n return zt() ? le = Reflect.construct : le = function(c, g, y) {\n var D = [null];\n D.push.apply(D, g);\n var x = Function.bind.apply(c, D), j = new x();\n return y && Fe(j, y.prototype), j;\n }, le.apply(null, arguments);\n}\nfunction M(a) {\n return Gt(a) || Wt(a) || Bt(a) || $t();\n}\nfunction Gt(a) {\n if (Array.isArray(a)) return Ue(a);\n}\nfunction Wt(a) {\n if (typeof Symbol < \"u\" && a[Symbol.iterator] != null || a[\"@@iterator\"] != null) return Array.from(a);\n}\nfunction Bt(a, n) {\n if (a) {\n if (typeof a == \"string\") return Ue(a, n);\n var o = Object.prototype.toString.call(a).slice(8, -1);\n if (o === \"Object\" && a.constructor && (o = a.constructor.name), o === \"Map\" || o === \"Set\") return Array.from(a);\n if (o === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)) return Ue(a, n);\n }\n}\nfunction Ue(a, n) {\n (n == null || n > a.length) && (n = a.length);\n for (var o = 0, s = new Array(n); o < n; o++) s[o] = a[o];\n return s;\n}\nfunction $t() {\n throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nvar jt = Object.hasOwnProperty, ut = Object.setPrototypeOf, Yt = Object.isFrozen, Xt = Object.getPrototypeOf, Vt = Object.getOwnPropertyDescriptor, E = Object.freeze, b = Object.seal, qt = Object.create, vt = typeof Reflect < \"u\" && Reflect, ue = vt.apply, He = vt.construct;\nue || (ue = function(n, o, s) {\n return n.apply(o, s);\n});\nE || (E = function(n) {\n return n;\n});\nb || (b = function(n) {\n return n;\n});\nHe || (He = function(n, o) {\n return le(n, M(o));\n});\nvar Kt = O(Array.prototype.forEach), ft = O(Array.prototype.pop), q = O(Array.prototype.push), se = O(String.prototype.toLowerCase), we = O(String.prototype.toString), ct = O(String.prototype.match), L = O(String.prototype.replace), Zt = O(String.prototype.indexOf), Jt = O(String.prototype.trim), _ = O(RegExp.prototype.test), Ce = Qt(TypeError);\nfunction O(a) {\n return function(n) {\n for (var o = arguments.length, s = new Array(o > 1 ? o - 1 : 0), c = 1; c < o; c++)\n s[c - 1] = arguments[c];\n return ue(a, n, s);\n };\n}\nfunction Qt(a) {\n return function() {\n for (var n = arguments.length, o = new Array(n), s = 0; s < n; s++)\n o[s] = arguments[s];\n return He(a, o);\n };\n}\nfunction l(a, n, o) {\n var s;\n o = (s = o) !== null && s !== void 0 ? s : se, ut && ut(a, null);\n for (var c = n.length; c--; ) {\n var g = n[c];\n if (typeof g == \"string\") {\n var y = o(g);\n y !== g && (Yt(n) || (n[c] = y), g = y);\n }\n a[g] = !0;\n }\n return a;\n}\nfunction U(a) {\n var n = qt(null), o;\n for (o in a)\n ue(jt, a, [o]) === !0 && (n[o] = a[o]);\n return n;\n}\nfunction ie(a, n) {\n for (; a !== null; ) {\n var o = Vt(a, n);\n if (o) {\n if (o.get)\n return O(o.get);\n if (typeof o.value == \"function\")\n return O(o.value);\n }\n a = Xt(a);\n }\n function s(c) {\n return console.warn(\"fallback value for\", c), null;\n }\n return s;\n}\nvar mt = E([\"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\"]), Ie = E([\"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\"]), xe = E([\"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\"]), er = E([\"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\"]), ke = E([\"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\"]), tr = E([\"maction\", \"maligngroup\", \"malignmark\", \"mlongdiv\", \"mscarries\", \"mscarry\", \"msgroup\", \"mstack\", \"msline\", \"msrow\", \"semantics\", \"annotation\", \"annotation-xml\", \"mprescripts\", \"none\"]), pt = E([\"#text\"]), dt = E([\"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\"]), Pe = E([\"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\"]), Tt = E([\"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\"]), oe = E([\"xlink:href\", \"xml:id\", \"xlink:title\", \"xml:space\", \"xmlns:xlink\"]), rr = b(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm), ar = b(/<%[\\w\\W]*|[\\w\\W]*%>/gm), nr = b(/\\${[\\w\\W]*}/gm), ir = b(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/), or = b(/^aria-[\\-\\w]+$/), lr = b(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i\n // eslint-disable-line no-useless-escape\n), sr = b(/^(?:\\w+script|data):/i), ur = b(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g\n // eslint-disable-line no-control-regex\n), fr = b(/^html$/i), cr = b(/^[a-z][.\\w]*(-[.\\w]+)+$/i), mr = function() {\n return typeof window > \"u\" ? null : window;\n}, pr = function(n, o) {\n if (I(n) !== \"object\" || typeof n.createPolicy != \"function\")\n return null;\n var s = null, c = \"data-tt-policy-suffix\";\n o.currentScript && o.currentScript.hasAttribute(c) && (s = o.currentScript.getAttribute(c));\n var g = \"dompurify\" + (s ? \"#\" + s : \"\");\n try {\n return n.createPolicy(g, {\n createHTML: function(D) {\n return D;\n },\n createScriptURL: function(D) {\n return D;\n }\n });\n } catch {\n return console.warn(\"TrustedTypes policy \" + g + \" could not be created.\"), null;\n }\n};\nfunction _t() {\n var a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : mr(), n = function(e) {\n return _t(e);\n };\n if (n.version = \"2.5.8\", n.removed = [], !a || !a.document || a.document.nodeType !== 9)\n return n.isSupported = !1, n;\n var o = a.document, s = a.document, c = a.DocumentFragment, g = a.HTMLTemplateElement, y = a.Node, D = a.Element, x = a.NodeFilter, j = a.NamedNodeMap, ht = j === void 0 ? a.NamedNodeMap || a.MozNamedAttrMap : j, Et = a.HTMLFormElement, At = a.DOMParser, K = a.trustedTypes, Z = D.prototype, yt = ie(Z, \"cloneNode\"), gt = ie(Z, \"nextSibling\"), St = ie(Z, \"childNodes\"), fe = ie(Z, \"parentNode\");\n if (typeof g == \"function\") {\n var ce = s.createElement(\"template\");\n ce.content && ce.content.ownerDocument && (s = ce.content.ownerDocument);\n }\n var R = pr(K, o), me = R ? R.createHTML(\"\") : \"\", J = s, pe = J.implementation, bt = J.createNodeIterator, Ot = J.createDocumentFragment, Rt = J.getElementsByTagName, Lt = o.importNode, ze = {};\n try {\n ze = U(s).documentMode ? s.documentMode : {};\n } catch {\n }\n var N = {};\n n.isSupported = typeof fe == \"function\" && pe && pe.createHTMLDocument !== void 0 && ze !== 9;\n var de = rr, Te = ar, ve = nr, Mt = ir, Dt = or, Nt = sr, Ge = ur, wt = cr, _e = lr, p = null, We = l({}, [].concat(M(mt), M(Ie), M(xe), M(ke), M(pt))), d = null, Be = l({}, [].concat(M(dt), M(Pe), M(Tt), M(oe))), f = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n attributeNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: !1\n }\n })), Y = null, he = null, $e = !0, Ee = !0, je = !1, Ye = !0, H = !1, Ae = !0, k = !1, ye = !1, ge = !1, z = !1, Q = !1, ee = !1, Xe = !0, Ve = !1, Ct = \"user-content-\", Se = !0, X = !1, G = {}, W = null, qe = l({}, [\"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\"]), Ke = null, Ze = l({}, [\"audio\", \"video\", \"img\", \"source\", \"image\", \"track\"]), be = null, Je = l({}, [\"alt\", \"class\", \"for\", \"id\", \"label\", \"name\", \"pattern\", \"placeholder\", \"role\", \"summary\", \"title\", \"value\", \"style\", \"xmlns\"]), te = \"http://www.w3.org/1998/Math/MathML\", re = \"http://www.w3.org/2000/svg\", w = \"http://www.w3.org/1999/xhtml\", B = w, Oe = !1, Re = null, It = l({}, [te, re, w], we), P, xt = [\"application/xhtml+xml\", \"text/html\"], kt = \"text/html\", T, $ = null, Pt = s.createElement(\"form\"), Qe = function(e) {\n return e instanceof RegExp || e instanceof Function;\n }, Le = function(e) {\n $ && $ === e || ((!e || I(e) !== \"object\") && (e = {}), e = U(e), P = // eslint-disable-next-line unicorn/prefer-includes\n xt.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? P = kt : P = e.PARSER_MEDIA_TYPE, T = P === \"application/xhtml+xml\" ? we : se, p = \"ALLOWED_TAGS\" in e ? l({}, e.ALLOWED_TAGS, T) : We, d = \"ALLOWED_ATTR\" in e ? l({}, e.ALLOWED_ATTR, T) : Be, Re = \"ALLOWED_NAMESPACES\" in e ? l({}, e.ALLOWED_NAMESPACES, we) : It, be = \"ADD_URI_SAFE_ATTR\" in e ? l(\n U(Je),\n // eslint-disable-line indent\n e.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n T\n // eslint-disable-line indent\n ) : Je, Ke = \"ADD_DATA_URI_TAGS\" in e ? l(\n U(Ze),\n // eslint-disable-line indent\n e.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n T\n // eslint-disable-line indent\n ) : Ze, W = \"FORBID_CONTENTS\" in e ? l({}, e.FORBID_CONTENTS, T) : qe, Y = \"FORBID_TAGS\" in e ? l({}, e.FORBID_TAGS, T) : {}, he = \"FORBID_ATTR\" in e ? l({}, e.FORBID_ATTR, T) : {}, G = \"USE_PROFILES\" in e ? e.USE_PROFILES : !1, $e = e.ALLOW_ARIA_ATTR !== !1, Ee = e.ALLOW_DATA_ATTR !== !1, je = e.ALLOW_UNKNOWN_PROTOCOLS || !1, Ye = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, H = e.SAFE_FOR_TEMPLATES || !1, Ae = e.SAFE_FOR_XML !== !1, k = e.WHOLE_DOCUMENT || !1, z = e.RETURN_DOM || !1, Q = e.RETURN_DOM_FRAGMENT || !1, ee = e.RETURN_TRUSTED_TYPE || !1, ge = e.FORCE_BODY || !1, Xe = e.SANITIZE_DOM !== !1, Ve = e.SANITIZE_NAMED_PROPS || !1, Se = e.KEEP_CONTENT !== !1, X = e.IN_PLACE || !1, _e = e.ALLOWED_URI_REGEXP || _e, B = e.NAMESPACE || w, f = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && Qe(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (f.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && Qe(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (f.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == \"boolean\" && (f.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), H && (Ee = !1), Q && (z = !0), G && (p = l({}, M(pt)), d = [], G.html === !0 && (l(p, mt), l(d, dt)), G.svg === !0 && (l(p, Ie), l(d, Pe), l(d, oe)), G.svgFilters === !0 && (l(p, xe), l(d, Pe), l(d, oe)), G.mathMl === !0 && (l(p, ke), l(d, Tt), l(d, oe))), e.ADD_TAGS && (p === We && (p = U(p)), l(p, e.ADD_TAGS, T)), e.ADD_ATTR && (d === Be && (d = U(d)), l(d, e.ADD_ATTR, T)), e.ADD_URI_SAFE_ATTR && l(be, e.ADD_URI_SAFE_ATTR, T), e.FORBID_CONTENTS && (W === qe && (W = U(W)), l(W, e.FORBID_CONTENTS, T)), Se && (p[\"#text\"] = !0), k && l(p, [\"html\", \"head\", \"body\"]), p.table && (l(p, [\"tbody\"]), delete Y.tbody), E && E(e), $ = e);\n }, et = l({}, [\"mi\", \"mo\", \"mn\", \"ms\", \"mtext\"]), tt = l({}, [\"annotation-xml\"]), Ft = l({}, [\"title\", \"style\", \"font\", \"a\", \"script\"]), ae = l({}, Ie);\n l(ae, xe), l(ae, er);\n var Me = l({}, ke);\n l(Me, tr);\n var Ut = function(e) {\n var t = fe(e);\n (!t || !t.tagName) && (t = {\n namespaceURI: B,\n tagName: \"template\"\n });\n var r = se(e.tagName), u = se(t.tagName);\n return Re[e.namespaceURI] ? e.namespaceURI === re ? t.namespaceURI === w ? r === \"svg\" : t.namespaceURI === te ? r === \"svg\" && (u === \"annotation-xml\" || et[u]) : !!ae[r] : e.namespaceURI === te ? t.namespaceURI === w ? r === \"math\" : t.namespaceURI === re ? r === \"math\" && tt[u] : !!Me[r] : e.namespaceURI === w ? t.namespaceURI === re && !tt[u] || t.namespaceURI === te && !et[u] ? !1 : !Me[r] && (Ft[r] || !ae[r]) : !!(P === \"application/xhtml+xml\" && Re[e.namespaceURI]) : !1;\n }, S = function(e) {\n q(n.removed, {\n element: e\n });\n try {\n e.parentNode.removeChild(e);\n } catch {\n try {\n e.outerHTML = me;\n } catch {\n e.remove();\n }\n }\n }, ne = function(e, t) {\n try {\n q(n.removed, {\n attribute: t.getAttributeNode(e),\n from: t\n });\n } catch {\n q(n.removed, {\n attribute: null,\n from: t\n });\n }\n if (t.removeAttribute(e), e === \"is\" && !d[e])\n if (z || Q)\n try {\n S(t);\n } catch {\n }\n else\n try {\n t.setAttribute(e, \"\");\n } catch {\n }\n }, rt = function(e) {\n var t, r;\n if (ge)\n e = \"<remove></remove>\" + e;\n else {\n var u = ct(e, /^[\\r\\n\\t ]+/);\n r = u && u[0];\n }\n P === \"application/xhtml+xml\" && B === w && (e = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + e + \"</body></html>\");\n var A = R ? R.createHTML(e) : e;\n if (B === w)\n try {\n t = new At().parseFromString(A, P);\n } catch {\n }\n if (!t || !t.documentElement) {\n t = pe.createDocument(B, \"template\", null);\n try {\n t.documentElement.innerHTML = Oe ? me : A;\n } catch {\n }\n }\n var h = t.body || t.documentElement;\n return e && r && h.insertBefore(s.createTextNode(r), h.childNodes[0] || null), B === w ? Rt.call(t, k ? \"html\" : \"body\")[0] : k ? t.documentElement : h;\n }, at = function(e) {\n return bt.call(\n e.ownerDocument || e,\n e,\n // eslint-disable-next-line no-bitwise\n x.SHOW_ELEMENT | x.SHOW_COMMENT | x.SHOW_TEXT | x.SHOW_PROCESSING_INSTRUCTION | x.SHOW_CDATA_SECTION,\n null,\n !1\n );\n }, De = function(e) {\n return e instanceof Et && (typeof e.nodeName != \"string\" || typeof e.textContent != \"string\" || typeof e.removeChild != \"function\" || !(e.attributes instanceof ht) || typeof e.removeAttribute != \"function\" || typeof e.setAttribute != \"function\" || typeof e.namespaceURI != \"string\" || typeof e.insertBefore != \"function\" || typeof e.hasChildNodes != \"function\");\n }, V = function(e) {\n return I(y) === \"object\" ? e instanceof y : e && I(e) === \"object\" && typeof e.nodeType == \"number\" && typeof e.nodeName == \"string\";\n }, C = function(e, t, r) {\n N[e] && Kt(N[e], function(u) {\n u.call(n, t, r, $);\n });\n }, nt = function(e) {\n var t;\n if (C(\"beforeSanitizeElements\", e, null), De(e) || _(/[\\u0080-\\uFFFF]/, e.nodeName))\n return S(e), !0;\n var r = T(e.nodeName);\n if (C(\"uponSanitizeElement\", e, {\n tagName: r,\n allowedTags: p\n }), e.hasChildNodes() && !V(e.firstElementChild) && (!V(e.content) || !V(e.content.firstElementChild)) && _(/<[/\\w]/g, e.innerHTML) && _(/<[/\\w]/g, e.textContent) || r === \"select\" && _(/<template/i, e.innerHTML) || e.nodeType === 7 || Ae && e.nodeType === 8 && _(/<[/\\w]/g, e.data))\n return S(e), !0;\n if (!p[r] || Y[r]) {\n if (!Y[r] && ot(r) && (f.tagNameCheck instanceof RegExp && _(f.tagNameCheck, r) || f.tagNameCheck instanceof Function && f.tagNameCheck(r)))\n return !1;\n if (Se && !W[r]) {\n var u = fe(e) || e.parentNode, A = St(e) || e.childNodes;\n if (A && u)\n for (var h = A.length, v = h - 1; v >= 0; --v) {\n var F = yt(A[v], !0);\n F.__removalCount = (e.__removalCount || 0) + 1, u.insertBefore(F, gt(e));\n }\n }\n return S(e), !0;\n }\n return e instanceof D && !Ut(e) || (r === \"noscript\" || r === \"noembed\" || r === \"noframes\") && _(/<\\/no(script|embed|frames)/i, e.innerHTML) ? (S(e), !0) : (H && e.nodeType === 3 && (t = e.textContent, t = L(t, de, \" \"), t = L(t, Te, \" \"), t = L(t, ve, \" \"), e.textContent !== t && (q(n.removed, {\n element: e.cloneNode()\n }), e.textContent = t)), C(\"afterSanitizeElements\", e, null), !1);\n }, it = function(e, t, r) {\n if (Xe && (t === \"id\" || t === \"name\") && (r in s || r in Pt))\n return !1;\n if (!(Ee && !he[t] && _(Mt, t))) {\n if (!($e && _(Dt, t))) {\n if (!d[t] || he[t]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n !(ot(e) && (f.tagNameCheck instanceof RegExp && _(f.tagNameCheck, e) || f.tagNameCheck instanceof Function && f.tagNameCheck(e)) && (f.attributeNameCheck instanceof RegExp && _(f.attributeNameCheck, t) || f.attributeNameCheck instanceof Function && f.attributeNameCheck(t)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n t === \"is\" && f.allowCustomizedBuiltInElements && (f.tagNameCheck instanceof RegExp && _(f.tagNameCheck, r) || f.tagNameCheck instanceof Function && f.tagNameCheck(r)))\n ) return !1;\n } else if (!be[t]) {\n if (!_(_e, L(r, Ge, \"\"))) {\n if (!((t === \"src\" || t === \"xlink:href\" || t === \"href\") && e !== \"script\" && Zt(r, \"data:\") === 0 && Ke[e])) {\n if (!(je && !_(Nt, L(r, Ge, \"\")))) {\n if (r)\n return !1;\n }\n }\n }\n }\n }\n }\n return !0;\n }, ot = function(e) {\n return e !== \"annotation-xml\" && ct(e, wt);\n }, lt = function(e) {\n var t, r, u, A;\n C(\"beforeSanitizeAttributes\", e, null);\n var h = e.attributes;\n if (!(!h || De(e))) {\n var v = {\n attrName: \"\",\n attrValue: \"\",\n keepAttr: !0,\n allowedAttributes: d\n };\n for (A = h.length; A--; ) {\n t = h[A];\n var F = t, m = F.name, Ne = F.namespaceURI;\n if (r = m === \"value\" ? t.value : Jt(t.value), u = T(m), v.attrName = u, v.attrValue = r, v.keepAttr = !0, v.forceKeepAttr = void 0, C(\"uponSanitizeAttribute\", e, v), r = v.attrValue, !v.forceKeepAttr && (ne(m, e), !!v.keepAttr)) {\n if (!Ye && _(/\\/>/i, r)) {\n ne(m, e);\n continue;\n }\n H && (r = L(r, de, \" \"), r = L(r, Te, \" \"), r = L(r, ve, \" \"));\n var st = T(e.nodeName);\n if (it(st, u, r)) {\n if (Ve && (u === \"id\" || u === \"name\") && (ne(m, e), r = Ct + r), Ae && _(/((--!?|])>)|<\\/(style|title)/i, r)) {\n ne(m, e);\n continue;\n }\n if (R && I(K) === \"object\" && typeof K.getAttributeType == \"function\" && !Ne)\n switch (K.getAttributeType(st, u)) {\n case \"TrustedHTML\": {\n r = R.createHTML(r);\n break;\n }\n case \"TrustedScriptURL\": {\n r = R.createScriptURL(r);\n break;\n }\n }\n try {\n Ne ? e.setAttributeNS(Ne, m, r) : e.setAttribute(m, r), De(e) ? S(e) : ft(n.removed);\n } catch {\n }\n }\n }\n }\n C(\"afterSanitizeAttributes\", e, null);\n }\n }, Ht = function i(e) {\n var t, r = at(e);\n for (C(\"beforeSanitizeShadowDOM\", e, null); t = r.nextNode(); )\n C(\"uponSanitizeShadowNode\", t, null), nt(t), lt(t), t.content instanceof c && i(t.content);\n C(\"afterSanitizeShadowDOM\", e, null);\n };\n return n.sanitize = function(i) {\n var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, t, r, u, A, h;\n if (Oe = !i, Oe && (i = \"<!-->\"), typeof i != \"string\" && !V(i))\n if (typeof i.toString == \"function\") {\n if (i = i.toString(), typeof i != \"string\")\n throw Ce(\"dirty is not a string, aborting\");\n } else\n throw Ce(\"toString is not a function\");\n if (!n.isSupported) {\n if (I(a.toStaticHTML) === \"object\" || typeof a.toStaticHTML == \"function\") {\n if (typeof i == \"string\")\n return a.toStaticHTML(i);\n if (V(i))\n return a.toStaticHTML(i.outerHTML);\n }\n return i;\n }\n if (ye || Le(e), n.removed = [], typeof i == \"string\" && (X = !1), X) {\n if (i.nodeName) {\n var v = T(i.nodeName);\n if (!p[v] || Y[v])\n throw Ce(\"root node is forbidden and cannot be sanitized in-place\");\n }\n } else if (i instanceof y)\n t = rt(\"<!---->\"), r = t.ownerDocument.importNode(i, !0), r.nodeType === 1 && r.nodeName === \"BODY\" || r.nodeName === \"HTML\" ? t = r : t.appendChild(r);\n else {\n if (!z && !H && !k && // eslint-disable-next-line unicorn/prefer-includes\n i.indexOf(\"<\") === -1)\n return R && ee ? R.createHTML(i) : i;\n if (t = rt(i), !t)\n return z ? null : ee ? me : \"\";\n }\n t && ge && S(t.firstChild);\n for (var F = at(X ? i : t); u = F.nextNode(); )\n u.nodeType === 3 && u === A || (nt(u), lt(u), u.content instanceof c && Ht(u.content), A = u);\n if (A = null, X)\n return i;\n if (z) {\n if (Q)\n for (h = Ot.call(t.ownerDocument); t.firstChild; )\n h.appendChild(t.firstChild);\n else\n h = t;\n return (d.shadowroot || d.shadowrootmod) && (h = Lt.call(o, h, !0)), h;\n }\n var m = k ? t.outerHTML : t.innerHTML;\n return k && p[\"!doctype\"] && t.ownerDocument && t.ownerDocument.doctype && t.ownerDocument.doctype.name && _(fr, t.ownerDocument.doctype.name) && (m = \"<!DOCTYPE \" + t.ownerDocument.doctype.name + `>\n` + m), H && (m = L(m, de, \" \"), m = L(m, Te, \" \"), m = L(m, ve, \" \")), R && ee ? R.createHTML(m) : m;\n }, n.setConfig = function(i) {\n Le(i), ye = !0;\n }, n.clearConfig = function() {\n $ = null, ye = !1;\n }, n.isValidAttribute = function(i, e, t) {\n $ || Le({});\n var r = T(i), u = T(e);\n return it(r, u, t);\n }, n.addHook = function(i, e) {\n typeof e == \"function\" && (N[i] = N[i] || [], q(N[i], e));\n }, n.removeHook = function(i) {\n if (N[i])\n return ft(N[i]);\n }, n.removeHooks = function(i) {\n N[i] && (N[i] = []);\n }, n.removeAllHooks = function() {\n N = {};\n }, n;\n}\nvar Tr = _t();\nexport {\n Tr as default\n};\n"],"names":["I","a","n","Fe","s","c","zt","le","g","y","D","x","j","M","Gt","Wt","Bt","$t","Ue","jt","ut","Yt","Xt","Vt","E","b","qt","vt","ue","He","o","Kt","O","ft","q","se","we","ct","L","Zt","Jt","_","Ce","Qt","l","ie","mt","Ie","xe","er","ke","tr","pt","dt","Pe","Tt","oe","rr","ar","nr","ir","or","lr","sr","ur","fr","cr","mr","pr","_t","e","ht","Et","At","K","Z","yt","gt","St","fe","ce","R","me","J","pe","bt","Ot","Rt","Lt","ze","N","de","Te","ve","Mt","Dt","Nt","Ge","wt","_e","We","Be","f","Y","he","$e","Ee","je","Ye","Ae","k","ye","ge","Q","ee","Xe","Ve","Ct","Se","X","G","W","qe","Ke","Ze","be","Je","te","re","w","Oe","Re","It","P","xt","kt","T","$","Pt","Qe","Le","et","tt","Ft","ae","Me","Ut","t","r","u","S","ne","rt","A","h","at","De","V","C","nt","ot","v","F","it","lt","m","Ne","st","Ht","i","Tr"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg.xml" href="/assets/logo_ly-HGj2PB94.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>LIBERTY - NOMANA-IT</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-D-FD6vMP.js"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
@@ -7,21 +7,21 @@ import json
|
|
|
7
7
|
from typing import Any, Dict, Optional
|
|
8
8
|
from fastapi import APIRouter, Body, Depends, HTTPException, Query, Request, Path
|
|
9
9
|
from pydantic import Field
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
21
|
-
from
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
-
from
|
|
10
|
+
from liberty.controllers.api_controller import ApiController
|
|
11
|
+
from liberty.models.apidb import ENCRYPT_ERROR_MESSAGE, ENCRYPT_RESPONSE_DESCRIPTION, ENCRYPT_RESPONSE_EXAMPLE, GET_APIDB_ERROR_EXAMPLE, GET_APIDB_RESPONSE_DESCRIPTION, GET_APIDB_RESPONSE_EXAMPLE, VERSION_ERROR_MESSAGE, VERSION_RESPONSE_DESCRIPTION, VERSION_RESPONSE_EXAMPLE, EncryptResponse, GetSuccessResponse, GetErrorResponse, VersionResponse
|
|
12
|
+
from liberty.models.apidb import POST_APIDB_ERROR_EXAMPLE, POST_APIDB_RESPONSE_DESCRIPTION, POST_APIDB_RESPONSE_EXAMPLE, PostErrorResponse, PostSuccessResponse
|
|
13
|
+
from liberty.models.applications import APPLICATIONS_ERROR_MESSAGE, APPLICATIONS_RESPONSE_DESCRIPTION, APPLICATIONS_RESPONSE_EXAMPLE, ApplicationsResponse
|
|
14
|
+
from liberty.models.auth import TOKEN_ERROR_MESSAGE, TOKEN_RESPONSE_DESCRIPTION, TOKEN_RESPONSE_EXAMPLE, USER_ERROR_MESSAGE, USER_RESPONSE_DESCRIPTION, USER_RESPONSE_EXAMPLE, LoginRequest, TokenResponse, UserResponse
|
|
15
|
+
from liberty.models.base import ErrorResponse, FilterCondition, SuccessResponse, ValidationErrorResponse, response_200, response_400, response_422, response_500
|
|
16
|
+
from liberty.models.apidb import CHECKDB_ERROR_MESSAGE, CHECKDB_RESPONSE_DESCRIPTION, CHECKDB_RESPONSE_EXAMPLE, CheckDBErrorResponse, CheckDBResponse
|
|
17
|
+
from liberty.models.modules import MODULES_ERROR_MESSAGE, MODULES_RESPONSE_DESCRIPTION, MODULES_RESPONSE_EXAMPLE, ModulesResponse
|
|
18
|
+
from liberty.models.pool import CLOSE_ERROR_MESSAGE, CLOSE_RESPONSE_DESCRIPTION, CLOSE_RESPONSE_EXAMPLE
|
|
19
|
+
from liberty.models.pool import OPEN_ERROR_MESSAGE, OPEN_RESPONSE_DESCRIPTION, OPEN_RESPONSE_EXAMPLE
|
|
20
|
+
from liberty.models.themes import THEMES_ERROR_MESSAGE, THEMES_RESPONSE_DESCRIPTION, THEMES_RESPONSE_EXAMPLE, ThemesResponse
|
|
21
|
+
from liberty.services.api_services import LoginType, QuerySource, QueryType, SessionMode
|
|
22
|
+
from liberty.utils.jwt import JWT
|
|
23
|
+
from liberty.services.rest_services import AIResponse
|
|
24
|
+
from liberty.models.ai import AI_ERROR_MESSAGE, AI_RESPONSE_DESCRIPTION, AI_RESPONSE_EXAMPLE
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def setup_api_routes(app, controller: ApiController, jwt: JWT):
|
|
@@ -455,7 +455,7 @@ def setup_api_routes(app, controller: ApiController, jwt: JWT):
|
|
|
455
455
|
status_code=400,
|
|
456
456
|
detail="Request body cannot be empty. JSON object with key-value pairs is required.",
|
|
457
457
|
)
|
|
458
|
-
return await controller.
|
|
458
|
+
return await controller.call_rest(req)
|
|
459
459
|
|
|
460
460
|
@router.get(
|
|
461
461
|
"/rest",
|
|
@@ -488,4 +488,25 @@ def setup_api_routes(app, controller: ApiController, jwt: JWT):
|
|
|
488
488
|
)
|
|
489
489
|
return await controller.rest(req)
|
|
490
490
|
|
|
491
|
-
app.include_router(router, prefix="/api")
|
|
491
|
+
app.include_router(router, prefix="/api")
|
|
492
|
+
|
|
493
|
+
@router.get(
|
|
494
|
+
"/fmw/version",
|
|
495
|
+
response_model=VersionResponse, # Specify the success response schema
|
|
496
|
+
responses={
|
|
497
|
+
200: response_200(VersionResponse, VERSION_RESPONSE_DESCRIPTION, VERSION_RESPONSE_EXAMPLE),
|
|
498
|
+
400: response_400("Invalid JSON format in request query."),
|
|
499
|
+
422: response_422(),
|
|
500
|
+
500: response_500(GetErrorResponse, VERSION_ERROR_MESSAGE),
|
|
501
|
+
},
|
|
502
|
+
summary="FMW - Version",
|
|
503
|
+
description="Retrieve the version of the framework.",
|
|
504
|
+
tags=["Framework"],
|
|
505
|
+
)
|
|
506
|
+
async def get(
|
|
507
|
+
req: Request,
|
|
508
|
+
):
|
|
509
|
+
|
|
510
|
+
return await controller.version(req)
|
|
511
|
+
|
|
512
|
+
app.include_router(router, prefix="/api")
|
|
@@ -2,7 +2,7 @@ import os
|
|
|
2
2
|
from fastapi import APIRouter, Request
|
|
3
3
|
from fastapi.responses import FileResponse, RedirectResponse
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from liberty.public import get_frontend_path, get_offline_path, get_setup_path
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def setup_react_routes(app):
|
|
@@ -2,13 +2,13 @@ import logging
|
|
|
2
2
|
logger = logging.getLogger(__name__)
|
|
3
3
|
|
|
4
4
|
import json
|
|
5
|
-
from
|
|
5
|
+
from liberty.config import get_db_properties_path
|
|
6
6
|
import os
|
|
7
7
|
from fastapi import APIRouter, Request
|
|
8
8
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
9
|
+
from liberty.controllers.setup_controller import SetupController
|
|
10
|
+
from liberty.models.base import ErrorResponse, SuccessResponse, response_200, response_422, response_500
|
|
11
|
+
from liberty.models.setup import CREATE_ERROR_MESSAGE, CREATE_RESPONSE_DESCRIPTION, CREATE_RESPONSE_EXAMPLE, DROP_ERROR_MESSAGE, DROP_RESPONSE_DESCRIPTION, DROP_RESPONSE_EXAMPLE, SETUP_ERROR_MESSAGE, SETUP_RESPONSE_DESCRIPTION, SETUP_RESPONSE_EXAMPLE, CreateRequest, DropRequest, SetupRequest
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def setup_setup_routes(app, controller: SetupController):
|
|
@@ -2,7 +2,7 @@ import logging
|
|
|
2
2
|
logger = logging.getLogger(__name__)
|
|
3
3
|
|
|
4
4
|
from fastapi import APIRouter, Request
|
|
5
|
-
from
|
|
5
|
+
from liberty.controllers.socket_controller import SocketController
|
|
6
6
|
|
|
7
7
|
def setup_socket_routes(app, controller: SocketController):
|
|
8
8
|
router = APIRouter()
|
|
@@ -6,9 +6,9 @@ import configparser
|
|
|
6
6
|
from fastapi import Request, HTTPException
|
|
7
7
|
from fastapi.responses import JSONResponse
|
|
8
8
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
9
|
+
from liberty.services.db_pool import DBPool, PoolConfig, DBType, PoolInterface
|
|
10
|
+
from liberty.utils.jwt import JWT
|
|
11
|
+
from liberty.utils.encrypt import Encryption
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class QueryType(str, Enum):
|
|
@@ -31,7 +31,7 @@ class LoginType(str, Enum):
|
|
|
31
31
|
defaultPool = "default"
|
|
32
32
|
sessionPool = "SESSION"
|
|
33
33
|
|
|
34
|
-
class
|
|
34
|
+
class API:
|
|
35
35
|
|
|
36
36
|
def __init__(self, jwt : JWT):
|
|
37
37
|
self.db_pools = PoolInterface()
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
logger = logging.getLogger(__name__)
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
from
|
|
3
|
+
from liberty.database.pg_dao import PostgresDAO
|
|
4
|
+
from liberty.database.ora_dao import OracleDAO
|
|
5
|
+
from liberty.utils.common import PoolConfig
|
|
6
6
|
|
|
7
7
|
class DBType:
|
|
8
8
|
ORACLE = "oracle"
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Description: API REST service for handling REST API requests.
|
|
2
|
+
import importlib
|
|
2
3
|
import logging
|
|
3
|
-
|
|
4
|
+
logger = logging.getLogger(__name__)
|
|
5
|
+
|
|
4
6
|
import re
|
|
5
7
|
from urllib.parse import urljoin, urlparse
|
|
6
8
|
|
|
@@ -8,16 +10,13 @@ from fastapi.responses import JSONResponse
|
|
|
8
10
|
import httpx
|
|
9
11
|
from pydantic import BaseModel
|
|
10
12
|
|
|
11
|
-
from app.services.db_query import Query, SessionMode
|
|
12
|
-
from app.utils.encrypt import Encryption
|
|
13
|
-
logger = logging.getLogger(__name__)
|
|
14
13
|
|
|
15
14
|
import json
|
|
16
15
|
from fastapi import Request, HTTPException
|
|
17
16
|
from datetime import datetime, timezone
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
|
|
17
|
+
from liberty.utils.logs import LogHandler
|
|
18
|
+
from liberty.logs import get_logs_json_path, get_logs_text_path
|
|
19
|
+
from liberty.services.api_services import API, SessionMode
|
|
21
20
|
defaultPool = "default"
|
|
22
21
|
|
|
23
22
|
class ApiType:
|
|
@@ -30,11 +29,11 @@ class AIResponse(BaseModel):
|
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
class Rest:
|
|
33
|
-
def __init__(self,
|
|
32
|
+
def __init__(self, api: API):
|
|
34
33
|
self.logs_handler = LogHandler()
|
|
35
|
-
self.
|
|
34
|
+
self.api = api
|
|
36
35
|
|
|
37
|
-
async def
|
|
36
|
+
async def call_rest(self, req: Request):
|
|
38
37
|
try:
|
|
39
38
|
query_params = req.query_params
|
|
40
39
|
|
|
@@ -50,11 +49,11 @@ class Rest:
|
|
|
50
49
|
"where": {"API_ID":query_params.get("api")},
|
|
51
50
|
}
|
|
52
51
|
# Get the target query using the framework query method
|
|
53
|
-
target_query = await self.
|
|
54
|
-
query, self.
|
|
52
|
+
target_query = await self.api.db_pools.get_pool("default").db_dao.get_framework_query(
|
|
53
|
+
query, self.api.db_pools.get_pool("default").db_type
|
|
55
54
|
)
|
|
56
55
|
|
|
57
|
-
api = await self.
|
|
56
|
+
api = await self.api.db_pools.get_pool("default").db_dao.get(target_query, context)
|
|
58
57
|
rows = api.get("rows")
|
|
59
58
|
|
|
60
59
|
if not api.get("rows"):
|
|
@@ -238,10 +237,10 @@ class Rest:
|
|
|
238
237
|
"row_limit": 1000,
|
|
239
238
|
}
|
|
240
239
|
# Get the target query using the framework query method
|
|
241
|
-
target_query = await self.
|
|
242
|
-
query, self.
|
|
240
|
+
target_query = await self.api.db_pools.get_pool("default").db_dao.get_framework_query(
|
|
241
|
+
query, self.api.db_pools.get_pool("default").db_type
|
|
243
242
|
)
|
|
244
|
-
results = await self.
|
|
243
|
+
results = await self.api.db_pools.get_pool("default").db_dao.get(target_query, context)
|
|
245
244
|
|
|
246
245
|
# Ensure 'rows' exist in the response
|
|
247
246
|
if not results.get("rows"):
|
|
@@ -326,3 +325,11 @@ class Rest:
|
|
|
326
325
|
logger.exception("AI: Error fetching response from OpenAI")
|
|
327
326
|
raise HTTPException(status_code=500, detail=f"Error fetching response: {e}")
|
|
328
327
|
|
|
328
|
+
|
|
329
|
+
async def get_version(self, request: Request):
|
|
330
|
+
try:
|
|
331
|
+
return JSONResponse({
|
|
332
|
+
"version": importlib.metadata.version("liberty-framework")
|
|
333
|
+
})
|
|
334
|
+
except importlib.metadata.PackageNotFoundError:
|
|
335
|
+
return "Unknown"
|
|
@@ -5,17 +5,17 @@ import traceback
|
|
|
5
5
|
from fastapi import HTTPException, Request
|
|
6
6
|
from fastapi.responses import JSONResponse
|
|
7
7
|
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
8
|
+
from liberty.controllers.api_controller import ApiController
|
|
9
|
+
from liberty.utils.jwt import JWT
|
|
10
|
+
from liberty.setup.services.dump import Dump
|
|
11
|
+
from liberty.config import get_ini_path
|
|
12
12
|
import importlib.resources as pkg_resources
|
|
13
13
|
from pathlib import Path
|
|
14
|
-
import
|
|
14
|
+
import liberty
|
|
15
15
|
from alembic import command
|
|
16
16
|
from alembic.config import Config
|
|
17
17
|
|
|
18
|
-
ALEMBIC_CONFIG = str(Path(pkg_resources.files(
|
|
18
|
+
ALEMBIC_CONFIG = str(Path(pkg_resources.files(liberty) / "alembic.ini"))
|
|
19
19
|
|
|
20
20
|
class Alembic:
|
|
21
21
|
def __init__(self, apiController: ApiController, jwt: JWT):
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from
|
|
3
|
+
from liberty.setup.services.install import Install
|
|
4
|
+
from liberty.utils.jwt import JWT
|
|
5
5
|
logger = logging.getLogger(__name__)
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
7
|
+
from liberty.config import get_db_properties_path
|
|
8
|
+
from liberty.controllers.api_controller import ApiController
|
|
9
|
+
from liberty.setup.data import get_data_path
|
|
10
10
|
import json
|
|
11
11
|
import datetime
|
|
12
12
|
import os
|
|
@@ -25,7 +25,7 @@ class DateTimeEncoder(json.JSONEncoder):
|
|
|
25
25
|
class Dump:
|
|
26
26
|
def __init__(self, apiController: ApiController, database, jwt: JWT):
|
|
27
27
|
db_properties_path = get_db_properties_path()
|
|
28
|
-
self.config = apiController.
|
|
28
|
+
self.config = apiController.api.load_db_properties(db_properties_path)
|
|
29
29
|
self.database = database
|
|
30
30
|
self.apiController = apiController
|
|
31
31
|
self.jwt = jwt
|
|
@@ -111,7 +111,7 @@ class Dump:
|
|
|
111
111
|
|
|
112
112
|
# Create an engine for the admin database
|
|
113
113
|
db_properties_path = get_db_properties_path()
|
|
114
|
-
config = self.apiController.
|
|
114
|
+
config = self.apiController.api.load_db_properties(db_properties_path)
|
|
115
115
|
# Database configuration
|
|
116
116
|
ADMIN_DATABASE_URL = f"postgresql+psycopg2://{config["user"]}:{config["password"]}@{config["host"]}:{config["port"]}/{self.database}"
|
|
117
117
|
admin_engine = create_engine(ADMIN_DATABASE_URL, isolation_level="AUTOCOMMIT")
|
|
@@ -8,10 +8,10 @@ import datetime
|
|
|
8
8
|
import os
|
|
9
9
|
from sqlalchemy import create_engine, MetaData, Table, delete, text, update
|
|
10
10
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
11
|
+
from liberty.config import get_ini_path
|
|
12
|
+
from liberty.postgres.dump import get_dump_path
|
|
13
|
+
from liberty.utils.encrypt import Encryption
|
|
14
|
+
from liberty.utils.jwt import JWT
|
|
15
15
|
|
|
16
16
|
EXCLUDED_TABLES = {"databasechangelog", "databasechangeloglock"} # Add tables to exclude
|
|
17
17
|
|
|
@@ -6,14 +6,14 @@ import os
|
|
|
6
6
|
import re
|
|
7
7
|
from sqlalchemy import create_engine, inspect, text
|
|
8
8
|
from sqlalchemy.ext.automap import automap_base
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
9
|
+
from liberty.setup.models import get_models_path
|
|
10
|
+
from liberty.config import get_db_properties_path
|
|
11
|
+
from liberty.controllers.api_controller import ApiController
|
|
12
12
|
|
|
13
13
|
class Models:
|
|
14
14
|
def __init__(self, apiController: ApiController, database):
|
|
15
15
|
db_properties_path = get_db_properties_path()
|
|
16
|
-
config = apiController.
|
|
16
|
+
config = apiController.api.load_db_properties(db_properties_path)
|
|
17
17
|
self.database = database
|
|
18
18
|
# Database configuration
|
|
19
19
|
DATABASE_URL = f"postgresql+psycopg2://{database}:{config["password"]}@{config["host"]}:{config["port"]}/{database}"
|