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.
Files changed (106) hide show
  1. {app → liberty}/alembic/env.py +4 -4
  2. {app → liberty}/controllers/api_controller.py +30 -27
  3. {app → liberty}/controllers/setup_controller.py +4 -4
  4. {app → liberty}/controllers/socket_controller.py +2 -2
  5. {app → liberty}/database/base_dao.py +1 -1
  6. {app → liberty}/database/ora_dao.py +3 -3
  7. {app → liberty}/database/pg_dao.py +2 -2
  8. {app → liberty}/main.py +19 -15
  9. {app → liberty}/models/apidb.py +9 -0
  10. liberty/postgres/dump/airflow.dump +0 -0
  11. {app → liberty}/postgres/dump/gitea.dump +0 -0
  12. {app → liberty}/postgres/dump/keycloak.dump +0 -0
  13. {app → liberty}/postgres/dump/liberty.dump +0 -0
  14. {app → liberty}/postgres/dump/libnetl.dump +0 -0
  15. {app → liberty}/postgres/dump/libnjde.dump +0 -0
  16. {app → liberty}/postgres/dump/libnsx1.dump +0 -0
  17. liberty/postgres/dump/nomajde.dump +0 -0
  18. liberty/postgres/dump/nomasx1.dump +0 -0
  19. liberty/postgres/dump/test.dump +0 -0
  20. app/public/frontend/assets/index-HlYGfx6q.js → liberty/public/frontend/assets/index-D-FD6vMP.js +4 -4
  21. app/public/frontend/assets/index-HlYGfx6q.js.map → liberty/public/frontend/assets/index-D-FD6vMP.js.map +1 -1
  22. app/public/frontend/assets/index.es-mB7ZF8OM-f6QJp5B4.js → liberty/public/frontend/assets/index.es-mB7ZF8OM-BtuhuoJS.js +2 -2
  23. liberty/public/frontend/assets/index.es-mB7ZF8OM-BtuhuoJS.js.map +1 -0
  24. app/public/frontend/assets/purify.es-CKk_t3XZ-DHuNJQNB.js → liberty/public/frontend/assets/purify.es-CKk_t3XZ-DsD8-A7d.js +3 -3
  25. liberty/public/frontend/assets/purify.es-CKk_t3XZ-DsD8-A7d.js.map +1 -0
  26. {app → liberty}/public/frontend/index.html +1 -1
  27. {app → liberty}/routes/api_routes.py +38 -17
  28. {app → liberty}/routes/react_routes.py +1 -1
  29. {app → liberty}/routes/setup_routes.py +4 -4
  30. {app → liberty}/routes/socket_routes.py +1 -1
  31. app/services/db_query.py → liberty/services/api_services.py +4 -4
  32. {app → liberty}/services/db_pool.py +3 -3
  33. app/services/api_rest.py → liberty/services/rest_services.py +23 -16
  34. {app → liberty}/setup/services/alembic.py +6 -6
  35. {app → liberty}/setup/services/dump.py +7 -7
  36. {app → liberty}/setup/services/install.py +4 -4
  37. {app → liberty}/setup/services/models.py +4 -4
  38. {app → liberty}/setup/services/setup.py +19 -19
  39. {app → liberty}/utils/encrypt.py +1 -1
  40. {app → liberty}/utils/jwt.py +1 -1
  41. {liberty_framework-6.0.59.dist-info → liberty_framework-6.0.61.dist-info}/METADATA +1 -1
  42. liberty_framework-6.0.61.dist-info/RECORD +98 -0
  43. liberty_framework-6.0.61.dist-info/entry_points.txt +2 -0
  44. liberty_framework-6.0.61.dist-info/top_level.txt +1 -0
  45. app/postgres/dump/airflow.dump +0 -0
  46. app/postgres/dump/nomajde.dump +0 -0
  47. app/postgres/dump/nomasx1.dump +0 -0
  48. app/public/frontend/assets/index.es-mB7ZF8OM-f6QJp5B4.js.map +0 -1
  49. app/public/frontend/assets/purify.es-CKk_t3XZ-DHuNJQNB.js.map +0 -1
  50. liberty_framework-6.0.59.dist-info/RECORD +0 -97
  51. liberty_framework-6.0.59.dist-info/entry_points.txt +0 -2
  52. liberty_framework-6.0.59.dist-info/top_level.txt +0 -1
  53. {app → liberty}/__init__.py +0 -0
  54. {app → liberty}/alembic/README +0 -0
  55. {app → liberty}/alembic/script.py.mako +0 -0
  56. {app → liberty}/alembic/versions/README +0 -0
  57. {app → liberty}/alembic.ini +0 -0
  58. {app → liberty}/business/__init__.py +0 -0
  59. {app → liberty}/business/oracle.py +0 -0
  60. {app → liberty}/business/postgres.py +0 -0
  61. {app → liberty}/config/__init__.py +0 -0
  62. {app → liberty}/config/files/liberty.ini +0 -0
  63. {app → liberty}/controllers/__init__.py +0 -0
  64. {app → liberty}/database/__init__.py +0 -0
  65. {app → liberty}/logs/__init__.py +0 -0
  66. {app → liberty}/models/__init__.py +0 -0
  67. {app → liberty}/models/ai.py +0 -0
  68. {app → liberty}/models/applications.py +0 -0
  69. {app → liberty}/models/auth.py +0 -0
  70. {app → liberty}/models/base.py +0 -0
  71. {app → liberty}/models/modules.py +0 -0
  72. {app → liberty}/models/pool.py +0 -0
  73. {app → liberty}/models/setup.py +0 -0
  74. {app → liberty}/models/themes.py +0 -0
  75. {app → liberty}/postgres/__init__.py +0 -0
  76. {app → liberty}/postgres/dump/__init__.py +0 -0
  77. {app → liberty}/public/__init__.py +0 -0
  78. {app → liberty}/public/frontend/assets/background_ly-VdfFMP8a.jpg +0 -0
  79. {app → liberty}/public/frontend/assets/logo_ly-HGj2PB94.svg +0 -0
  80. {app → liberty}/public/offline/assets/logo_ly.png +0 -0
  81. /app/public/offline/offline.html → /liberty/public/offline/index.html +0 -0
  82. {app → liberty}/public/setup/index.html +0 -0
  83. {app → liberty}/public/setup/setup/assets/background_ly-VdfFMP8a.jpg +0 -0
  84. {app → liberty}/public/setup/setup/assets/index-BBGAGXd2.css +0 -0
  85. {app → liberty}/public/setup/setup/assets/index-knz6QXph.js +0 -0
  86. {app → liberty}/public/setup/setup/assets/index-knz6QXph.js.map +0 -0
  87. {app → liberty}/public/setup/setup/assets/logo_ly-HGj2PB94.svg +0 -0
  88. {app → liberty}/routes/__init__.py +0 -0
  89. {app → liberty}/services/__init__.py +0 -0
  90. {app → liberty}/setup/__init__.py +0 -0
  91. {app → liberty}/setup/data/__init__.py +0 -0
  92. {app → liberty}/setup/data/liberty.json +0 -0
  93. {app → liberty}/setup/data/libnetl.json +0 -0
  94. {app → liberty}/setup/data/libnjde.json +0 -0
  95. {app → liberty}/setup/data/libnsx1.json +0 -0
  96. {app → liberty}/setup/data/nomasx1.json +0 -0
  97. {app → liberty}/setup/models/__init__.py +0 -0
  98. {app → liberty}/setup/models/liberty.py +0 -0
  99. {app → liberty}/setup/models/nomasx1.py +0 -0
  100. {app → liberty}/setup/services/__init__.py +0 -0
  101. {app → liberty}/utils/__init__.py +0 -0
  102. {app → liberty}/utils/common.py +0 -0
  103. {app → liberty}/utils/logs.py +0 -0
  104. {app → liberty}/utils/test.py +0 -0
  105. {liberty_framework-6.0.59.dist-info → liberty_framework-6.0.61.dist-info}/LICENSE +0 -0
  106. {liberty_framework-6.0.59.dist-info → liberty_framework-6.0.61.dist-info}/WHEEL +0 -0
@@ -1,4 +1,4 @@
1
- /*! @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 */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]="b6a875a7-e6bc-4c98-85e2-2f7e1746ebd7",n._sentryDebugIdIdentifier="sentry-dbid-b6a875a7-e6bc-4c98-85e2-2f7e1746ebd7")}catch{}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.
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 dn=ge();export{dn as default};
4
- //# sourceMappingURL=purify.es-CKk_t3XZ-DHuNJQNB.js.map
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-HlYGfx6q.js"></script>
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 app.controllers.api_controller import ApiController
11
- from app.models.apidb import ENCRYPT_ERROR_MESSAGE, ENCRYPT_RESPONSE_DESCRIPTION, ENCRYPT_RESPONSE_EXAMPLE, GET_APIDB_ERROR_EXAMPLE, GET_APIDB_RESPONSE_DESCRIPTION, GET_APIDB_RESPONSE_EXAMPLE, EncryptResponse, GetSuccessResponse, GetErrorResponse
12
- from app.models.apidb import POST_APIDB_ERROR_EXAMPLE, POST_APIDB_RESPONSE_DESCRIPTION, POST_APIDB_RESPONSE_EXAMPLE, PostErrorResponse, PostSuccessResponse
13
- from app.models.applications import APPLICATIONS_ERROR_MESSAGE, APPLICATIONS_RESPONSE_DESCRIPTION, APPLICATIONS_RESPONSE_EXAMPLE, ApplicationsResponse
14
- from app.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 app.models.base import ErrorResponse, FilterCondition, SuccessResponse, ValidationErrorResponse, response_200, response_400, response_422, response_500
16
- from app.models.apidb import CHECKDB_ERROR_MESSAGE, CHECKDB_RESPONSE_DESCRIPTION, CHECKDB_RESPONSE_EXAMPLE, CheckDBErrorResponse, CheckDBResponse
17
- from app.models.modules import MODULES_ERROR_MESSAGE, MODULES_RESPONSE_DESCRIPTION, MODULES_RESPONSE_EXAMPLE, ModulesResponse
18
- from app.models.pool import CLOSE_ERROR_MESSAGE, CLOSE_RESPONSE_DESCRIPTION, CLOSE_RESPONSE_EXAMPLE
19
- from app.models.pool import OPEN_ERROR_MESSAGE, OPEN_RESPONSE_DESCRIPTION, OPEN_RESPONSE_EXAMPLE
20
- from app.models.themes import THEMES_ERROR_MESSAGE, THEMES_RESPONSE_DESCRIPTION, THEMES_RESPONSE_EXAMPLE, ThemesResponse
21
- from app.services.db_query import LoginType, QuerySource, QueryType, SessionMode
22
- from app.utils.jwt import JWT
23
- from app.services.api_rest import AIResponse
24
- from app.models.ai import AI_ERROR_MESSAGE, AI_RESPONSE_DESCRIPTION, AI_RESPONSE_EXAMPLE
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.rest(req)
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 app.public import get_frontend_path, get_offline_path, get_setup_path
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 app.config import get_db_properties_path
5
+ from liberty.config import get_db_properties_path
6
6
  import os
7
7
  from fastapi import APIRouter, Request
8
8
 
9
- from app.controllers.setup_controller import SetupController
10
- from app.models.base import ErrorResponse, SuccessResponse, response_200, response_422, response_500
11
- from app.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
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 app.controllers.socket_controller import SocketController
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 app.services.db_pool import DBPool, PoolConfig, DBType, PoolInterface
10
- from app.utils.jwt import JWT
11
- from app.utils.encrypt import Encryption
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 Query:
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 app.database.pg_dao import PostgresDAO
4
- from app.database.ora_dao import OracleDAO
5
- from app.utils.common import PoolConfig
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
- import os
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 app.utils.logs import LogHandler
19
- from app.logs import get_logs_json_path, get_logs_text_path
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, queryRest: Query):
32
+ def __init__(self, api: API):
34
33
  self.logs_handler = LogHandler()
35
- self.queryRest = queryRest
34
+ self.api = api
36
35
 
37
- async def rest(self, req: Request):
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.queryRest.db_pools.get_pool("default").db_dao.get_framework_query(
54
- query, self.queryRest.db_pools.get_pool("default").db_type
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.queryRest.db_pools.get_pool("default").db_dao.get(target_query, context)
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.queryRest.db_pools.get_pool("default").db_dao.get_framework_query(
242
- query, self.queryRest.db_pools.get_pool("default").db_type
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.queryRest.db_pools.get_pool("default").db_dao.get(target_query, context)
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 app.controllers.api_controller import ApiController
9
- from app.utils.jwt import JWT
10
- from app.setup.services.dump import Dump
11
- from app.config import get_ini_path
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 app
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(app) / "alembic.ini"))
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 app.setup.services.install import Install
4
- from app.utils.jwt import JWT
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 app.config import get_db_properties_path
8
- from app.controllers.api_controller import ApiController
9
- from app.setup.data import get_data_path
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.queryRest.load_db_properties(db_properties_path)
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.queryRest.load_db_properties(db_properties_path)
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 app.config import get_ini_path
12
- from app.postgres.dump import get_dump_path
13
- from app.utils.encrypt import Encryption
14
- from app.utils.jwt import JWT
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 app.setup.models import get_models_path
10
- from app.config import get_db_properties_path
11
- from app.controllers.api_controller import ApiController
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.queryRest.load_db_properties(db_properties_path)
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}"