@budibase/pro 3.22.6 → 3.22.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -3
- package/dist/sdk/plugins/index.d.ts +2 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";var OI=Object.create;var Dr=Object.defineProperty;var LI=Object.getOwnPropertyDescriptor;var PI=Object.getOwnPropertyNames;var UI=Object.getPrototypeOf,qI=Object.prototype.hasOwnProperty;var a=(e,t)=>Dr(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),x=(e,t)=>{for(var r in t)Dr(e,r,{get:t[r],enumerable:!0})},zu=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of PI(t))!qI.call(e,o)&&o!==r&&Dr(e,o,{get:()=>t[o],enumerable:!(n=LI(t,o))||n.enumerable});return e};var F=(e,t,r)=>(r=e!=null?OI(UI(e)):{},zu(t||!e||!e.__esModule?Dr(r,"default",{value:e,enumerable:!0}):r,e)),DI=e=>zu(Dr({},"__esModule",{value:!0}),e);var mn=p((xG,kc)=>{"use strict";function US(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}a(US,"arrayPush");kc.exports=US});var Ko=p((OG,Mc)=>{"use strict";var qS=typeof global=="object"&&global&&global.Object===Object&&global;Mc.exports=qS});var _e=p((LG,Nc)=>{"use strict";var DS=Ko(),kS=typeof self=="object"&&self&&self.Object===Object&&self,MS=DS||kS||Function("return this")();Nc.exports=MS});var Qt=p((PG,Bc)=>{"use strict";var NS=_e(),BS=NS.Symbol;Bc.exports=BS});var $c=p((UG,Wc)=>{"use strict";var Gc=Qt(),Fc=Object.prototype,GS=Fc.hasOwnProperty,FS=Fc.toString,ca=Gc?Gc.toStringTag:void 0;function WS(e){var t=GS.call(e,ca),r=e[ca];try{e[ca]=void 0;var n=!0}catch{}var o=FS.call(e);return n&&(t?e[ca]=r:delete e[ca]),o}a(WS,"getRawTag");Wc.exports=WS});var Qc=p((DG,jc)=>{"use strict";var $S=Object.prototype,jS=$S.toString;function QS(e){return jS.call(e)}a(QS,"objectToString");jc.exports=QS});var Pt=p((MG,Hc)=>{"use strict";var Kc=Qt(),KS=$c(),VS=Qc(),HS="[object Null]",YS="[object Undefined]",Vc=Kc?Kc.toStringTag:void 0;function zS(e){return e==null?e===void 0?YS:HS:Vc&&Vc in Object(e)?KS(e):VS(e)}a(zS,"baseGetTag");Hc.exports=zS});var ke=p((BG,Yc)=>{"use strict";function JS(e){return e!=null&&typeof e=="object"}a(JS,"isObjectLike");Yc.exports=JS});var Jc=p((FG,zc)=>{"use strict";var XS=Pt(),ZS=ke(),ew="[object Arguments]";function tw(e){return ZS(e)&&XS(e)==ew}a(tw,"baseIsArguments");zc.exports=tw});var pa=p(($G,ep)=>{"use strict";var Xc=Jc(),rw=ke(),Zc=Object.prototype,aw=Zc.hasOwnProperty,nw=Zc.propertyIsEnumerable,ow=Xc(function(){return arguments}())?Xc:function(e){return rw(e)&&aw.call(e,"callee")&&!nw.call(e,"callee")};ep.exports=ow});var Ee=p((jG,tp)=>{"use strict";var sw=Array.isArray;tp.exports=sw});var op=p((QG,np)=>{"use strict";var rp=Qt(),iw=pa(),uw=Ee(),ap=rp?rp.isConcatSpreadable:void 0;function cw(e){return uw(e)||iw(e)||!!(ap&&e&&e[ap])}a(cw,"isFlattenable");np.exports=cw});var Vo=p((VG,ip)=>{"use strict";var pw=mn(),lw=op();function sp(e,t,r,n,o){var s=-1,i=e.length;for(r||(r=lw),o||(o=[]);++s<i;){var u=e[s];t>0&&r(u)?t>1?sp(u,t-1,r,n,o):pw(o,u):n||(o[o.length]=u)}return o}a(sp,"baseFlatten");ip.exports=sp});var la=p((YG,up)=>{"use strict";function dw(e){return e}a(dw,"identity");up.exports=dw});var gn=p((JG,cp)=>{"use strict";function fw(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}a(fw,"apply");cp.exports=fw});var Ho=p((ZG,lp)=>{"use strict";var mw=gn(),pp=Math.max;function gw(e,t,r){return t=pp(t===void 0?e.length-1:t,0),function(){for(var n=arguments,o=-1,s=pp(n.length-t,0),i=Array(s);++o<s;)i[o]=n[t+o];o=-1;for(var u=Array(t+1);++o<t;)u[o]=n[o];return u[t]=r(i),mw(e,this,u)}}a(gw,"overRest");lp.exports=gw});var fp=p((tF,dp)=>{"use strict";function hw(e){return function(){return e}}a(hw,"constant");dp.exports=hw});var je=p((aF,mp)=>{"use strict";function yw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}a(yw,"isObject");mp.exports=yw});var da=p((oF,gp)=>{"use strict";var Aw=Pt(),bw=je(),Iw="[object AsyncFunction]",Sw="[object Function]",ww="[object GeneratorFunction]",Tw="[object Proxy]";function Ew(e){if(!bw(e))return!1;var t=Aw(e);return t==Sw||t==ww||t==Iw||t==Tw}a(Ew,"isFunction");gp.exports=Ew});var yp=p((iF,hp)=>{"use strict";var Rw=_e(),vw=Rw["__core-js_shared__"];hp.exports=vw});var Ip=p((uF,bp)=>{"use strict";var Yo=yp(),Ap=function(){var e=/[^.]+$/.exec(Yo&&Yo.keys&&Yo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function _w(e){return!!Ap&&Ap in e}a(_w,"isMasked");bp.exports=_w});var zo=p((pF,Sp)=>{"use strict";var xw=Function.prototype,Cw=xw.toString;function Ow(e){if(e!=null){try{return Cw.call(e)}catch{}try{return e+""}catch{}}return""}a(Ow,"toSource");Sp.exports=Ow});var Tp=p((dF,wp)=>{"use strict";var Lw=da(),Pw=Ip(),Uw=je(),qw=zo(),Dw=/[\\^$.*+?()[\]{}|]/g,kw=/^\[object .+?Constructor\]$/,Mw=Function.prototype,Nw=Object.prototype,Bw=Mw.toString,Gw=Nw.hasOwnProperty,Fw=RegExp("^"+Bw.call(Gw).replace(Dw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ww(e){if(!Uw(e)||Pw(e))return!1;var t=Lw(e)?Fw:kw;return t.test(qw(e))}a(Ww,"baseIsNative");wp.exports=Ww});var Rp=p((mF,Ep)=>{"use strict";function $w(e,t){return e?.[t]}a($w,"getValue");Ep.exports=$w});var Ut=p((hF,vp)=>{"use strict";var jw=Tp(),Qw=Rp();function Kw(e,t){var r=Qw(e,t);return jw(r)?r:void 0}a(Kw,"getNative");vp.exports=Kw});var Jo=p((AF,_p)=>{"use strict";var Vw=Ut(),Hw=function(){try{var e=Vw(Object,"defineProperty");return e({},"",{}),e}catch{}}();_p.exports=Hw});var Op=p((bF,Cp)=>{"use strict";var Yw=fp(),xp=Jo(),zw=la(),Jw=xp?function(e,t){return xp(e,"toString",{configurable:!0,enumerable:!1,value:Yw(t),writable:!0})}:zw;Cp.exports=Jw});var Xo=p((IF,Lp)=>{"use strict";var Xw=800,Zw=16,eT=Date.now;function tT(e){var t=0,r=0;return function(){var n=eT(),o=Zw-(n-r);if(r=n,o>0){if(++t>=Xw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}a(tT,"shortOut");Lp.exports=tT});var hn=p((wF,Pp)=>{"use strict";var rT=Op(),aT=Xo(),nT=aT(rT);Pp.exports=nT});var Zo=p((TF,Up)=>{"use strict";var oT=la(),sT=Ho(),iT=hn();function uT(e,t){return iT(sT(e,t,oT),e+"")}a(uT,"baseRest");Up.exports=uT});var fa=p((RF,qp)=>{"use strict";var cT=Ut(),pT=cT(Object,"create");qp.exports=pT});var Mp=p((vF,kp)=>{"use strict";var Dp=fa();function lT(){this.__data__=Dp?Dp(null):{},this.size=0}a(lT,"hashClear");kp.exports=lT});var Bp=p((xF,Np)=>{"use strict";function dT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}a(dT,"hashDelete");Np.exports=dT});var Fp=p((OF,Gp)=>{"use strict";var fT=fa(),mT="__lodash_hash_undefined__",gT=Object.prototype,hT=gT.hasOwnProperty;function yT(e){var t=this.__data__;if(fT){var r=t[e];return r===mT?void 0:r}return hT.call(t,e)?t[e]:void 0}a(yT,"hashGet");Gp.exports=yT});var $p=p((PF,Wp)=>{"use strict";var AT=fa(),bT=Object.prototype,IT=bT.hasOwnProperty;function ST(e){var t=this.__data__;return AT?t[e]!==void 0:IT.call(t,e)}a(ST,"hashHas");Wp.exports=ST});var Qp=p((qF,jp)=>{"use strict";var wT=fa(),TT="__lodash_hash_undefined__";function ET(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=wT&&t===void 0?TT:t,this}a(ET,"hashSet");jp.exports=ET});var Vp=p((kF,Kp)=>{"use strict";var RT=Mp(),vT=Bp(),_T=Fp(),xT=$p(),CT=Qp();function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a(pr,"Hash");pr.prototype.clear=RT;pr.prototype.delete=vT;pr.prototype.get=_T;pr.prototype.has=xT;pr.prototype.set=CT;Kp.exports=pr});var Yp=p((NF,Hp)=>{"use strict";function OT(){this.__data__=[],this.size=0}a(OT,"listCacheClear");Hp.exports=OT});var lr=p((GF,zp)=>{"use strict";function LT(e,t){return e===t||e!==e&&t!==t}a(LT,"eq");zp.exports=LT});var ma=p((WF,Jp)=>{"use strict";var PT=lr();function UT(e,t){for(var r=e.length;r--;)if(PT(e[r][0],t))return r;return-1}a(UT,"assocIndexOf");Jp.exports=UT});var Zp=p((jF,Xp)=>{"use strict";var qT=ma(),DT=Array.prototype,kT=DT.splice;function MT(e){var t=this.__data__,r=qT(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():kT.call(t,r,1),--this.size,!0}a(MT,"listCacheDelete");Xp.exports=MT});var tl=p((KF,el)=>{"use strict";var NT=ma();function BT(e){var t=this.__data__,r=NT(t,e);return r<0?void 0:t[r][1]}a(BT,"listCacheGet");el.exports=BT});var al=p((HF,rl)=>{"use strict";var GT=ma();function FT(e){return GT(this.__data__,e)>-1}a(FT,"listCacheHas");rl.exports=FT});var ol=p((zF,nl)=>{"use strict";var WT=ma();function $T(e,t){var r=this.__data__,n=WT(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}a($T,"listCacheSet");nl.exports=$T});var ga=p((XF,sl)=>{"use strict";var jT=Yp(),QT=Zp(),KT=tl(),VT=al(),HT=ol();function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a(dr,"ListCache");dr.prototype.clear=jT;dr.prototype.delete=QT;dr.prototype.get=KT;dr.prototype.has=VT;dr.prototype.set=HT;sl.exports=dr});var yn=p((e1,il)=>{"use strict";var YT=Ut(),zT=_e(),JT=YT(zT,"Map");il.exports=JT});var pl=p((t1,cl)=>{"use strict";var ul=Vp(),XT=ga(),ZT=yn();function eE(){this.size=0,this.__data__={hash:new ul,map:new(ZT||XT),string:new ul}}a(eE,"mapCacheClear");cl.exports=eE});var dl=p((a1,ll)=>{"use strict";function tE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}a(tE,"isKeyable");ll.exports=tE});var ha=p((o1,fl)=>{"use strict";var rE=dl();function aE(e,t){var r=e.__data__;return rE(t)?r[typeof t=="string"?"string":"hash"]:r.map}a(aE,"getMapData");fl.exports=aE});var gl=p((i1,ml)=>{"use strict";var nE=ha();function oE(e){var t=nE(this,e).delete(e);return this.size-=t?1:0,t}a(oE,"mapCacheDelete");ml.exports=oE});var yl=p((c1,hl)=>{"use strict";var sE=ha();function iE(e){return sE(this,e).get(e)}a(iE,"mapCacheGet");hl.exports=iE});var bl=p((l1,Al)=>{"use strict";var uE=ha();function cE(e){return uE(this,e).has(e)}a(cE,"mapCacheHas");Al.exports=cE});var Sl=p((f1,Il)=>{"use strict";var pE=ha();function lE(e,t){var r=pE(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}a(lE,"mapCacheSet");Il.exports=lE});var An=p((g1,wl)=>{"use strict";var dE=pl(),fE=gl(),mE=yl(),gE=bl(),hE=Sl();function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a(fr,"MapCache");fr.prototype.clear=dE;fr.prototype.delete=fE;fr.prototype.get=mE;fr.prototype.has=gE;fr.prototype.set=hE;wl.exports=fr});var El=p((y1,Tl)=>{"use strict";var yE="__lodash_hash_undefined__";function AE(e){return this.__data__.set(e,yE),this}a(AE,"setCacheAdd");Tl.exports=AE});var vl=p((b1,Rl)=>{"use strict";function bE(e){return this.__data__.has(e)}a(bE,"setCacheHas");Rl.exports=bE});var es=p((S1,_l)=>{"use strict";var IE=An(),SE=El(),wE=vl();function bn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new IE;++t<r;)this.add(e[t])}a(bn,"SetCache");bn.prototype.add=bn.prototype.push=SE;bn.prototype.has=wE;_l.exports=bn});var Cl=p((T1,xl)=>{"use strict";function TE(e,t,r,n){for(var o=e.length,s=r+(n?1:-1);n?s--:++s<o;)if(t(e[s],s,e))return s;return-1}a(TE,"baseFindIndex");xl.exports=TE});var Ll=p((R1,Ol)=>{"use strict";function EE(e){return e!==e}a(EE,"baseIsNaN");Ol.exports=EE});var Ul=p((_1,Pl)=>{"use strict";function RE(e,t,r){for(var n=r-1,o=e.length;++n<o;)if(e[n]===t)return n;return-1}a(RE,"strictIndexOf");Pl.exports=RE});var Dl=p((C1,ql)=>{"use strict";var vE=Cl(),_E=Ll(),xE=Ul();function CE(e,t,r){return t===t?xE(e,t,r):vE(e,_E,r)}a(CE,"baseIndexOf");ql.exports=CE});var ts=p((L1,kl)=>{"use strict";var OE=Dl();function LE(e,t){var r=e==null?0:e.length;return!!r&&OE(e,t,0)>-1}a(LE,"arrayIncludes");kl.exports=LE});var Nl=p((U1,Ml)=>{"use strict";function PE(e,t,r){for(var n=-1,o=e==null?0:e.length;++n<o;)if(r(t,e[n]))return!0;return!1}a(PE,"arrayIncludesWith");Ml.exports=PE});var rs=p((D1,Bl)=>{"use strict";function UE(e,t){return e.has(t)}a(UE,"cacheHas");Bl.exports=UE});var as=p((M1,Gl)=>{"use strict";var qE=Ut(),DE=_e(),kE=qE(DE,"Set");Gl.exports=kE});var ns=p((N1,Fl)=>{"use strict";function ME(){}a(ME,"noop");Fl.exports=ME});var In=p((G1,Wl)=>{"use strict";function NE(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}a(NE,"setToArray");Wl.exports=NE});var jl=p((W1,$l)=>{"use strict";var os=as(),BE=ns(),GE=In(),FE=1/0,WE=os&&1/GE(new os([,-0]))[1]==FE?function(e){return new os(e)}:BE;$l.exports=WE});var Kl=p(($1,Ql)=>{"use strict";var $E=es(),jE=ts(),QE=Nl(),KE=rs(),VE=jl(),HE=In(),YE=200;function zE(e,t,r){var n=-1,o=jE,s=e.length,i=!0,u=[],c=u;if(r)i=!1,o=QE;else if(s>=YE){var f=t?null:VE(e);if(f)return HE(f);i=!1,o=KE,c=new $E}else c=t?[]:u;e:for(;++n<s;){var g=e[n],h=t?t(g):g;if(g=r||g!==0?g:0,i&&h===h){for(var y=c.length;y--;)if(c[y]===h)continue e;t&&c.push(h),u.push(g)}else o(c,h,r)||(c!==u&&c.push(h),u.push(g))}return u}a(zE,"baseUniq");Ql.exports=zE});var Sn=p((Q1,Vl)=>{"use strict";var JE=9007199254740991;function XE(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=JE}a(XE,"isLength");Vl.exports=XE});var mr=p((V1,Hl)=>{"use strict";var ZE=da(),eR=Sn();function tR(e){return e!=null&&eR(e.length)&&!ZE(e)}a(tR,"isArrayLike");Hl.exports=tR});var ss=p((Y1,Yl)=>{"use strict";var rR=mr(),aR=ke();function nR(e){return aR(e)&&rR(e)}a(nR,"isArrayLikeObject");Yl.exports=nR});var Jl=p((J1,zl)=>{"use strict";var oR=Vo(),sR=Zo(),iR=Kl(),uR=ss(),cR=sR(function(e){return iR(oR(e,1,uR,!0))});zl.exports=cR});var Zl=p((X1,Xl)=>{"use strict";var pR=ga();function lR(){this.__data__=new pR,this.size=0}a(lR,"stackClear");Xl.exports=lR});var td=p((eW,ed)=>{"use strict";function dR(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}a(dR,"stackDelete");ed.exports=dR});var ad=p((rW,rd)=>{"use strict";function fR(e){return this.__data__.get(e)}a(fR,"stackGet");rd.exports=fR});var od=p((nW,nd)=>{"use strict";function mR(e){return this.__data__.has(e)}a(mR,"stackHas");nd.exports=mR});var id=p((sW,sd)=>{"use strict";var gR=ga(),hR=yn(),yR=An(),AR=200;function bR(e,t){var r=this.__data__;if(r instanceof gR){var n=r.__data__;if(!hR||n.length<AR-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new yR(n)}return r.set(e,t),this.size=r.size,this}a(bR,"stackSet");sd.exports=bR});var ya=p((uW,ud)=>{"use strict";var IR=ga(),SR=Zl(),wR=td(),TR=ad(),ER=od(),RR=id();function gr(e){var t=this.__data__=new IR(e);this.size=t.size}a(gr,"Stack");gr.prototype.clear=SR;gr.prototype.delete=wR;gr.prototype.get=TR;gr.prototype.has=ER;gr.prototype.set=RR;ud.exports=gr});var Aa=p((pW,pd)=>{"use strict";var cd=Jo();function vR(e,t,r){t=="__proto__"&&cd?cd(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}a(vR,"baseAssignValue");pd.exports=vR});var is=p((dW,ld)=>{"use strict";var _R=Aa(),xR=lr();function CR(e,t,r){(r!==void 0&&!xR(e[t],r)||r===void 0&&!(t in e))&&_R(e,t,r)}a(CR,"assignMergeValue");ld.exports=CR});var fd=p((mW,dd)=>{"use strict";function OR(e){return function(t,r,n){for(var o=-1,s=Object(t),i=n(t),u=i.length;u--;){var c=i[e?u:++o];if(r(s[c],c,s)===!1)break}return t}}a(OR,"createBaseFor");dd.exports=OR});var us=p((hW,md)=>{"use strict";var LR=fd(),PR=LR();md.exports=PR});var cs=p((ba,hr)=>{"use strict";var UR=_e(),Ad=typeof ba=="object"&&ba&&!ba.nodeType&&ba,gd=Ad&&typeof hr=="object"&&hr&&!hr.nodeType&&hr,qR=gd&&gd.exports===Ad,hd=qR?UR.Buffer:void 0,yd=hd?hd.allocUnsafe:void 0;function DR(e,t){if(t)return e.slice();var r=e.length,n=yd?yd(r):new e.constructor(r);return e.copy(n),n}a(DR,"cloneBuffer");hr.exports=DR});var ps=p((AW,bd)=>{"use strict";var kR=_e(),MR=kR.Uint8Array;bd.exports=MR});var wn=p((bW,Sd)=>{"use strict";var Id=ps();function NR(e){var t=new e.constructor(e.byteLength);return new Id(t).set(new Id(e)),t}a(NR,"cloneArrayBuffer");Sd.exports=NR});var ls=p((SW,wd)=>{"use strict";var BR=wn();function GR(e,t){var r=t?BR(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}a(GR,"cloneTypedArray");wd.exports=GR});var yr=p((TW,Td)=>{"use strict";function FR(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}a(FR,"copyArray");Td.exports=FR});var Ia=p((RW,Rd)=>{"use strict";var WR=je(),Ed=Object.create,$R=function(){function e(){}return a(e,"object"),function(t){if(!WR(t))return{};if(Ed)return Ed(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();Rd.exports=$R});var ds=p((_W,vd)=>{"use strict";function jR(e,t){return function(r){return e(t(r))}}a(jR,"overArg");vd.exports=jR});var Tn=p((CW,_d)=>{"use strict";var QR=ds(),KR=QR(Object.getPrototypeOf,Object);_d.exports=KR});var En=p((OW,xd)=>{"use strict";var VR=Object.prototype;function HR(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||VR;return e===r}a(HR,"isPrototype");xd.exports=HR});var fs=p((PW,Cd)=>{"use strict";var YR=Ia(),zR=Tn(),JR=En();function XR(e){return typeof e.constructor=="function"&&!JR(e)?YR(zR(e)):{}}a(XR,"initCloneObject");Cd.exports=XR});var Ld=p((qW,Od)=>{"use strict";function ZR(){return!1}a(ZR,"stubFalse");Od.exports=ZR});var wa=p((Sa,Ar)=>{"use strict";var ev=_e(),tv=Ld(),qd=typeof Sa=="object"&&Sa&&!Sa.nodeType&&Sa,Pd=qd&&typeof Ar=="object"&&Ar&&!Ar.nodeType&&Ar,rv=Pd&&Pd.exports===qd,Ud=rv?ev.Buffer:void 0,av=Ud?Ud.isBuffer:void 0,nv=av||tv;Ar.exports=nv});var ms=p((kW,kd)=>{"use strict";var ov=Pt(),sv=Tn(),iv=ke(),uv="[object Object]",cv=Function.prototype,pv=Object.prototype,Dd=cv.toString,lv=pv.hasOwnProperty,dv=Dd.call(Object);function fv(e){if(!iv(e)||ov(e)!=uv)return!1;var t=sv(e);if(t===null)return!0;var r=lv.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Dd.call(r)==dv}a(fv,"isPlainObject");kd.exports=fv});var Nd=p((NW,Md)=>{"use strict";var mv=Pt(),gv=Sn(),hv=ke(),yv="[object Arguments]",Av="[object Array]",bv="[object Boolean]",Iv="[object Date]",Sv="[object Error]",wv="[object Function]",Tv="[object Map]",Ev="[object Number]",Rv="[object Object]",vv="[object RegExp]",_v="[object Set]",xv="[object String]",Cv="[object WeakMap]",Ov="[object ArrayBuffer]",Lv="[object DataView]",Pv="[object Float32Array]",Uv="[object Float64Array]",qv="[object Int8Array]",Dv="[object Int16Array]",kv="[object Int32Array]",Mv="[object Uint8Array]",Nv="[object Uint8ClampedArray]",Bv="[object Uint16Array]",Gv="[object Uint32Array]",H={};H[Pv]=H[Uv]=H[qv]=H[Dv]=H[kv]=H[Mv]=H[Nv]=H[Bv]=H[Gv]=!0;H[yv]=H[Av]=H[Ov]=H[bv]=H[Lv]=H[Iv]=H[Sv]=H[wv]=H[Tv]=H[Ev]=H[Rv]=H[vv]=H[_v]=H[xv]=H[Cv]=!1;function Fv(e){return hv(e)&&gv(e.length)&&!!H[mv(e)]}a(Fv,"baseIsTypedArray");Md.exports=Fv});var Rn=p((GW,Bd)=>{"use strict";function Wv(e){return function(t){return e(t)}}a(Wv,"baseUnary");Bd.exports=Wv});var vn=p((Ta,br)=>{"use strict";var $v=Ko(),Gd=typeof Ta=="object"&&Ta&&!Ta.nodeType&&Ta,Ea=Gd&&typeof br=="object"&&br&&!br.nodeType&&br,jv=Ea&&Ea.exports===Gd,gs=jv&&$v.process,Qv=function(){try{var e=Ea&&Ea.require&&Ea.require("util").types;return e||gs&&gs.binding&&gs.binding("util")}catch{}}();br.exports=Qv});var _n=p((WW,$d)=>{"use strict";var Kv=Nd(),Vv=Rn(),Fd=vn(),Wd=Fd&&Fd.isTypedArray,Hv=Wd?Vv(Wd):Kv;$d.exports=Hv});var hs=p(($W,jd)=>{"use strict";function Yv(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}a(Yv,"safeGet");jd.exports=Yv});var ys=p((QW,Qd)=>{"use strict";var zv=Aa(),Jv=lr(),Xv=Object.prototype,Zv=Xv.hasOwnProperty;function e_(e,t,r){var n=e[t];(!(Zv.call(e,t)&&Jv(n,r))||r===void 0&&!(t in e))&&zv(e,t,r)}a(e_,"assignValue");Qd.exports=e_});var Ir=p((VW,Kd)=>{"use strict";var t_=ys(),r_=Aa();function a_(e,t,r,n){var o=!r;r||(r={});for(var s=-1,i=t.length;++s<i;){var u=t[s],c=n?n(r[u],e[u],u,r,e):void 0;c===void 0&&(c=e[u]),o?r_(r,u,c):t_(r,u,c)}return r}a(a_,"copyObject");Kd.exports=a_});var Hd=p((YW,Vd)=>{"use strict";function n_(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}a(n_,"baseTimes");Vd.exports=n_});var Ra=p((JW,Yd)=>{"use strict";var o_=9007199254740991,s_=/^(?:0|[1-9]\d*)$/;function i_(e,t){var r=typeof e;return t=t??o_,!!t&&(r=="number"||r!="symbol"&&s_.test(e))&&e>-1&&e%1==0&&e<t}a(i_,"isIndex");Yd.exports=i_});var As=p((ZW,zd)=>{"use strict";var u_=Hd(),c_=pa(),p_=Ee(),l_=wa(),d_=Ra(),f_=_n(),m_=Object.prototype,g_=m_.hasOwnProperty;function h_(e,t){var r=p_(e),n=!r&&c_(e),o=!r&&!n&&l_(e),s=!r&&!n&&!o&&f_(e),i=r||n||o||s,u=i?u_(e.length,String):[],c=u.length;for(var f in e)(t||g_.call(e,f))&&!(i&&(f=="length"||o&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||d_(f,c)))&&u.push(f);return u}a(h_,"arrayLikeKeys");zd.exports=h_});var Xd=p((t$,Jd)=>{"use strict";function y_(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}a(y_,"nativeKeysIn");Jd.exports=y_});var ef=p((a$,Zd)=>{"use strict";var A_=je(),b_=En(),I_=Xd(),S_=Object.prototype,w_=S_.hasOwnProperty;function T_(e){if(!A_(e))return I_(e);var t=b_(e),r=[];for(var n in e)n=="constructor"&&(t||!w_.call(e,n))||r.push(n);return r}a(T_,"baseKeysIn");Zd.exports=T_});var Sr=p((o$,tf)=>{"use strict";var E_=As(),R_=ef(),v_=mr();function __(e){return v_(e)?E_(e,!0):R_(e)}a(__,"keysIn");tf.exports=__});var af=p((i$,rf)=>{"use strict";var x_=Ir(),C_=Sr();function O_(e){return x_(e,C_(e))}a(O_,"toPlainObject");rf.exports=O_});var pf=p((c$,cf)=>{"use strict";var nf=is(),L_=cs(),P_=ls(),U_=yr(),q_=fs(),of=pa(),sf=Ee(),D_=ss(),k_=wa(),M_=da(),N_=je(),B_=ms(),G_=_n(),uf=hs(),F_=af();function W_(e,t,r,n,o,s,i){var u=uf(e,r),c=uf(t,r),f=i.get(c);if(f){nf(e,r,f);return}var g=s?s(u,c,r+"",e,t,i):void 0,h=g===void 0;if(h){var y=sf(c),E=!y&&k_(c),M=!y&&!E&&G_(c);g=c,y||E||M?sf(u)?g=u:D_(u)?g=U_(u):E?(h=!1,g=L_(c,!0)):M?(h=!1,g=P_(c,!0)):g=[]:B_(c)||of(c)?(g=u,of(u)?g=F_(u):(!N_(u)||M_(u))&&(g=q_(c))):h=!1}h&&(i.set(c,g),o(g,c,n,s,i),i.delete(c)),nf(e,r,g)}a(W_,"baseMergeDeep");cf.exports=W_});var ff=p((l$,df)=>{"use strict";var $_=ya(),j_=is(),Q_=us(),K_=pf(),V_=je(),H_=Sr(),Y_=hs();function lf(e,t,r,n,o){e!==t&&Q_(t,function(s,i){if(o||(o=new $_),V_(s))K_(e,t,i,r,lf,n,o);else{var u=n?n(Y_(e,i),s,i+"",e,t,o):void 0;u===void 0&&(u=s),j_(e,i,u)}},H_)}a(lf,"baseMerge");df.exports=lf});var gf=p((f$,mf)=>{"use strict";var z_=lr(),J_=mr(),X_=Ra(),Z_=je();function ex(e,t,r){if(!Z_(r))return!1;var n=typeof t;return(n=="number"?J_(r)&&X_(t,r.length):n=="string"&&t in r)?z_(r[t],e):!1}a(ex,"isIterateeCall");mf.exports=ex});var yf=p((g$,hf)=>{"use strict";var tx=Zo(),rx=gf();function ax(e){return tx(function(t,r){var n=-1,o=r.length,s=o>1?r[o-1]:void 0,i=o>2?r[2]:void 0;for(s=e.length>3&&typeof s=="function"?(o--,s):void 0,i&&rx(r[0],r[1],i)&&(s=o<3?void 0:s,o=1),t=Object(t);++n<o;){var u=r[n];u&&e(t,u,n,s)}return t})}a(ax,"createAssigner");hf.exports=ax});var bs=p((y$,Af)=>{"use strict";var nx=ff(),ox=yf(),sx=ox(function(e,t,r){nx(e,t,r)});Af.exports=sx});var Sm=p(Ue=>{"use strict";Ue.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"};Ue.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]};Ue.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]};Ue.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2};Ue.iterateeRearg={mapKeys:[1],reduceRight:[1,0]};Ue.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]};Ue.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}};Ue.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}};Ue.realToAlias=function(){var e=Object.prototype.hasOwnProperty,t=Ue.aliasToReal,r={};for(var n in t){var o=t[n];e.call(r,o)?r[o].push(n):r[o]=[n]}return r}();Ue.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"};Ue.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0};Ue.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}});var mi=p((EK,wm)=>{"use strict";wm.exports={}});var vm=p((RK,Rm)=>{"use strict";var me=Sm(),FC=mi(),Tm=Array.prototype.push;function WC(e,t){return t==2?function(r,n){return e.apply(void 0,arguments)}:function(r){return e.apply(void 0,arguments)}}a(WC,"baseArity");function gi(e,t){return t==2?function(r,n){return e(r,n)}:function(r){return e(r)}}a(gi,"baseAry");function Em(e){for(var t=e?e.length:0,r=Array(t);t--;)r[t]=e[t];return r}a(Em,"cloneArray");function $C(e){return function(t){return e({},t)}}a($C,"createCloner");function jC(e,t){return function(){for(var r=arguments.length,n=r-1,o=Array(r);r--;)o[r]=arguments[r];var s=o[t],i=o.slice(0,t);return s&&Tm.apply(i,s),t!=n&&Tm.apply(i,o.slice(t+1)),e.apply(this,i)}}a(jC,"flatSpread");function hi(e,t){return function(){var r=arguments.length;if(r){for(var n=Array(r);r--;)n[r]=arguments[r];var o=n[0]=t.apply(void 0,n);return e.apply(void 0,n),o}}}a(hi,"wrapImmutable");function yi(e,t,r,n){var o=typeof t=="function",s=t===Object(t);if(s&&(n=r,r=t,t=void 0),r==null)throw new TypeError;n||(n={});var i={cap:"cap"in n?n.cap:!0,curry:"curry"in n?n.curry:!0,fixed:"fixed"in n?n.fixed:!0,immutable:"immutable"in n?n.immutable:!0,rearg:"rearg"in n?n.rearg:!0},u=o?r:FC,c="curry"in n&&n.curry,f="fixed"in n&&n.fixed,g="rearg"in n&&n.rearg,h=o?r.runInContext():void 0,y=o?r:{ary:e.ary,assign:e.assign,clone:e.clone,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isError:e.isError,isFunction:e.isFunction,isWeakMap:e.isWeakMap,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,toInteger:e.toInteger,toPath:e.toPath},E=y.ary,M=y.assign,k=y.clone,D=y.curry,C=y.forEach,W=y.isArray,ye=y.isError,ie=y.isFunction,Ye=y.isWeakMap,nt=y.keys,ot=y.rearg,Y=y.toInteger,G=y.toPath,Gt=nt(me.aryMethod),Ya={castArray:function(R){return function(){var b=arguments[0];return W(b)?R(Em(b)):R.apply(void 0,arguments)}},iteratee:function(R){return function(){var b=arguments[0],I=arguments[1],v=R(b,I),q=v.length;return i.cap&&typeof I=="number"?(I=I>2?I-2:1,q&&q<=I?v:gi(v,I)):v}},mixin:function(R){return function(b){var I=this;if(!ie(I))return R(I,Object(b));var v=[];return C(nt(b),function(q){ie(b[q])&&v.push([q,I.prototype[q]])}),R(I,Object(b)),C(v,function(q){var oe=q[1];ie(oe)?I.prototype[q[0]]=oe:delete I.prototype[q[0]]}),I}},nthArg:function(R){return function(b){var I=b<0?1:Y(b)+1;return D(R(b),I)}},rearg:function(R){return function(b,I){var v=I?I.length:0;return D(R(b,I),v)}},runInContext:function(R){return function(b){return yi(e,R(b),n)}}};function O(R,b){if(i.cap){var I=me.iterateeRearg[R];if(I)return Z(b,I);var v=!o&&me.iterateeAry[R];if(v)return $(b,v)}return b}a(O,"castCap");function w(R,b,I){return c||i.curry&&I>1?D(b,I):b}a(w,"castCurry");function A(R,b,I){if(i.fixed&&(f||!me.skipFixed[R])){var v=me.methodSpread[R],q=v&&v.start;return q===void 0?E(b,I):jC(b,q)}return b}a(A,"castFixed");function _(R,b,I){return i.rearg&&I>1&&(g||!me.skipRearg[R])?ot(b,me.methodRearg[R]||me.aryRearg[I]):b}a(_,"castRearg");function S(R,b){b=G(b);for(var I=-1,v=b.length,q=v-1,oe=k(Object(R)),Re=oe;Re!=null&&++I<v;){var Fe=b[I],st=Re[Fe];st!=null&&!(ie(st)||ye(st)||Ye(st))&&(Re[Fe]=k(I==q?st:Object(st))),Re=Re[Fe]}return oe}a(S,"cloneByPath");function U(R){return K.runInContext.convert(R)(void 0)}a(U,"convertLib");function P(R,b){var I=me.aliasToReal[R]||R,v=me.remap[I]||I,q=n;return function(oe){var Re=o?h:y,Fe=o?h[v]:b,st=M(M({},q),oe);return yi(Re,I,Fe,st)}}a(P,"createConverter");function $(R,b){return ne(R,function(I){return typeof I=="function"?gi(I,b):I})}a($,"iterateeAry");function Z(R,b){return ne(R,function(I){var v=b.length;return WC(ot(gi(I,v),b),v)})}a(Z,"iterateeRearg");function ne(R,b){return function(){var I=arguments.length;if(!I)return R();for(var v=Array(I);I--;)v[I]=arguments[I];var q=i.rearg?0:I-1;return v[q]=b(v[q]),R.apply(void 0,v)}}a(ne,"overArg");function pe(R,b,I){var v,q=me.aliasToReal[R]||R,oe=b,Re=Ya[q];return Re?oe=Re(b):i.immutable&&(me.mutate.array[q]?oe=hi(b,Em):me.mutate.object[q]?oe=hi(b,$C(b)):me.mutate.set[q]&&(oe=hi(b,S))),C(Gt,function(Fe){return C(me.aryMethod[Fe],function(st){if(q==st){var Yu=me.methodSpread[q],CI=Yu&&Yu.afterRearg;return v=CI?A(q,_(q,oe,Fe),Fe):_(q,A(q,oe,Fe),Fe),v=O(q,v),v=w(q,v,Fe),!1}}),!v}),v||(v=oe),v==b&&(v=c?D(v,1):function(){return b.apply(this,arguments)}),v.convert=P(q,b),v.placeholder=b.placeholder=I,v}if(a(pe,"wrap"),!s)return pe(t,r,u);var K=r,Ge=[];return C(Gt,function(R){C(me.aryMethod[R],function(b){var I=K[me.remap[b]||b];I&&Ge.push([b,pe(b,I,K)])})}),C(nt(K),function(R){var b=K[R];if(typeof b=="function"){for(var I=Ge.length;I--;)if(Ge[I][0]==R)return;b.convert=P(R,b),Ge.push([R,b])}}),C(Ge,function(R){K[R[0]]=R[1]}),K.convert=U,K.placeholder=K,C(nt(K),function(R){C(me.realToAlias[R]||[],function(b){K[b]=K[R]})}),K}a(yi,"baseConvert");Rm.exports=yi});var Ai=p((_K,_m)=>{"use strict";var QC=Ut(),KC=_e(),VC=QC(KC,"WeakMap");_m.exports=VC});var bi=p((xK,Cm)=>{"use strict";var xm=Ai(),HC=xm&&new xm;Cm.exports=HC});var Ii=p((CK,Lm)=>{"use strict";var YC=la(),Om=bi(),zC=Om?function(e,t){return Om.set(e,t),e}:YC;Lm.exports=zC});var Da=p((OK,Pm)=>{"use strict";var JC=Ia(),XC=je();function ZC(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=JC(e.prototype),n=e.apply(r,t);return XC(n)?n:r}}a(ZC,"createCtor");Pm.exports=ZC});var qm=p((PK,Um)=>{"use strict";var eO=Da(),tO=_e(),rO=1;function aO(e,t,r){var n=t&rO,o=eO(e);function s(){var i=this&&this!==tO&&this instanceof s?o:e;return i.apply(n?r:this,arguments)}return a(s,"wrapper"),s}a(aO,"createBind");Um.exports=aO});var Si=p((qK,Dm)=>{"use strict";var nO=Math.max;function oO(e,t,r,n){for(var o=-1,s=e.length,i=r.length,u=-1,c=t.length,f=nO(s-i,0),g=Array(c+f),h=!n;++u<c;)g[u]=t[u];for(;++o<i;)(h||o<s)&&(g[r[o]]=e[o]);for(;f--;)g[u++]=e[o++];return g}a(oO,"composeArgs");Dm.exports=oO});var wi=p((kK,km)=>{"use strict";var sO=Math.max;function iO(e,t,r,n){for(var o=-1,s=e.length,i=-1,u=r.length,c=-1,f=t.length,g=sO(s-u,0),h=Array(g+f),y=!n;++o<g;)h[o]=e[o];for(var E=o;++c<f;)h[E+c]=t[c];for(;++i<u;)(y||o<s)&&(h[E+r[i]]=e[o++]);return h}a(iO,"composeArgsRight");km.exports=iO});var Nm=p((NK,Mm)=>{"use strict";function uO(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}a(uO,"countHolders");Mm.exports=uO});var Jn=p((GK,Bm)=>{"use strict";function cO(){}a(cO,"baseLodash");Bm.exports=cO});var Zn=p((WK,Gm)=>{"use strict";var pO=Ia(),lO=Jn(),dO=4294967295;function Xn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=dO,this.__views__=[]}a(Xn,"LazyWrapper");Xn.prototype=pO(lO.prototype);Xn.prototype.constructor=Xn;Gm.exports=Xn});var Ti=p((jK,Wm)=>{"use strict";var Fm=bi(),fO=ns(),mO=Fm?function(e){return Fm.get(e)}:fO;Wm.exports=mO});var jm=p((QK,$m)=>{"use strict";var gO={};$m.exports=gO});var Vm=p((KK,Km)=>{"use strict";var Qm=jm(),hO=Object.prototype,yO=hO.hasOwnProperty;function AO(e){for(var t=e.name+"",r=Qm[t],n=yO.call(Qm,t)?r.length:0;n--;){var o=r[n],s=o.func;if(s==null||s==e)return o.name}return t}a(AO,"getFuncName");Km.exports=AO});var Ei=p((HK,Hm)=>{"use strict";var bO=Ia(),IO=Jn();function eo(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}a(eo,"LodashWrapper");eo.prototype=bO(IO.prototype);eo.prototype.constructor=eo;Hm.exports=eo});var zm=p((zK,Ym)=>{"use strict";var SO=Zn(),wO=Ei(),TO=yr();function EO(e){if(e instanceof SO)return e.clone();var t=new wO(e.__wrapped__,e.__chain__);return t.__actions__=TO(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}a(EO,"wrapperClone");Ym.exports=EO});var Zm=p((XK,Xm)=>{"use strict";var RO=Zn(),Jm=Ei(),vO=Jn(),_O=Ee(),xO=ke(),CO=zm(),OO=Object.prototype,LO=OO.hasOwnProperty;function to(e){if(xO(e)&&!_O(e)&&!(e instanceof RO)){if(e instanceof Jm)return e;if(LO.call(e,"__wrapped__"))return CO(e)}return new Jm(e)}a(to,"lodash");to.prototype=vO.prototype;to.prototype.constructor=to;Xm.exports=to});var tg=p((e2,eg)=>{"use strict";var PO=Zn(),UO=Ti(),qO=Vm(),DO=Zm();function kO(e){var t=qO(e),r=DO[t];if(typeof r!="function"||!(t in PO.prototype))return!1;if(e===r)return!0;var n=UO(r);return!!n&&e===n[0]}a(kO,"isLaziable");eg.exports=kO});var Ri=p((r2,rg)=>{"use strict";var MO=Ii(),NO=Xo(),BO=NO(MO);rg.exports=BO});var ng=p((a2,ag)=>{"use strict";var GO=/\{\n\/\* \[wrapped with (.+)\] \*/,FO=/,? & /;function WO(e){var t=e.match(GO);return t?t[1].split(FO):[]}a(WO,"getWrapDetails");ag.exports=WO});var sg=p((o2,og)=>{"use strict";var $O=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function jO(e,t){var r=t.length;if(!r)return e;var n=r-1;return t[n]=(r>1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace($O,`{
|
|
1
|
+
"use strict";var OI=Object.create;var Dr=Object.defineProperty;var LI=Object.getOwnPropertyDescriptor;var PI=Object.getOwnPropertyNames;var UI=Object.getPrototypeOf,qI=Object.prototype.hasOwnProperty;var a=(e,t)=>Dr(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),x=(e,t)=>{for(var r in t)Dr(e,r,{get:t[r],enumerable:!0})},zu=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of PI(t))!qI.call(e,o)&&o!==r&&Dr(e,o,{get:()=>t[o],enumerable:!(n=LI(t,o))||n.enumerable});return e};var F=(e,t,r)=>(r=e!=null?OI(UI(e)):{},zu(t||!e||!e.__esModule?Dr(r,"default",{value:e,enumerable:!0}):r,e)),DI=e=>zu(Dr({},"__esModule",{value:!0}),e);var mn=p((xG,kc)=>{"use strict";function US(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}a(US,"arrayPush");kc.exports=US});var Ko=p((OG,Mc)=>{"use strict";var qS=typeof global=="object"&&global&&global.Object===Object&&global;Mc.exports=qS});var _e=p((LG,Nc)=>{"use strict";var DS=Ko(),kS=typeof self=="object"&&self&&self.Object===Object&&self,MS=DS||kS||Function("return this")();Nc.exports=MS});var Qt=p((PG,Bc)=>{"use strict";var NS=_e(),BS=NS.Symbol;Bc.exports=BS});var $c=p((UG,Wc)=>{"use strict";var Gc=Qt(),Fc=Object.prototype,GS=Fc.hasOwnProperty,FS=Fc.toString,ca=Gc?Gc.toStringTag:void 0;function WS(e){var t=GS.call(e,ca),r=e[ca];try{e[ca]=void 0;var n=!0}catch{}var o=FS.call(e);return n&&(t?e[ca]=r:delete e[ca]),o}a(WS,"getRawTag");Wc.exports=WS});var Qc=p((DG,jc)=>{"use strict";var $S=Object.prototype,jS=$S.toString;function QS(e){return jS.call(e)}a(QS,"objectToString");jc.exports=QS});var Pt=p((MG,Hc)=>{"use strict";var Kc=Qt(),KS=$c(),VS=Qc(),HS="[object Null]",YS="[object Undefined]",Vc=Kc?Kc.toStringTag:void 0;function zS(e){return e==null?e===void 0?YS:HS:Vc&&Vc in Object(e)?KS(e):VS(e)}a(zS,"baseGetTag");Hc.exports=zS});var ke=p((BG,Yc)=>{"use strict";function JS(e){return e!=null&&typeof e=="object"}a(JS,"isObjectLike");Yc.exports=JS});var Jc=p((FG,zc)=>{"use strict";var XS=Pt(),ZS=ke(),ew="[object Arguments]";function tw(e){return ZS(e)&&XS(e)==ew}a(tw,"baseIsArguments");zc.exports=tw});var pa=p(($G,ep)=>{"use strict";var Xc=Jc(),rw=ke(),Zc=Object.prototype,aw=Zc.hasOwnProperty,nw=Zc.propertyIsEnumerable,ow=Xc(function(){return arguments}())?Xc:function(e){return rw(e)&&aw.call(e,"callee")&&!nw.call(e,"callee")};ep.exports=ow});var Ee=p((jG,tp)=>{"use strict";var sw=Array.isArray;tp.exports=sw});var op=p((QG,np)=>{"use strict";var rp=Qt(),iw=pa(),uw=Ee(),ap=rp?rp.isConcatSpreadable:void 0;function cw(e){return uw(e)||iw(e)||!!(ap&&e&&e[ap])}a(cw,"isFlattenable");np.exports=cw});var Vo=p((VG,ip)=>{"use strict";var pw=mn(),lw=op();function sp(e,t,r,n,o){var s=-1,i=e.length;for(r||(r=lw),o||(o=[]);++s<i;){var u=e[s];t>0&&r(u)?t>1?sp(u,t-1,r,n,o):pw(o,u):n||(o[o.length]=u)}return o}a(sp,"baseFlatten");ip.exports=sp});var la=p((YG,up)=>{"use strict";function dw(e){return e}a(dw,"identity");up.exports=dw});var gn=p((JG,cp)=>{"use strict";function fw(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}a(fw,"apply");cp.exports=fw});var Ho=p((ZG,lp)=>{"use strict";var mw=gn(),pp=Math.max;function gw(e,t,r){return t=pp(t===void 0?e.length-1:t,0),function(){for(var n=arguments,o=-1,s=pp(n.length-t,0),i=Array(s);++o<s;)i[o]=n[t+o];o=-1;for(var u=Array(t+1);++o<t;)u[o]=n[o];return u[t]=r(i),mw(e,this,u)}}a(gw,"overRest");lp.exports=gw});var fp=p((tF,dp)=>{"use strict";function hw(e){return function(){return e}}a(hw,"constant");dp.exports=hw});var je=p((aF,mp)=>{"use strict";function yw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}a(yw,"isObject");mp.exports=yw});var da=p((oF,gp)=>{"use strict";var Aw=Pt(),bw=je(),Iw="[object AsyncFunction]",Sw="[object Function]",ww="[object GeneratorFunction]",Tw="[object Proxy]";function Ew(e){if(!bw(e))return!1;var t=Aw(e);return t==Sw||t==ww||t==Iw||t==Tw}a(Ew,"isFunction");gp.exports=Ew});var yp=p((iF,hp)=>{"use strict";var Rw=_e(),vw=Rw["__core-js_shared__"];hp.exports=vw});var Ip=p((uF,bp)=>{"use strict";var Yo=yp(),Ap=function(){var e=/[^.]+$/.exec(Yo&&Yo.keys&&Yo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function _w(e){return!!Ap&&Ap in e}a(_w,"isMasked");bp.exports=_w});var zo=p((pF,Sp)=>{"use strict";var xw=Function.prototype,Cw=xw.toString;function Ow(e){if(e!=null){try{return Cw.call(e)}catch{}try{return e+""}catch{}}return""}a(Ow,"toSource");Sp.exports=Ow});var Tp=p((dF,wp)=>{"use strict";var Lw=da(),Pw=Ip(),Uw=je(),qw=zo(),Dw=/[\\^$.*+?()[\]{}|]/g,kw=/^\[object .+?Constructor\]$/,Mw=Function.prototype,Nw=Object.prototype,Bw=Mw.toString,Gw=Nw.hasOwnProperty,Fw=RegExp("^"+Bw.call(Gw).replace(Dw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ww(e){if(!Uw(e)||Pw(e))return!1;var t=Lw(e)?Fw:kw;return t.test(qw(e))}a(Ww,"baseIsNative");wp.exports=Ww});var Rp=p((mF,Ep)=>{"use strict";function $w(e,t){return e?.[t]}a($w,"getValue");Ep.exports=$w});var Ut=p((hF,vp)=>{"use strict";var jw=Tp(),Qw=Rp();function Kw(e,t){var r=Qw(e,t);return jw(r)?r:void 0}a(Kw,"getNative");vp.exports=Kw});var Jo=p((AF,_p)=>{"use strict";var Vw=Ut(),Hw=function(){try{var e=Vw(Object,"defineProperty");return e({},"",{}),e}catch{}}();_p.exports=Hw});var Op=p((bF,Cp)=>{"use strict";var Yw=fp(),xp=Jo(),zw=la(),Jw=xp?function(e,t){return xp(e,"toString",{configurable:!0,enumerable:!1,value:Yw(t),writable:!0})}:zw;Cp.exports=Jw});var Xo=p((IF,Lp)=>{"use strict";var Xw=800,Zw=16,eT=Date.now;function tT(e){var t=0,r=0;return function(){var n=eT(),o=Zw-(n-r);if(r=n,o>0){if(++t>=Xw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}a(tT,"shortOut");Lp.exports=tT});var hn=p((wF,Pp)=>{"use strict";var rT=Op(),aT=Xo(),nT=aT(rT);Pp.exports=nT});var Zo=p((TF,Up)=>{"use strict";var oT=la(),sT=Ho(),iT=hn();function uT(e,t){return iT(sT(e,t,oT),e+"")}a(uT,"baseRest");Up.exports=uT});var fa=p((RF,qp)=>{"use strict";var cT=Ut(),pT=cT(Object,"create");qp.exports=pT});var Mp=p((vF,kp)=>{"use strict";var Dp=fa();function lT(){this.__data__=Dp?Dp(null):{},this.size=0}a(lT,"hashClear");kp.exports=lT});var Bp=p((xF,Np)=>{"use strict";function dT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}a(dT,"hashDelete");Np.exports=dT});var Fp=p((OF,Gp)=>{"use strict";var fT=fa(),mT="__lodash_hash_undefined__",gT=Object.prototype,hT=gT.hasOwnProperty;function yT(e){var t=this.__data__;if(fT){var r=t[e];return r===mT?void 0:r}return hT.call(t,e)?t[e]:void 0}a(yT,"hashGet");Gp.exports=yT});var $p=p((PF,Wp)=>{"use strict";var AT=fa(),bT=Object.prototype,IT=bT.hasOwnProperty;function ST(e){var t=this.__data__;return AT?t[e]!==void 0:IT.call(t,e)}a(ST,"hashHas");Wp.exports=ST});var Qp=p((qF,jp)=>{"use strict";var wT=fa(),TT="__lodash_hash_undefined__";function ET(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=wT&&t===void 0?TT:t,this}a(ET,"hashSet");jp.exports=ET});var Vp=p((kF,Kp)=>{"use strict";var RT=Mp(),vT=Bp(),_T=Fp(),xT=$p(),CT=Qp();function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a(pr,"Hash");pr.prototype.clear=RT;pr.prototype.delete=vT;pr.prototype.get=_T;pr.prototype.has=xT;pr.prototype.set=CT;Kp.exports=pr});var Yp=p((NF,Hp)=>{"use strict";function OT(){this.__data__=[],this.size=0}a(OT,"listCacheClear");Hp.exports=OT});var lr=p((GF,zp)=>{"use strict";function LT(e,t){return e===t||e!==e&&t!==t}a(LT,"eq");zp.exports=LT});var ma=p((WF,Jp)=>{"use strict";var PT=lr();function UT(e,t){for(var r=e.length;r--;)if(PT(e[r][0],t))return r;return-1}a(UT,"assocIndexOf");Jp.exports=UT});var Zp=p((jF,Xp)=>{"use strict";var qT=ma(),DT=Array.prototype,kT=DT.splice;function MT(e){var t=this.__data__,r=qT(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():kT.call(t,r,1),--this.size,!0}a(MT,"listCacheDelete");Xp.exports=MT});var tl=p((KF,el)=>{"use strict";var NT=ma();function BT(e){var t=this.__data__,r=NT(t,e);return r<0?void 0:t[r][1]}a(BT,"listCacheGet");el.exports=BT});var al=p((HF,rl)=>{"use strict";var GT=ma();function FT(e){return GT(this.__data__,e)>-1}a(FT,"listCacheHas");rl.exports=FT});var ol=p((zF,nl)=>{"use strict";var WT=ma();function $T(e,t){var r=this.__data__,n=WT(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}a($T,"listCacheSet");nl.exports=$T});var ga=p((XF,sl)=>{"use strict";var jT=Yp(),QT=Zp(),KT=tl(),VT=al(),HT=ol();function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a(dr,"ListCache");dr.prototype.clear=jT;dr.prototype.delete=QT;dr.prototype.get=KT;dr.prototype.has=VT;dr.prototype.set=HT;sl.exports=dr});var yn=p((e1,il)=>{"use strict";var YT=Ut(),zT=_e(),JT=YT(zT,"Map");il.exports=JT});var pl=p((t1,cl)=>{"use strict";var ul=Vp(),XT=ga(),ZT=yn();function eE(){this.size=0,this.__data__={hash:new ul,map:new(ZT||XT),string:new ul}}a(eE,"mapCacheClear");cl.exports=eE});var dl=p((a1,ll)=>{"use strict";function tE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}a(tE,"isKeyable");ll.exports=tE});var ha=p((o1,fl)=>{"use strict";var rE=dl();function aE(e,t){var r=e.__data__;return rE(t)?r[typeof t=="string"?"string":"hash"]:r.map}a(aE,"getMapData");fl.exports=aE});var gl=p((i1,ml)=>{"use strict";var nE=ha();function oE(e){var t=nE(this,e).delete(e);return this.size-=t?1:0,t}a(oE,"mapCacheDelete");ml.exports=oE});var yl=p((c1,hl)=>{"use strict";var sE=ha();function iE(e){return sE(this,e).get(e)}a(iE,"mapCacheGet");hl.exports=iE});var bl=p((l1,Al)=>{"use strict";var uE=ha();function cE(e){return uE(this,e).has(e)}a(cE,"mapCacheHas");Al.exports=cE});var Sl=p((f1,Il)=>{"use strict";var pE=ha();function lE(e,t){var r=pE(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}a(lE,"mapCacheSet");Il.exports=lE});var An=p((g1,wl)=>{"use strict";var dE=pl(),fE=gl(),mE=yl(),gE=bl(),hE=Sl();function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a(fr,"MapCache");fr.prototype.clear=dE;fr.prototype.delete=fE;fr.prototype.get=mE;fr.prototype.has=gE;fr.prototype.set=hE;wl.exports=fr});var El=p((y1,Tl)=>{"use strict";var yE="__lodash_hash_undefined__";function AE(e){return this.__data__.set(e,yE),this}a(AE,"setCacheAdd");Tl.exports=AE});var vl=p((b1,Rl)=>{"use strict";function bE(e){return this.__data__.has(e)}a(bE,"setCacheHas");Rl.exports=bE});var es=p((S1,_l)=>{"use strict";var IE=An(),SE=El(),wE=vl();function bn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new IE;++t<r;)this.add(e[t])}a(bn,"SetCache");bn.prototype.add=bn.prototype.push=SE;bn.prototype.has=wE;_l.exports=bn});var Cl=p((T1,xl)=>{"use strict";function TE(e,t,r,n){for(var o=e.length,s=r+(n?1:-1);n?s--:++s<o;)if(t(e[s],s,e))return s;return-1}a(TE,"baseFindIndex");xl.exports=TE});var Ll=p((R1,Ol)=>{"use strict";function EE(e){return e!==e}a(EE,"baseIsNaN");Ol.exports=EE});var Ul=p((_1,Pl)=>{"use strict";function RE(e,t,r){for(var n=r-1,o=e.length;++n<o;)if(e[n]===t)return n;return-1}a(RE,"strictIndexOf");Pl.exports=RE});var Dl=p((C1,ql)=>{"use strict";var vE=Cl(),_E=Ll(),xE=Ul();function CE(e,t,r){return t===t?xE(e,t,r):vE(e,_E,r)}a(CE,"baseIndexOf");ql.exports=CE});var ts=p((L1,kl)=>{"use strict";var OE=Dl();function LE(e,t){var r=e==null?0:e.length;return!!r&&OE(e,t,0)>-1}a(LE,"arrayIncludes");kl.exports=LE});var Nl=p((U1,Ml)=>{"use strict";function PE(e,t,r){for(var n=-1,o=e==null?0:e.length;++n<o;)if(r(t,e[n]))return!0;return!1}a(PE,"arrayIncludesWith");Ml.exports=PE});var rs=p((D1,Bl)=>{"use strict";function UE(e,t){return e.has(t)}a(UE,"cacheHas");Bl.exports=UE});var as=p((M1,Gl)=>{"use strict";var qE=Ut(),DE=_e(),kE=qE(DE,"Set");Gl.exports=kE});var ns=p((N1,Fl)=>{"use strict";function ME(){}a(ME,"noop");Fl.exports=ME});var In=p((G1,Wl)=>{"use strict";function NE(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}a(NE,"setToArray");Wl.exports=NE});var jl=p((W1,$l)=>{"use strict";var os=as(),BE=ns(),GE=In(),FE=1/0,WE=os&&1/GE(new os([,-0]))[1]==FE?function(e){return new os(e)}:BE;$l.exports=WE});var Kl=p(($1,Ql)=>{"use strict";var $E=es(),jE=ts(),QE=Nl(),KE=rs(),VE=jl(),HE=In(),YE=200;function zE(e,t,r){var n=-1,o=jE,s=e.length,i=!0,u=[],c=u;if(r)i=!1,o=QE;else if(s>=YE){var f=t?null:VE(e);if(f)return HE(f);i=!1,o=KE,c=new $E}else c=t?[]:u;e:for(;++n<s;){var g=e[n],h=t?t(g):g;if(g=r||g!==0?g:0,i&&h===h){for(var y=c.length;y--;)if(c[y]===h)continue e;t&&c.push(h),u.push(g)}else o(c,h,r)||(c!==u&&c.push(h),u.push(g))}return u}a(zE,"baseUniq");Ql.exports=zE});var Sn=p((Q1,Vl)=>{"use strict";var JE=9007199254740991;function XE(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=JE}a(XE,"isLength");Vl.exports=XE});var mr=p((V1,Hl)=>{"use strict";var ZE=da(),eR=Sn();function tR(e){return e!=null&&eR(e.length)&&!ZE(e)}a(tR,"isArrayLike");Hl.exports=tR});var ss=p((Y1,Yl)=>{"use strict";var rR=mr(),aR=ke();function nR(e){return aR(e)&&rR(e)}a(nR,"isArrayLikeObject");Yl.exports=nR});var Jl=p((J1,zl)=>{"use strict";var oR=Vo(),sR=Zo(),iR=Kl(),uR=ss(),cR=sR(function(e){return iR(oR(e,1,uR,!0))});zl.exports=cR});var Zl=p((X1,Xl)=>{"use strict";var pR=ga();function lR(){this.__data__=new pR,this.size=0}a(lR,"stackClear");Xl.exports=lR});var td=p((eW,ed)=>{"use strict";function dR(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}a(dR,"stackDelete");ed.exports=dR});var ad=p((rW,rd)=>{"use strict";function fR(e){return this.__data__.get(e)}a(fR,"stackGet");rd.exports=fR});var od=p((nW,nd)=>{"use strict";function mR(e){return this.__data__.has(e)}a(mR,"stackHas");nd.exports=mR});var id=p((sW,sd)=>{"use strict";var gR=ga(),hR=yn(),yR=An(),AR=200;function bR(e,t){var r=this.__data__;if(r instanceof gR){var n=r.__data__;if(!hR||n.length<AR-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new yR(n)}return r.set(e,t),this.size=r.size,this}a(bR,"stackSet");sd.exports=bR});var ya=p((uW,ud)=>{"use strict";var IR=ga(),SR=Zl(),wR=td(),TR=ad(),ER=od(),RR=id();function gr(e){var t=this.__data__=new IR(e);this.size=t.size}a(gr,"Stack");gr.prototype.clear=SR;gr.prototype.delete=wR;gr.prototype.get=TR;gr.prototype.has=ER;gr.prototype.set=RR;ud.exports=gr});var Aa=p((pW,pd)=>{"use strict";var cd=Jo();function vR(e,t,r){t=="__proto__"&&cd?cd(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}a(vR,"baseAssignValue");pd.exports=vR});var is=p((dW,ld)=>{"use strict";var _R=Aa(),xR=lr();function CR(e,t,r){(r!==void 0&&!xR(e[t],r)||r===void 0&&!(t in e))&&_R(e,t,r)}a(CR,"assignMergeValue");ld.exports=CR});var fd=p((mW,dd)=>{"use strict";function OR(e){return function(t,r,n){for(var o=-1,s=Object(t),i=n(t),u=i.length;u--;){var c=i[e?u:++o];if(r(s[c],c,s)===!1)break}return t}}a(OR,"createBaseFor");dd.exports=OR});var us=p((hW,md)=>{"use strict";var LR=fd(),PR=LR();md.exports=PR});var cs=p((ba,hr)=>{"use strict";var UR=_e(),Ad=typeof ba=="object"&&ba&&!ba.nodeType&&ba,gd=Ad&&typeof hr=="object"&&hr&&!hr.nodeType&&hr,qR=gd&&gd.exports===Ad,hd=qR?UR.Buffer:void 0,yd=hd?hd.allocUnsafe:void 0;function DR(e,t){if(t)return e.slice();var r=e.length,n=yd?yd(r):new e.constructor(r);return e.copy(n),n}a(DR,"cloneBuffer");hr.exports=DR});var ps=p((AW,bd)=>{"use strict";var kR=_e(),MR=kR.Uint8Array;bd.exports=MR});var wn=p((bW,Sd)=>{"use strict";var Id=ps();function NR(e){var t=new e.constructor(e.byteLength);return new Id(t).set(new Id(e)),t}a(NR,"cloneArrayBuffer");Sd.exports=NR});var ls=p((SW,wd)=>{"use strict";var BR=wn();function GR(e,t){var r=t?BR(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}a(GR,"cloneTypedArray");wd.exports=GR});var yr=p((TW,Td)=>{"use strict";function FR(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}a(FR,"copyArray");Td.exports=FR});var Ia=p((RW,Rd)=>{"use strict";var WR=je(),Ed=Object.create,$R=function(){function e(){}return a(e,"object"),function(t){if(!WR(t))return{};if(Ed)return Ed(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();Rd.exports=$R});var ds=p((_W,vd)=>{"use strict";function jR(e,t){return function(r){return e(t(r))}}a(jR,"overArg");vd.exports=jR});var Tn=p((CW,_d)=>{"use strict";var QR=ds(),KR=QR(Object.getPrototypeOf,Object);_d.exports=KR});var En=p((OW,xd)=>{"use strict";var VR=Object.prototype;function HR(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||VR;return e===r}a(HR,"isPrototype");xd.exports=HR});var fs=p((PW,Cd)=>{"use strict";var YR=Ia(),zR=Tn(),JR=En();function XR(e){return typeof e.constructor=="function"&&!JR(e)?YR(zR(e)):{}}a(XR,"initCloneObject");Cd.exports=XR});var Ld=p((qW,Od)=>{"use strict";function ZR(){return!1}a(ZR,"stubFalse");Od.exports=ZR});var wa=p((Sa,Ar)=>{"use strict";var ev=_e(),tv=Ld(),qd=typeof Sa=="object"&&Sa&&!Sa.nodeType&&Sa,Pd=qd&&typeof Ar=="object"&&Ar&&!Ar.nodeType&&Ar,rv=Pd&&Pd.exports===qd,Ud=rv?ev.Buffer:void 0,av=Ud?Ud.isBuffer:void 0,nv=av||tv;Ar.exports=nv});var ms=p((kW,kd)=>{"use strict";var ov=Pt(),sv=Tn(),iv=ke(),uv="[object Object]",cv=Function.prototype,pv=Object.prototype,Dd=cv.toString,lv=pv.hasOwnProperty,dv=Dd.call(Object);function fv(e){if(!iv(e)||ov(e)!=uv)return!1;var t=sv(e);if(t===null)return!0;var r=lv.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Dd.call(r)==dv}a(fv,"isPlainObject");kd.exports=fv});var Nd=p((NW,Md)=>{"use strict";var mv=Pt(),gv=Sn(),hv=ke(),yv="[object Arguments]",Av="[object Array]",bv="[object Boolean]",Iv="[object Date]",Sv="[object Error]",wv="[object Function]",Tv="[object Map]",Ev="[object Number]",Rv="[object Object]",vv="[object RegExp]",_v="[object Set]",xv="[object String]",Cv="[object WeakMap]",Ov="[object ArrayBuffer]",Lv="[object DataView]",Pv="[object Float32Array]",Uv="[object Float64Array]",qv="[object Int8Array]",Dv="[object Int16Array]",kv="[object Int32Array]",Mv="[object Uint8Array]",Nv="[object Uint8ClampedArray]",Bv="[object Uint16Array]",Gv="[object Uint32Array]",H={};H[Pv]=H[Uv]=H[qv]=H[Dv]=H[kv]=H[Mv]=H[Nv]=H[Bv]=H[Gv]=!0;H[yv]=H[Av]=H[Ov]=H[bv]=H[Lv]=H[Iv]=H[Sv]=H[wv]=H[Tv]=H[Ev]=H[Rv]=H[vv]=H[_v]=H[xv]=H[Cv]=!1;function Fv(e){return hv(e)&&gv(e.length)&&!!H[mv(e)]}a(Fv,"baseIsTypedArray");Md.exports=Fv});var Rn=p((GW,Bd)=>{"use strict";function Wv(e){return function(t){return e(t)}}a(Wv,"baseUnary");Bd.exports=Wv});var vn=p((Ta,br)=>{"use strict";var $v=Ko(),Gd=typeof Ta=="object"&&Ta&&!Ta.nodeType&&Ta,Ea=Gd&&typeof br=="object"&&br&&!br.nodeType&&br,jv=Ea&&Ea.exports===Gd,gs=jv&&$v.process,Qv=function(){try{var e=Ea&&Ea.require&&Ea.require("util").types;return e||gs&&gs.binding&&gs.binding("util")}catch{}}();br.exports=Qv});var _n=p((WW,$d)=>{"use strict";var Kv=Nd(),Vv=Rn(),Fd=vn(),Wd=Fd&&Fd.isTypedArray,Hv=Wd?Vv(Wd):Kv;$d.exports=Hv});var hs=p(($W,jd)=>{"use strict";function Yv(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}a(Yv,"safeGet");jd.exports=Yv});var ys=p((QW,Qd)=>{"use strict";var zv=Aa(),Jv=lr(),Xv=Object.prototype,Zv=Xv.hasOwnProperty;function e_(e,t,r){var n=e[t];(!(Zv.call(e,t)&&Jv(n,r))||r===void 0&&!(t in e))&&zv(e,t,r)}a(e_,"assignValue");Qd.exports=e_});var Ir=p((VW,Kd)=>{"use strict";var t_=ys(),r_=Aa();function a_(e,t,r,n){var o=!r;r||(r={});for(var s=-1,i=t.length;++s<i;){var u=t[s],c=n?n(r[u],e[u],u,r,e):void 0;c===void 0&&(c=e[u]),o?r_(r,u,c):t_(r,u,c)}return r}a(a_,"copyObject");Kd.exports=a_});var Hd=p((YW,Vd)=>{"use strict";function n_(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}a(n_,"baseTimes");Vd.exports=n_});var Ra=p((JW,Yd)=>{"use strict";var o_=9007199254740991,s_=/^(?:0|[1-9]\d*)$/;function i_(e,t){var r=typeof e;return t=t??o_,!!t&&(r=="number"||r!="symbol"&&s_.test(e))&&e>-1&&e%1==0&&e<t}a(i_,"isIndex");Yd.exports=i_});var As=p((ZW,zd)=>{"use strict";var u_=Hd(),c_=pa(),p_=Ee(),l_=wa(),d_=Ra(),f_=_n(),m_=Object.prototype,g_=m_.hasOwnProperty;function h_(e,t){var r=p_(e),n=!r&&c_(e),o=!r&&!n&&l_(e),s=!r&&!n&&!o&&f_(e),i=r||n||o||s,u=i?u_(e.length,String):[],c=u.length;for(var f in e)(t||g_.call(e,f))&&!(i&&(f=="length"||o&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||d_(f,c)))&&u.push(f);return u}a(h_,"arrayLikeKeys");zd.exports=h_});var Xd=p((t$,Jd)=>{"use strict";function y_(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}a(y_,"nativeKeysIn");Jd.exports=y_});var ef=p((a$,Zd)=>{"use strict";var A_=je(),b_=En(),I_=Xd(),S_=Object.prototype,w_=S_.hasOwnProperty;function T_(e){if(!A_(e))return I_(e);var t=b_(e),r=[];for(var n in e)n=="constructor"&&(t||!w_.call(e,n))||r.push(n);return r}a(T_,"baseKeysIn");Zd.exports=T_});var Sr=p((o$,tf)=>{"use strict";var E_=As(),R_=ef(),v_=mr();function __(e){return v_(e)?E_(e,!0):R_(e)}a(__,"keysIn");tf.exports=__});var af=p((i$,rf)=>{"use strict";var x_=Ir(),C_=Sr();function O_(e){return x_(e,C_(e))}a(O_,"toPlainObject");rf.exports=O_});var pf=p((c$,cf)=>{"use strict";var nf=is(),L_=cs(),P_=ls(),U_=yr(),q_=fs(),of=pa(),sf=Ee(),D_=ss(),k_=wa(),M_=da(),N_=je(),B_=ms(),G_=_n(),uf=hs(),F_=af();function W_(e,t,r,n,o,s,i){var u=uf(e,r),c=uf(t,r),f=i.get(c);if(f){nf(e,r,f);return}var g=s?s(u,c,r+"",e,t,i):void 0,h=g===void 0;if(h){var y=sf(c),E=!y&&k_(c),M=!y&&!E&&G_(c);g=c,y||E||M?sf(u)?g=u:D_(u)?g=U_(u):E?(h=!1,g=L_(c,!0)):M?(h=!1,g=P_(c,!0)):g=[]:B_(c)||of(c)?(g=u,of(u)?g=F_(u):(!N_(u)||M_(u))&&(g=q_(c))):h=!1}h&&(i.set(c,g),o(g,c,n,s,i),i.delete(c)),nf(e,r,g)}a(W_,"baseMergeDeep");cf.exports=W_});var ff=p((l$,df)=>{"use strict";var $_=ya(),j_=is(),Q_=us(),K_=pf(),V_=je(),H_=Sr(),Y_=hs();function lf(e,t,r,n,o){e!==t&&Q_(t,function(s,i){if(o||(o=new $_),V_(s))K_(e,t,i,r,lf,n,o);else{var u=n?n(Y_(e,i),s,i+"",e,t,o):void 0;u===void 0&&(u=s),j_(e,i,u)}},H_)}a(lf,"baseMerge");df.exports=lf});var gf=p((f$,mf)=>{"use strict";var z_=lr(),J_=mr(),X_=Ra(),Z_=je();function ex(e,t,r){if(!Z_(r))return!1;var n=typeof t;return(n=="number"?J_(r)&&X_(t,r.length):n=="string"&&t in r)?z_(r[t],e):!1}a(ex,"isIterateeCall");mf.exports=ex});var yf=p((g$,hf)=>{"use strict";var tx=Zo(),rx=gf();function ax(e){return tx(function(t,r){var n=-1,o=r.length,s=o>1?r[o-1]:void 0,i=o>2?r[2]:void 0;for(s=e.length>3&&typeof s=="function"?(o--,s):void 0,i&&rx(r[0],r[1],i)&&(s=o<3?void 0:s,o=1),t=Object(t);++n<o;){var u=r[n];u&&e(t,u,n,s)}return t})}a(ax,"createAssigner");hf.exports=ax});var bs=p((y$,Af)=>{"use strict";var nx=ff(),ox=yf(),sx=ox(function(e,t,r){nx(e,t,r)});Af.exports=sx});var Sm=p(Ue=>{"use strict";Ue.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"};Ue.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]};Ue.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]};Ue.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2};Ue.iterateeRearg={mapKeys:[1],reduceRight:[1,0]};Ue.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]};Ue.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}};Ue.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}};Ue.realToAlias=function(){var e=Object.prototype.hasOwnProperty,t=Ue.aliasToReal,r={};for(var n in t){var o=t[n];e.call(r,o)?r[o].push(n):r[o]=[n]}return r}();Ue.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"};Ue.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0};Ue.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}});var mi=p((RK,wm)=>{"use strict";wm.exports={}});var vm=p((vK,Rm)=>{"use strict";var me=Sm(),FC=mi(),Tm=Array.prototype.push;function WC(e,t){return t==2?function(r,n){return e.apply(void 0,arguments)}:function(r){return e.apply(void 0,arguments)}}a(WC,"baseArity");function gi(e,t){return t==2?function(r,n){return e(r,n)}:function(r){return e(r)}}a(gi,"baseAry");function Em(e){for(var t=e?e.length:0,r=Array(t);t--;)r[t]=e[t];return r}a(Em,"cloneArray");function $C(e){return function(t){return e({},t)}}a($C,"createCloner");function jC(e,t){return function(){for(var r=arguments.length,n=r-1,o=Array(r);r--;)o[r]=arguments[r];var s=o[t],i=o.slice(0,t);return s&&Tm.apply(i,s),t!=n&&Tm.apply(i,o.slice(t+1)),e.apply(this,i)}}a(jC,"flatSpread");function hi(e,t){return function(){var r=arguments.length;if(r){for(var n=Array(r);r--;)n[r]=arguments[r];var o=n[0]=t.apply(void 0,n);return e.apply(void 0,n),o}}}a(hi,"wrapImmutable");function yi(e,t,r,n){var o=typeof t=="function",s=t===Object(t);if(s&&(n=r,r=t,t=void 0),r==null)throw new TypeError;n||(n={});var i={cap:"cap"in n?n.cap:!0,curry:"curry"in n?n.curry:!0,fixed:"fixed"in n?n.fixed:!0,immutable:"immutable"in n?n.immutable:!0,rearg:"rearg"in n?n.rearg:!0},u=o?r:FC,c="curry"in n&&n.curry,f="fixed"in n&&n.fixed,g="rearg"in n&&n.rearg,h=o?r.runInContext():void 0,y=o?r:{ary:e.ary,assign:e.assign,clone:e.clone,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isError:e.isError,isFunction:e.isFunction,isWeakMap:e.isWeakMap,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,toInteger:e.toInteger,toPath:e.toPath},E=y.ary,M=y.assign,k=y.clone,D=y.curry,C=y.forEach,W=y.isArray,ye=y.isError,ie=y.isFunction,Ye=y.isWeakMap,nt=y.keys,ot=y.rearg,Y=y.toInteger,G=y.toPath,Gt=nt(me.aryMethod),Ya={castArray:function(R){return function(){var b=arguments[0];return W(b)?R(Em(b)):R.apply(void 0,arguments)}},iteratee:function(R){return function(){var b=arguments[0],I=arguments[1],v=R(b,I),q=v.length;return i.cap&&typeof I=="number"?(I=I>2?I-2:1,q&&q<=I?v:gi(v,I)):v}},mixin:function(R){return function(b){var I=this;if(!ie(I))return R(I,Object(b));var v=[];return C(nt(b),function(q){ie(b[q])&&v.push([q,I.prototype[q]])}),R(I,Object(b)),C(v,function(q){var oe=q[1];ie(oe)?I.prototype[q[0]]=oe:delete I.prototype[q[0]]}),I}},nthArg:function(R){return function(b){var I=b<0?1:Y(b)+1;return D(R(b),I)}},rearg:function(R){return function(b,I){var v=I?I.length:0;return D(R(b,I),v)}},runInContext:function(R){return function(b){return yi(e,R(b),n)}}};function O(R,b){if(i.cap){var I=me.iterateeRearg[R];if(I)return Z(b,I);var v=!o&&me.iterateeAry[R];if(v)return $(b,v)}return b}a(O,"castCap");function w(R,b,I){return c||i.curry&&I>1?D(b,I):b}a(w,"castCurry");function A(R,b,I){if(i.fixed&&(f||!me.skipFixed[R])){var v=me.methodSpread[R],q=v&&v.start;return q===void 0?E(b,I):jC(b,q)}return b}a(A,"castFixed");function _(R,b,I){return i.rearg&&I>1&&(g||!me.skipRearg[R])?ot(b,me.methodRearg[R]||me.aryRearg[I]):b}a(_,"castRearg");function S(R,b){b=G(b);for(var I=-1,v=b.length,q=v-1,oe=k(Object(R)),Re=oe;Re!=null&&++I<v;){var Fe=b[I],st=Re[Fe];st!=null&&!(ie(st)||ye(st)||Ye(st))&&(Re[Fe]=k(I==q?st:Object(st))),Re=Re[Fe]}return oe}a(S,"cloneByPath");function U(R){return K.runInContext.convert(R)(void 0)}a(U,"convertLib");function P(R,b){var I=me.aliasToReal[R]||R,v=me.remap[I]||I,q=n;return function(oe){var Re=o?h:y,Fe=o?h[v]:b,st=M(M({},q),oe);return yi(Re,I,Fe,st)}}a(P,"createConverter");function $(R,b){return ne(R,function(I){return typeof I=="function"?gi(I,b):I})}a($,"iterateeAry");function Z(R,b){return ne(R,function(I){var v=b.length;return WC(ot(gi(I,v),b),v)})}a(Z,"iterateeRearg");function ne(R,b){return function(){var I=arguments.length;if(!I)return R();for(var v=Array(I);I--;)v[I]=arguments[I];var q=i.rearg?0:I-1;return v[q]=b(v[q]),R.apply(void 0,v)}}a(ne,"overArg");function pe(R,b,I){var v,q=me.aliasToReal[R]||R,oe=b,Re=Ya[q];return Re?oe=Re(b):i.immutable&&(me.mutate.array[q]?oe=hi(b,Em):me.mutate.object[q]?oe=hi(b,$C(b)):me.mutate.set[q]&&(oe=hi(b,S))),C(Gt,function(Fe){return C(me.aryMethod[Fe],function(st){if(q==st){var Yu=me.methodSpread[q],CI=Yu&&Yu.afterRearg;return v=CI?A(q,_(q,oe,Fe),Fe):_(q,A(q,oe,Fe),Fe),v=O(q,v),v=w(q,v,Fe),!1}}),!v}),v||(v=oe),v==b&&(v=c?D(v,1):function(){return b.apply(this,arguments)}),v.convert=P(q,b),v.placeholder=b.placeholder=I,v}if(a(pe,"wrap"),!s)return pe(t,r,u);var K=r,Ge=[];return C(Gt,function(R){C(me.aryMethod[R],function(b){var I=K[me.remap[b]||b];I&&Ge.push([b,pe(b,I,K)])})}),C(nt(K),function(R){var b=K[R];if(typeof b=="function"){for(var I=Ge.length;I--;)if(Ge[I][0]==R)return;b.convert=P(R,b),Ge.push([R,b])}}),C(Ge,function(R){K[R[0]]=R[1]}),K.convert=U,K.placeholder=K,C(nt(K),function(R){C(me.realToAlias[R]||[],function(b){K[b]=K[R]})}),K}a(yi,"baseConvert");Rm.exports=yi});var Ai=p((xK,_m)=>{"use strict";var QC=Ut(),KC=_e(),VC=QC(KC,"WeakMap");_m.exports=VC});var bi=p((CK,Cm)=>{"use strict";var xm=Ai(),HC=xm&&new xm;Cm.exports=HC});var Ii=p((OK,Lm)=>{"use strict";var YC=la(),Om=bi(),zC=Om?function(e,t){return Om.set(e,t),e}:YC;Lm.exports=zC});var Da=p((LK,Pm)=>{"use strict";var JC=Ia(),XC=je();function ZC(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=JC(e.prototype),n=e.apply(r,t);return XC(n)?n:r}}a(ZC,"createCtor");Pm.exports=ZC});var qm=p((UK,Um)=>{"use strict";var eO=Da(),tO=_e(),rO=1;function aO(e,t,r){var n=t&rO,o=eO(e);function s(){var i=this&&this!==tO&&this instanceof s?o:e;return i.apply(n?r:this,arguments)}return a(s,"wrapper"),s}a(aO,"createBind");Um.exports=aO});var Si=p((DK,Dm)=>{"use strict";var nO=Math.max;function oO(e,t,r,n){for(var o=-1,s=e.length,i=r.length,u=-1,c=t.length,f=nO(s-i,0),g=Array(c+f),h=!n;++u<c;)g[u]=t[u];for(;++o<i;)(h||o<s)&&(g[r[o]]=e[o]);for(;f--;)g[u++]=e[o++];return g}a(oO,"composeArgs");Dm.exports=oO});var wi=p((MK,km)=>{"use strict";var sO=Math.max;function iO(e,t,r,n){for(var o=-1,s=e.length,i=-1,u=r.length,c=-1,f=t.length,g=sO(s-u,0),h=Array(g+f),y=!n;++o<g;)h[o]=e[o];for(var E=o;++c<f;)h[E+c]=t[c];for(;++i<u;)(y||o<s)&&(h[E+r[i]]=e[o++]);return h}a(iO,"composeArgsRight");km.exports=iO});var Nm=p((BK,Mm)=>{"use strict";function uO(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}a(uO,"countHolders");Mm.exports=uO});var Jn=p((FK,Bm)=>{"use strict";function cO(){}a(cO,"baseLodash");Bm.exports=cO});var Zn=p(($K,Gm)=>{"use strict";var pO=Ia(),lO=Jn(),dO=4294967295;function Xn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=dO,this.__views__=[]}a(Xn,"LazyWrapper");Xn.prototype=pO(lO.prototype);Xn.prototype.constructor=Xn;Gm.exports=Xn});var Ti=p((QK,Wm)=>{"use strict";var Fm=bi(),fO=ns(),mO=Fm?function(e){return Fm.get(e)}:fO;Wm.exports=mO});var jm=p((KK,$m)=>{"use strict";var gO={};$m.exports=gO});var Vm=p((VK,Km)=>{"use strict";var Qm=jm(),hO=Object.prototype,yO=hO.hasOwnProperty;function AO(e){for(var t=e.name+"",r=Qm[t],n=yO.call(Qm,t)?r.length:0;n--;){var o=r[n],s=o.func;if(s==null||s==e)return o.name}return t}a(AO,"getFuncName");Km.exports=AO});var Ei=p((YK,Hm)=>{"use strict";var bO=Ia(),IO=Jn();function eo(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}a(eo,"LodashWrapper");eo.prototype=bO(IO.prototype);eo.prototype.constructor=eo;Hm.exports=eo});var zm=p((JK,Ym)=>{"use strict";var SO=Zn(),wO=Ei(),TO=yr();function EO(e){if(e instanceof SO)return e.clone();var t=new wO(e.__wrapped__,e.__chain__);return t.__actions__=TO(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}a(EO,"wrapperClone");Ym.exports=EO});var Zm=p((ZK,Xm)=>{"use strict";var RO=Zn(),Jm=Ei(),vO=Jn(),_O=Ee(),xO=ke(),CO=zm(),OO=Object.prototype,LO=OO.hasOwnProperty;function to(e){if(xO(e)&&!_O(e)&&!(e instanceof RO)){if(e instanceof Jm)return e;if(LO.call(e,"__wrapped__"))return CO(e)}return new Jm(e)}a(to,"lodash");to.prototype=vO.prototype;to.prototype.constructor=to;Xm.exports=to});var tg=p((t2,eg)=>{"use strict";var PO=Zn(),UO=Ti(),qO=Vm(),DO=Zm();function kO(e){var t=qO(e),r=DO[t];if(typeof r!="function"||!(t in PO.prototype))return!1;if(e===r)return!0;var n=UO(r);return!!n&&e===n[0]}a(kO,"isLaziable");eg.exports=kO});var Ri=p((a2,rg)=>{"use strict";var MO=Ii(),NO=Xo(),BO=NO(MO);rg.exports=BO});var ng=p((n2,ag)=>{"use strict";var GO=/\{\n\/\* \[wrapped with (.+)\] \*/,FO=/,? & /;function WO(e){var t=e.match(GO);return t?t[1].split(FO):[]}a(WO,"getWrapDetails");ag.exports=WO});var sg=p((s2,og)=>{"use strict";var $O=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function jO(e,t){var r=t.length;if(!r)return e;var n=r-1;return t[n]=(r>1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace($O,`{
|
|
2
2
|
/* [wrapped with `+t+`] */
|
|
3
|
-
`)}a(jO,"insertWrapDetails");og.exports=jO});var ro=p((i2,ig)=>{"use strict";function QO(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}a(QO,"arrayEach");ig.exports=QO});var cg=p((c2,ug)=>{"use strict";var KO=ro(),VO=ts(),HO=1,YO=2,zO=8,JO=16,XO=32,ZO=64,eL=128,tL=256,rL=512,aL=[["ary",eL],["bind",HO],["bindKey",YO],["curry",zO],["curryRight",JO],["flip",rL],["partial",XO],["partialRight",ZO],["rearg",tL]];function nL(e,t){return KO(aL,function(r){var n="_."+r[0];t&r[1]&&!VO(e,n)&&e.push(n)}),e.sort()}a(nL,"updateWrapDetails");ug.exports=nL});var vi=p((l2,pg)=>{"use strict";var oL=ng(),sL=sg(),iL=hn(),uL=cg();function cL(e,t,r){var n=t+"";return iL(e,sL(n,uL(oL(n),r)))}a(cL,"setWrapToString");pg.exports=cL});var _i=p((f2,fg)=>{"use strict";var pL=tg(),lL=Ri(),dL=vi(),fL=1,mL=2,gL=4,hL=8,lg=32,dg=64;function yL(e,t,r,n,o,s,i,u,c,f){var g=t&hL,h=g?i:void 0,y=g?void 0:i,E=g?s:void 0,M=g?void 0:s;t|=g?lg:dg,t&=~(g?dg:lg),t&gL||(t&=~(fL|mL));var k=[e,t,o,E,h,M,y,u,c,f],D=r.apply(void 0,k);return pL(e)&&lL(D,k),D.placeholder=n,dL(D,e,t)}a(yL,"createRecurry");fg.exports=yL});var xi=p((g2,mg)=>{"use strict";function AL(e){var t=e;return t.placeholder}a(AL,"getHolder");mg.exports=AL});var hg=p((y2,gg)=>{"use strict";var bL=yr(),IL=Ra(),SL=Math.min;function wL(e,t){for(var r=e.length,n=SL(t.length,r),o=bL(e);n--;){var s=t[n];e[n]=IL(s,r)?o[s]:void 0}return e}a(wL,"reorder");gg.exports=wL});var ao=p((b2,Ag)=>{"use strict";var yg="__lodash_placeholder__";function TL(e,t){for(var r=-1,n=e.length,o=0,s=[];++r<n;){var i=e[r];(i===t||i===yg)&&(e[r]=yg,s[o++]=r)}return s}a(TL,"replaceHolders");Ag.exports=TL});var Ci=p((S2,Sg)=>{"use strict";var EL=Si(),RL=wi(),vL=Nm(),bg=Da(),_L=_i(),xL=xi(),CL=hg(),OL=ao(),LL=_e(),PL=1,UL=2,qL=8,DL=16,kL=128,ML=512;function Ig(e,t,r,n,o,s,i,u,c,f){var g=t&kL,h=t&PL,y=t&UL,E=t&(qL|DL),M=t&ML,k=y?void 0:bg(e);function D(){for(var C=arguments.length,W=Array(C),ye=C;ye--;)W[ye]=arguments[ye];if(E)var ie=xL(D),Ye=vL(W,ie);if(n&&(W=EL(W,n,o,E)),s&&(W=RL(W,s,i,E)),C-=Ye,E&&C<f){var nt=OL(W,ie);return _L(e,t,Ig,D.placeholder,r,W,nt,u,c,f-C)}var ot=h?r:this,Y=y?ot[e]:e;return C=W.length,u?W=CL(W,u):M&&C>1&&W.reverse(),g&&c<C&&(W.length=c),this&&this!==LL&&this instanceof D&&(Y=k||bg(Y)),Y.apply(ot,W)}return a(D,"wrapper"),D}a(Ig,"createHybrid");Sg.exports=Ig});var Tg=p((T2,wg)=>{"use strict";var NL=gn(),BL=Da(),GL=Ci(),FL=_i(),WL=xi(),$L=ao(),jL=_e();function QL(e,t,r){var n=BL(e);function o(){for(var s=arguments.length,i=Array(s),u=s,c=WL(o);u--;)i[u]=arguments[u];var f=s<3&&i[0]!==c&&i[s-1]!==c?[]:$L(i,c);if(s-=f.length,s<r)return FL(e,t,GL,o.placeholder,void 0,i,f,void 0,void 0,r-s);var g=this&&this!==jL&&this instanceof o?n:e;return NL(g,this,i)}return a(o,"wrapper"),o}a(QL,"createCurry");wg.exports=QL});var Rg=p((R2,Eg)=>{"use strict";var KL=gn(),VL=Da(),HL=_e(),YL=1;function zL(e,t,r,n){var o=t&YL,s=VL(e);function i(){for(var u=-1,c=arguments.length,f=-1,g=n.length,h=Array(g+c),y=this&&this!==HL&&this instanceof i?s:e;++f<g;)h[f]=n[f];for(;c--;)h[f++]=arguments[++u];return KL(y,o?r:this,h)}return a(i,"wrapper"),i}a(zL,"createPartial");Eg.exports=zL});var Lg=p((_2,Og)=>{"use strict";var JL=Si(),XL=wi(),vg=ao(),_g="__lodash_placeholder__",Oi=1,ZL=2,eP=4,xg=8,ka=128,Cg=256,tP=Math.min;function rP(e,t){var r=e[1],n=t[1],o=r|n,s=o<(Oi|ZL|ka),i=n==ka&&r==xg||n==ka&&r==Cg&&e[7].length<=t[8]||n==(ka|Cg)&&t[7].length<=t[8]&&r==xg;if(!(s||i))return e;n&Oi&&(e[2]=t[2],o|=r&Oi?0:eP);var u=t[3];if(u){var c=e[3];e[3]=c?JL(c,u,t[4]):u,e[4]=c?vg(e[3],_g):t[4]}return u=t[5],u&&(c=e[5],e[5]=c?XL(c,u,t[6]):u,e[6]=c?vg(e[5],_g):t[6]),u=t[7],u&&(e[7]=u),n&ka&&(e[8]=e[8]==null?t[8]:tP(e[8],t[8])),e[9]==null&&(e[9]=t[9]),e[0]=t[0],e[1]=o,e}a(rP,"mergeData");Og.exports=rP});var Ug=p((C2,Pg)=>{"use strict";var aP=/\s/;function nP(e){for(var t=e.length;t--&&aP.test(e.charAt(t)););return t}a(nP,"trimmedEndIndex");Pg.exports=nP});var Dg=p((L2,qg)=>{"use strict";var oP=Ug(),sP=/^\s+/;function iP(e){return e&&e.slice(0,oP(e)+1).replace(sP,"")}a(iP,"baseTrim");qg.exports=iP});var Cr=p((U2,kg)=>{"use strict";var uP=Pt(),cP=ke(),pP="[object Symbol]";function lP(e){return typeof e=="symbol"||cP(e)&&uP(e)==pP}a(lP,"isSymbol");kg.exports=lP});var Gg=p((D2,Bg)=>{"use strict";var dP=Dg(),Mg=je(),fP=Cr(),Ng=0/0,mP=/^[-+]0x[0-9a-f]+$/i,gP=/^0b[01]+$/i,hP=/^0o[0-7]+$/i,yP=parseInt;function AP(e){if(typeof e=="number")return e;if(fP(e))return Ng;if(Mg(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Mg(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=dP(e);var r=gP.test(e);return r||hP.test(e)?yP(e.slice(2),r?2:8):mP.test(e)?Ng:+e}a(AP,"toNumber");Bg.exports=AP});var $g=p((M2,Wg)=>{"use strict";var bP=Gg(),Fg=1/0,IP=17976931348623157e292;function SP(e){if(!e)return e===0?e:0;if(e=bP(e),e===Fg||e===-Fg){var t=e<0?-1:1;return t*IP}return e===e?e:0}a(SP,"toFinite");Wg.exports=SP});var Li=p((B2,jg)=>{"use strict";var wP=$g();function TP(e){var t=wP(e),r=t%1;return t===t?r?t-r:t:0}a(TP,"toInteger");jg.exports=TP});var no=p((F2,Yg)=>{"use strict";var EP=Ii(),RP=qm(),vP=Tg(),_P=Ci(),xP=Rg(),CP=Ti(),OP=Lg(),LP=Ri(),PP=vi(),Qg=Li(),UP="Expected a function",Kg=1,qP=2,Pi=8,Ui=16,qi=32,Vg=64,Hg=Math.max;function DP(e,t,r,n,o,s,i,u){var c=t&qP;if(!c&&typeof e!="function")throw new TypeError(UP);var f=n?n.length:0;if(f||(t&=~(qi|Vg),n=o=void 0),i=i===void 0?i:Hg(Qg(i),0),u=u===void 0?u:Qg(u),f-=o?o.length:0,t&Vg){var g=n,h=o;n=o=void 0}var y=c?void 0:CP(e),E=[e,t,r,n,o,g,h,s,i,u];if(y&&OP(E,y),e=E[0],t=E[1],r=E[2],n=E[3],o=E[4],u=E[9]=E[9]===void 0?c?0:e.length:Hg(E[9]-f,0),!u&&t&(Pi|Ui)&&(t&=~(Pi|Ui)),!t||t==Kg)var M=RP(e,t,r);else t==Pi||t==Ui?M=vP(e,t,u):(t==qi||t==(Kg|qi))&&!o.length?M=xP(e,t,r,n):M=_P.apply(void 0,E);var k=y?EP:LP;return PP(k(M,E),e,t)}a(DP,"createWrap");Yg.exports=DP});var Jg=p(($2,zg)=>{"use strict";var kP=no(),MP=128;function NP(e,t,r){return t=r?void 0:t,t=e&&t==null?e.length:t,kP(e,MP,void 0,void 0,void 0,void 0,t)}a(NP,"ary");zg.exports=NP});var Zg=p((Q2,Xg)=>{"use strict";var BP=ds(),GP=BP(Object.keys,Object);Xg.exports=GP});var Di=p((K2,eh)=>{"use strict";var FP=En(),WP=Zg(),$P=Object.prototype,jP=$P.hasOwnProperty;function QP(e){if(!FP(e))return WP(e);var t=[];for(var r in Object(e))jP.call(e,r)&&r!="constructor"&&t.push(r);return t}a(QP,"baseKeys");eh.exports=QP});var Or=p((H2,th)=>{"use strict";var KP=As(),VP=Di(),HP=mr();function YP(e){return HP(e)?KP(e):VP(e)}a(YP,"keys");th.exports=YP});var ki=p((z2,rh)=>{"use strict";var zP=Ir(),JP=Or();function XP(e,t){return e&&zP(t,JP(t),e)}a(XP,"baseAssign");rh.exports=XP});var nh=p((X2,ah)=>{"use strict";var ZP=Ir(),eU=Sr();function tU(e,t){return e&&ZP(t,eU(t),e)}a(tU,"baseAssignIn");ah.exports=tU});var sh=p((eV,oh)=>{"use strict";function rU(e,t){for(var r=-1,n=e==null?0:e.length,o=0,s=[];++r<n;){var i=e[r];t(i,r,e)&&(s[o++]=i)}return s}a(rU,"arrayFilter");oh.exports=rU});var Mi=p((rV,ih)=>{"use strict";function aU(){return[]}a(aU,"stubArray");ih.exports=aU});var oo=p((nV,ch)=>{"use strict";var nU=sh(),oU=Mi(),sU=Object.prototype,iU=sU.propertyIsEnumerable,uh=Object.getOwnPropertySymbols,uU=uh?function(e){return e==null?[]:(e=Object(e),nU(uh(e),function(t){return iU.call(e,t)}))}:oU;ch.exports=uU});var lh=p((oV,ph)=>{"use strict";var cU=Ir(),pU=oo();function lU(e,t){return cU(e,pU(e),t)}a(lU,"copySymbols");ph.exports=lU});var Ni=p((iV,dh)=>{"use strict";var dU=mn(),fU=Tn(),mU=oo(),gU=Mi(),hU=Object.getOwnPropertySymbols,yU=hU?function(e){for(var t=[];e;)dU(t,mU(e)),e=fU(e);return t}:gU;dh.exports=yU});var mh=p((uV,fh)=>{"use strict";var AU=Ir(),bU=Ni();function IU(e,t){return AU(e,bU(e),t)}a(IU,"copySymbolsIn");fh.exports=IU});var Bi=p((pV,gh)=>{"use strict";var SU=mn(),wU=Ee();function TU(e,t,r){var n=t(e);return wU(e)?n:SU(n,r(e))}a(TU,"baseGetAllKeys");gh.exports=TU});var Gi=p((dV,hh)=>{"use strict";var EU=Bi(),RU=oo(),vU=Or();function _U(e){return EU(e,vU,RU)}a(_U,"getAllKeys");hh.exports=_U});var Ah=p((mV,yh)=>{"use strict";var xU=Bi(),CU=Ni(),OU=Sr();function LU(e){return xU(e,OU,CU)}a(LU,"getAllKeysIn");yh.exports=LU});var Ih=p((hV,bh)=>{"use strict";var PU=Ut(),UU=_e(),qU=PU(UU,"DataView");bh.exports=qU});var wh=p((yV,Sh)=>{"use strict";var DU=Ut(),kU=_e(),MU=DU(kU,"Promise");Sh.exports=MU});var Pr=p((AV,Ch)=>{"use strict";var Fi=Ih(),Wi=yn(),$i=wh(),ji=as(),Qi=Ai(),xh=Pt(),Lr=zo(),Th="[object Map]",NU="[object Object]",Eh="[object Promise]",Rh="[object Set]",vh="[object WeakMap]",_h="[object DataView]",BU=Lr(Fi),GU=Lr(Wi),FU=Lr($i),WU=Lr(ji),$U=Lr(Qi),Xt=xh;(Fi&&Xt(new Fi(new ArrayBuffer(1)))!=_h||Wi&&Xt(new Wi)!=Th||$i&&Xt($i.resolve())!=Eh||ji&&Xt(new ji)!=Rh||Qi&&Xt(new Qi)!=vh)&&(Xt=a(function(e){var t=xh(e),r=t==NU?e.constructor:void 0,n=r?Lr(r):"";if(n)switch(n){case BU:return _h;case GU:return Th;case FU:return Eh;case WU:return Rh;case $U:return vh}return t},"getTag"));Ch.exports=Xt});var Lh=p((IV,Oh)=>{"use strict";var jU=Object.prototype,QU=jU.hasOwnProperty;function KU(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&QU.call(e,"index")&&(r.index=e.index,r.input=e.input),r}a(KU,"initCloneArray");Oh.exports=KU});var Uh=p((wV,Ph)=>{"use strict";var VU=wn();function HU(e,t){var r=t?VU(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}a(HU,"cloneDataView");Ph.exports=HU});var Dh=p((EV,qh)=>{"use strict";var YU=/\w*$/;function zU(e){var t=new e.constructor(e.source,YU.exec(e));return t.lastIndex=e.lastIndex,t}a(zU,"cloneRegExp");qh.exports=zU});var Gh=p((vV,Bh)=>{"use strict";var kh=Qt(),Mh=kh?kh.prototype:void 0,Nh=Mh?Mh.valueOf:void 0;function JU(e){return Nh?Object(Nh.call(e)):{}}a(JU,"cloneSymbol");Bh.exports=JU});var Wh=p((xV,Fh)=>{"use strict";var XU=wn(),ZU=Uh(),eq=Dh(),tq=Gh(),rq=ls(),aq="[object Boolean]",nq="[object Date]",oq="[object Map]",sq="[object Number]",iq="[object RegExp]",uq="[object Set]",cq="[object String]",pq="[object Symbol]",lq="[object ArrayBuffer]",dq="[object DataView]",fq="[object Float32Array]",mq="[object Float64Array]",gq="[object Int8Array]",hq="[object Int16Array]",yq="[object Int32Array]",Aq="[object Uint8Array]",bq="[object Uint8ClampedArray]",Iq="[object Uint16Array]",Sq="[object Uint32Array]";function wq(e,t,r){var n=e.constructor;switch(t){case lq:return XU(e);case aq:case nq:return new n(+e);case dq:return ZU(e,r);case fq:case mq:case gq:case hq:case yq:case Aq:case bq:case Iq:case Sq:return rq(e,r);case oq:return new n;case sq:case cq:return new n(e);case iq:return eq(e);case uq:return new n;case pq:return tq(e)}}a(wq,"initCloneByTag");Fh.exports=wq});var jh=p((OV,$h)=>{"use strict";var Tq=Pr(),Eq=ke(),Rq="[object Map]";function vq(e){return Eq(e)&&Tq(e)==Rq}a(vq,"baseIsMap");$h.exports=vq});var Hh=p((PV,Vh)=>{"use strict";var _q=jh(),xq=Rn(),Qh=vn(),Kh=Qh&&Qh.isMap,Cq=Kh?xq(Kh):_q;Vh.exports=Cq});var zh=p((UV,Yh)=>{"use strict";var Oq=Pr(),Lq=ke(),Pq="[object Set]";function Uq(e){return Lq(e)&&Oq(e)==Pq}a(Uq,"baseIsSet");Yh.exports=Uq});var ey=p((DV,Zh)=>{"use strict";var qq=zh(),Dq=Rn(),Jh=vn(),Xh=Jh&&Jh.isSet,kq=Xh?Dq(Xh):qq;Zh.exports=kq});var Ki=p((kV,ny)=>{"use strict";var Mq=ya(),Nq=ro(),Bq=ys(),Gq=ki(),Fq=nh(),Wq=cs(),$q=yr(),jq=lh(),Qq=mh(),Kq=Gi(),Vq=Ah(),Hq=Pr(),Yq=Lh(),zq=Wh(),Jq=fs(),Xq=Ee(),Zq=wa(),eD=Hh(),tD=je(),rD=ey(),aD=Or(),nD=Sr(),oD=1,sD=2,iD=4,ty="[object Arguments]",uD="[object Array]",cD="[object Boolean]",pD="[object Date]",lD="[object Error]",ry="[object Function]",dD="[object GeneratorFunction]",fD="[object Map]",mD="[object Number]",ay="[object Object]",gD="[object RegExp]",hD="[object Set]",yD="[object String]",AD="[object Symbol]",bD="[object WeakMap]",ID="[object ArrayBuffer]",SD="[object DataView]",wD="[object Float32Array]",TD="[object Float64Array]",ED="[object Int8Array]",RD="[object Int16Array]",vD="[object Int32Array]",_D="[object Uint8Array]",xD="[object Uint8ClampedArray]",CD="[object Uint16Array]",OD="[object Uint32Array]",V={};V[ty]=V[uD]=V[ID]=V[SD]=V[cD]=V[pD]=V[wD]=V[TD]=V[ED]=V[RD]=V[vD]=V[fD]=V[mD]=V[ay]=V[gD]=V[hD]=V[yD]=V[AD]=V[_D]=V[xD]=V[CD]=V[OD]=!0;V[lD]=V[ry]=V[bD]=!1;function so(e,t,r,n,o,s){var i,u=t&oD,c=t&sD,f=t&iD;if(r&&(i=o?r(e,n,o,s):r(e)),i!==void 0)return i;if(!tD(e))return e;var g=Xq(e);if(g){if(i=Yq(e),!u)return $q(e,i)}else{var h=Hq(e),y=h==ry||h==dD;if(Zq(e))return Wq(e,u);if(h==ay||h==ty||y&&!o){if(i=c||y?{}:Jq(e),!u)return c?Qq(e,Fq(i,e)):jq(e,Gq(i,e))}else{if(!V[h])return o?e:{};i=zq(e,h,u)}}s||(s=new Mq);var E=s.get(e);if(E)return E;s.set(e,i),rD(e)?e.forEach(function(D){i.add(so(D,t,r,D,e,s))}):eD(e)&&e.forEach(function(D,C){i.set(C,so(D,t,r,C,e,s))});var M=f?c?Vq:Kq:c?nD:aD,k=g?void 0:M(e);return Nq(k||e,function(D,C){k&&(C=D,D=e[C]),Bq(i,C,so(D,t,r,C,e,s))}),i}a(so,"baseClone");ny.exports=so});var sy=p((NV,oy)=>{"use strict";var LD=Ki(),PD=4;function UD(e){return LD(e,PD)}a(UD,"clone");oy.exports=UD});var uy=p((GV,iy)=>{"use strict";var qD=no(),DD=8;function Vi(e,t,r){t=r?void 0:t;var n=qD(e,DD,void 0,void 0,void 0,void 0,void 0,t);return n.placeholder=Vi.placeholder,n}a(Vi,"curry");Vi.placeholder={};iy.exports=Vi});var py=p((WV,cy)=>{"use strict";var kD=Pt(),MD=ke(),ND=ms(),BD="[object DOMException]",GD="[object Error]";function FD(e){if(!MD(e))return!1;var t=kD(e);return t==GD||t==BD||typeof e.message=="string"&&typeof e.name=="string"&&!ND(e)}a(FD,"isError");cy.exports=FD});var dy=p((jV,ly)=>{"use strict";var WD=Pr(),$D=ke(),jD="[object WeakMap]";function QD(e){return $D(e)&&WD(e)==jD}a(QD,"isWeakMap");ly.exports=QD});var my=p((KV,fy)=>{"use strict";function KD(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}a(KD,"arraySome");fy.exports=KD});var Hi=p((HV,gy)=>{"use strict";var VD=es(),HD=my(),YD=rs(),zD=1,JD=2;function XD(e,t,r,n,o,s){var i=r&zD,u=e.length,c=t.length;if(u!=c&&!(i&&c>u))return!1;var f=s.get(e),g=s.get(t);if(f&&g)return f==t&&g==e;var h=-1,y=!0,E=r&JD?new VD:void 0;for(s.set(e,t),s.set(t,e);++h<u;){var M=e[h],k=t[h];if(n)var D=i?n(k,M,h,t,e,s):n(M,k,h,e,t,s);if(D!==void 0){if(D)continue;y=!1;break}if(E){if(!HD(t,function(C,W){if(!YD(E,W)&&(M===C||o(M,C,r,n,s)))return E.push(W)})){y=!1;break}}else if(!(M===k||o(M,k,r,n,s))){y=!1;break}}return s.delete(e),s.delete(t),y}a(XD,"equalArrays");gy.exports=XD});var yy=p((zV,hy)=>{"use strict";function ZD(e){var t=-1,r=Array(e.size);return e.forEach(function(n,o){r[++t]=[o,n]}),r}a(ZD,"mapToArray");hy.exports=ZD});var wy=p((XV,Sy)=>{"use strict";var Ay=Qt(),by=ps(),ek=lr(),tk=Hi(),rk=yy(),ak=In(),nk=1,ok=2,sk="[object Boolean]",ik="[object Date]",uk="[object Error]",ck="[object Map]",pk="[object Number]",lk="[object RegExp]",dk="[object Set]",fk="[object String]",mk="[object Symbol]",gk="[object ArrayBuffer]",hk="[object DataView]",Iy=Ay?Ay.prototype:void 0,Yi=Iy?Iy.valueOf:void 0;function yk(e,t,r,n,o,s,i){switch(r){case hk:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case gk:return!(e.byteLength!=t.byteLength||!s(new by(e),new by(t)));case sk:case ik:case pk:return ek(+e,+t);case uk:return e.name==t.name&&e.message==t.message;case lk:case fk:return e==t+"";case ck:var u=rk;case dk:var c=n&nk;if(u||(u=ak),e.size!=t.size&&!c)return!1;var f=i.get(e);if(f)return f==t;n|=ok,i.set(e,t);var g=tk(u(e),u(t),n,o,s,i);return i.delete(e),g;case mk:if(Yi)return Yi.call(e)==Yi.call(t)}return!1}a(yk,"equalByTag");Sy.exports=yk});var Ry=p((eH,Ey)=>{"use strict";var Ty=Gi(),Ak=1,bk=Object.prototype,Ik=bk.hasOwnProperty;function Sk(e,t,r,n,o,s){var i=r&Ak,u=Ty(e),c=u.length,f=Ty(t),g=f.length;if(c!=g&&!i)return!1;for(var h=c;h--;){var y=u[h];if(!(i?y in t:Ik.call(t,y)))return!1}var E=s.get(e),M=s.get(t);if(E&&M)return E==t&&M==e;var k=!0;s.set(e,t),s.set(t,e);for(var D=i;++h<c;){y=u[h];var C=e[y],W=t[y];if(n)var ye=i?n(W,C,y,t,e,s):n(C,W,y,e,t,s);if(!(ye===void 0?C===W||o(C,W,r,n,s):ye)){k=!1;break}D||(D=y=="constructor")}if(k&&!D){var ie=e.constructor,Ye=t.constructor;ie!=Ye&&"constructor"in e&&"constructor"in t&&!(typeof ie=="function"&&ie instanceof ie&&typeof Ye=="function"&&Ye instanceof Ye)&&(k=!1)}return s.delete(e),s.delete(t),k}a(Sk,"equalObjects");Ey.exports=Sk});var Uy=p((rH,Py)=>{"use strict";var zi=ya(),wk=Hi(),Tk=wy(),Ek=Ry(),vy=Pr(),_y=Ee(),xy=wa(),Rk=_n(),vk=1,Cy="[object Arguments]",Oy="[object Array]",io="[object Object]",_k=Object.prototype,Ly=_k.hasOwnProperty;function xk(e,t,r,n,o,s){var i=_y(e),u=_y(t),c=i?Oy:vy(e),f=u?Oy:vy(t);c=c==Cy?io:c,f=f==Cy?io:f;var g=c==io,h=f==io,y=c==f;if(y&&xy(e)){if(!xy(t))return!1;i=!0,g=!1}if(y&&!g)return s||(s=new zi),i||Rk(e)?wk(e,t,r,n,o,s):Tk(e,t,c,r,n,o,s);if(!(r&vk)){var E=g&&Ly.call(e,"__wrapped__"),M=h&&Ly.call(t,"__wrapped__");if(E||M){var k=E?e.value():e,D=M?t.value():t;return s||(s=new zi),o(k,D,r,n,s)}}return y?(s||(s=new zi),Ek(e,t,r,n,o,s)):!1}a(xk,"baseIsEqualDeep");Py.exports=xk});var Ji=p((nH,ky)=>{"use strict";var Ck=Uy(),qy=ke();function Dy(e,t,r,n,o){return e===t?!0:e==null||t==null||!qy(e)&&!qy(t)?e!==e&&t!==t:Ck(e,t,r,n,Dy,o)}a(Dy,"baseIsEqual");ky.exports=Dy});var Ny=p((sH,My)=>{"use strict";var Ok=ya(),Lk=Ji(),Pk=1,Uk=2;function qk(e,t,r,n){var o=r.length,s=o,i=!n;if(e==null)return!s;for(e=Object(e);o--;){var u=r[o];if(i&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<s;){u=r[o];var c=u[0],f=e[c],g=u[1];if(i&&u[2]){if(f===void 0&&!(c in e))return!1}else{var h=new Ok;if(n)var y=n(f,g,c,e,t,h);if(!(y===void 0?Lk(g,f,Pk|Uk,n,h):y))return!1}}return!0}a(qk,"baseIsMatch");My.exports=qk});var Xi=p((uH,By)=>{"use strict";var Dk=je();function kk(e){return e===e&&!Dk(e)}a(kk,"isStrictComparable");By.exports=kk});var Fy=p((pH,Gy)=>{"use strict";var Mk=Xi(),Nk=Or();function Bk(e){for(var t=Nk(e),r=t.length;r--;){var n=t[r],o=e[n];t[r]=[n,o,Mk(o)]}return t}a(Bk,"getMatchData");Gy.exports=Bk});var Zi=p((dH,Wy)=>{"use strict";function Gk(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}a(Gk,"matchesStrictComparable");Wy.exports=Gk});var jy=p((mH,$y)=>{"use strict";var Fk=Ny(),Wk=Fy(),$k=Zi();function jk(e){var t=Wk(e);return t.length==1&&t[0][2]?$k(t[0][0],t[0][1]):function(r){return r===e||Fk(r,e,t)}}a(jk,"baseMatches");$y.exports=jk});var uo=p((hH,Qy)=>{"use strict";var Qk=Ee(),Kk=Cr(),Vk=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hk=/^\w*$/;function Yk(e,t){if(Qk(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Kk(e)?!0:Hk.test(e)||!Vk.test(e)||t!=null&&e in Object(t)}a(Yk,"isKey");Qy.exports=Yk});var Hy=p((AH,Vy)=>{"use strict";var Ky=An(),zk="Expected a function";function eu(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(zk);var r=a(function(){var n=arguments,o=t?t.apply(this,n):n[0],s=r.cache;if(s.has(o))return s.get(o);var i=e.apply(this,n);return r.cache=s.set(o,i)||s,i},"memoized");return r.cache=new(eu.Cache||Ky),r}a(eu,"memoize");eu.Cache=Ky;Vy.exports=eu});var zy=p((IH,Yy)=>{"use strict";var Jk=Hy(),Xk=500;function Zk(e){var t=Jk(e,function(n){return r.size===Xk&&r.clear(),n}),r=t.cache;return t}a(Zk,"memoizeCapped");Yy.exports=Zk});var tu=p((wH,Jy)=>{"use strict";var eM=zy(),tM=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rM=/\\(\\)?/g,aM=eM(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(tM,function(r,n,o,s){t.push(o?s.replace(rM,"$1"):n||r)}),t});Jy.exports=aM});var ru=p((TH,Xy)=>{"use strict";function nM(e,t){for(var r=-1,n=e==null?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}a(nM,"arrayMap");Xy.exports=nM});var nA=p((RH,aA)=>{"use strict";var Zy=Qt(),oM=ru(),sM=Ee(),iM=Cr(),uM=1/0,eA=Zy?Zy.prototype:void 0,tA=eA?eA.toString:void 0;function rA(e){if(typeof e=="string")return e;if(sM(e))return oM(e,rA)+"";if(iM(e))return tA?tA.call(e):"";var t=e+"";return t=="0"&&1/e==-uM?"-0":t}a(rA,"baseToString");aA.exports=rA});var au=p((_H,oA)=>{"use strict";var cM=nA();function pM(e){return e==null?"":cM(e)}a(pM,"toString");oA.exports=pM});var nu=p((CH,sA)=>{"use strict";var lM=Ee(),dM=uo(),fM=tu(),mM=au();function gM(e,t){return lM(e)?e:dM(e,t)?[e]:fM(mM(e))}a(gM,"castPath");sA.exports=gM});var Ur=p((LH,iA)=>{"use strict";var hM=Cr(),yM=1/0;function AM(e){if(typeof e=="string"||hM(e))return e;var t=e+"";return t=="0"&&1/e==-yM?"-0":t}a(AM,"toKey");iA.exports=AM});var ou=p((UH,uA)=>{"use strict";var bM=nu(),IM=Ur();function SM(e,t){t=bM(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[IM(t[r++])];return r&&r==n?e:void 0}a(SM,"baseGet");uA.exports=SM});var pA=p((DH,cA)=>{"use strict";var wM=ou();function TM(e,t,r){var n=e==null?void 0:wM(e,t);return n===void 0?r:n}a(TM,"get");cA.exports=TM});var dA=p((MH,lA)=>{"use strict";function EM(e,t){return e!=null&&t in Object(e)}a(EM,"baseHasIn");lA.exports=EM});var mA=p((BH,fA)=>{"use strict";var RM=nu(),vM=pa(),_M=Ee(),xM=Ra(),CM=Sn(),OM=Ur();function LM(e,t,r){t=RM(t,e);for(var n=-1,o=t.length,s=!1;++n<o;){var i=OM(t[n]);if(!(s=e!=null&&r(e,i)))break;e=e[i]}return s||++n!=o?s:(o=e==null?0:e.length,!!o&&CM(o)&&xM(i,o)&&(_M(e)||vM(e)))}a(LM,"hasPath");fA.exports=LM});var hA=p((FH,gA)=>{"use strict";var PM=dA(),UM=mA();function qM(e,t){return e!=null&&UM(e,t,PM)}a(qM,"hasIn");gA.exports=qM});var AA=p(($H,yA)=>{"use strict";var DM=Ji(),kM=pA(),MM=hA(),NM=uo(),BM=Xi(),GM=Zi(),FM=Ur(),WM=1,$M=2;function jM(e,t){return NM(e)&&BM(t)?GM(FM(e),t):function(r){var n=kM(r,e);return n===void 0&&n===t?MM(r,e):DM(t,n,WM|$M)}}a(jM,"baseMatchesProperty");yA.exports=jM});var IA=p((QH,bA)=>{"use strict";function QM(e){return function(t){return t?.[e]}}a(QM,"baseProperty");bA.exports=QM});var wA=p((VH,SA)=>{"use strict";var KM=ou();function VM(e){return function(t){return KM(t,e)}}a(VM,"basePropertyDeep");SA.exports=VM});var EA=p((YH,TA)=>{"use strict";var HM=IA(),YM=wA(),zM=uo(),JM=Ur();function XM(e){return zM(e)?HM(JM(e)):YM(e)}a(XM,"property");TA.exports=XM});var su=p((JH,RA)=>{"use strict";var ZM=jy(),eN=AA(),tN=la(),rN=Ee(),aN=EA();function nN(e){return typeof e=="function"?e:e==null?tN:typeof e=="object"?rN(e)?eN(e[0],e[1]):ZM(e):aN(e)}a(nN,"baseIteratee");RA.exports=nN});var _A=p((ZH,vA)=>{"use strict";var oN=Ki(),sN=su(),iN=1;function uN(e){return sN(typeof e=="function"?e:oN(e,iN))}a(uN,"iteratee");vA.exports=uN});var CA=p((tY,xA)=>{"use strict";var cN=Vo();function pN(e){var t=e==null?0:e.length;return t?cN(e,1):[]}a(pN,"flatten");xA.exports=pN});var LA=p((aY,OA)=>{"use strict";var lN=CA(),dN=Ho(),fN=hn();function mN(e){return fN(dN(e,void 0,lN),e+"")}a(mN,"flatRest");OA.exports=mN});var UA=p((oY,PA)=>{"use strict";var gN=no(),hN=LA(),yN=256,AN=hN(function(e,t){return gN(e,yN,void 0,void 0,void 0,t)});PA.exports=AN});var DA=p((sY,qA)=>{"use strict";var bN=ru(),IN=yr(),SN=Ee(),wN=Cr(),TN=tu(),EN=Ur(),RN=au();function vN(e){return SN(e)?bN(e,EN):wN(e)?[e]:IN(TN(RN(e)))}a(vN,"toPath");qA.exports=vN});var MA=p((uY,kA)=>{"use strict";kA.exports={ary:Jg(),assign:ki(),clone:sy(),curry:uy(),forEach:ro(),isArray:Ee(),isError:py(),isFunction:da(),isWeakMap:dy(),iteratee:_A(),keys:Di(),rearg:UA(),toInteger:Li(),toPath:DA()}});var BA=p((cY,NA)=>{"use strict";var _N=vm(),xN=MA();function CN(e,t,r){return _N(xN,e,t,r)}a(CN,"convert");NA.exports=CN});var iu=p((lY,FA)=>{"use strict";var ON=BA(),GA=ON("merge",bs());GA.placeholder=mi();FA.exports=GA});var KA=p((uu,cu)=>{"use strict";(function(e,t){typeof uu=="object"&&typeof cu<"u"?cu.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs=t()})(uu,function(){"use strict";var e=1e3,t=6e4,r=36e5,n="millisecond",o="second",s="minute",i="hour",u="day",c="week",f="month",g="quarter",h="year",y="date",E="Invalid Date",M=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,k=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,D={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(O){var w=["th","st","nd","rd"],A=O%100;return"["+O+(w[(A-20)%10]||w[A]||w[0])+"]"}},C=a(function(O,w,A){var _=String(O);return!_||_.length>=w?O:""+Array(w+1-_.length).join(A)+O},"m"),W={s:C,z:function(O){var w=-O.utcOffset(),A=Math.abs(w),_=Math.floor(A/60),S=A%60;return(w<=0?"+":"-")+C(_,2,"0")+":"+C(S,2,"0")},m:a(function O(w,A){if(w.date()<A.date())return-O(A,w);var _=12*(A.year()-w.year())+(A.month()-w.month()),S=w.clone().add(_,f),U=A-S<0,P=w.clone().add(_+(U?-1:1),f);return+(-(_+(A-S)/(U?S-P:P-S))||0)},"t"),a:function(O){return O<0?Math.ceil(O)||0:Math.floor(O)},p:function(O){return{M:f,y:h,w:c,d:u,D:y,h:i,m:s,s:o,ms:n,Q:g}[O]||String(O||"").toLowerCase().replace(/s$/,"")},u:function(O){return O===void 0}},ye="en",ie={};ie[ye]=D;var Ye="$isDayjsObject",nt=a(function(O){return O instanceof Gt||!(!O||!O[Ye])},"S"),ot=a(function O(w,A,_){var S;if(!w)return ye;if(typeof w=="string"){var U=w.toLowerCase();ie[U]&&(S=U),A&&(ie[U]=A,S=U);var P=w.split("-");if(!S&&P.length>1)return O(P[0])}else{var $=w.name;ie[$]=w,S=$}return!_&&S&&(ye=S),S||!_&&ye},"t"),Y=a(function(O,w){if(nt(O))return O.clone();var A=typeof w=="object"?w:{};return A.date=O,A.args=arguments,new Gt(A)},"O"),G=W;G.l=ot,G.i=nt,G.w=function(O,w){return Y(O,{locale:w.$L,utc:w.$u,x:w.$x,$offset:w.$offset})};var Gt=function(){function O(A){this.$L=ot(A.locale,null,!0),this.parse(A),this.$x=this.$x||A.x||{},this[Ye]=!0}a(O,"M");var w=O.prototype;return w.parse=function(A){this.$d=function(_){var S=_.date,U=_.utc;if(S===null)return new Date(NaN);if(G.u(S))return new Date;if(S instanceof Date)return new Date(S);if(typeof S=="string"&&!/Z$/i.test(S)){var P=S.match(M);if(P){var $=P[2]-1||0,Z=(P[7]||"0").substring(0,3);return U?new Date(Date.UTC(P[1],$,P[3]||1,P[4]||0,P[5]||0,P[6]||0,Z)):new Date(P[1],$,P[3]||1,P[4]||0,P[5]||0,P[6]||0,Z)}}return new Date(S)}(A),this.init()},w.init=function(){var A=this.$d;this.$y=A.getFullYear(),this.$M=A.getMonth(),this.$D=A.getDate(),this.$W=A.getDay(),this.$H=A.getHours(),this.$m=A.getMinutes(),this.$s=A.getSeconds(),this.$ms=A.getMilliseconds()},w.$utils=function(){return G},w.isValid=function(){return this.$d.toString()!==E},w.isSame=function(A,_){var S=Y(A);return this.startOf(_)<=S&&S<=this.endOf(_)},w.isAfter=function(A,_){return Y(A)<this.startOf(_)},w.isBefore=function(A,_){return this.endOf(_)<Y(A)},w.$g=function(A,_,S){return G.u(A)?this[_]:this.set(S,A)},w.unix=function(){return Math.floor(this.valueOf()/1e3)},w.valueOf=function(){return this.$d.getTime()},w.startOf=function(A,_){var S=this,U=!!G.u(_)||_,P=G.p(A),$=a(function(I,v){var q=G.w(S.$u?Date.UTC(S.$y,v,I):new Date(S.$y,v,I),S);return U?q:q.endOf(u)},"l"),Z=a(function(I,v){return G.w(S.toDate()[I].apply(S.toDate("s"),(U?[0,0,0,0]:[23,59,59,999]).slice(v)),S)},"$"),ne=this.$W,pe=this.$M,K=this.$D,Ge="set"+(this.$u?"UTC":"");switch(P){case h:return U?$(1,0):$(31,11);case f:return U?$(1,pe):$(0,pe+1);case c:var R=this.$locale().weekStart||0,b=(ne<R?ne+7:ne)-R;return $(U?K-b:K+(6-b),pe);case u:case y:return Z(Ge+"Hours",0);case i:return Z(Ge+"Minutes",1);case s:return Z(Ge+"Seconds",2);case o:return Z(Ge+"Milliseconds",3);default:return this.clone()}},w.endOf=function(A){return this.startOf(A,!1)},w.$set=function(A,_){var S,U=G.p(A),P="set"+(this.$u?"UTC":""),$=(S={},S[u]=P+"Date",S[y]=P+"Date",S[f]=P+"Month",S[h]=P+"FullYear",S[i]=P+"Hours",S[s]=P+"Minutes",S[o]=P+"Seconds",S[n]=P+"Milliseconds",S)[U],Z=U===u?this.$D+(_-this.$W):_;if(U===f||U===h){var ne=this.clone().set(y,1);ne.$d[$](Z),ne.init(),this.$d=ne.set(y,Math.min(this.$D,ne.daysInMonth())).$d}else $&&this.$d[$](Z);return this.init(),this},w.set=function(A,_){return this.clone().$set(A,_)},w.get=function(A){return this[G.p(A)]()},w.add=function(A,_){var S,U=this;A=Number(A);var P=G.p(_),$=a(function(pe){var K=Y(U);return G.w(K.date(K.date()+Math.round(pe*A)),U)},"y");if(P===f)return this.set(f,this.$M+A);if(P===h)return this.set(h,this.$y+A);if(P===u)return $(1);if(P===c)return $(7);var Z=(S={},S[s]=t,S[i]=r,S[o]=e,S)[P]||1,ne=this.$d.getTime()+A*Z;return G.w(ne,this)},w.subtract=function(A,_){return this.add(-1*A,_)},w.format=function(A){var _=this,S=this.$locale();if(!this.isValid())return S.invalidDate||E;var U=A||"YYYY-MM-DDTHH:mm:ssZ",P=G.z(this),$=this.$H,Z=this.$m,ne=this.$M,pe=S.weekdays,K=S.months,Ge=S.meridiem,R=a(function(v,q,oe,Re){return v&&(v[q]||v(_,U))||oe[q].slice(0,Re)},"h"),b=a(function(v){return G.s($%12||12,v,"0")},"d"),I=Ge||function(v,q,oe){var Re=v<12?"AM":"PM";return oe?Re.toLowerCase():Re};return U.replace(k,function(v,q){return q||function(oe){switch(oe){case"YY":return String(_.$y).slice(-2);case"YYYY":return G.s(_.$y,4,"0");case"M":return ne+1;case"MM":return G.s(ne+1,2,"0");case"MMM":return R(S.monthsShort,ne,K,3);case"MMMM":return R(K,ne);case"D":return _.$D;case"DD":return G.s(_.$D,2,"0");case"d":return String(_.$W);case"dd":return R(S.weekdaysMin,_.$W,pe,2);case"ddd":return R(S.weekdaysShort,_.$W,pe,3);case"dddd":return pe[_.$W];case"H":return String($);case"HH":return G.s($,2,"0");case"h":return b(1);case"hh":return b(2);case"a":return I($,Z,!0);case"A":return I($,Z,!1);case"m":return String(Z);case"mm":return G.s(Z,2,"0");case"s":return String(_.$s);case"ss":return G.s(_.$s,2,"0");case"SSS":return G.s(_.$ms,3,"0");case"Z":return P}return null}(v)||P.replace(":","")})},w.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},w.diff=function(A,_,S){var U,P=this,$=G.p(_),Z=Y(A),ne=(Z.utcOffset()-this.utcOffset())*t,pe=this-Z,K=a(function(){return G.m(P,Z)},"D");switch($){case h:U=K()/12;break;case f:U=K();break;case g:U=K()/3;break;case c:U=(pe-ne)/6048e5;break;case u:U=(pe-ne)/864e5;break;case i:U=pe/r;break;case s:U=pe/t;break;case o:U=pe/e;break;default:U=pe}return S?U:G.a(U)},w.daysInMonth=function(){return this.endOf(f).$D},w.$locale=function(){return ie[this.$L]},w.locale=function(A,_){if(!A)return this.$L;var S=this.clone(),U=ot(A,_,!0);return U&&(S.$L=U),S},w.clone=function(){return G.w(this.$d,this)},w.toDate=function(){return new Date(this.valueOf())},w.toJSON=function(){return this.isValid()?this.toISOString():null},w.toISOString=function(){return this.$d.toISOString()},w.toString=function(){return this.$d.toUTCString()},O}(),Ya=Gt.prototype;return Y.prototype=Ya,[["$ms",n],["$s",o],["$m",s],["$H",i],["$W",u],["$M",f],["$y",h],["$D",y]].forEach(function(O){Ya[O[1]]=function(w){return this.$g(w,O[0],O[1])}}),Y.extend=function(O,w){return O.$i||(O(w,Gt,Y),O.$i=!0),Y},Y.locale=ot,Y.isDayjs=nt,Y.unix=function(O){return Y(1e3*O)},Y.en=ie[ye],Y.Ls=ie,Y.p={},Y})});var jb=p((x4,$b)=>{"use strict";function XN(e,t,r,n){for(var o=-1,s=e==null?0:e.length;++o<s;){var i=e[o];t(n,i,r(i),e)}return n}a(XN,"arrayAggregator");$b.exports=XN});var Kb=p((O4,Qb)=>{"use strict";var ZN=us(),eB=Or();function tB(e,t){return e&&ZN(e,t,eB)}a(tB,"baseForOwn");Qb.exports=tB});var Hb=p((P4,Vb)=>{"use strict";var rB=mr();function aB(e,t){return function(r,n){if(r==null)return r;if(!rB(r))return e(r,n);for(var o=r.length,s=t?o:-1,i=Object(r);(t?s--:++s<o)&&n(i[s],s,i)!==!1;);return r}}a(aB,"createBaseEach");Vb.exports=aB});var zb=p((q4,Yb)=>{"use strict";var nB=Kb(),oB=Hb(),sB=oB(nB);Yb.exports=sB});var Xb=p((D4,Jb)=>{"use strict";var iB=zb();function uB(e,t,r,n){return iB(e,function(o,s,i){t(n,o,r(o),i)}),n}a(uB,"baseAggregator");Jb.exports=uB});var eI=p((M4,Zb)=>{"use strict";var cB=jb(),pB=Xb(),lB=su(),dB=Ee();function fB(e,t){return function(r,n){var o=dB(r)?cB:pB,s=t?t():{};return o(r,e,lB(n,2),s)}}a(fB,"createAggregator");Zb.exports=fB});var rI=p((B4,tI)=>{"use strict";var mB=Aa(),gB=eI(),hB=Object.prototype,yB=hB.hasOwnProperty,AB=gB(function(e,t,r){yB.call(e,r)?e[r].push(t):mB(e,r,[t])});tI.exports=AB});var FB={};x(FB,{Method:()=>Ro,ai:()=>Hu,api:()=>wu,auditLogs:()=>kt,automations:()=>Qn,backups:()=>Ne,branding:()=>Un,constants:()=>aa,environmentVariables:()=>mt,features:()=>Ze,groups:()=>re,init:()=>Im,licensing:()=>ct,logger:()=>Zt,mappers:()=>ce,middleware:()=>hu,plugins:()=>Kn,publicApi:()=>Yn,quotas:()=>ft,scimGroups:()=>qr,scimUsers:()=>qe,sdk:()=>pu,users:()=>Wn,utils:()=>cr});module.exports=DI(FB);var Ro=(s=>(s.POST="POST",s.GET="GET",s.PATCH="PATCH",s.DELETE="DELETE",s.PUT="PUT",s))(Ro||{});var pu={};x(pu,{ai:()=>Ms,auditLogs:()=>kt,automations:()=>Qn,backups:()=>Ne,branding:()=>Un,environmentVariables:()=>mt,features:()=>Ze,groups:()=>re,init:()=>Im,licensing:()=>ct,logger:()=>Zt,plugins:()=>Kn,publicApi:()=>Yn,quotas:()=>ft,scimGroups:()=>qr,scimUsers:()=>qe,users:()=>Wn,utils:()=>cr});var Un={};x(Un,{getBrandingConfig:()=>xx});var Ze={};x(Ze,{checkBackups:()=>xe,checkFeature:()=>Ln,checkFeatures:()=>Os,checkSCIM:()=>Ds,isAppBuildersEnabled:()=>Us,isAuditLogsEnabled:()=>Pn,isBackupsEnabled:()=>Ls,isBrandingEnabled:()=>Ps,isEnforceableSSO:()=>Uf,isExpandedPublicApiEnabled:()=>It,isPWAEnabled:()=>Sx,isPkceOidcEnabled:()=>Tx,isRecaptchaEnabled:()=>wx,isSSOEnforced:()=>Ex,isSyncAutomationsEnabled:()=>bx,isTriggerAutomationRunEnabled:()=>Ix,isUserGroupsEnabled:()=>qs,isViewPermissionEnabled:()=>Rx,isViewReadonlyColumnsEnabled:()=>vx});var bt=require("@budibase/backend-core"),Ae=require("@budibase/types");var ct={};x(ct,{cache:()=>Je,client:()=>Lt,features:()=>dn,getFreeLicense:()=>_s,getLicense:()=>Rs,getLicenseFromKey:()=>vs,keys:()=>Cs,offline:()=>xn,quotas:()=>fn});var Je={};x(Je,{getCachedLicense:()=>Lf,invalidate:()=>Pf,refresh:()=>Kt});var za=require("@budibase/backend-core");var kr,kI=a(async()=>{kr=await za.RedisClient.init(za.redis.utils.Databases.LICENSES)},"init"),MI=a(async()=>{kr&&await kr.finish()},"shutdown");process.on("exit",async()=>{await MI()});var vo=a(async()=>(kr||await kI(),kr),"getClient");var Lt={};x(Lt,{activateLicenseKey:()=>Wo,getLicense:()=>ir,getLicenseFromKey:()=>Fo,triggerQuota:()=>TS});var Ju=F(require("node-fetch"));var Xu=require("@budibase/backend-core"),_o=require("dd-trace"),Zu=require("dd-trace/ext/formats");var xo=class{constructor(t){this.apiCall=t=>async(r="",n={})=>await _o.tracer.trace(`api.${t}`,async o=>{o.setTag("url",r);let s={...n.headers};s["Content-Type"]||(s["Content-Type"]="application/json",s.Accept="application/json");let i=s["Content-Type"]==="application/json";Xu.logging.correlation.setHeader(s),_o.tracer.inject(o,Zu.HTTP_HEADERS,s);let u={method:t,body:i?JSON.stringify(n.body):n.body,headers:s,credentials:"include"};return(0,Ju.default)(`${this.host}${r}`,u)});this.post=this.apiCall("POST");this.get=this.apiCall("GET");this.patch=this.apiCall("PATCH");this.del=this.apiCall("DELETE");this.put=this.apiCall("PUT");this.host=t}static{a(this,"API")}},Co=xo;var ec=require("@budibase/backend-core");var{getProxyDispatcher:BI}=ec.utils;async function Ja(e,t,r){let n=BI({rejectUnauthorized:r?.rejectUnauthorized});return n?(console.log("[proxyFetch] Using proxy for request",{url:typeof e=="string"?e:e instanceof URL?e.href:e.url,hasDispatcher:!0,rejectUnauthorized:r?.rejectUnauthorized}),fetch(e,{...t,dispatcher:n})):(console.log("[proxyFetch] No proxy configured, using direct fetch",{url:typeof e=="string"?e:e instanceof URL?e.href:e.url}),fetch(e,t))}a(Ja,"proxyFetch");var cn=require("@budibase/types"),B=require("@budibase/backend-core");var it={};x(it,{bustCache:()=>Po,getCurrentUsageValues:()=>uc,getQuotaUsage:()=>Ft,setAllUsage:()=>qo,setAppUsageValue:()=>Uo,setUsage:()=>oc,setUsagePerApp:()=>sc,utils:()=>Gr});var Le=require("@budibase/backend-core"),ve=require("@budibase/types");var Gr={};x(Gr,{generateBaseQuotaUsage:()=>Za,generateNewMonthlyQuotas:()=>Br,generateNewQuotaUsage:()=>Lo,getBreakdownName:()=>tn,getCurrentMonthString:()=>xt,getQuotaDocId:()=>Nr,setCurrentMonth:()=>en,setQuotaReset:()=>Oo});var Mr=require("@budibase/backend-core"),Xa=require("@budibase/shared-core"),le=require("@budibase/types");var Nr=a(()=>Mr.context.isSelfHostUsingCloud()?`quota_usage_${Mr.context.getTenantId()}`:Mr.db.StaticDatabases.GLOBAL.docs.usageQuota,"getQuotaDocId"),tc=a(()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth()+1,1).toISOString()},"getNextQuotaReset"),Oo=a(e=>{e.quotaReset=tc()},"setQuotaReset"),xt=a(()=>{let e=new Date,t=e.getMonth()+1,r=e.getFullYear();return`${t}-${r}`},"getCurrentMonthString"),Za=a(()=>({usageQuota:{[le.StaticQuotaName.WORKSPACES]:0,[le.StaticQuotaName.ROWS]:0,[le.StaticQuotaName.PLUGINS]:0,[le.StaticQuotaName.USERS]:0,[le.StaticQuotaName.CREATORS]:0,[le.StaticQuotaName.USER_GROUPS]:0,[le.StaticQuotaName.AI_CUSTOM_CONFIGS]:0,triggers:{}},monthly:{[xt()]:Br()}}),"generateBaseQuotaUsage"),Lo=a(()=>{let e={_id:Nr(),quotaReset:tc(),...Za(),apps:{}};return en(e),e},"generateNewQuotaUsage"),Br=a(()=>({[le.MonthlyQuotaName.QUERIES]:0,[le.MonthlyQuotaName.AUTOMATIONS]:0,[le.MonthlyQuotaName.BUDIBASE_AI_CREDITS]:0,[le.MonthlyQuotaName.ACTIONS]:0,triggers:{}}),"generateNewMonthlyQuotas"),en=a(e=>{let t=xt();e.monthly||(e.monthly={}),e.monthly[t]||(e.monthly[t]=Br()),e.monthly.current=e.monthly[t]},"setCurrentMonth"),tn=a((e,t)=>{if(!(!t||!e))switch(e){case le.MonthlyQuotaName.AUTOMATIONS:return le.BreakdownQuotaName.AUTOMATIONS;case le.MonthlyQuotaName.QUERIES:return(0,Xa.isTableIdOrExternalTableId)(t)?le.BreakdownQuotaName.ROW_QUERIES:(0,Xa.isDatasourceOrDatasourcePlusId)(t)?le.BreakdownQuotaName.DATASOURCE_QUERIES:void 0}},"getBreakdownName");var rc=Le.Duration.fromSeconds(60).toMs(),{Writethrough:ac}=Le.cache.writethrough;function GI(e){return delete e.usageLimits,delete e.usageQuota.automationRuns,delete e.usageQuota.emails,delete e.usageQuota.storage,delete e.usageQuota.views,delete e.usageQuota.publishedApps,delete e.usageQuota.developers,e}a(GI,"clearDeprecated");var rn=a(()=>Le.tenancy.isSelfHostUsingCloud()?new ac(Le.tenancy.getSelfHostCloudDB(),rc):new ac(Le.tenancy.getGlobalDB(),rc),"getDB");async function Po(e=0){let r=rn(),n=Nr(),o=await r.tryGet(n);o&&o._rev&&await r.remove(n,o._rev).catch(async s=>{if(e<1)return await Po(e+1);throw s})}a(Po,"bustCache");var Ft=a(async()=>{let e=rn(),t=await e.tryGet(Nr());if(!t){t=Lo();let{rev:r}=await e.put(t);t._rev=r}return en(t),Oo(t),GI(t)},"getQuotaUsage"),oc=a(async(e,t,r)=>qo({name:t,type:r,values:{total:e}}),"setUsage"),sc=a(async(e,t,r)=>{let n=rn(),o=await Ft(),s=Object.values(e).reduce((u,c)=>u+c,0);for(let[u,c]of Object.entries(e))o=ic(o,t,r,{total:s,app:c},{appId:u});let i=await n.put(o);return o._rev=i.rev,o},"setUsagePerApp"),FI=a((e,t,r,n)=>{let o=tn(t,r);if(!o||!n?.breakdown)return e;e.breakdown||(e.breakdown={}),e.breakdown[o]||(e.breakdown[o]={parent:t,values:{}});let s=e.breakdown[o];return s.values[r]=n.breakdown,e},"setBreakdown"),Uo=a((e,t,r,n={},o)=>{let s;try{s=Le.db.getProdWorkspaceID(n?.appId||Le.context.getWorkspaceId())}catch{}if(!s||!o.app||!ve.APP_QUOTA_NAMES.includes(t))return e;e.apps?.[s]||(e.apps={...e.apps,[s]:Za()});let i=e.apps[s];switch(r){case ve.QuotaUsageType.STATIC:i.usageQuota[t]=o.app;break;case ve.QuotaUsageType.MONTHLY:{let u=xt(),c=t,f=i.monthly[u];f||(i.monthly[u]=Br(),f=i.monthly[u]),f[c]=o.app,ve.BREAKDOWN_QUOTA_NAMES.includes(c)&&n?.id&&(f=FI(f,c,n.id,o));break}}return e},"setAppUsageValue"),nc=a((e,t,r,n)=>{if(!ve.APP_QUOTA_NAMES.includes(r))return{};let o;try{o=Le.db.getProdWorkspaceID(Le.context.getWorkspaceId())}catch{}if(!o||!e.apps||!e.apps[o])return{app:0};let s=e.apps[o];switch(t){case ve.QuotaUsageType.STATIC:if(s.usageQuota?.[r])return{app:s.usageQuota[r]};break;case ve.QuotaUsageType.MONTHLY:{let i=xt(),u=r;if(!s.monthly?.[i]?.[u])break;let c=s.monthly[i],f=c[u],g,h=tn(u,n);return h&&n&&c.breakdown?.[h]&&(g=c.breakdown[h]?.values[n]),{app:f,breakdown:g||0}}}return{app:0}},"getAppUsageValue"),WI=a((e,t,r)=>{t.usageQuota.triggers||(t.usageQuota.triggers={}),r&&(t.usageQuota.triggers[e]=r)},"setStaticTriggers"),$I=a((e,t,r,n)=>{r.monthly[t].triggers||(r.monthly[t].triggers={}),n&&(r.monthly[t].triggers[e]=n)},"setMonthlyTriggers"),ic=a((e,t,r,n,o={})=>{if(r===ve.QuotaUsageType.STATIC)t=t,e.usageQuota[t]=n.total,WI(t,e,n.triggers);else if(r===ve.QuotaUsageType.MONTHLY){t=t;let s=xt();e.monthly[s][t]=n.total,$I(t,s,e,n.triggers)}else throw new Error(`Invalid usage type: ${r}`);return Uo(e,t,r,o,n)},"coreUsageUpdate"),qo=a(async e=>{let t=Array.isArray(e)?e:[e],r=rn(),n=await Ft();for(let s of t)n=ic(n,s.name,s.type,s.values,s.opts);let o=await r.put(n,0);return n._rev=o.rev,n},"setAllUsage"),uc=a(async(e,t,r)=>{let n=await Ft(),o=0,s={};switch(e){case ve.QuotaUsageType.STATIC:if(n.usageQuota[t]){let i=t;o=n.usageQuota[i],s=nc(n,e,t,r)}break;case ve.QuotaUsageType.MONTHLY:{let i=xt(),u=t;n.monthly[i][u]&&(o=n.monthly[i][u],s=nc(n,e,t,r));break}default:throw new Error(`Invalid usage type: ${e}`)}return ve.APP_QUOTA_NAMES.includes(t)&&!(s.app||s.breakdown)&&(s.app=s.app||0,s.breakdown=s.breakdown||0),{total:o,app:s.app,breakdown:s.breakdown}},"getCurrentUsageValues");var We={};x(We,{destroy:()=>KI,get:()=>Do,save:()=>QI});var Ct=require("@budibase/backend-core");var jI=a(()=>({_id:Ct.StaticDatabases.GLOBAL.docs.licenseInfo}),"newLicenseInfo"),QI=a(async e=>{let t=await Do();t={...t,...e};let n=await Ct.tenancy.getGlobalDB().put(t);return t._rev=n.rev,t},"save"),Do=a(async()=>{let e=Ct.tenancy.getGlobalDB();try{return await e.get(Ct.StaticDatabases.GLOBAL.docs.licenseInfo)}catch(t){if(t.status===404)return jI();throw t}},"get"),KI=a(async()=>{let e=Ct.tenancy.getGlobalDB(),t=await Do();t&&t._rev&&await e.remove(Ct.StaticDatabases.GLOBAL.docs.licenseInfo,t._rev)},"destroy");var z={};x(z,{bulkSave:()=>nS,destroy:()=>oS,fetch:()=>eS,generateUserGroupID:()=>XI,get:()=>tS,getBulk:()=>rS,getByName:()=>ko,getGroupUsers:()=>nn,getGroupUsersParams:()=>fc,getUserGroupsParams:()=>dc,save:()=>aS});var j=require("@budibase/backend-core");var ze=require("@budibase/types"),nr=require("@budibase/backend-core");async function cc(){let e=nr.sql.designDoc.base("type");e.sql.tables={[ze.AUDIT_LOG_TYPE]:{fields:{appId:ze.SQLiteType.TEXT,event:ze.SQLiteType.TEXT,userId:ze.SQLiteType.TEXT,timestamp:ze.SQLiteType.TEXT,metadata:ze.SQLiteType.TEXT,name:ze.SQLiteType.TEXT,type:ze.SQLiteType.TEXT,fallback:ze.SQLiteType.TEXT}}};let t=nr.context.getAuditLogsDB(),r;try{r=await t.get(nr.SQLITE_DESIGN_DOC_ID),r={...r,...e}}catch(n){if(n.status===404)r=e;else throw n}await t.put(r)}a(cc,"createAuditLogDesignDocSQL");var an=require("@budibase/backend-core");var{ViewName:VI,SEPARATOR:HI,DocumentType:YI,createView:zI}=an.db,JI=YI.USER+HI;async function pc(){let e=an.tenancy.getGlobalDB(),t=`function(doc) {
|
|
3
|
+
`)}a(jO,"insertWrapDetails");og.exports=jO});var ro=p((u2,ig)=>{"use strict";function QO(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}a(QO,"arrayEach");ig.exports=QO});var cg=p((p2,ug)=>{"use strict";var KO=ro(),VO=ts(),HO=1,YO=2,zO=8,JO=16,XO=32,ZO=64,eL=128,tL=256,rL=512,aL=[["ary",eL],["bind",HO],["bindKey",YO],["curry",zO],["curryRight",JO],["flip",rL],["partial",XO],["partialRight",ZO],["rearg",tL]];function nL(e,t){return KO(aL,function(r){var n="_."+r[0];t&r[1]&&!VO(e,n)&&e.push(n)}),e.sort()}a(nL,"updateWrapDetails");ug.exports=nL});var vi=p((d2,pg)=>{"use strict";var oL=ng(),sL=sg(),iL=hn(),uL=cg();function cL(e,t,r){var n=t+"";return iL(e,sL(n,uL(oL(n),r)))}a(cL,"setWrapToString");pg.exports=cL});var _i=p((m2,fg)=>{"use strict";var pL=tg(),lL=Ri(),dL=vi(),fL=1,mL=2,gL=4,hL=8,lg=32,dg=64;function yL(e,t,r,n,o,s,i,u,c,f){var g=t&hL,h=g?i:void 0,y=g?void 0:i,E=g?s:void 0,M=g?void 0:s;t|=g?lg:dg,t&=~(g?dg:lg),t&gL||(t&=~(fL|mL));var k=[e,t,o,E,h,M,y,u,c,f],D=r.apply(void 0,k);return pL(e)&&lL(D,k),D.placeholder=n,dL(D,e,t)}a(yL,"createRecurry");fg.exports=yL});var xi=p((h2,mg)=>{"use strict";function AL(e){var t=e;return t.placeholder}a(AL,"getHolder");mg.exports=AL});var hg=p((A2,gg)=>{"use strict";var bL=yr(),IL=Ra(),SL=Math.min;function wL(e,t){for(var r=e.length,n=SL(t.length,r),o=bL(e);n--;){var s=t[n];e[n]=IL(s,r)?o[s]:void 0}return e}a(wL,"reorder");gg.exports=wL});var ao=p((I2,Ag)=>{"use strict";var yg="__lodash_placeholder__";function TL(e,t){for(var r=-1,n=e.length,o=0,s=[];++r<n;){var i=e[r];(i===t||i===yg)&&(e[r]=yg,s[o++]=r)}return s}a(TL,"replaceHolders");Ag.exports=TL});var Ci=p((w2,Sg)=>{"use strict";var EL=Si(),RL=wi(),vL=Nm(),bg=Da(),_L=_i(),xL=xi(),CL=hg(),OL=ao(),LL=_e(),PL=1,UL=2,qL=8,DL=16,kL=128,ML=512;function Ig(e,t,r,n,o,s,i,u,c,f){var g=t&kL,h=t&PL,y=t&UL,E=t&(qL|DL),M=t&ML,k=y?void 0:bg(e);function D(){for(var C=arguments.length,W=Array(C),ye=C;ye--;)W[ye]=arguments[ye];if(E)var ie=xL(D),Ye=vL(W,ie);if(n&&(W=EL(W,n,o,E)),s&&(W=RL(W,s,i,E)),C-=Ye,E&&C<f){var nt=OL(W,ie);return _L(e,t,Ig,D.placeholder,r,W,nt,u,c,f-C)}var ot=h?r:this,Y=y?ot[e]:e;return C=W.length,u?W=CL(W,u):M&&C>1&&W.reverse(),g&&c<C&&(W.length=c),this&&this!==LL&&this instanceof D&&(Y=k||bg(Y)),Y.apply(ot,W)}return a(D,"wrapper"),D}a(Ig,"createHybrid");Sg.exports=Ig});var Tg=p((E2,wg)=>{"use strict";var NL=gn(),BL=Da(),GL=Ci(),FL=_i(),WL=xi(),$L=ao(),jL=_e();function QL(e,t,r){var n=BL(e);function o(){for(var s=arguments.length,i=Array(s),u=s,c=WL(o);u--;)i[u]=arguments[u];var f=s<3&&i[0]!==c&&i[s-1]!==c?[]:$L(i,c);if(s-=f.length,s<r)return FL(e,t,GL,o.placeholder,void 0,i,f,void 0,void 0,r-s);var g=this&&this!==jL&&this instanceof o?n:e;return NL(g,this,i)}return a(o,"wrapper"),o}a(QL,"createCurry");wg.exports=QL});var Rg=p((v2,Eg)=>{"use strict";var KL=gn(),VL=Da(),HL=_e(),YL=1;function zL(e,t,r,n){var o=t&YL,s=VL(e);function i(){for(var u=-1,c=arguments.length,f=-1,g=n.length,h=Array(g+c),y=this&&this!==HL&&this instanceof i?s:e;++f<g;)h[f]=n[f];for(;c--;)h[f++]=arguments[++u];return KL(y,o?r:this,h)}return a(i,"wrapper"),i}a(zL,"createPartial");Eg.exports=zL});var Lg=p((x2,Og)=>{"use strict";var JL=Si(),XL=wi(),vg=ao(),_g="__lodash_placeholder__",Oi=1,ZL=2,eP=4,xg=8,ka=128,Cg=256,tP=Math.min;function rP(e,t){var r=e[1],n=t[1],o=r|n,s=o<(Oi|ZL|ka),i=n==ka&&r==xg||n==ka&&r==Cg&&e[7].length<=t[8]||n==(ka|Cg)&&t[7].length<=t[8]&&r==xg;if(!(s||i))return e;n&Oi&&(e[2]=t[2],o|=r&Oi?0:eP);var u=t[3];if(u){var c=e[3];e[3]=c?JL(c,u,t[4]):u,e[4]=c?vg(e[3],_g):t[4]}return u=t[5],u&&(c=e[5],e[5]=c?XL(c,u,t[6]):u,e[6]=c?vg(e[5],_g):t[6]),u=t[7],u&&(e[7]=u),n&ka&&(e[8]=e[8]==null?t[8]:tP(e[8],t[8])),e[9]==null&&(e[9]=t[9]),e[0]=t[0],e[1]=o,e}a(rP,"mergeData");Og.exports=rP});var Ug=p((O2,Pg)=>{"use strict";var aP=/\s/;function nP(e){for(var t=e.length;t--&&aP.test(e.charAt(t)););return t}a(nP,"trimmedEndIndex");Pg.exports=nP});var Dg=p((P2,qg)=>{"use strict";var oP=Ug(),sP=/^\s+/;function iP(e){return e&&e.slice(0,oP(e)+1).replace(sP,"")}a(iP,"baseTrim");qg.exports=iP});var Cr=p((q2,kg)=>{"use strict";var uP=Pt(),cP=ke(),pP="[object Symbol]";function lP(e){return typeof e=="symbol"||cP(e)&&uP(e)==pP}a(lP,"isSymbol");kg.exports=lP});var Gg=p((k2,Bg)=>{"use strict";var dP=Dg(),Mg=je(),fP=Cr(),Ng=0/0,mP=/^[-+]0x[0-9a-f]+$/i,gP=/^0b[01]+$/i,hP=/^0o[0-7]+$/i,yP=parseInt;function AP(e){if(typeof e=="number")return e;if(fP(e))return Ng;if(Mg(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Mg(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=dP(e);var r=gP.test(e);return r||hP.test(e)?yP(e.slice(2),r?2:8):mP.test(e)?Ng:+e}a(AP,"toNumber");Bg.exports=AP});var $g=p((N2,Wg)=>{"use strict";var bP=Gg(),Fg=1/0,IP=17976931348623157e292;function SP(e){if(!e)return e===0?e:0;if(e=bP(e),e===Fg||e===-Fg){var t=e<0?-1:1;return t*IP}return e===e?e:0}a(SP,"toFinite");Wg.exports=SP});var Li=p((G2,jg)=>{"use strict";var wP=$g();function TP(e){var t=wP(e),r=t%1;return t===t?r?t-r:t:0}a(TP,"toInteger");jg.exports=TP});var no=p((W2,Yg)=>{"use strict";var EP=Ii(),RP=qm(),vP=Tg(),_P=Ci(),xP=Rg(),CP=Ti(),OP=Lg(),LP=Ri(),PP=vi(),Qg=Li(),UP="Expected a function",Kg=1,qP=2,Pi=8,Ui=16,qi=32,Vg=64,Hg=Math.max;function DP(e,t,r,n,o,s,i,u){var c=t&qP;if(!c&&typeof e!="function")throw new TypeError(UP);var f=n?n.length:0;if(f||(t&=~(qi|Vg),n=o=void 0),i=i===void 0?i:Hg(Qg(i),0),u=u===void 0?u:Qg(u),f-=o?o.length:0,t&Vg){var g=n,h=o;n=o=void 0}var y=c?void 0:CP(e),E=[e,t,r,n,o,g,h,s,i,u];if(y&&OP(E,y),e=E[0],t=E[1],r=E[2],n=E[3],o=E[4],u=E[9]=E[9]===void 0?c?0:e.length:Hg(E[9]-f,0),!u&&t&(Pi|Ui)&&(t&=~(Pi|Ui)),!t||t==Kg)var M=RP(e,t,r);else t==Pi||t==Ui?M=vP(e,t,u):(t==qi||t==(Kg|qi))&&!o.length?M=xP(e,t,r,n):M=_P.apply(void 0,E);var k=y?EP:LP;return PP(k(M,E),e,t)}a(DP,"createWrap");Yg.exports=DP});var Jg=p((j2,zg)=>{"use strict";var kP=no(),MP=128;function NP(e,t,r){return t=r?void 0:t,t=e&&t==null?e.length:t,kP(e,MP,void 0,void 0,void 0,void 0,t)}a(NP,"ary");zg.exports=NP});var Zg=p((K2,Xg)=>{"use strict";var BP=ds(),GP=BP(Object.keys,Object);Xg.exports=GP});var Di=p((V2,eh)=>{"use strict";var FP=En(),WP=Zg(),$P=Object.prototype,jP=$P.hasOwnProperty;function QP(e){if(!FP(e))return WP(e);var t=[];for(var r in Object(e))jP.call(e,r)&&r!="constructor"&&t.push(r);return t}a(QP,"baseKeys");eh.exports=QP});var Or=p((Y2,th)=>{"use strict";var KP=As(),VP=Di(),HP=mr();function YP(e){return HP(e)?KP(e):VP(e)}a(YP,"keys");th.exports=YP});var ki=p((J2,rh)=>{"use strict";var zP=Ir(),JP=Or();function XP(e,t){return e&&zP(t,JP(t),e)}a(XP,"baseAssign");rh.exports=XP});var nh=p((Z2,ah)=>{"use strict";var ZP=Ir(),eU=Sr();function tU(e,t){return e&&ZP(t,eU(t),e)}a(tU,"baseAssignIn");ah.exports=tU});var sh=p((tV,oh)=>{"use strict";function rU(e,t){for(var r=-1,n=e==null?0:e.length,o=0,s=[];++r<n;){var i=e[r];t(i,r,e)&&(s[o++]=i)}return s}a(rU,"arrayFilter");oh.exports=rU});var Mi=p((aV,ih)=>{"use strict";function aU(){return[]}a(aU,"stubArray");ih.exports=aU});var oo=p((oV,ch)=>{"use strict";var nU=sh(),oU=Mi(),sU=Object.prototype,iU=sU.propertyIsEnumerable,uh=Object.getOwnPropertySymbols,uU=uh?function(e){return e==null?[]:(e=Object(e),nU(uh(e),function(t){return iU.call(e,t)}))}:oU;ch.exports=uU});var lh=p((sV,ph)=>{"use strict";var cU=Ir(),pU=oo();function lU(e,t){return cU(e,pU(e),t)}a(lU,"copySymbols");ph.exports=lU});var Ni=p((uV,dh)=>{"use strict";var dU=mn(),fU=Tn(),mU=oo(),gU=Mi(),hU=Object.getOwnPropertySymbols,yU=hU?function(e){for(var t=[];e;)dU(t,mU(e)),e=fU(e);return t}:gU;dh.exports=yU});var mh=p((cV,fh)=>{"use strict";var AU=Ir(),bU=Ni();function IU(e,t){return AU(e,bU(e),t)}a(IU,"copySymbolsIn");fh.exports=IU});var Bi=p((lV,gh)=>{"use strict";var SU=mn(),wU=Ee();function TU(e,t,r){var n=t(e);return wU(e)?n:SU(n,r(e))}a(TU,"baseGetAllKeys");gh.exports=TU});var Gi=p((fV,hh)=>{"use strict";var EU=Bi(),RU=oo(),vU=Or();function _U(e){return EU(e,vU,RU)}a(_U,"getAllKeys");hh.exports=_U});var Ah=p((gV,yh)=>{"use strict";var xU=Bi(),CU=Ni(),OU=Sr();function LU(e){return xU(e,OU,CU)}a(LU,"getAllKeysIn");yh.exports=LU});var Ih=p((yV,bh)=>{"use strict";var PU=Ut(),UU=_e(),qU=PU(UU,"DataView");bh.exports=qU});var wh=p((AV,Sh)=>{"use strict";var DU=Ut(),kU=_e(),MU=DU(kU,"Promise");Sh.exports=MU});var Pr=p((bV,Ch)=>{"use strict";var Fi=Ih(),Wi=yn(),$i=wh(),ji=as(),Qi=Ai(),xh=Pt(),Lr=zo(),Th="[object Map]",NU="[object Object]",Eh="[object Promise]",Rh="[object Set]",vh="[object WeakMap]",_h="[object DataView]",BU=Lr(Fi),GU=Lr(Wi),FU=Lr($i),WU=Lr(ji),$U=Lr(Qi),Xt=xh;(Fi&&Xt(new Fi(new ArrayBuffer(1)))!=_h||Wi&&Xt(new Wi)!=Th||$i&&Xt($i.resolve())!=Eh||ji&&Xt(new ji)!=Rh||Qi&&Xt(new Qi)!=vh)&&(Xt=a(function(e){var t=xh(e),r=t==NU?e.constructor:void 0,n=r?Lr(r):"";if(n)switch(n){case BU:return _h;case GU:return Th;case FU:return Eh;case WU:return Rh;case $U:return vh}return t},"getTag"));Ch.exports=Xt});var Lh=p((SV,Oh)=>{"use strict";var jU=Object.prototype,QU=jU.hasOwnProperty;function KU(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&QU.call(e,"index")&&(r.index=e.index,r.input=e.input),r}a(KU,"initCloneArray");Oh.exports=KU});var Uh=p((TV,Ph)=>{"use strict";var VU=wn();function HU(e,t){var r=t?VU(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}a(HU,"cloneDataView");Ph.exports=HU});var Dh=p((RV,qh)=>{"use strict";var YU=/\w*$/;function zU(e){var t=new e.constructor(e.source,YU.exec(e));return t.lastIndex=e.lastIndex,t}a(zU,"cloneRegExp");qh.exports=zU});var Gh=p((_V,Bh)=>{"use strict";var kh=Qt(),Mh=kh?kh.prototype:void 0,Nh=Mh?Mh.valueOf:void 0;function JU(e){return Nh?Object(Nh.call(e)):{}}a(JU,"cloneSymbol");Bh.exports=JU});var Wh=p((CV,Fh)=>{"use strict";var XU=wn(),ZU=Uh(),eq=Dh(),tq=Gh(),rq=ls(),aq="[object Boolean]",nq="[object Date]",oq="[object Map]",sq="[object Number]",iq="[object RegExp]",uq="[object Set]",cq="[object String]",pq="[object Symbol]",lq="[object ArrayBuffer]",dq="[object DataView]",fq="[object Float32Array]",mq="[object Float64Array]",gq="[object Int8Array]",hq="[object Int16Array]",yq="[object Int32Array]",Aq="[object Uint8Array]",bq="[object Uint8ClampedArray]",Iq="[object Uint16Array]",Sq="[object Uint32Array]";function wq(e,t,r){var n=e.constructor;switch(t){case lq:return XU(e);case aq:case nq:return new n(+e);case dq:return ZU(e,r);case fq:case mq:case gq:case hq:case yq:case Aq:case bq:case Iq:case Sq:return rq(e,r);case oq:return new n;case sq:case cq:return new n(e);case iq:return eq(e);case uq:return new n;case pq:return tq(e)}}a(wq,"initCloneByTag");Fh.exports=wq});var jh=p((LV,$h)=>{"use strict";var Tq=Pr(),Eq=ke(),Rq="[object Map]";function vq(e){return Eq(e)&&Tq(e)==Rq}a(vq,"baseIsMap");$h.exports=vq});var Hh=p((UV,Vh)=>{"use strict";var _q=jh(),xq=Rn(),Qh=vn(),Kh=Qh&&Qh.isMap,Cq=Kh?xq(Kh):_q;Vh.exports=Cq});var zh=p((qV,Yh)=>{"use strict";var Oq=Pr(),Lq=ke(),Pq="[object Set]";function Uq(e){return Lq(e)&&Oq(e)==Pq}a(Uq,"baseIsSet");Yh.exports=Uq});var ey=p((kV,Zh)=>{"use strict";var qq=zh(),Dq=Rn(),Jh=vn(),Xh=Jh&&Jh.isSet,kq=Xh?Dq(Xh):qq;Zh.exports=kq});var Ki=p((MV,ny)=>{"use strict";var Mq=ya(),Nq=ro(),Bq=ys(),Gq=ki(),Fq=nh(),Wq=cs(),$q=yr(),jq=lh(),Qq=mh(),Kq=Gi(),Vq=Ah(),Hq=Pr(),Yq=Lh(),zq=Wh(),Jq=fs(),Xq=Ee(),Zq=wa(),eD=Hh(),tD=je(),rD=ey(),aD=Or(),nD=Sr(),oD=1,sD=2,iD=4,ty="[object Arguments]",uD="[object Array]",cD="[object Boolean]",pD="[object Date]",lD="[object Error]",ry="[object Function]",dD="[object GeneratorFunction]",fD="[object Map]",mD="[object Number]",ay="[object Object]",gD="[object RegExp]",hD="[object Set]",yD="[object String]",AD="[object Symbol]",bD="[object WeakMap]",ID="[object ArrayBuffer]",SD="[object DataView]",wD="[object Float32Array]",TD="[object Float64Array]",ED="[object Int8Array]",RD="[object Int16Array]",vD="[object Int32Array]",_D="[object Uint8Array]",xD="[object Uint8ClampedArray]",CD="[object Uint16Array]",OD="[object Uint32Array]",V={};V[ty]=V[uD]=V[ID]=V[SD]=V[cD]=V[pD]=V[wD]=V[TD]=V[ED]=V[RD]=V[vD]=V[fD]=V[mD]=V[ay]=V[gD]=V[hD]=V[yD]=V[AD]=V[_D]=V[xD]=V[CD]=V[OD]=!0;V[lD]=V[ry]=V[bD]=!1;function so(e,t,r,n,o,s){var i,u=t&oD,c=t&sD,f=t&iD;if(r&&(i=o?r(e,n,o,s):r(e)),i!==void 0)return i;if(!tD(e))return e;var g=Xq(e);if(g){if(i=Yq(e),!u)return $q(e,i)}else{var h=Hq(e),y=h==ry||h==dD;if(Zq(e))return Wq(e,u);if(h==ay||h==ty||y&&!o){if(i=c||y?{}:Jq(e),!u)return c?Qq(e,Fq(i,e)):jq(e,Gq(i,e))}else{if(!V[h])return o?e:{};i=zq(e,h,u)}}s||(s=new Mq);var E=s.get(e);if(E)return E;s.set(e,i),rD(e)?e.forEach(function(D){i.add(so(D,t,r,D,e,s))}):eD(e)&&e.forEach(function(D,C){i.set(C,so(D,t,r,C,e,s))});var M=f?c?Vq:Kq:c?nD:aD,k=g?void 0:M(e);return Nq(k||e,function(D,C){k&&(C=D,D=e[C]),Bq(i,C,so(D,t,r,C,e,s))}),i}a(so,"baseClone");ny.exports=so});var sy=p((BV,oy)=>{"use strict";var LD=Ki(),PD=4;function UD(e){return LD(e,PD)}a(UD,"clone");oy.exports=UD});var uy=p((FV,iy)=>{"use strict";var qD=no(),DD=8;function Vi(e,t,r){t=r?void 0:t;var n=qD(e,DD,void 0,void 0,void 0,void 0,void 0,t);return n.placeholder=Vi.placeholder,n}a(Vi,"curry");Vi.placeholder={};iy.exports=Vi});var py=p(($V,cy)=>{"use strict";var kD=Pt(),MD=ke(),ND=ms(),BD="[object DOMException]",GD="[object Error]";function FD(e){if(!MD(e))return!1;var t=kD(e);return t==GD||t==BD||typeof e.message=="string"&&typeof e.name=="string"&&!ND(e)}a(FD,"isError");cy.exports=FD});var dy=p((QV,ly)=>{"use strict";var WD=Pr(),$D=ke(),jD="[object WeakMap]";function QD(e){return $D(e)&&WD(e)==jD}a(QD,"isWeakMap");ly.exports=QD});var my=p((VV,fy)=>{"use strict";function KD(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}a(KD,"arraySome");fy.exports=KD});var Hi=p((YV,gy)=>{"use strict";var VD=es(),HD=my(),YD=rs(),zD=1,JD=2;function XD(e,t,r,n,o,s){var i=r&zD,u=e.length,c=t.length;if(u!=c&&!(i&&c>u))return!1;var f=s.get(e),g=s.get(t);if(f&&g)return f==t&&g==e;var h=-1,y=!0,E=r&JD?new VD:void 0;for(s.set(e,t),s.set(t,e);++h<u;){var M=e[h],k=t[h];if(n)var D=i?n(k,M,h,t,e,s):n(M,k,h,e,t,s);if(D!==void 0){if(D)continue;y=!1;break}if(E){if(!HD(t,function(C,W){if(!YD(E,W)&&(M===C||o(M,C,r,n,s)))return E.push(W)})){y=!1;break}}else if(!(M===k||o(M,k,r,n,s))){y=!1;break}}return s.delete(e),s.delete(t),y}a(XD,"equalArrays");gy.exports=XD});var yy=p((JV,hy)=>{"use strict";function ZD(e){var t=-1,r=Array(e.size);return e.forEach(function(n,o){r[++t]=[o,n]}),r}a(ZD,"mapToArray");hy.exports=ZD});var wy=p((ZV,Sy)=>{"use strict";var Ay=Qt(),by=ps(),ek=lr(),tk=Hi(),rk=yy(),ak=In(),nk=1,ok=2,sk="[object Boolean]",ik="[object Date]",uk="[object Error]",ck="[object Map]",pk="[object Number]",lk="[object RegExp]",dk="[object Set]",fk="[object String]",mk="[object Symbol]",gk="[object ArrayBuffer]",hk="[object DataView]",Iy=Ay?Ay.prototype:void 0,Yi=Iy?Iy.valueOf:void 0;function yk(e,t,r,n,o,s,i){switch(r){case hk:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case gk:return!(e.byteLength!=t.byteLength||!s(new by(e),new by(t)));case sk:case ik:case pk:return ek(+e,+t);case uk:return e.name==t.name&&e.message==t.message;case lk:case fk:return e==t+"";case ck:var u=rk;case dk:var c=n&nk;if(u||(u=ak),e.size!=t.size&&!c)return!1;var f=i.get(e);if(f)return f==t;n|=ok,i.set(e,t);var g=tk(u(e),u(t),n,o,s,i);return i.delete(e),g;case mk:if(Yi)return Yi.call(e)==Yi.call(t)}return!1}a(yk,"equalByTag");Sy.exports=yk});var Ry=p((tH,Ey)=>{"use strict";var Ty=Gi(),Ak=1,bk=Object.prototype,Ik=bk.hasOwnProperty;function Sk(e,t,r,n,o,s){var i=r&Ak,u=Ty(e),c=u.length,f=Ty(t),g=f.length;if(c!=g&&!i)return!1;for(var h=c;h--;){var y=u[h];if(!(i?y in t:Ik.call(t,y)))return!1}var E=s.get(e),M=s.get(t);if(E&&M)return E==t&&M==e;var k=!0;s.set(e,t),s.set(t,e);for(var D=i;++h<c;){y=u[h];var C=e[y],W=t[y];if(n)var ye=i?n(W,C,y,t,e,s):n(C,W,y,e,t,s);if(!(ye===void 0?C===W||o(C,W,r,n,s):ye)){k=!1;break}D||(D=y=="constructor")}if(k&&!D){var ie=e.constructor,Ye=t.constructor;ie!=Ye&&"constructor"in e&&"constructor"in t&&!(typeof ie=="function"&&ie instanceof ie&&typeof Ye=="function"&&Ye instanceof Ye)&&(k=!1)}return s.delete(e),s.delete(t),k}a(Sk,"equalObjects");Ey.exports=Sk});var Uy=p((aH,Py)=>{"use strict";var zi=ya(),wk=Hi(),Tk=wy(),Ek=Ry(),vy=Pr(),_y=Ee(),xy=wa(),Rk=_n(),vk=1,Cy="[object Arguments]",Oy="[object Array]",io="[object Object]",_k=Object.prototype,Ly=_k.hasOwnProperty;function xk(e,t,r,n,o,s){var i=_y(e),u=_y(t),c=i?Oy:vy(e),f=u?Oy:vy(t);c=c==Cy?io:c,f=f==Cy?io:f;var g=c==io,h=f==io,y=c==f;if(y&&xy(e)){if(!xy(t))return!1;i=!0,g=!1}if(y&&!g)return s||(s=new zi),i||Rk(e)?wk(e,t,r,n,o,s):Tk(e,t,c,r,n,o,s);if(!(r&vk)){var E=g&&Ly.call(e,"__wrapped__"),M=h&&Ly.call(t,"__wrapped__");if(E||M){var k=E?e.value():e,D=M?t.value():t;return s||(s=new zi),o(k,D,r,n,s)}}return y?(s||(s=new zi),Ek(e,t,r,n,o,s)):!1}a(xk,"baseIsEqualDeep");Py.exports=xk});var Ji=p((oH,ky)=>{"use strict";var Ck=Uy(),qy=ke();function Dy(e,t,r,n,o){return e===t?!0:e==null||t==null||!qy(e)&&!qy(t)?e!==e&&t!==t:Ck(e,t,r,n,Dy,o)}a(Dy,"baseIsEqual");ky.exports=Dy});var Ny=p((iH,My)=>{"use strict";var Ok=ya(),Lk=Ji(),Pk=1,Uk=2;function qk(e,t,r,n){var o=r.length,s=o,i=!n;if(e==null)return!s;for(e=Object(e);o--;){var u=r[o];if(i&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<s;){u=r[o];var c=u[0],f=e[c],g=u[1];if(i&&u[2]){if(f===void 0&&!(c in e))return!1}else{var h=new Ok;if(n)var y=n(f,g,c,e,t,h);if(!(y===void 0?Lk(g,f,Pk|Uk,n,h):y))return!1}}return!0}a(qk,"baseIsMatch");My.exports=qk});var Xi=p((cH,By)=>{"use strict";var Dk=je();function kk(e){return e===e&&!Dk(e)}a(kk,"isStrictComparable");By.exports=kk});var Fy=p((lH,Gy)=>{"use strict";var Mk=Xi(),Nk=Or();function Bk(e){for(var t=Nk(e),r=t.length;r--;){var n=t[r],o=e[n];t[r]=[n,o,Mk(o)]}return t}a(Bk,"getMatchData");Gy.exports=Bk});var Zi=p((fH,Wy)=>{"use strict";function Gk(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}a(Gk,"matchesStrictComparable");Wy.exports=Gk});var jy=p((gH,$y)=>{"use strict";var Fk=Ny(),Wk=Fy(),$k=Zi();function jk(e){var t=Wk(e);return t.length==1&&t[0][2]?$k(t[0][0],t[0][1]):function(r){return r===e||Fk(r,e,t)}}a(jk,"baseMatches");$y.exports=jk});var uo=p((yH,Qy)=>{"use strict";var Qk=Ee(),Kk=Cr(),Vk=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hk=/^\w*$/;function Yk(e,t){if(Qk(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Kk(e)?!0:Hk.test(e)||!Vk.test(e)||t!=null&&e in Object(t)}a(Yk,"isKey");Qy.exports=Yk});var Hy=p((bH,Vy)=>{"use strict";var Ky=An(),zk="Expected a function";function eu(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(zk);var r=a(function(){var n=arguments,o=t?t.apply(this,n):n[0],s=r.cache;if(s.has(o))return s.get(o);var i=e.apply(this,n);return r.cache=s.set(o,i)||s,i},"memoized");return r.cache=new(eu.Cache||Ky),r}a(eu,"memoize");eu.Cache=Ky;Vy.exports=eu});var zy=p((SH,Yy)=>{"use strict";var Jk=Hy(),Xk=500;function Zk(e){var t=Jk(e,function(n){return r.size===Xk&&r.clear(),n}),r=t.cache;return t}a(Zk,"memoizeCapped");Yy.exports=Zk});var tu=p((TH,Jy)=>{"use strict";var eM=zy(),tM=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rM=/\\(\\)?/g,aM=eM(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(tM,function(r,n,o,s){t.push(o?s.replace(rM,"$1"):n||r)}),t});Jy.exports=aM});var ru=p((EH,Xy)=>{"use strict";function nM(e,t){for(var r=-1,n=e==null?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}a(nM,"arrayMap");Xy.exports=nM});var nA=p((vH,aA)=>{"use strict";var Zy=Qt(),oM=ru(),sM=Ee(),iM=Cr(),uM=1/0,eA=Zy?Zy.prototype:void 0,tA=eA?eA.toString:void 0;function rA(e){if(typeof e=="string")return e;if(sM(e))return oM(e,rA)+"";if(iM(e))return tA?tA.call(e):"";var t=e+"";return t=="0"&&1/e==-uM?"-0":t}a(rA,"baseToString");aA.exports=rA});var au=p((xH,oA)=>{"use strict";var cM=nA();function pM(e){return e==null?"":cM(e)}a(pM,"toString");oA.exports=pM});var nu=p((OH,sA)=>{"use strict";var lM=Ee(),dM=uo(),fM=tu(),mM=au();function gM(e,t){return lM(e)?e:dM(e,t)?[e]:fM(mM(e))}a(gM,"castPath");sA.exports=gM});var Ur=p((PH,iA)=>{"use strict";var hM=Cr(),yM=1/0;function AM(e){if(typeof e=="string"||hM(e))return e;var t=e+"";return t=="0"&&1/e==-yM?"-0":t}a(AM,"toKey");iA.exports=AM});var ou=p((qH,uA)=>{"use strict";var bM=nu(),IM=Ur();function SM(e,t){t=bM(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[IM(t[r++])];return r&&r==n?e:void 0}a(SM,"baseGet");uA.exports=SM});var pA=p((kH,cA)=>{"use strict";var wM=ou();function TM(e,t,r){var n=e==null?void 0:wM(e,t);return n===void 0?r:n}a(TM,"get");cA.exports=TM});var dA=p((NH,lA)=>{"use strict";function EM(e,t){return e!=null&&t in Object(e)}a(EM,"baseHasIn");lA.exports=EM});var mA=p((GH,fA)=>{"use strict";var RM=nu(),vM=pa(),_M=Ee(),xM=Ra(),CM=Sn(),OM=Ur();function LM(e,t,r){t=RM(t,e);for(var n=-1,o=t.length,s=!1;++n<o;){var i=OM(t[n]);if(!(s=e!=null&&r(e,i)))break;e=e[i]}return s||++n!=o?s:(o=e==null?0:e.length,!!o&&CM(o)&&xM(i,o)&&(_M(e)||vM(e)))}a(LM,"hasPath");fA.exports=LM});var hA=p((WH,gA)=>{"use strict";var PM=dA(),UM=mA();function qM(e,t){return e!=null&&UM(e,t,PM)}a(qM,"hasIn");gA.exports=qM});var AA=p((jH,yA)=>{"use strict";var DM=Ji(),kM=pA(),MM=hA(),NM=uo(),BM=Xi(),GM=Zi(),FM=Ur(),WM=1,$M=2;function jM(e,t){return NM(e)&&BM(t)?GM(FM(e),t):function(r){var n=kM(r,e);return n===void 0&&n===t?MM(r,e):DM(t,n,WM|$M)}}a(jM,"baseMatchesProperty");yA.exports=jM});var IA=p((KH,bA)=>{"use strict";function QM(e){return function(t){return t?.[e]}}a(QM,"baseProperty");bA.exports=QM});var wA=p((HH,SA)=>{"use strict";var KM=ou();function VM(e){return function(t){return KM(t,e)}}a(VM,"basePropertyDeep");SA.exports=VM});var EA=p((zH,TA)=>{"use strict";var HM=IA(),YM=wA(),zM=uo(),JM=Ur();function XM(e){return zM(e)?HM(JM(e)):YM(e)}a(XM,"property");TA.exports=XM});var su=p((XH,RA)=>{"use strict";var ZM=jy(),eN=AA(),tN=la(),rN=Ee(),aN=EA();function nN(e){return typeof e=="function"?e:e==null?tN:typeof e=="object"?rN(e)?eN(e[0],e[1]):ZM(e):aN(e)}a(nN,"baseIteratee");RA.exports=nN});var _A=p((eY,vA)=>{"use strict";var oN=Ki(),sN=su(),iN=1;function uN(e){return sN(typeof e=="function"?e:oN(e,iN))}a(uN,"iteratee");vA.exports=uN});var CA=p((rY,xA)=>{"use strict";var cN=Vo();function pN(e){var t=e==null?0:e.length;return t?cN(e,1):[]}a(pN,"flatten");xA.exports=pN});var LA=p((nY,OA)=>{"use strict";var lN=CA(),dN=Ho(),fN=hn();function mN(e){return fN(dN(e,void 0,lN),e+"")}a(mN,"flatRest");OA.exports=mN});var UA=p((sY,PA)=>{"use strict";var gN=no(),hN=LA(),yN=256,AN=hN(function(e,t){return gN(e,yN,void 0,void 0,void 0,t)});PA.exports=AN});var DA=p((iY,qA)=>{"use strict";var bN=ru(),IN=yr(),SN=Ee(),wN=Cr(),TN=tu(),EN=Ur(),RN=au();function vN(e){return SN(e)?bN(e,EN):wN(e)?[e]:IN(TN(RN(e)))}a(vN,"toPath");qA.exports=vN});var MA=p((cY,kA)=>{"use strict";kA.exports={ary:Jg(),assign:ki(),clone:sy(),curry:uy(),forEach:ro(),isArray:Ee(),isError:py(),isFunction:da(),isWeakMap:dy(),iteratee:_A(),keys:Di(),rearg:UA(),toInteger:Li(),toPath:DA()}});var BA=p((pY,NA)=>{"use strict";var _N=vm(),xN=MA();function CN(e,t,r){return _N(xN,e,t,r)}a(CN,"convert");NA.exports=CN});var iu=p((dY,FA)=>{"use strict";var ON=BA(),GA=ON("merge",bs());GA.placeholder=mi();FA.exports=GA});var KA=p((uu,cu)=>{"use strict";(function(e,t){typeof uu=="object"&&typeof cu<"u"?cu.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs=t()})(uu,function(){"use strict";var e=1e3,t=6e4,r=36e5,n="millisecond",o="second",s="minute",i="hour",u="day",c="week",f="month",g="quarter",h="year",y="date",E="Invalid Date",M=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,k=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,D={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(O){var w=["th","st","nd","rd"],A=O%100;return"["+O+(w[(A-20)%10]||w[A]||w[0])+"]"}},C=a(function(O,w,A){var _=String(O);return!_||_.length>=w?O:""+Array(w+1-_.length).join(A)+O},"m"),W={s:C,z:function(O){var w=-O.utcOffset(),A=Math.abs(w),_=Math.floor(A/60),S=A%60;return(w<=0?"+":"-")+C(_,2,"0")+":"+C(S,2,"0")},m:a(function O(w,A){if(w.date()<A.date())return-O(A,w);var _=12*(A.year()-w.year())+(A.month()-w.month()),S=w.clone().add(_,f),U=A-S<0,P=w.clone().add(_+(U?-1:1),f);return+(-(_+(A-S)/(U?S-P:P-S))||0)},"t"),a:function(O){return O<0?Math.ceil(O)||0:Math.floor(O)},p:function(O){return{M:f,y:h,w:c,d:u,D:y,h:i,m:s,s:o,ms:n,Q:g}[O]||String(O||"").toLowerCase().replace(/s$/,"")},u:function(O){return O===void 0}},ye="en",ie={};ie[ye]=D;var Ye="$isDayjsObject",nt=a(function(O){return O instanceof Gt||!(!O||!O[Ye])},"S"),ot=a(function O(w,A,_){var S;if(!w)return ye;if(typeof w=="string"){var U=w.toLowerCase();ie[U]&&(S=U),A&&(ie[U]=A,S=U);var P=w.split("-");if(!S&&P.length>1)return O(P[0])}else{var $=w.name;ie[$]=w,S=$}return!_&&S&&(ye=S),S||!_&&ye},"t"),Y=a(function(O,w){if(nt(O))return O.clone();var A=typeof w=="object"?w:{};return A.date=O,A.args=arguments,new Gt(A)},"O"),G=W;G.l=ot,G.i=nt,G.w=function(O,w){return Y(O,{locale:w.$L,utc:w.$u,x:w.$x,$offset:w.$offset})};var Gt=function(){function O(A){this.$L=ot(A.locale,null,!0),this.parse(A),this.$x=this.$x||A.x||{},this[Ye]=!0}a(O,"M");var w=O.prototype;return w.parse=function(A){this.$d=function(_){var S=_.date,U=_.utc;if(S===null)return new Date(NaN);if(G.u(S))return new Date;if(S instanceof Date)return new Date(S);if(typeof S=="string"&&!/Z$/i.test(S)){var P=S.match(M);if(P){var $=P[2]-1||0,Z=(P[7]||"0").substring(0,3);return U?new Date(Date.UTC(P[1],$,P[3]||1,P[4]||0,P[5]||0,P[6]||0,Z)):new Date(P[1],$,P[3]||1,P[4]||0,P[5]||0,P[6]||0,Z)}}return new Date(S)}(A),this.init()},w.init=function(){var A=this.$d;this.$y=A.getFullYear(),this.$M=A.getMonth(),this.$D=A.getDate(),this.$W=A.getDay(),this.$H=A.getHours(),this.$m=A.getMinutes(),this.$s=A.getSeconds(),this.$ms=A.getMilliseconds()},w.$utils=function(){return G},w.isValid=function(){return this.$d.toString()!==E},w.isSame=function(A,_){var S=Y(A);return this.startOf(_)<=S&&S<=this.endOf(_)},w.isAfter=function(A,_){return Y(A)<this.startOf(_)},w.isBefore=function(A,_){return this.endOf(_)<Y(A)},w.$g=function(A,_,S){return G.u(A)?this[_]:this.set(S,A)},w.unix=function(){return Math.floor(this.valueOf()/1e3)},w.valueOf=function(){return this.$d.getTime()},w.startOf=function(A,_){var S=this,U=!!G.u(_)||_,P=G.p(A),$=a(function(I,v){var q=G.w(S.$u?Date.UTC(S.$y,v,I):new Date(S.$y,v,I),S);return U?q:q.endOf(u)},"l"),Z=a(function(I,v){return G.w(S.toDate()[I].apply(S.toDate("s"),(U?[0,0,0,0]:[23,59,59,999]).slice(v)),S)},"$"),ne=this.$W,pe=this.$M,K=this.$D,Ge="set"+(this.$u?"UTC":"");switch(P){case h:return U?$(1,0):$(31,11);case f:return U?$(1,pe):$(0,pe+1);case c:var R=this.$locale().weekStart||0,b=(ne<R?ne+7:ne)-R;return $(U?K-b:K+(6-b),pe);case u:case y:return Z(Ge+"Hours",0);case i:return Z(Ge+"Minutes",1);case s:return Z(Ge+"Seconds",2);case o:return Z(Ge+"Milliseconds",3);default:return this.clone()}},w.endOf=function(A){return this.startOf(A,!1)},w.$set=function(A,_){var S,U=G.p(A),P="set"+(this.$u?"UTC":""),$=(S={},S[u]=P+"Date",S[y]=P+"Date",S[f]=P+"Month",S[h]=P+"FullYear",S[i]=P+"Hours",S[s]=P+"Minutes",S[o]=P+"Seconds",S[n]=P+"Milliseconds",S)[U],Z=U===u?this.$D+(_-this.$W):_;if(U===f||U===h){var ne=this.clone().set(y,1);ne.$d[$](Z),ne.init(),this.$d=ne.set(y,Math.min(this.$D,ne.daysInMonth())).$d}else $&&this.$d[$](Z);return this.init(),this},w.set=function(A,_){return this.clone().$set(A,_)},w.get=function(A){return this[G.p(A)]()},w.add=function(A,_){var S,U=this;A=Number(A);var P=G.p(_),$=a(function(pe){var K=Y(U);return G.w(K.date(K.date()+Math.round(pe*A)),U)},"y");if(P===f)return this.set(f,this.$M+A);if(P===h)return this.set(h,this.$y+A);if(P===u)return $(1);if(P===c)return $(7);var Z=(S={},S[s]=t,S[i]=r,S[o]=e,S)[P]||1,ne=this.$d.getTime()+A*Z;return G.w(ne,this)},w.subtract=function(A,_){return this.add(-1*A,_)},w.format=function(A){var _=this,S=this.$locale();if(!this.isValid())return S.invalidDate||E;var U=A||"YYYY-MM-DDTHH:mm:ssZ",P=G.z(this),$=this.$H,Z=this.$m,ne=this.$M,pe=S.weekdays,K=S.months,Ge=S.meridiem,R=a(function(v,q,oe,Re){return v&&(v[q]||v(_,U))||oe[q].slice(0,Re)},"h"),b=a(function(v){return G.s($%12||12,v,"0")},"d"),I=Ge||function(v,q,oe){var Re=v<12?"AM":"PM";return oe?Re.toLowerCase():Re};return U.replace(k,function(v,q){return q||function(oe){switch(oe){case"YY":return String(_.$y).slice(-2);case"YYYY":return G.s(_.$y,4,"0");case"M":return ne+1;case"MM":return G.s(ne+1,2,"0");case"MMM":return R(S.monthsShort,ne,K,3);case"MMMM":return R(K,ne);case"D":return _.$D;case"DD":return G.s(_.$D,2,"0");case"d":return String(_.$W);case"dd":return R(S.weekdaysMin,_.$W,pe,2);case"ddd":return R(S.weekdaysShort,_.$W,pe,3);case"dddd":return pe[_.$W];case"H":return String($);case"HH":return G.s($,2,"0");case"h":return b(1);case"hh":return b(2);case"a":return I($,Z,!0);case"A":return I($,Z,!1);case"m":return String(Z);case"mm":return G.s(Z,2,"0");case"s":return String(_.$s);case"ss":return G.s(_.$s,2,"0");case"SSS":return G.s(_.$ms,3,"0");case"Z":return P}return null}(v)||P.replace(":","")})},w.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},w.diff=function(A,_,S){var U,P=this,$=G.p(_),Z=Y(A),ne=(Z.utcOffset()-this.utcOffset())*t,pe=this-Z,K=a(function(){return G.m(P,Z)},"D");switch($){case h:U=K()/12;break;case f:U=K();break;case g:U=K()/3;break;case c:U=(pe-ne)/6048e5;break;case u:U=(pe-ne)/864e5;break;case i:U=pe/r;break;case s:U=pe/t;break;case o:U=pe/e;break;default:U=pe}return S?U:G.a(U)},w.daysInMonth=function(){return this.endOf(f).$D},w.$locale=function(){return ie[this.$L]},w.locale=function(A,_){if(!A)return this.$L;var S=this.clone(),U=ot(A,_,!0);return U&&(S.$L=U),S},w.clone=function(){return G.w(this.$d,this)},w.toDate=function(){return new Date(this.valueOf())},w.toJSON=function(){return this.isValid()?this.toISOString():null},w.toISOString=function(){return this.$d.toISOString()},w.toString=function(){return this.$d.toUTCString()},O}(),Ya=Gt.prototype;return Y.prototype=Ya,[["$ms",n],["$s",o],["$m",s],["$H",i],["$W",u],["$M",f],["$y",h],["$D",y]].forEach(function(O){Ya[O[1]]=function(w){return this.$g(w,O[0],O[1])}}),Y.extend=function(O,w){return O.$i||(O(w,Gt,Y),O.$i=!0),Y},Y.locale=ot,Y.isDayjs=nt,Y.unix=function(O){return Y(1e3*O)},Y.en=ie[ye],Y.Ls=ie,Y.p={},Y})});var jb=p((C4,$b)=>{"use strict";function XN(e,t,r,n){for(var o=-1,s=e==null?0:e.length;++o<s;){var i=e[o];t(n,i,r(i),e)}return n}a(XN,"arrayAggregator");$b.exports=XN});var Kb=p((L4,Qb)=>{"use strict";var ZN=us(),eB=Or();function tB(e,t){return e&&ZN(e,t,eB)}a(tB,"baseForOwn");Qb.exports=tB});var Hb=p((U4,Vb)=>{"use strict";var rB=mr();function aB(e,t){return function(r,n){if(r==null)return r;if(!rB(r))return e(r,n);for(var o=r.length,s=t?o:-1,i=Object(r);(t?s--:++s<o)&&n(i[s],s,i)!==!1;);return r}}a(aB,"createBaseEach");Vb.exports=aB});var zb=p((D4,Yb)=>{"use strict";var nB=Kb(),oB=Hb(),sB=oB(nB);Yb.exports=sB});var Xb=p((k4,Jb)=>{"use strict";var iB=zb();function uB(e,t,r,n){return iB(e,function(o,s,i){t(n,o,r(o),i)}),n}a(uB,"baseAggregator");Jb.exports=uB});var eI=p((N4,Zb)=>{"use strict";var cB=jb(),pB=Xb(),lB=su(),dB=Ee();function fB(e,t){return function(r,n){var o=dB(r)?cB:pB,s=t?t():{};return o(r,e,lB(n,2),s)}}a(fB,"createAggregator");Zb.exports=fB});var rI=p((G4,tI)=>{"use strict";var mB=Aa(),gB=eI(),hB=Object.prototype,yB=hB.hasOwnProperty,AB=gB(function(e,t,r){yB.call(e,r)?e[r].push(t):mB(e,r,[t])});tI.exports=AB});var FB={};x(FB,{Method:()=>Ro,ai:()=>Hu,api:()=>wu,auditLogs:()=>kt,automations:()=>Qn,backups:()=>Ne,branding:()=>Un,constants:()=>aa,environmentVariables:()=>mt,features:()=>Ze,groups:()=>re,init:()=>Im,licensing:()=>ct,logger:()=>Zt,mappers:()=>ce,middleware:()=>hu,plugins:()=>Kn,publicApi:()=>Yn,quotas:()=>ft,scimGroups:()=>qr,scimUsers:()=>qe,sdk:()=>pu,users:()=>Wn,utils:()=>cr});module.exports=DI(FB);var Ro=(s=>(s.POST="POST",s.GET="GET",s.PATCH="PATCH",s.DELETE="DELETE",s.PUT="PUT",s))(Ro||{});var pu={};x(pu,{ai:()=>Ms,auditLogs:()=>kt,automations:()=>Qn,backups:()=>Ne,branding:()=>Un,environmentVariables:()=>mt,features:()=>Ze,groups:()=>re,init:()=>Im,licensing:()=>ct,logger:()=>Zt,plugins:()=>Kn,publicApi:()=>Yn,quotas:()=>ft,scimGroups:()=>qr,scimUsers:()=>qe,users:()=>Wn,utils:()=>cr});var Un={};x(Un,{getBrandingConfig:()=>xx});var Ze={};x(Ze,{checkBackups:()=>xe,checkFeature:()=>Ln,checkFeatures:()=>Os,checkSCIM:()=>Ds,isAppBuildersEnabled:()=>Us,isAuditLogsEnabled:()=>Pn,isBackupsEnabled:()=>Ls,isBrandingEnabled:()=>Ps,isEnforceableSSO:()=>Uf,isExpandedPublicApiEnabled:()=>It,isPWAEnabled:()=>Sx,isPkceOidcEnabled:()=>Tx,isRecaptchaEnabled:()=>wx,isSSOEnforced:()=>Ex,isSyncAutomationsEnabled:()=>bx,isTriggerAutomationRunEnabled:()=>Ix,isUserGroupsEnabled:()=>qs,isViewPermissionEnabled:()=>Rx,isViewReadonlyColumnsEnabled:()=>vx});var bt=require("@budibase/backend-core"),Ae=require("@budibase/types");var ct={};x(ct,{cache:()=>Je,client:()=>Lt,features:()=>dn,getFreeLicense:()=>_s,getLicense:()=>Rs,getLicenseFromKey:()=>vs,keys:()=>Cs,offline:()=>xn,quotas:()=>fn});var Je={};x(Je,{getCachedLicense:()=>Lf,invalidate:()=>Pf,refresh:()=>Kt});var za=require("@budibase/backend-core");var kr,kI=a(async()=>{kr=await za.RedisClient.init(za.redis.utils.Databases.LICENSES)},"init"),MI=a(async()=>{kr&&await kr.finish()},"shutdown");process.on("exit",async()=>{await MI()});var vo=a(async()=>(kr||await kI(),kr),"getClient");var Lt={};x(Lt,{activateLicenseKey:()=>Wo,getLicense:()=>ir,getLicenseFromKey:()=>Fo,triggerQuota:()=>TS});var Ju=F(require("node-fetch"));var Xu=require("@budibase/backend-core"),_o=require("dd-trace"),Zu=require("dd-trace/ext/formats");var xo=class{constructor(t){this.apiCall=t=>async(r="",n={})=>await _o.tracer.trace(`api.${t}`,async o=>{o.setTag("url",r);let s={...n.headers};s["Content-Type"]||(s["Content-Type"]="application/json",s.Accept="application/json");let i=s["Content-Type"]==="application/json";Xu.logging.correlation.setHeader(s),_o.tracer.inject(o,Zu.HTTP_HEADERS,s);let u={method:t,body:i?JSON.stringify(n.body):n.body,headers:s,credentials:"include"};return(0,Ju.default)(`${this.host}${r}`,u)});this.post=this.apiCall("POST");this.get=this.apiCall("GET");this.patch=this.apiCall("PATCH");this.del=this.apiCall("DELETE");this.put=this.apiCall("PUT");this.host=t}static{a(this,"API")}},Co=xo;var ec=require("@budibase/backend-core");var{getProxyDispatcher:BI}=ec.utils;async function Ja(e,t,r){let n=BI({rejectUnauthorized:r?.rejectUnauthorized});return n?(console.log("[proxyFetch] Using proxy for request",{url:typeof e=="string"?e:e instanceof URL?e.href:e.url,hasDispatcher:!0,rejectUnauthorized:r?.rejectUnauthorized}),fetch(e,{...t,dispatcher:n})):(console.log("[proxyFetch] No proxy configured, using direct fetch",{url:typeof e=="string"?e:e instanceof URL?e.href:e.url}),fetch(e,t))}a(Ja,"proxyFetch");var cn=require("@budibase/types"),B=require("@budibase/backend-core");var it={};x(it,{bustCache:()=>Po,getCurrentUsageValues:()=>uc,getQuotaUsage:()=>Ft,setAllUsage:()=>qo,setAppUsageValue:()=>Uo,setUsage:()=>oc,setUsagePerApp:()=>sc,utils:()=>Gr});var Le=require("@budibase/backend-core"),ve=require("@budibase/types");var Gr={};x(Gr,{generateBaseQuotaUsage:()=>Za,generateNewMonthlyQuotas:()=>Br,generateNewQuotaUsage:()=>Lo,getBreakdownName:()=>tn,getCurrentMonthString:()=>xt,getQuotaDocId:()=>Nr,setCurrentMonth:()=>en,setQuotaReset:()=>Oo});var Mr=require("@budibase/backend-core"),Xa=require("@budibase/shared-core"),le=require("@budibase/types");var Nr=a(()=>Mr.context.isSelfHostUsingCloud()?`quota_usage_${Mr.context.getTenantId()}`:Mr.db.StaticDatabases.GLOBAL.docs.usageQuota,"getQuotaDocId"),tc=a(()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth()+1,1).toISOString()},"getNextQuotaReset"),Oo=a(e=>{e.quotaReset=tc()},"setQuotaReset"),xt=a(()=>{let e=new Date,t=e.getMonth()+1,r=e.getFullYear();return`${t}-${r}`},"getCurrentMonthString"),Za=a(()=>({usageQuota:{[le.StaticQuotaName.WORKSPACES]:0,[le.StaticQuotaName.ROWS]:0,[le.StaticQuotaName.PLUGINS]:0,[le.StaticQuotaName.USERS]:0,[le.StaticQuotaName.CREATORS]:0,[le.StaticQuotaName.USER_GROUPS]:0,[le.StaticQuotaName.AI_CUSTOM_CONFIGS]:0,triggers:{}},monthly:{[xt()]:Br()}}),"generateBaseQuotaUsage"),Lo=a(()=>{let e={_id:Nr(),quotaReset:tc(),...Za(),apps:{}};return en(e),e},"generateNewQuotaUsage"),Br=a(()=>({[le.MonthlyQuotaName.QUERIES]:0,[le.MonthlyQuotaName.AUTOMATIONS]:0,[le.MonthlyQuotaName.BUDIBASE_AI_CREDITS]:0,[le.MonthlyQuotaName.ACTIONS]:0,triggers:{}}),"generateNewMonthlyQuotas"),en=a(e=>{let t=xt();e.monthly||(e.monthly={}),e.monthly[t]||(e.monthly[t]=Br()),e.monthly.current=e.monthly[t]},"setCurrentMonth"),tn=a((e,t)=>{if(!(!t||!e))switch(e){case le.MonthlyQuotaName.AUTOMATIONS:return le.BreakdownQuotaName.AUTOMATIONS;case le.MonthlyQuotaName.QUERIES:return(0,Xa.isTableIdOrExternalTableId)(t)?le.BreakdownQuotaName.ROW_QUERIES:(0,Xa.isDatasourceOrDatasourcePlusId)(t)?le.BreakdownQuotaName.DATASOURCE_QUERIES:void 0}},"getBreakdownName");var rc=Le.Duration.fromSeconds(60).toMs(),{Writethrough:ac}=Le.cache.writethrough;function GI(e){return delete e.usageLimits,delete e.usageQuota.automationRuns,delete e.usageQuota.emails,delete e.usageQuota.storage,delete e.usageQuota.views,delete e.usageQuota.publishedApps,delete e.usageQuota.developers,e}a(GI,"clearDeprecated");var rn=a(()=>Le.tenancy.isSelfHostUsingCloud()?new ac(Le.tenancy.getSelfHostCloudDB(),rc):new ac(Le.tenancy.getGlobalDB(),rc),"getDB");async function Po(e=0){let r=rn(),n=Nr(),o=await r.tryGet(n);o&&o._rev&&await r.remove(n,o._rev).catch(async s=>{if(e<1)return await Po(e+1);throw s})}a(Po,"bustCache");var Ft=a(async()=>{let e=rn(),t=await e.tryGet(Nr());if(!t){t=Lo();let{rev:r}=await e.put(t);t._rev=r}return en(t),Oo(t),GI(t)},"getQuotaUsage"),oc=a(async(e,t,r)=>qo({name:t,type:r,values:{total:e}}),"setUsage"),sc=a(async(e,t,r)=>{let n=rn(),o=await Ft(),s=Object.values(e).reduce((u,c)=>u+c,0);for(let[u,c]of Object.entries(e))o=ic(o,t,r,{total:s,app:c},{appId:u});let i=await n.put(o);return o._rev=i.rev,o},"setUsagePerApp"),FI=a((e,t,r,n)=>{let o=tn(t,r);if(!o||!n?.breakdown)return e;e.breakdown||(e.breakdown={}),e.breakdown[o]||(e.breakdown[o]={parent:t,values:{}});let s=e.breakdown[o];return s.values[r]=n.breakdown,e},"setBreakdown"),Uo=a((e,t,r,n={},o)=>{let s;try{s=Le.db.getProdWorkspaceID(n?.appId||Le.context.getWorkspaceId())}catch{}if(!s||!o.app||!ve.APP_QUOTA_NAMES.includes(t))return e;e.apps?.[s]||(e.apps={...e.apps,[s]:Za()});let i=e.apps[s];switch(r){case ve.QuotaUsageType.STATIC:i.usageQuota[t]=o.app;break;case ve.QuotaUsageType.MONTHLY:{let u=xt(),c=t,f=i.monthly[u];f||(i.monthly[u]=Br(),f=i.monthly[u]),f[c]=o.app,ve.BREAKDOWN_QUOTA_NAMES.includes(c)&&n?.id&&(f=FI(f,c,n.id,o));break}}return e},"setAppUsageValue"),nc=a((e,t,r,n)=>{if(!ve.APP_QUOTA_NAMES.includes(r))return{};let o;try{o=Le.db.getProdWorkspaceID(Le.context.getWorkspaceId())}catch{}if(!o||!e.apps||!e.apps[o])return{app:0};let s=e.apps[o];switch(t){case ve.QuotaUsageType.STATIC:if(s.usageQuota?.[r])return{app:s.usageQuota[r]};break;case ve.QuotaUsageType.MONTHLY:{let i=xt(),u=r;if(!s.monthly?.[i]?.[u])break;let c=s.monthly[i],f=c[u],g,h=tn(u,n);return h&&n&&c.breakdown?.[h]&&(g=c.breakdown[h]?.values[n]),{app:f,breakdown:g||0}}}return{app:0}},"getAppUsageValue"),WI=a((e,t,r)=>{t.usageQuota.triggers||(t.usageQuota.triggers={}),r&&(t.usageQuota.triggers[e]=r)},"setStaticTriggers"),$I=a((e,t,r,n)=>{r.monthly[t].triggers||(r.monthly[t].triggers={}),n&&(r.monthly[t].triggers[e]=n)},"setMonthlyTriggers"),ic=a((e,t,r,n,o={})=>{if(r===ve.QuotaUsageType.STATIC)t=t,e.usageQuota[t]=n.total,WI(t,e,n.triggers);else if(r===ve.QuotaUsageType.MONTHLY){t=t;let s=xt();e.monthly[s][t]=n.total,$I(t,s,e,n.triggers)}else throw new Error(`Invalid usage type: ${r}`);return Uo(e,t,r,o,n)},"coreUsageUpdate"),qo=a(async e=>{let t=Array.isArray(e)?e:[e],r=rn(),n=await Ft();for(let s of t)n=ic(n,s.name,s.type,s.values,s.opts);let o=await r.put(n,0);return n._rev=o.rev,n},"setAllUsage"),uc=a(async(e,t,r)=>{let n=await Ft(),o=0,s={};switch(e){case ve.QuotaUsageType.STATIC:if(n.usageQuota[t]){let i=t;o=n.usageQuota[i],s=nc(n,e,t,r)}break;case ve.QuotaUsageType.MONTHLY:{let i=xt(),u=t;n.monthly[i][u]&&(o=n.monthly[i][u],s=nc(n,e,t,r));break}default:throw new Error(`Invalid usage type: ${e}`)}return ve.APP_QUOTA_NAMES.includes(t)&&!(s.app||s.breakdown)&&(s.app=s.app||0,s.breakdown=s.breakdown||0),{total:o,app:s.app,breakdown:s.breakdown}},"getCurrentUsageValues");var We={};x(We,{destroy:()=>KI,get:()=>Do,save:()=>QI});var Ct=require("@budibase/backend-core");var jI=a(()=>({_id:Ct.StaticDatabases.GLOBAL.docs.licenseInfo}),"newLicenseInfo"),QI=a(async e=>{let t=await Do();t={...t,...e};let n=await Ct.tenancy.getGlobalDB().put(t);return t._rev=n.rev,t},"save"),Do=a(async()=>{let e=Ct.tenancy.getGlobalDB();try{return await e.get(Ct.StaticDatabases.GLOBAL.docs.licenseInfo)}catch(t){if(t.status===404)return jI();throw t}},"get"),KI=a(async()=>{let e=Ct.tenancy.getGlobalDB(),t=await Do();t&&t._rev&&await e.remove(Ct.StaticDatabases.GLOBAL.docs.licenseInfo,t._rev)},"destroy");var z={};x(z,{bulkSave:()=>nS,destroy:()=>oS,fetch:()=>eS,generateUserGroupID:()=>XI,get:()=>tS,getBulk:()=>rS,getByName:()=>ko,getGroupUsers:()=>nn,getGroupUsersParams:()=>fc,getUserGroupsParams:()=>dc,save:()=>aS});var j=require("@budibase/backend-core");var ze=require("@budibase/types"),nr=require("@budibase/backend-core");async function cc(){let e=nr.sql.designDoc.base("type");e.sql.tables={[ze.AUDIT_LOG_TYPE]:{fields:{appId:ze.SQLiteType.TEXT,event:ze.SQLiteType.TEXT,userId:ze.SQLiteType.TEXT,timestamp:ze.SQLiteType.TEXT,metadata:ze.SQLiteType.TEXT,name:ze.SQLiteType.TEXT,type:ze.SQLiteType.TEXT,fallback:ze.SQLiteType.TEXT}}};let t=nr.context.getAuditLogsDB(),r;try{r=await t.get(nr.SQLITE_DESIGN_DOC_ID),r={...r,...e}}catch(n){if(n.status===404)r=e;else throw n}await t.put(r)}a(cc,"createAuditLogDesignDocSQL");var an=require("@budibase/backend-core");var{ViewName:VI,SEPARATOR:HI,DocumentType:YI,createView:zI}=an.db,JI=YI.USER+HI;async function pc(){let e=an.tenancy.getGlobalDB(),t=`function(doc) {
|
|
4
4
|
if (doc._id.startsWith("${JI}") && Array.isArray(doc.userGroups)) {
|
|
5
5
|
for (let groupId of doc.userGroups) {
|
|
6
6
|
emit("g_" + groupId, { email: doc.email, userId: doc._id })
|
|
@@ -34,7 +34,7 @@ l2HXiAD1Q2rlHNW9wDaYyKb1F5f+v4RyqCAyzlkwRdksmkLeECTboojNnmRCrE3C
|
|
|
34
34
|
d/o3ZWE1TTj1zYwlCLN5qRKr3hU8nC3xEYNEbkB9SfTRaOq9Q7P8WmfLkoCPm3pR
|
|
35
35
|
mwIDAQAB
|
|
36
36
|
-----END PUBLIC KEY-----
|
|
37
|
-
`;function sa(e){return $o.default.verify(e,ES,{algorithms:["RS256"]})}a(sa,"verifyLicenseToken");function RS(e,t){return $o.default.sign(t,e,{encoding:"utf-8",algorithm:"RS256"})}a(RS,"sign");var dn={};x(dn,{getFeatures:()=>jo});var l=require("@budibase/types");var vS={[l.PlanType.FREE]:[...De.SELF_FREE_LICENSE.features],[l.PlanType.PREMIUM]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.PDF],[l.PlanType.PREMIUM_PLUS]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PDF,l.Feature.BUDIBASE_AI],[l.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PDF,l.Feature.BUDIBASE_AI],[l.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.PDF,l.Feature.BUDIBASE_AI],[l.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.OFFLINE,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.BUDIBASE_AI,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.BUDIBASE_AI,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.OFFLINE,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.BUDIBASE_AI,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC]},_S={[l.PlanType.FREE]:[...De.CLOUD_FREE_LICENSE.features],[l.PlanType.PREMIUM]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.PDF],[l.PlanType.PREMIUM_PLUS]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.BUDIBASE_AI,l.Feature.PDF],[l.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.BUDIBASE_AI,l.Feature.PDF],[l.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.BUDIBASE_AI,l.Feature.PDF],[l.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.OFFLINE,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.BUDIBASE_AI,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.BUDIBASE_AI,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.BUDIBASE_AI,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC]};function jo(e,t){let r=[];function n(o){let s=o[t];if(!s)throw new Error(`Features do not exist for planType=${t} and hosting=${e}`);return s}switch(a(n,"readFeatures"),e){case l.Hosting.SELF:r=n(vS);break;case l.Hosting.CLOUD:r=n(_S);break}return r}a(jo,"getFeatures");var fn={};x(fn,{UNLIMITED:()=>m,getQuotas:()=>Qo});var J=require("@budibase/types");var d=At,qc=De,m=-1,ua=a(e=>e*1e6,"millions"),xS={[J.PlanType.FREE]:{...qc.CLOUD_FREE_LICENSE.quotas},[J.PlanType.PREMIUM]:{usage:{monthly:{...d.queries(m),...d.automations(1e3),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(1e4),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(7),...d.appBackupRetentionDays(7)}},[J.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...d.queries(m),...d.automations(5e3),...d.budibaseAICredits(ua(2)),...d.actions(m)},static:{...d.rows(25e3),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(5e3),...d.budibaseAICredits(ua(2)),...d.actions(m)},static:{...d.rows(25e3),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PRO]:{usage:{monthly:{...d.queries(m),...d.automations(1e3),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(5),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(7),...d.appBackupRetentionDays(7)}},[J.PlanType.TEAM]:{usage:{monthly:{...d.queries(m),...d.automations(5e3),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(10),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(90)}},[J.PlanType.BUSINESS]:{usage:{monthly:{...d.queries(m),...d.automations(1e4),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(5e4),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(50),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(365),...d.appBackupRetentionDays(365)}},[J.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(ua(4)),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}},[J.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(ua(4)),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(15),...d.appBackupRetentionDays(15)}},[J.PlanType.ENTERPRISE]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(ua(4)),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}}},CS={[J.PlanType.FREE]:{...qc.SELF_FREE_LICENSE.quotas},[J.PlanType.PREMIUM]:void 0,[J.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PRO]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(5),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(7),...d.appBackupRetentionDays(7)}},[J.PlanType.TEAM]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(10),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(90)}},[J.PlanType.BUSINESS]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(50),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(90),...d.appBackupRetentionDays(365)}},[J.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}},[J.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(15),...d.appBackupRetentionDays(15)}},[J.PlanType.ENTERPRISE]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}}};function Qo(e,t){let r;function n(o){let s=o[t];if(!s)throw new Error(`Quotas do not exist for planType=${t} and hosting=${e}`);return s}switch(a(n,"readQuotas"),e){case J.Hosting.SELF:r=n(CS);break;case J.Hosting.CLOUD:r=n(xS);break}return JSON.parse(JSON.stringify(r))}a(Qo,"getQuotas");var cr={};x(cr,{encoding:()=>ur,workspaceExists:()=>OS});var Dc=require("@budibase/backend-core");async function OS(e){return(await Dc.db.getAllWorkspaces({all:!0,idsOnly:!0})).includes(e)}a(OS,"workspaceExists");var ur={};x(ur,{base64ToObject:()=>PS,objectToBase64:()=>LS});function LS(e){let t=JSON.stringify(e);return Buffer.from(t).toString("base64")}a(LS,"objectToBase64");function PS(e){let t=Buffer.from(e,"base64").toString();return JSON.parse(t)}a(PS,"base64ToObject");var bf=require("@budibase/types"),wr=require("@budibase/backend-core"),If=F(Jl()),Sf=F(bs());async function ix(e){await We.save({offlineLicenseToken:e}),await Kt()}a(ix,"activateOfflineLicenseToken");async function ux(){await We.save({offlineLicenseToken:void 0}),await Kt()}a(ux,"deleteOfflineLicenseToken");async function wf(){return(await We.get()).offlineLicenseToken}a(wf,"getOfflineLicenseToken");async function Is(){let t=(await wr.installation.getInstall()).installId,r=wr.context.getTenantId(),n=await wr.events.identification.getUniqueTenantId(r);return{installId:t,tenantId:n}}a(Is,"getIdentifier");async function cx(){let e=await Is();return ur.objectToBase64(e)}a(cx,"getIdentifierBase64");function px(e){return ur.base64ToObject(e)}a(px,"getIdentifierFromBase64");function Tf(e){let t=Date.now(),r=new Date(e.expireAt).getTime();if(t>r)throw new Error(`Offline license has expired. expireAt=${e.expireAt}`)}a(Tf,"verifyExpiry");async function Ef(e){let t=await Is();if(e.identifier.installId!==t.installId||e.identifier.tenantId!==t.tenantId)throw new Error("Invalid offline license")}a(Ef,"verifyInstallation");function Rf(e){let t=e.plan.type,r=bf.Hosting.SELF,n=jo(r,t),o=Qo(r,t);return e.features=(0,If.default)(e.features,n),e.quotas=(0,Sf.default)(e.quotas,o),e}a(Rf,"enrichLicense");async function Ss(){try{let e=await wf();if(e){let t=await sa(e);return Tf(t),await Ef(t),Rf(t)}}catch(e){console.error("Error retrieving offline license",e)}}a(Ss,"getOfflineLicense");var _a={};x(_a,{deleteDevLicense:()=>gx,getOfflineLicense:()=>fx,writeDevLicenseToDisk:()=>mx});var vf=require("@budibase/backend-core"),Ts=require("path"),_f=require("os"),Vt=F(require("fs"));var lx=vf.env.isTest()?".budibase-test":".budibase",ws=(0,Ts.join)((0,_f.tmpdir)(),lx),dx="dev_license.txt",va=(0,Ts.join)(ws,dx);if(!Vt.default.existsSync(ws))try{Vt.default.mkdirSync(ws)}catch{}function fx(){try{if(Vt.default.existsSync(va)){let e=Vt.default.readFileSync(va,{encoding:"utf-8"});return sa(e)}}catch(e){console.error("Error retrieving offline license from disk",e)}}a(fx,"getOfflineLicense");function mx(e){console.log(`Writing license to: ${va}`),Vt.default.writeFileSync(va,e,{encoding:"utf-8"})}a(mx,"writeDevLicenseToDisk");function gx(){Vt.default.rmSync(va,{force:!0})}a(gx,"deleteDevLicense");var xf=require("dd-trace");var Rs=a(async()=>await xf.tracer.trace("getLicense",async e=>{if(Es.env.OFFLINE_MODE)return e.addTags({offline:!0}),Ss();let t=await ir();return t||(e.addTags({offlineFallback:!0}),t=_a.getOfflineLicense()),t}),"getLicense"),vs=a(e=>Fo(e),"getLicenseFromKey"),_s=a(()=>Es.env.SELF_HOSTED?De.SELF_FREE_LICENSE:De.CLOUD_FREE_LICENSE,"getFreeLicense");var Cs={};x(Cs,{activateLicenseKey:()=>hx,deleteLicenseKey:()=>yx,getLicenseKey:()=>Cn});var xs=F(require("dd-trace"));async function hx(e){await Wo(e),await We.save({licenseKey:e}),await Kt()}a(hx,"activateLicenseKey");async function Cn(){return await xs.default.trace("getLicenseKey",async e=>{let t=await We.get();return e.addTags({licenseKey:t.licenseKey}),t.licenseKey})}a(Cn,"getLicenseKey");async function yx(){return await xs.default.trace("deleteLicenseKey",async()=>{await We.save({licenseKey:void 0}),await Kt()})}a(yx,"deleteLicenseKey");var Ht=require("@budibase/backend-core"),On=F(require("dd-trace"));var Cf=3600,Kt=a(async()=>{await Pf(),await Lf()},"refresh"),Of=a(async(e,t)=>{let{populateLicense:r=Rs,populateFreeLicense:n=_s}=t||{};return await On.default.trace("getCachedLicense",async o=>{let s=Ht.context.getLicense();if(s)return o.addTags({foundInContext:!0,features:s.features,plan:s.plan,quotas:s.quotas}),s;let i=Ht.tenancy.getTenantId(),u=await vo(),c=await u.get(i);return o.addTags({tenantId:i,foundInCache:!!c}),c?(o.addTags({foundInCache:!0,refreshedAt:c.refreshedAt,features:c.features,plan:c.plan,quotas:c.quotas}),c):(c=await On.default.trace("populateLicense",async()=>await r(i)),o.addTags({populatedLicense:!!c}),c||(c=On.default.trace("populateFreeLicense",()=>n(e,i)),o.addTags({populatedFreeLicense:!!c})),c.refreshedAt=new Date().toISOString(),o.addTags({refreshedAt:c.refreshedAt,features:c.features,plan:c.plan,quotas:c.quotas,expirySeconds:Cf}),await u.store(i,c,Cf),c)})},"_getCachedLicense");Ht.env.isJest()&&(Of=jest.fn());var Lf=Of,Pf=a(async()=>{let e=Ht.tenancy.getTenantId();await(await vo()).delete(e)},"invalidate");async function be(e,t){Array.isArray(e)||(e=[e]),t||(t=await Je.getCachedLicense());for(let r of e)if(!t?.features.includes(r))return!1;return!0}a(be,"areFeaturesEnabled");async function Ln(e,t){if(!await be(e,t))throw new bt.FeatureDisabledError(`${e} is not currently enabled`,e)}a(Ln,"checkFeature");async function Os(e,t){if(!await be(e,t)){let r=e.join(", ");throw new bt.FeatureDisabledError(`${r} are not currently enabled`,r)}}a(Os,"checkFeatures");function xe(e){return async(...t)=>(await Ln(Ae.Feature.WORKSPACE_BACKUPS),e(...t))}a(xe,"checkBackups");async function Ls(){return be(Ae.Feature.WORKSPACE_BACKUPS)}a(Ls,"isBackupsEnabled");async function Ps(){return be(Ae.Feature.BRANDING)}a(Ps,"isBrandingEnabled");async function Uf(){return be(Ae.Feature.ENFORCEABLE_SSO)}a(Uf,"isEnforceableSSO");async function bx(){return be(Ae.Feature.SYNC_AUTOMATIONS)}a(bx,"isSyncAutomationsEnabled");async function Ix(){return be(Ae.Feature.TRIGGER_AUTOMATION_RUN)}a(Ix,"isTriggerAutomationRunEnabled");async function Us(){return be(Ae.Feature.APP_BUILDERS)}a(Us,"isAppBuildersEnabled");async function Pn(){return be(Ae.Feature.AUDIT_LOGS)}a(Pn,"isAuditLogsEnabled");async function qs(){return be(Ae.Feature.USER_GROUPS)}a(qs,"isUserGroupsEnabled");function Sx(){return be(Ae.Feature.PWA)}a(Sx,"isPWAEnabled");function wx(){return be(Ae.Feature.RECAPTCHA)}a(wx,"isRecaptchaEnabled");var Tx=a(()=>be(Ae.Feature.PKCE_OIDC),"isPkceOidcEnabled");async function It(){return be(Ae.Feature.EXPANDED_PUBLIC_API)}a(It,"isExpandedPublicApiEnabled");async function Ex(e){if(bt.env.ENABLE_SSO_MAINTENANCE_MODE||!await Uf())return!1;let r;return e?.config?r=e.config:r=await bt.configs.getSettingsConfig(),!!r.isSSOEnforced}a(Ex,"isSSOEnforced");var Ds=a(async()=>{let e=Ae.Feature.SCIM,t=await be(e),r=await bt.configs.getSCIMConfig();if(!t||!r?.enabled)throw new bt.FeatureDisabledError(`${e} is not currently enabled`,e);return!0},"checkSCIM");async function Rx(){return be(Ae.Feature.VIEW_PERMISSIONS)}a(Rx,"isViewPermissionEnabled");async function vx(){return be(Ae.Feature.VIEW_READONLY_COLUMNS)}a(vx,"isViewReadonlyColumnsEnabled");var _x={faviconUrl:void 0,faviconUrlEtag:void 0,emailBrandingEnabled:!0,platformTitle:void 0,loginHeading:void 0,loginButton:void 0,metaDescription:void 0,metaImageUrl:void 0,metaTitle:void 0};async function xx(e){return await Ps()?{faviconUrl:e.faviconUrl,faviconUrlEtag:e.faviconUrlEtag,emailBrandingEnabled:e.emailBrandingEnabled,platformTitle:e.platformTitle,loginHeading:e.loginHeading,loginButton:e.loginButton,metaDescription:e.metaDescription,metaImageUrl:e.metaImageUrl,metaTitle:e.metaTitle}:_x}a(xx,"getBrandingConfig");var Ms={};x(Ms,{enrichAIConfig:()=>ks});var qf=require("@budibase/backend-core");var Cx="budibase_ai";async function ks(e){if(qf.env.SELF_HOSTED)return e;for(let t of Object.values(e.config))if(t.provider==="BudibaseAI")return e;return e.config[Cx]={provider:"BudibaseAI",active:!0,isDefault:Object.keys(e.config).every(t=>!e.config[t].isDefault),defaultModel:process.env.BUDIBASE_AI_DEFAULT_MODEL||"gpt-5-mini",name:"Budibase AI"},e}a(ks,"enrichAIConfig");var ft={};x(ft,{addAction:()=>qx,addApp:()=>Dx,addAutomation:()=>Fx,addGroup:()=>Bs,addPlugin:()=>Fs,addRow:()=>Mx,addRows:()=>Bx,addUsers:()=>kn,bustCache:()=>Po,decrement:()=>St,decrementMany:()=>xa,getCurrentUsageValues:()=>uc,getLicensedQuota:()=>kf,getQuotaUsage:()=>Ft,increment:()=>Me,incrementBudibaseAICredits:()=>Nn,incrementMany:()=>zt,removeApp:()=>kx,removeGroup:()=>Gs,removePlugin:()=>Ws,removeRow:()=>Nx,removeRows:()=>Gx,removeUsers:()=>vr,set:()=>Ns,setAllUsage:()=>qo,setAppUsageValue:()=>Uo,setUsage:()=>oc,setUsagePerApp:()=>sc,updatePluginCount:()=>$s,updateUsage:()=>Tr,usageLimitIsExceeded:()=>Ux,utils:()=>Gr});var qn=require("@budibase/types");var et=require("@budibase/backend-core"),de=require("@budibase/types"),Yt=require("dd-trace");var Me=a(async(e,t,r)=>await Yt.tracer.trace("quotas.increment",async n=>(n.addTags({name:e,type:t}),await Df({change:1,name:e,type:t,opts:r}))),"increment"),zt=a(e=>Yt.tracer.trace("quotas.incrementMany",async()=>Df(e)),"incrementMany"),Df=a(async e=>await Yt.tracer.trace("quotas.tryIncrement",async t=>{let r=Array.isArray(e)?e:[e];t.addTags({numActions:r.length}),await Tr(r.map(o=>({usageChange:o.change,name:o.name,type:o.type,opts:{dryRun:!0,suppressErrorLog:o.opts?.suppressErrorLog,id:o.opts?.id}})));let n=[];for(let o of r)await Yt.tracer.trace("quotas.incrementMany.fn",async s=>{s.addTags({actionName:o.name,actionType:o.type,actionChange:o.change});let i=o.opts?.fn;i&&n.push(await i())});return await Tr(r.map(o=>({usageChange:o.change,name:o.name,type:o.type,opts:{dryRun:!1,valueFn:o.opts?.valueFn,suppressErrorLog:o.opts?.suppressErrorLog,id:o.opts?.id}}))),n[0]}),"tryIncrement"),St=a((e,t,r={})=>Tr({usageChange:-1,name:e,type:t,opts:r}),"decrement"),xa=a(e=>{let t=Array.isArray(e)?e:[e];return Tr(t.map(r=>({usageChange:-r.change,name:r.name,type:r.type,opts:r.opts})))},"decrementMany"),Ns=a(async(e,t,r)=>it.setUsage(r,e,t),"set"),Ox=a((e,t,r)=>{if(e==de.QuotaUsageType.STATIC){let n=r.usageQuota.triggers;return n?n[t]||{}:{}}else{let n=it.utils.getCurrentMonthString(),o=r.monthly[n].triggers;return o?o[t]||{}:{}}},"getExistingTriggers"),Lx=a(async(e,t,r,n)=>{try{await et.locks.doWithLock({type:de.LockType.TRY_ONCE,name:de.LockName.TRIGGER_QUOTA,resource:e,ttl:1e4},async()=>{let o={percentage:r,name:t.name};n&&(o.resetDate=n),await Lt.triggerQuota(o)})}catch(o){et.logging.logAlert("Error triggering quota",o)}},"triggerQuota"),Px=a(async(e,t,r,n)=>{let o=await Ft(),s=e===de.QuotaUsageType.MONTHLY?o.quotaReset:void 0,i=await Ox(e,t,o),u=n.triggers,c=r/n.value*100;c>100&&(c=100);for(let[f,g]of u.entries())if(c>=g&&n.value!==At.UNLIMITED){if(!i[g]){i[g]=new Date().toISOString();let y=u[f+1]||100;(!(c>=y)||c===g)&&await Lx(t,n,c,s)}}else i[g]=void 0;return i},"checkTriggers"),Tr=a(async e=>{await Yt.tracer.trace("quotas.updateUsage",async t=>{let r=et.tenancy.getTenantId(),n=Array.isArray(e)?e:[e];t.addTags({numActions:n.length,tenantId:r});let o,s,i=[],u={},c={},f={},g={};for(let y of n)await Yt.tracer.trace("quotas.updateUsage.action",async E=>{E.addTags({actionName:y.name,actionType:y.type,actionUsageChange:y.usageChange});try{o=et.context.getWorkspaceId()}catch{}if(de.APP_QUOTA_NAMES.includes(y.name)&&!o)throw new Error("App context required for quota update");try{s=await kf(de.QuotaType.USAGE,y.name,y.type),i.push(s);let{total:k,app:D,breakdown:C}=await it.getCurrentUsageValues(y.type,y.name,y.opts?.id);k+=y.usageChange,D!=null&&(D+=y.usageChange),C!=null&&(C+=y.usageChange);let W={};if(y.opts?.dryRun||(W=await Px(y.type,y.name,k,s),g={...g,[y.name]:W}),s.value!==At.UNLIMITED&&k>s.value&&y.usageChange>0)throw new et.UsageLimitError(`Licensed ${s.name} of ${s.value} has been exceeded`,s.name);if(k=Math.max(0,k),D&&(D=Math.max(0,D)),C&&(C=Math.max(0,C),f={...f,[y.name]:C}),!y.opts?.dryRun){let ye=y.opts?.valueFn;ye&&(k=await ye(),D=k),u={...u,[y.name]:k},c={...c,[y.name]:D}}}catch(k){throw y.opts?.suppressErrorLog||console.error(`Error updating usage quotas for ${y.name}`,k),k}});let h=n.filter(y=>!y.opts?.dryRun).map(y=>({name:y.name,type:y.type,values:{total:u[y.name],app:c[y.name],breakdown:f[y.name],triggers:g[y.name]},opts:{...y.opts,tenantId:r}}));h.length>0&&await it.setAllUsage(h)})},"updateUsage"),kf=a(async(e,t,r)=>{let n=await Je.getCachedLicense();if(!n){let o=et.tenancy.getTenantId();throw new Error("License not found for tenant id "+o)}if(r&&(0,de.isStaticQuota)(e,r,t))return n.quotas[e][r][t];if(r&&(0,de.isMonthlyQuota)(e,r,t))return n.quotas[e][r][t];if((0,de.isConstantQuota)(e,t))return n.quotas[e][t];throw new Error("Invalid quota type")},"getLicensedQuota"),Ux=a(async({name:e,type:t,usageChange:r})=>{try{return await Tr({usageChange:r,name:e,type:t,opts:{dryRun:!0}}),!1}catch(n){if(n.code===de.ErrorCode.USAGE_LIMIT_EXCEEDED)return!0;throw n}},"usageLimitIsExceeded");var qx=a(async e=>Me(qn.MonthlyQuotaName.ACTIONS,qn.QuotaUsageType.MONTHLY,{fn:e}),"addAction");var Mf=require("@budibase/backend-core"),Er=require("@budibase/types");var Nf=a(async()=>{let e=await Mf.db.getAllWorkspaces({dev:!0});return e?e.length:0},"getDevAppsCount"),Dx=a(async(e,{appId:t}={})=>Me(Er.StaticQuotaName.WORKSPACES,Er.QuotaUsageType.STATIC,{fn:e,valueFn:Nf,id:t}),"addApp"),kx=a(async({appId:e}={})=>St(Er.StaticQuotaName.WORKSPACES,Er.QuotaUsageType.STATIC,{valueFn:Nf,id:e}),"removeApp");var lt=require("@budibase/types");var Mx=a(async(e,{tableId:t}={})=>Me(lt.StaticQuotaName.ROWS,lt.QuotaUsageType.STATIC,{fn:e,id:t}),"addRow"),Nx=a(async({tableId:e}={})=>St(lt.StaticQuotaName.ROWS,lt.QuotaUsageType.STATIC,{id:e}),"removeRow"),Bx=a(async(e,t,{tableId:r}={})=>zt({change:e,name:lt.StaticQuotaName.ROWS,type:lt.QuotaUsageType.STATIC,opts:{fn:t,id:r}}),"addRows"),Gx=a(async(e,{tableId:t}={})=>xa({change:e,name:lt.StaticQuotaName.ROWS,type:lt.QuotaUsageType.STATIC,opts:{id:t}}),"removeRows");var Dn=require("@budibase/types");var Fx=a(async(e,{automationId:t}={})=>Me(Dn.MonthlyQuotaName.AUTOMATIONS,Dn.QuotaUsageType.MONTHLY,{fn:e,id:t}),"addAutomation");var Rr=require("@budibase/types");var Bs=a(async e=>Me(Rr.StaticQuotaName.USER_GROUPS,Rr.QuotaUsageType.STATIC,{fn:e}),"addGroup"),Gs=a(async()=>St(Rr.StaticQuotaName.USER_GROUPS,Rr.QuotaUsageType.STATIC),"removeGroup");var Dt=require("@budibase/types");var Fs=a(async e=>Me(Dt.StaticQuotaName.PLUGINS,Dt.QuotaUsageType.STATIC,{fn:e}),"addPlugin"),Ws=a(async()=>St(Dt.StaticQuotaName.PLUGINS,Dt.QuotaUsageType.STATIC),"removePlugin"),$s=a(async e=>Ns(Dt.StaticQuotaName.PLUGINS,Dt.QuotaUsageType.STATIC,e),"updatePluginCount");var dt=require("@budibase/types"),Ca=require("@budibase/backend-core");var kn=a(async(e,t,r)=>{let n=[{change:e,name:dt.StaticQuotaName.USERS,type:dt.QuotaUsageType.STATIC,opts:{fn:r,valueFn:Ca.users.getUserCount}}];t>0&&n.push({change:t,name:dt.StaticQuotaName.CREATORS,type:dt.QuotaUsageType.STATIC,opts:{valueFn:Ca.users.getCreatorCount}});let o=await zt(n);return await ir(),o},"addUsers"),vr=a(async(e,t)=>{let r=[{change:e,name:dt.StaticQuotaName.USERS,type:dt.QuotaUsageType.STATIC,opts:{valueFn:Ca.users.getUserCount}}];t>0&&r.push({change:t,name:dt.StaticQuotaName.CREATORS,type:dt.QuotaUsageType.STATIC,opts:{valueFn:Ca.users.getCreatorCount}}),await xa(r),await ir()},"removeUsers");var Mn=require("@budibase/types");var Nn=a(async e=>zt({change:e,name:Mn.MonthlyQuotaName.BUDIBASE_AI_CREDITS,type:Mn.QuotaUsageType.MONTHLY}),"incrementBudibaseAICredits");var Wn={};x(Wn,{db:()=>Qe});var Hs=require("@budibase/backend-core");var re={};x(re,{addUsers:()=>Fn,adjustGroupCreatorsQuotas:()=>Qx,cleanupApp:()=>jx,enrichUserRolesFromGroups:()=>$x,fetch:()=>Oa,get:()=>_r,getBulk:()=>Qf,getGroupBuilderAppIds:()=>jf,getGroupRoleId:()=>Wx,remove:()=>Qs,removeUsers:()=>Ks,save:()=>Gn,updateGroupApps:()=>Vs});var N=require("@budibase/backend-core");var Bf=require("@budibase/backend-core");var Bn=class extends Bf.HTTPError{static{a(this,"GroupNameUnavailableError")}constructor(t){super(`Group name "${t}" is unavailable`,409)}};async function Wf(e,t){try{let r=[];for(let u of e)if(u.roles){let c=u.roles[N.db.getProdWorkspaceID(t)];c&&r.push(c)}let n=await Promise.all(r.map(async u=>({[u]:await N.roles.roleToNumber(u)}))),o,s,i={};n.forEach(u=>{let[c,f]=Object.entries(u)[0];i[c]={roleId:c,roleNum:f}});for(let{roleId:u,roleNum:c}of Object.values(i))(s===void 0||c>s)&&(s=c,o=u);return o}catch(r){throw N.logging.logAlert(`Error finding higest role for ${e.length} on app ${t}`,r),r}}a(Wf,"findHighestRole");async function $f(e,t){return t?t=t.filter(r=>e.includes(r._id)):t=await z.getBulk(e,{enriched:!1}),t}a($f,"groupList");async function jf(e,t){if(!e.userGroups)return[];let r=await $f(e.userGroups,t?.groups),n=t?.appId?N.db.getProdWorkspaceID(t?.appId):null,o=[];for(let s of r){let i=s.builder?.apps;n&&i?.includes(n)?o.push(n):n||(o=o.concat(i||[]))}return[...new Set(o)]}a(jf,"getGroupBuilderAppIds");async function Wx(e,t,r){if(!e.userGroups)return null;let n=await $f(e.userGroups,r?.groups),o=N.db.getProdWorkspaceID(t);return e.roles?.[o]?e.roles[o]:(n=n.filter(s=>s?.roles?Object.keys(s.roles).includes(o):!1),await Wf(n,t))}a(Wx,"getGroupRoleId");async function $x(e){if(!e||!e.userGroups)return e;let t=await Qf(e.userGroups,{enriched:!1}),r=[];for(let o of t)o?.roles&&(r=r.concat(Object.keys(o.roles)));r=[...new Set(r)];for(let o of r)await N.context.doInWorkspaceContext(o,async()=>{if(e.roles[o])return;let s=await Wf(t,o);s&&(e.roles[o]=s)});let n=await jf(e,{groups:t});if(n.length&&!e.builder?.global){let o=e.builder?.apps||[];e.builder={apps:o.concat(n)}}return e}a($x,"enrichUserRolesFromGroups");async function Oa(){return await z.fetch()}a(Oa,"fetch");async function _r(e){return await z.get(e)}a(_r,"get");async function Qf(e,t={enriched:!0}){return await z.getBulk(e,t)}a(Qf,"getBulk");async function Gf(e){if(await z.getByName(e))throw new Bn(e)}a(Gf,"guardNameAvailability");async function Ff(e){let t=await z.getGroupUsers(e._id);if(!t.length)return 0;let n=await N.tenancy.getGlobalDB().getMultiple(t.map(s=>s._id));return(await N.userUtils.creatorsInList(n)).filter(s=>s).length}a(Ff,"getCreatorsCountInGroup");async function Gn(e){let t=[],r=!e._id,n=0;if(delete e.users,!e._id)e._id=z.generateUserGroupID(),await Gf(e.name),t.push(N.events.group.created(e));else{let s=await z.get(e._id);if(s.name!==e.name&&await Gf(e.name),t.push(N.events.group.updated(e)),JSON.stringify(s.roles)!==JSON.stringify(e.roles)){let i=s.users?.length||0,u=0;i>0&&(u=await Ff(s)),Object.values(e.roles).includes("CREATOR")?n=i-u:n=-i,t.push(N.events.group.permissionsEdited(e))}}await Promise.all(t);let o=a(()=>z.save(e),"saveGroup");if(r)return await Bs(o);{let s=await o();if(n>0)await kn(0,n);else if(n<0){let i=await Ff(e),u=Math.abs(n)-i;u>0&&await vr(0,u)}return s}}a(Gn,"save");async function Qs(e,t){let r;try{r=await z.get(e)}catch{throw new Error("Group not found")}let n=Object.values(r.roles||{}).includes("CREATOR"),o=a(()=>{},"recalculateCreatorsQuotasFn");if(n){let i=N.tenancy.getGlobalDB(),u=await z.getGroupUsers(e),f=(await Promise.all(u.map(E=>i.get(E._id)))).map(E=>({...E,userGroups:E.userGroups.filter(M=>M!==e)})),h=(await N.userUtils.creatorsInList(f)).filter(E=>E).length,y=u.length-h;y&&(o=a(()=>vr(0,y),"recalculateCreatorsQuotasFn"))}let s=await z.destroy(e,t);return await N.events.group.deleted(r),await Gs(),await o(),s}a(Qs,"remove");async function Fn(e,t){let r=await z.get(e),n=await N.users.bulkGetGlobalUsersById(t),o=[];for(let c of n)c.userGroups||(c.userGroups=[]),c.userGroups.includes(e)||o.push(c);if(!o.length)return o;let s=o.map(c=>({...c,userGroups:[...c?.userGroups||[],e]}));if(await N.users.bulkUpdateGlobalUsers(s),Object.values(r.roles||{}).includes("CREATOR")){let f=(await N.userUtils.creatorsInList(o)).filter(h=>h).length,g=o.length-f;g&&await kn(0,g)}let u=[];for(let c of t)u.push(N.cache.user.invalidateUser(c));return await Promise.all(u),await N.events.group.usersAdded(s.length,r,t),s}a(Fn,"addUsers");async function Ks(e,t){let r=await z.get(e),n=await N.users.bulkGetGlobalUsersById(t),o=[];for(let u of n){if(!u.userGroups||!u.userGroups.includes(e))continue;let c=u.userGroups.indexOf(e);u.userGroups.splice(c,1),o.push(u)}if(await N.users.bulkUpdateGlobalUsers(o),Object.values(r.roles||{}).includes("CREATOR")){let c=(await N.userUtils.creatorsInList(o)).filter(g=>g).length,f=o.length-c;f&&await vr(0,f)}let i=[];for(let u of t)i.push(N.cache.user.invalidateUser(u));return await Promise.all(i),o.length&&await N.events.group.usersDeleted(o.length,r,t),o}a(Ks,"removeUsers");async function Vs(e,t){let r=await _r(e);if(r.roles||(r.roles={}),t.appsToAdd)for(let n of t.appsToAdd)r.roles[n.appId]=n.roleId;if(t.appsToRemove)for(let n of t.appsToRemove)delete r.roles[n.appId];if(r.builder={apps:Object.entries(r.roles).filter(([n,o])=>o==="CREATOR").map(([n])=>n)},r.builder.apps.length&&!Us())throw new N.HTTPError("Feature not enabled, please check license",400);return await Gn(r)}a(Vs,"updateGroupApps");async function jx(e){let t=await Oa(),r=[];for(let n of t)!n.roles||!n.roles[e]||(delete n.roles[e],r.push(n));return await z.bulkSave(r)}a(jx,"cleanupApp");async function Qx(){if(!await qs()){let e=N.tenancy.getGlobalDB(),r=(await Oa()||[]).filter(n=>Object.values(n?.roles||{}).includes("CREATOR"));for(let n of r){let o=await z.getGroupUsers(n._id),i=(await Promise.all(o.map(g=>e.get(g._id)))).map(g=>({...g,userGroups:g.userGroups.filter(h=>h!==n._id)})),c=(await N.userUtils.creatorsInList(i)).filter(g=>g).length,f=o.length-c;await z.save({...n,roles:{}}),f&&await vr(0,f)}}}a(Qx,"adjustGroupCreatorsQuotas");Hs.users.UserDB.init(ft,re,Ze);var Qe=Hs.users.UserDB;var Qn={};x(Qn,{logs:()=>ti});var ti={};x(ti,{logSearch:()=>eC,oldestLogDate:()=>Xf,storeLog:()=>tC});var jn=require("@budibase/backend-core"),Jf=require("@budibase/types");var ge=require("@budibase/backend-core"),$n=require("@budibase/types");var Kf=require("@budibase/backend-core");async function Vf(e,t){let r,n=5,o=!1,s,i=!0;for(;n>0;n--)try{i?s=await e():s=await exports.randomDelay(e),o=!0;break}catch(u){r=u}return o||Kf.logging.logWarn(`Failed to backoff: ${t}`,r),s}a(Vf,"backOff");var{SEPARATOR:wt,UNICODE_MAX:Kx,DocumentType:Hf,AutomationViewMode:Ys,ViewName:Vx,getQueryIndex:Hx}=ge.db,Yx=new Date(0).toISOString(),zx=100,zs=a(async()=>sn($n.ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS),"oldestLogDate");function Yf(e,t,{status:r,automationId:n}={},o={}){let s=n?`${n}${wt}`:"",i=r?`${r}${wt}`:"",u;return r&&n?u=`${Ys.ALL}${wt}${i}${s}`:r?u=`${Ys.STATUS}${wt}${i}`:n?u=`${Ys.AUTOMATION}${wt}${s}`:u=`${Hf.AUTOMATION_LOG}${wt}`,{...o,descending:!0,startkey:`${u}${t}${Kx}`,endkey:`${u}${e}`}}a(Yf,"getAutomationLogParams");function Jx(e,t,r){return`${Hf.AUTOMATION_LOG}${wt}${e}${wt}${r}${wt}${t}`}a(Jx,"generateAutomationLogID");async function Js(e,t,r={docs:!0}){let n=ge.context.getProdWorkspaceDB();await n.exists()||(n=ge.context.getDevWorkspaceDB());let o={status:r.status},s=r?.limit?r.limit:r?.paginate?9+1:void 0,i=Yf(e,t,o,{include_docs:r.docs,limit:s});r?.page&&(i.startkey=r.page);let u=await n.allDocs(i);return na(u,{paginate:r?.paginate,pageSize:9})}a(Js,"getAllLogs");async function Xs(e,t,r={}){let n=ge.context.getProdWorkspaceDB();await n.exists()||(n=ge.context.getDevWorkspaceDB());let o;try{let s={automationId:r?.automationId,status:r?.status},i=Yf(e,t,s,{include_docs:!0,limit:9+1});r?.page&&(i.startkey=r.page),o=await n.query(Hx(Vx.AUTOMATION_LOGS),i)}catch(s){if(s!=null&&(s.name==="not_found"||s.error==="not_found"))return await Tc(),Xs(e,t,r);throw s}return na(o,{paginate:!0,pageSize:9})}a(Xs,"getLogsByView");async function zf(e,t){let r=ge.context.getProdWorkspaceDB(),n=e._id,o=e.name,s=new Date().toISOString(),i=Jx(s,t.status,n),u={...t,automationId:n,status:t.status,automationName:o,createdAt:s,_id:i};return await r.put(u),i}a(zf,"writeLog");async function Zs(e,{clearing:t}={clearing:!1}){let r=ge.context.getProdWorkspaceDB();await Vf(async()=>{let n=await r.get(ge.db.DocumentType.WORKSPACE_METADATA);for(let o of e){let s=o.split(ge.db.SEPARATOR),i=`${s[s.length-3]}${ge.db.SEPARATOR}${s[s.length-2]}`,u={};n.automationErrors&&(u=n.automationErrors),Array.isArray(u[i])||(u[i]=[]);let c=u[i].indexOf(o);t&&c!==-1?u[i].splice(c,1):u[i].push(o),u[i].length===0&&delete u[i],n.automationErrors=u}await r.put(n),await ge.cache.workspace.invalidateWorkspaceMetadata(n.appId,n)},"Failed to update app metadata with automation log error")}a(Zs,"updateAppMetadataWithErrors");async function Xx(){let e=await zs();try{return await Js(Yx,e,{docs:!1,paginate:!1,limit:zx})}catch{return{data:[],hasNextPage:!1}}}a(Xx,"getExpiredLogs");async function ei(){let e=ge.context.getProdWorkspaceDB();try{let t=await Xx();if(!t.data||t.data.length===0)return;let r=t.data.map(o=>({_id:o.id,_rev:o.value.rev,_deleted:!0})),n=t.data.filter(o=>{let s=o.id.split(ge.db.SEPARATOR);return s[s.length-1]===$n.AutomationStatus.ERROR}).map(o=>o.id);await e.bulkDocs(r),n.length&&await Zs(n,{clearing:!0})}catch(t){ge.logging.logAlert(`Failed to cleanup automation log history - Database "${e.name}"`,t)}}a(ei,"clearOldHistory");var Xf=zs;async function Zx(e,t,r,n){let o,s=new Date().toISOString(),i=await Xf();return(!e||e<i)&&(e=i),r||t?o=await Xs(e,s,{automationId:r,status:t,page:n}):o=await Js(e,s,{status:t,page:n,docs:!0,paginate:!0}),o}a(Zx,"getLogs");async function eC(e){return await ei(),await Zx(e.startDate,e.status,e.automationId,e.page)}a(eC,"logSearch");async function tC(e,t){if(!jn.db.isProdWorkspaceID(jn.context.getWorkspaceId()))return;let r=await zf(e,t);t.status===Jf.AutomationStatus.ERROR&&await Zs([r]),await ei()}a(tC,"storeLog");var Kn={};x(Kn,{checkPluginQuotas:()=>nC,deletePlugin:()=>aC,storePlugin:()=>rC});var rm=require("@budibase/types"),fe=require("@budibase/backend-core");var Zf=F(require("fs")),em=require("path");function tm(e,t){return Zf.default.readFileSync((0,em.join)(e,t),"utf8")}a(tm,"loadJSFile");async function rC(metadata,directory,source){let db=fe.tenancy.getGlobalDB(),version=metadata.package.version,name=metadata.package.name,description=metadata.package.description,hash=metadata.schema.hash,bucketPath=fe.objectStore.getPluginS3Dir(name),files=await fe.objectStore.uploadDirectory(fe.objectStore.ObjectStoreBuckets.PLUGINS,directory,bucketPath),jsFile=files.find(e=>e.name.endsWith(".js")),iconFile=files.find(e=>e.name.endsWith(".svg"));if(!jsFile)throw new Error("Plugin missing .js file.");if(metadata.schema.type===rm.PluginType.DATASOURCE){let js=tm(directory,jsFile.name);try{eval(js)}catch(e){let t=e?.message?e.message:JSON.stringify(e);throw new Error(`JS invalid: ${t}`)}}let iconFileName=iconFile?iconFile.name:null,pluginId=fe.db.generatePluginID(name),rev;try{rev=(await db.get(pluginId))._rev}catch(e){rev=void 0}let doc={_id:pluginId,_rev:rev,...metadata,name,version,hash,description,source};iconFileName&&(doc.iconFileName=iconFileName),source&&(doc={...doc,source});let write=a(async()=>{let e=await db.put(doc);return await fe.events.plugin.imported(doc),{...doc,_rev:e.rev}},"write");return rev?await write():await Fs(write)}a(rC,"storePlugin");async function aC(e){let t=fe.tenancy.getGlobalDB();try{let r=await t.get(e),n=fe.objectStore.getPluginS3Dir(r.name);await fe.objectStore.deleteFolder(fe.objectStore.ObjectStoreBuckets.PLUGINS,n),await t.remove(e,r._rev),await fe.events.plugin.deleted(r),await Ws()}catch(r){let n=r?.message?r?.message:r;throw new Error(`Failed to delete plugin: ${n}`)}}a(aC,"deletePlugin");async function nC(){let e=fe.tenancy.getGlobalDB();try{let r=(await e.allDocs(fe.db.getPluginParams())).rows.length;console.log(`Syncing plugin count: ${r}`),await $s(r)}catch(t){fe.logging.logAlert("Unable to retrieve plugins for quota check",t)}}a(nC,"checkPluginQuotas");var mt={};x(mt,{fetch:()=>sC,fetchValues:()=>iC,isEncryptionKeyAvailable:()=>oC,isValid:()=>om,remove:()=>cC,update:()=>uC});var am=require("@budibase/backend-core"),La=require("@budibase/types");function oC(){return!!am.env.ENCRYPTION_KEY}a(oC,"isEncryptionKeyAvailable");async function sC(){let e=await jt.get();return Object.keys(e.variables)}a(sC,"fetch");async function iC(e){let r=(await jt.get()).variables,n={};for(let[o,s]of Object.entries(r))switch(e){case La.Environment.DEVELOPMENT:n[o]=s.development;break;case La.Environment.PRODUCTION:default:n[o]=s.production;break}return n}a(iC,"fetchValues");async function nm(e){if(!(await ct.cache.getCachedLicense()).features.includes(La.Feature.ENVIRONMENT_VARIABLES))throw new Error("User does not have access to environment variables feature.");let r=await jt.get();r.variables=e(r.variables),await jt.update(r)}a(nm,"changeValues");async function uC(e,t){if(om(e))await nm(n=>(n[e]=t,n));else throw new Error("Variable name has characters that are not allowed")}a(uC,"update");async function cC(e){await nm(t=>(delete t[e],t))}a(cC,"remove");function om(e){return/^[a-zA-Z0-9-_]+$/.test(e)}a(om,"isValid");var kt={};x(kt,{definitions:()=>IC,download:()=>bC,fetch:()=>AC,write:()=>hC});var Pe=require("@budibase/backend-core"),Hn=require("@budibase/types");var ue=require("@budibase/backend-core"),tt=require("@budibase/types");var sm=require("memorystream"),im=new ue.sql.Sql(tt.SqlClient.SQL_LITE);async function pC(e,t,r){let n={operation:tt.Operation.READ,table:or.searchTable(),tables:{},paginate:{limit:r||9,page:t},filters:e,resource:{fields:[]},sort:{timestamp:{direction:tt.SortOrder.DESCENDING,type:tt.SortType.STRING}}},o=im._query(n);if(Array.isArray(o))throw new Error("Cannot execute multiple queries for audit log search");return{sql:o.sql,bindings:o.bindings}}a(pC,"getAuditLogSqlQuery");function lC(e){return`${ue.DocumentType.AUDIT_LOG}${ue.SEPARATOR}${e}${ue.SEPARATOR}${ue.utils.newid()}`}a(lC,"generateAuditLogID");async function um(e){e._id||(e._id=lC(e.timestamp)),e.type||(e.type=tt.AUDIT_LOG_TYPE);try{let r=await ue.context.getAuditLogsDB().put(e);return{...e,_rev:r.rev}}catch(t){ue.logging.logAlert("Failed to write audit log",t)}}a(um,"save");async function ri(e,t,r){t||(t=1);let n=ue.context.getAuditLogsDB();try{let o=9+1,s=await pC(e,t,o),i=or.searchTable(),u=im.convertJsonStringColumns(i,await n.sql(s.sql,s.bindings)),c;u.length>o&&(c=u.pop());let f={rows:u,hasNextPage:!!c};return f.hasNextPage&&(f.bookmark=t+1),f}catch(o){if(o.status===404&&!r?.isRetry)return await dC(),await cc(),await ri(e,t,{isRetry:!0});throw o}}a(ri,"searchSQL");async function dC(){let e=ue.context.getAuditLogsDB(),r=(await e.allDocs(ue.db.getDocParams(ue.DocumentType.AUDIT_LOG,null,{include_docs:!0}))).rows.map(n=>n.doc).filter(n=>n&&!n.type).map(n=>({...n,type:tt.AUDIT_LOG_TYPE}));await e.bulkDocs(r)}a(dC,"migrate");function cm(e){let t=ue.context.getAuditLogsDB(),r=new sm,n=t.dump(r,{filter:s=>{let i=s;if(!i._id?.startsWith(ue.DocumentType.AUDIT_LOG))return!1;let u=!0,c=a((f,g)=>{!f||f.length===0||(u=!!(u&&g&&f.includes(g)))},"matcher");if(c(e.userIds,i.userId),c(e.appIds,i.appId),c(e.events,i.event),(e.startDate||e.endDate)&&(u=u&&i.timestamp>=e.startDate&&i.timestamp<=e.endDate),e.fullSearch){let f=JSON.stringify(s);u=u&&f.includes(e.fullSearch)}return u}}),o=new sm;return r.on("data",s=>{let i=JSON.parse(Buffer.from(s).toString());if(Array.isArray(i.docs)){let u="";for(let c of i.docs)u+=JSON.stringify(c)+`
|
|
37
|
+
`;function sa(e){return $o.default.verify(e,ES,{algorithms:["RS256"]})}a(sa,"verifyLicenseToken");function RS(e,t){return $o.default.sign(t,e,{encoding:"utf-8",algorithm:"RS256"})}a(RS,"sign");var dn={};x(dn,{getFeatures:()=>jo});var l=require("@budibase/types");var vS={[l.PlanType.FREE]:[...De.SELF_FREE_LICENSE.features],[l.PlanType.PREMIUM]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.PDF],[l.PlanType.PREMIUM_PLUS]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PDF,l.Feature.BUDIBASE_AI],[l.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PDF,l.Feature.BUDIBASE_AI],[l.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.PDF,l.Feature.BUDIBASE_AI],[l.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.OFFLINE,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.BUDIBASE_AI,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.BUDIBASE_AI,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.OFFLINE,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.BUDIBASE_AI,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC]},_S={[l.PlanType.FREE]:[...De.CLOUD_FREE_LICENSE.features],[l.PlanType.PREMIUM]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.PDF],[l.PlanType.PREMIUM_PLUS]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.BUDIBASE_AI,l.Feature.PDF],[l.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.BUDIBASE_AI,l.Feature.PDF],[l.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.BRANDING],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.BUDIBASE_AI,l.Feature.PDF],[l.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.OFFLINE,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.BUDIBASE_AI,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.BUDIBASE_AI,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.WORKSPACE_BACKUPS,l.Feature.ENVIRONMENT_VARIABLES,l.Feature.ENFORCEABLE_SSO,l.Feature.AUDIT_LOGS,l.Feature.BRANDING,l.Feature.SYNC_AUTOMATIONS,l.Feature.APP_BUILDERS,l.Feature.EXPANDED_PUBLIC_API,l.Feature.VIEW_PERMISSIONS,l.Feature.TRIGGER_AUTOMATION_RUN,l.Feature.SCIM,l.Feature.VIEW_READONLY_COLUMNS,l.Feature.AI_CUSTOM_CONFIGS,l.Feature.BUDIBASE_AI,l.Feature.PWA,l.Feature.CUSTOM_APP_SCRIPTS,l.Feature.PDF,l.Feature.RECAPTCHA,l.Feature.PKCE_OIDC]};function jo(e,t){let r=[];function n(o){let s=o[t];if(!s)throw new Error(`Features do not exist for planType=${t} and hosting=${e}`);return s}switch(a(n,"readFeatures"),e){case l.Hosting.SELF:r=n(vS);break;case l.Hosting.CLOUD:r=n(_S);break}return r}a(jo,"getFeatures");var fn={};x(fn,{UNLIMITED:()=>m,getQuotas:()=>Qo});var J=require("@budibase/types");var d=At,qc=De,m=-1,ua=a(e=>e*1e6,"millions"),xS={[J.PlanType.FREE]:{...qc.CLOUD_FREE_LICENSE.quotas},[J.PlanType.PREMIUM]:{usage:{monthly:{...d.queries(m),...d.automations(1e3),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(1e4),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(7),...d.appBackupRetentionDays(7)}},[J.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...d.queries(m),...d.automations(5e3),...d.budibaseAICredits(ua(2)),...d.actions(m)},static:{...d.rows(25e3),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(5e3),...d.budibaseAICredits(ua(2)),...d.actions(m)},static:{...d.rows(25e3),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PRO]:{usage:{monthly:{...d.queries(m),...d.automations(1e3),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(5),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(7),...d.appBackupRetentionDays(7)}},[J.PlanType.TEAM]:{usage:{monthly:{...d.queries(m),...d.automations(5e3),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(10),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(90)}},[J.PlanType.BUSINESS]:{usage:{monthly:{...d.queries(m),...d.automations(1e4),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(5e4),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(50),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(365),...d.appBackupRetentionDays(365)}},[J.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(ua(4)),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}},[J.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(ua(4)),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(15),...d.appBackupRetentionDays(15)}},[J.PlanType.ENTERPRISE]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(ua(4)),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}}},CS={[J.PlanType.FREE]:{...qc.SELF_FREE_LICENSE.quotas},[J.PlanType.PREMIUM]:void 0,[J.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(0),...d.plugins(m),...d.customAIConfigurations(1)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(30)}},[J.PlanType.PRO]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(5),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(7),...d.appBackupRetentionDays(7)}},[J.PlanType.TEAM]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(10),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(30),...d.appBackupRetentionDays(90)}},[J.PlanType.BUSINESS]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(50),...d.plugins(m),...d.customAIConfigurations(0)}},constant:{...d.automationLogRetentionDays(90),...d.appBackupRetentionDays(365)}},[J.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}},[J.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(15),...d.appBackupRetentionDays(15)}},[J.PlanType.ENTERPRISE]:{usage:{monthly:{...d.queries(m),...d.automations(m),...d.budibaseAICredits(0),...d.actions(m)},static:{...d.rows(m),...d.apps(m),...d.users(m),...d.creators(m),...d.userGroups(m),...d.plugins(m),...d.customAIConfigurations(m)}},constant:{...d.automationLogRetentionDays(m),...d.appBackupRetentionDays(m)}}};function Qo(e,t){let r;function n(o){let s=o[t];if(!s)throw new Error(`Quotas do not exist for planType=${t} and hosting=${e}`);return s}switch(a(n,"readQuotas"),e){case J.Hosting.SELF:r=n(CS);break;case J.Hosting.CLOUD:r=n(xS);break}return JSON.parse(JSON.stringify(r))}a(Qo,"getQuotas");var cr={};x(cr,{encoding:()=>ur,workspaceExists:()=>OS});var Dc=require("@budibase/backend-core");async function OS(e){return(await Dc.db.getAllWorkspaces({all:!0,idsOnly:!0})).includes(e)}a(OS,"workspaceExists");var ur={};x(ur,{base64ToObject:()=>PS,objectToBase64:()=>LS});function LS(e){let t=JSON.stringify(e);return Buffer.from(t).toString("base64")}a(LS,"objectToBase64");function PS(e){let t=Buffer.from(e,"base64").toString();return JSON.parse(t)}a(PS,"base64ToObject");var bf=require("@budibase/types"),wr=require("@budibase/backend-core"),If=F(Jl()),Sf=F(bs());async function ix(e){await We.save({offlineLicenseToken:e}),await Kt()}a(ix,"activateOfflineLicenseToken");async function ux(){await We.save({offlineLicenseToken:void 0}),await Kt()}a(ux,"deleteOfflineLicenseToken");async function wf(){return(await We.get()).offlineLicenseToken}a(wf,"getOfflineLicenseToken");async function Is(){let t=(await wr.installation.getInstall()).installId,r=wr.context.getTenantId(),n=await wr.events.identification.getUniqueTenantId(r);return{installId:t,tenantId:n}}a(Is,"getIdentifier");async function cx(){let e=await Is();return ur.objectToBase64(e)}a(cx,"getIdentifierBase64");function px(e){return ur.base64ToObject(e)}a(px,"getIdentifierFromBase64");function Tf(e){let t=Date.now(),r=new Date(e.expireAt).getTime();if(t>r)throw new Error(`Offline license has expired. expireAt=${e.expireAt}`)}a(Tf,"verifyExpiry");async function Ef(e){let t=await Is();if(e.identifier.installId!==t.installId||e.identifier.tenantId!==t.tenantId)throw new Error("Invalid offline license")}a(Ef,"verifyInstallation");function Rf(e){let t=e.plan.type,r=bf.Hosting.SELF,n=jo(r,t),o=Qo(r,t);return e.features=(0,If.default)(e.features,n),e.quotas=(0,Sf.default)(e.quotas,o),e}a(Rf,"enrichLicense");async function Ss(){try{let e=await wf();if(e){let t=await sa(e);return Tf(t),await Ef(t),Rf(t)}}catch(e){console.error("Error retrieving offline license",e)}}a(Ss,"getOfflineLicense");var _a={};x(_a,{deleteDevLicense:()=>gx,getOfflineLicense:()=>fx,writeDevLicenseToDisk:()=>mx});var vf=require("@budibase/backend-core"),Ts=require("path"),_f=require("os"),Vt=F(require("fs"));var lx=vf.env.isTest()?".budibase-test":".budibase",ws=(0,Ts.join)((0,_f.tmpdir)(),lx),dx="dev_license.txt",va=(0,Ts.join)(ws,dx);if(!Vt.default.existsSync(ws))try{Vt.default.mkdirSync(ws)}catch{}function fx(){try{if(Vt.default.existsSync(va)){let e=Vt.default.readFileSync(va,{encoding:"utf-8"});return sa(e)}}catch(e){console.error("Error retrieving offline license from disk",e)}}a(fx,"getOfflineLicense");function mx(e){console.log(`Writing license to: ${va}`),Vt.default.writeFileSync(va,e,{encoding:"utf-8"})}a(mx,"writeDevLicenseToDisk");function gx(){Vt.default.rmSync(va,{force:!0})}a(gx,"deleteDevLicense");var xf=require("dd-trace");var Rs=a(async()=>await xf.tracer.trace("getLicense",async e=>{if(Es.env.OFFLINE_MODE)return e.addTags({offline:!0}),Ss();let t=await ir();return t||(e.addTags({offlineFallback:!0}),t=_a.getOfflineLicense()),t}),"getLicense"),vs=a(e=>Fo(e),"getLicenseFromKey"),_s=a(()=>Es.env.SELF_HOSTED?De.SELF_FREE_LICENSE:De.CLOUD_FREE_LICENSE,"getFreeLicense");var Cs={};x(Cs,{activateLicenseKey:()=>hx,deleteLicenseKey:()=>yx,getLicenseKey:()=>Cn});var xs=F(require("dd-trace"));async function hx(e){await Wo(e),await We.save({licenseKey:e}),await Kt()}a(hx,"activateLicenseKey");async function Cn(){return await xs.default.trace("getLicenseKey",async e=>{let t=await We.get();return e.addTags({licenseKey:t.licenseKey}),t.licenseKey})}a(Cn,"getLicenseKey");async function yx(){return await xs.default.trace("deleteLicenseKey",async()=>{await We.save({licenseKey:void 0}),await Kt()})}a(yx,"deleteLicenseKey");var Ht=require("@budibase/backend-core"),On=F(require("dd-trace"));var Cf=3600,Kt=a(async()=>{await Pf(),await Lf()},"refresh"),Of=a(async(e,t)=>{let{populateLicense:r=Rs,populateFreeLicense:n=_s}=t||{};return await On.default.trace("getCachedLicense",async o=>{let s=Ht.context.getLicense();if(s)return o.addTags({foundInContext:!0,features:s.features,plan:s.plan,quotas:s.quotas}),s;let i=Ht.tenancy.getTenantId(),u=await vo(),c=await u.get(i);return o.addTags({tenantId:i,foundInCache:!!c}),c?(o.addTags({foundInCache:!0,refreshedAt:c.refreshedAt,features:c.features,plan:c.plan,quotas:c.quotas}),c):(c=await On.default.trace("populateLicense",async()=>await r(i)),o.addTags({populatedLicense:!!c}),c||(c=On.default.trace("populateFreeLicense",()=>n(e,i)),o.addTags({populatedFreeLicense:!!c})),c.refreshedAt=new Date().toISOString(),o.addTags({refreshedAt:c.refreshedAt,features:c.features,plan:c.plan,quotas:c.quotas,expirySeconds:Cf}),await u.store(i,c,Cf),c)})},"_getCachedLicense");Ht.env.isJest()&&(Of=jest.fn());var Lf=Of,Pf=a(async()=>{let e=Ht.tenancy.getTenantId();await(await vo()).delete(e)},"invalidate");async function be(e,t){Array.isArray(e)||(e=[e]),t||(t=await Je.getCachedLicense());for(let r of e)if(!t?.features.includes(r))return!1;return!0}a(be,"areFeaturesEnabled");async function Ln(e,t){if(!await be(e,t))throw new bt.FeatureDisabledError(`${e} is not currently enabled`,e)}a(Ln,"checkFeature");async function Os(e,t){if(!await be(e,t)){let r=e.join(", ");throw new bt.FeatureDisabledError(`${r} are not currently enabled`,r)}}a(Os,"checkFeatures");function xe(e){return async(...t)=>(await Ln(Ae.Feature.WORKSPACE_BACKUPS),e(...t))}a(xe,"checkBackups");async function Ls(){return be(Ae.Feature.WORKSPACE_BACKUPS)}a(Ls,"isBackupsEnabled");async function Ps(){return be(Ae.Feature.BRANDING)}a(Ps,"isBrandingEnabled");async function Uf(){return be(Ae.Feature.ENFORCEABLE_SSO)}a(Uf,"isEnforceableSSO");async function bx(){return be(Ae.Feature.SYNC_AUTOMATIONS)}a(bx,"isSyncAutomationsEnabled");async function Ix(){return be(Ae.Feature.TRIGGER_AUTOMATION_RUN)}a(Ix,"isTriggerAutomationRunEnabled");async function Us(){return be(Ae.Feature.APP_BUILDERS)}a(Us,"isAppBuildersEnabled");async function Pn(){return be(Ae.Feature.AUDIT_LOGS)}a(Pn,"isAuditLogsEnabled");async function qs(){return be(Ae.Feature.USER_GROUPS)}a(qs,"isUserGroupsEnabled");function Sx(){return be(Ae.Feature.PWA)}a(Sx,"isPWAEnabled");function wx(){return be(Ae.Feature.RECAPTCHA)}a(wx,"isRecaptchaEnabled");var Tx=a(()=>be(Ae.Feature.PKCE_OIDC),"isPkceOidcEnabled");async function It(){return be(Ae.Feature.EXPANDED_PUBLIC_API)}a(It,"isExpandedPublicApiEnabled");async function Ex(e){if(bt.env.ENABLE_SSO_MAINTENANCE_MODE||!await Uf())return!1;let r;return e?.config?r=e.config:r=await bt.configs.getSettingsConfig(),!!r.isSSOEnforced}a(Ex,"isSSOEnforced");var Ds=a(async()=>{let e=Ae.Feature.SCIM,t=await be(e),r=await bt.configs.getSCIMConfig();if(!t||!r?.enabled)throw new bt.FeatureDisabledError(`${e} is not currently enabled`,e);return!0},"checkSCIM");async function Rx(){return be(Ae.Feature.VIEW_PERMISSIONS)}a(Rx,"isViewPermissionEnabled");async function vx(){return be(Ae.Feature.VIEW_READONLY_COLUMNS)}a(vx,"isViewReadonlyColumnsEnabled");var _x={faviconUrl:void 0,faviconUrlEtag:void 0,emailBrandingEnabled:!0,platformTitle:void 0,loginHeading:void 0,loginButton:void 0,metaDescription:void 0,metaImageUrl:void 0,metaTitle:void 0};async function xx(e){return await Ps()?{faviconUrl:e.faviconUrl,faviconUrlEtag:e.faviconUrlEtag,emailBrandingEnabled:e.emailBrandingEnabled,platformTitle:e.platformTitle,loginHeading:e.loginHeading,loginButton:e.loginButton,metaDescription:e.metaDescription,metaImageUrl:e.metaImageUrl,metaTitle:e.metaTitle}:_x}a(xx,"getBrandingConfig");var Ms={};x(Ms,{enrichAIConfig:()=>ks});var qf=require("@budibase/backend-core");var Cx="budibase_ai";async function ks(e){if(qf.env.SELF_HOSTED)return e;for(let t of Object.values(e.config))if(t.provider==="BudibaseAI")return e;return e.config[Cx]={provider:"BudibaseAI",active:!0,isDefault:Object.keys(e.config).every(t=>!e.config[t].isDefault),defaultModel:process.env.BUDIBASE_AI_DEFAULT_MODEL||"gpt-5-mini",name:"Budibase AI"},e}a(ks,"enrichAIConfig");var ft={};x(ft,{addAction:()=>qx,addApp:()=>Dx,addAutomation:()=>Fx,addGroup:()=>Bs,addPlugin:()=>Fs,addRow:()=>Mx,addRows:()=>Bx,addUsers:()=>kn,bustCache:()=>Po,decrement:()=>St,decrementMany:()=>xa,getCurrentUsageValues:()=>uc,getLicensedQuota:()=>kf,getQuotaUsage:()=>Ft,increment:()=>Me,incrementBudibaseAICredits:()=>Nn,incrementMany:()=>zt,removeApp:()=>kx,removeGroup:()=>Gs,removePlugin:()=>Ws,removeRow:()=>Nx,removeRows:()=>Gx,removeUsers:()=>vr,set:()=>Ns,setAllUsage:()=>qo,setAppUsageValue:()=>Uo,setUsage:()=>oc,setUsagePerApp:()=>sc,updatePluginCount:()=>$s,updateUsage:()=>Tr,usageLimitIsExceeded:()=>Ux,utils:()=>Gr});var qn=require("@budibase/types");var et=require("@budibase/backend-core"),de=require("@budibase/types"),Yt=require("dd-trace");var Me=a(async(e,t,r)=>await Yt.tracer.trace("quotas.increment",async n=>(n.addTags({name:e,type:t}),await Df({change:1,name:e,type:t,opts:r}))),"increment"),zt=a(e=>Yt.tracer.trace("quotas.incrementMany",async()=>Df(e)),"incrementMany"),Df=a(async e=>await Yt.tracer.trace("quotas.tryIncrement",async t=>{let r=Array.isArray(e)?e:[e];t.addTags({numActions:r.length}),await Tr(r.map(o=>({usageChange:o.change,name:o.name,type:o.type,opts:{dryRun:!0,suppressErrorLog:o.opts?.suppressErrorLog,id:o.opts?.id}})));let n=[];for(let o of r)await Yt.tracer.trace("quotas.incrementMany.fn",async s=>{s.addTags({actionName:o.name,actionType:o.type,actionChange:o.change});let i=o.opts?.fn;i&&n.push(await i())});return await Tr(r.map(o=>({usageChange:o.change,name:o.name,type:o.type,opts:{dryRun:!1,valueFn:o.opts?.valueFn,suppressErrorLog:o.opts?.suppressErrorLog,id:o.opts?.id}}))),n[0]}),"tryIncrement"),St=a((e,t,r={})=>Tr({usageChange:-1,name:e,type:t,opts:r}),"decrement"),xa=a(e=>{let t=Array.isArray(e)?e:[e];return Tr(t.map(r=>({usageChange:-r.change,name:r.name,type:r.type,opts:r.opts})))},"decrementMany"),Ns=a(async(e,t,r)=>it.setUsage(r,e,t),"set"),Ox=a((e,t,r)=>{if(e==de.QuotaUsageType.STATIC){let n=r.usageQuota.triggers;return n?n[t]||{}:{}}else{let n=it.utils.getCurrentMonthString(),o=r.monthly[n].triggers;return o?o[t]||{}:{}}},"getExistingTriggers"),Lx=a(async(e,t,r,n)=>{try{await et.locks.doWithLock({type:de.LockType.TRY_ONCE,name:de.LockName.TRIGGER_QUOTA,resource:e,ttl:1e4},async()=>{let o={percentage:r,name:t.name};n&&(o.resetDate=n),await Lt.triggerQuota(o)})}catch(o){et.logging.logAlert("Error triggering quota",o)}},"triggerQuota"),Px=a(async(e,t,r,n)=>{let o=await Ft(),s=e===de.QuotaUsageType.MONTHLY?o.quotaReset:void 0,i=await Ox(e,t,o),u=n.triggers,c=r/n.value*100;c>100&&(c=100);for(let[f,g]of u.entries())if(c>=g&&n.value!==At.UNLIMITED){if(!i[g]){i[g]=new Date().toISOString();let y=u[f+1]||100;(!(c>=y)||c===g)&&await Lx(t,n,c,s)}}else i[g]=void 0;return i},"checkTriggers"),Tr=a(async e=>{await Yt.tracer.trace("quotas.updateUsage",async t=>{let r=et.tenancy.getTenantId(),n=Array.isArray(e)?e:[e];t.addTags({numActions:n.length,tenantId:r});let o,s,i=[],u={},c={},f={},g={};for(let y of n)await Yt.tracer.trace("quotas.updateUsage.action",async E=>{E.addTags({actionName:y.name,actionType:y.type,actionUsageChange:y.usageChange});try{o=et.context.getWorkspaceId()}catch{}if(de.APP_QUOTA_NAMES.includes(y.name)&&!o)throw new Error("App context required for quota update");try{s=await kf(de.QuotaType.USAGE,y.name,y.type),i.push(s);let{total:k,app:D,breakdown:C}=await it.getCurrentUsageValues(y.type,y.name,y.opts?.id);k+=y.usageChange,D!=null&&(D+=y.usageChange),C!=null&&(C+=y.usageChange);let W={};if(y.opts?.dryRun||(W=await Px(y.type,y.name,k,s),g={...g,[y.name]:W}),s.value!==At.UNLIMITED&&k>s.value&&y.usageChange>0)throw new et.UsageLimitError(`Licensed ${s.name} of ${s.value} has been exceeded`,s.name);if(k=Math.max(0,k),D&&(D=Math.max(0,D)),C&&(C=Math.max(0,C),f={...f,[y.name]:C}),!y.opts?.dryRun){let ye=y.opts?.valueFn;ye&&(k=await ye(),D=k),u={...u,[y.name]:k},c={...c,[y.name]:D}}}catch(k){throw y.opts?.suppressErrorLog||console.error(`Error updating usage quotas for ${y.name}`,k),k}});let h=n.filter(y=>!y.opts?.dryRun).map(y=>({name:y.name,type:y.type,values:{total:u[y.name],app:c[y.name],breakdown:f[y.name],triggers:g[y.name]},opts:{...y.opts,tenantId:r}}));h.length>0&&await it.setAllUsage(h)})},"updateUsage"),kf=a(async(e,t,r)=>{let n=await Je.getCachedLicense();if(!n){let o=et.tenancy.getTenantId();throw new Error("License not found for tenant id "+o)}if(r&&(0,de.isStaticQuota)(e,r,t))return n.quotas[e][r][t];if(r&&(0,de.isMonthlyQuota)(e,r,t))return n.quotas[e][r][t];if((0,de.isConstantQuota)(e,t))return n.quotas[e][t];throw new Error("Invalid quota type")},"getLicensedQuota"),Ux=a(async({name:e,type:t,usageChange:r})=>{try{return await Tr({usageChange:r,name:e,type:t,opts:{dryRun:!0}}),!1}catch(n){if(n.code===de.ErrorCode.USAGE_LIMIT_EXCEEDED)return!0;throw n}},"usageLimitIsExceeded");var qx=a(async e=>Me(qn.MonthlyQuotaName.ACTIONS,qn.QuotaUsageType.MONTHLY,{fn:e}),"addAction");var Mf=require("@budibase/backend-core"),Er=require("@budibase/types");var Nf=a(async()=>{let e=await Mf.db.getAllWorkspaces({dev:!0});return e?e.length:0},"getDevAppsCount"),Dx=a(async(e,{appId:t}={})=>Me(Er.StaticQuotaName.WORKSPACES,Er.QuotaUsageType.STATIC,{fn:e,valueFn:Nf,id:t}),"addApp"),kx=a(async({appId:e}={})=>St(Er.StaticQuotaName.WORKSPACES,Er.QuotaUsageType.STATIC,{valueFn:Nf,id:e}),"removeApp");var lt=require("@budibase/types");var Mx=a(async(e,{tableId:t}={})=>Me(lt.StaticQuotaName.ROWS,lt.QuotaUsageType.STATIC,{fn:e,id:t}),"addRow"),Nx=a(async({tableId:e}={})=>St(lt.StaticQuotaName.ROWS,lt.QuotaUsageType.STATIC,{id:e}),"removeRow"),Bx=a(async(e,t,{tableId:r}={})=>zt({change:e,name:lt.StaticQuotaName.ROWS,type:lt.QuotaUsageType.STATIC,opts:{fn:t,id:r}}),"addRows"),Gx=a(async(e,{tableId:t}={})=>xa({change:e,name:lt.StaticQuotaName.ROWS,type:lt.QuotaUsageType.STATIC,opts:{id:t}}),"removeRows");var Dn=require("@budibase/types");var Fx=a(async(e,{automationId:t}={})=>Me(Dn.MonthlyQuotaName.AUTOMATIONS,Dn.QuotaUsageType.MONTHLY,{fn:e,id:t}),"addAutomation");var Rr=require("@budibase/types");var Bs=a(async e=>Me(Rr.StaticQuotaName.USER_GROUPS,Rr.QuotaUsageType.STATIC,{fn:e}),"addGroup"),Gs=a(async()=>St(Rr.StaticQuotaName.USER_GROUPS,Rr.QuotaUsageType.STATIC),"removeGroup");var Dt=require("@budibase/types");var Fs=a(async e=>Me(Dt.StaticQuotaName.PLUGINS,Dt.QuotaUsageType.STATIC,{fn:e}),"addPlugin"),Ws=a(async()=>St(Dt.StaticQuotaName.PLUGINS,Dt.QuotaUsageType.STATIC),"removePlugin"),$s=a(async e=>Ns(Dt.StaticQuotaName.PLUGINS,Dt.QuotaUsageType.STATIC,e),"updatePluginCount");var dt=require("@budibase/types"),Ca=require("@budibase/backend-core");var kn=a(async(e,t,r)=>{let n=[{change:e,name:dt.StaticQuotaName.USERS,type:dt.QuotaUsageType.STATIC,opts:{fn:r,valueFn:Ca.users.getUserCount}}];t>0&&n.push({change:t,name:dt.StaticQuotaName.CREATORS,type:dt.QuotaUsageType.STATIC,opts:{valueFn:Ca.users.getCreatorCount}});let o=await zt(n);return await ir(),o},"addUsers"),vr=a(async(e,t)=>{let r=[{change:e,name:dt.StaticQuotaName.USERS,type:dt.QuotaUsageType.STATIC,opts:{valueFn:Ca.users.getUserCount}}];t>0&&r.push({change:t,name:dt.StaticQuotaName.CREATORS,type:dt.QuotaUsageType.STATIC,opts:{valueFn:Ca.users.getCreatorCount}}),await xa(r),await ir()},"removeUsers");var Mn=require("@budibase/types");var Nn=a(async e=>zt({change:e,name:Mn.MonthlyQuotaName.BUDIBASE_AI_CREDITS,type:Mn.QuotaUsageType.MONTHLY}),"incrementBudibaseAICredits");var Wn={};x(Wn,{db:()=>Qe});var Hs=require("@budibase/backend-core");var re={};x(re,{addUsers:()=>Fn,adjustGroupCreatorsQuotas:()=>Qx,cleanupApp:()=>jx,enrichUserRolesFromGroups:()=>$x,fetch:()=>Oa,get:()=>_r,getBulk:()=>Qf,getGroupBuilderAppIds:()=>jf,getGroupRoleId:()=>Wx,remove:()=>Qs,removeUsers:()=>Ks,save:()=>Gn,updateGroupApps:()=>Vs});var N=require("@budibase/backend-core");var Bf=require("@budibase/backend-core");var Bn=class extends Bf.HTTPError{static{a(this,"GroupNameUnavailableError")}constructor(t){super(`Group name "${t}" is unavailable`,409)}};async function Wf(e,t){try{let r=[];for(let u of e)if(u.roles){let c=u.roles[N.db.getProdWorkspaceID(t)];c&&r.push(c)}let n=await Promise.all(r.map(async u=>({[u]:await N.roles.roleToNumber(u)}))),o,s,i={};n.forEach(u=>{let[c,f]=Object.entries(u)[0];i[c]={roleId:c,roleNum:f}});for(let{roleId:u,roleNum:c}of Object.values(i))(s===void 0||c>s)&&(s=c,o=u);return o}catch(r){throw N.logging.logAlert(`Error finding higest role for ${e.length} on app ${t}`,r),r}}a(Wf,"findHighestRole");async function $f(e,t){return t?t=t.filter(r=>e.includes(r._id)):t=await z.getBulk(e,{enriched:!1}),t}a($f,"groupList");async function jf(e,t){if(!e.userGroups)return[];let r=await $f(e.userGroups,t?.groups),n=t?.appId?N.db.getProdWorkspaceID(t?.appId):null,o=[];for(let s of r){let i=s.builder?.apps;n&&i?.includes(n)?o.push(n):n||(o=o.concat(i||[]))}return[...new Set(o)]}a(jf,"getGroupBuilderAppIds");async function Wx(e,t,r){if(!e.userGroups)return null;let n=await $f(e.userGroups,r?.groups),o=N.db.getProdWorkspaceID(t);return e.roles?.[o]?e.roles[o]:(n=n.filter(s=>s?.roles?Object.keys(s.roles).includes(o):!1),await Wf(n,t))}a(Wx,"getGroupRoleId");async function $x(e){if(!e||!e.userGroups)return e;let t=await Qf(e.userGroups,{enriched:!1}),r=[];for(let o of t)o?.roles&&(r=r.concat(Object.keys(o.roles)));r=[...new Set(r)];for(let o of r)await N.context.doInWorkspaceContext(o,async()=>{if(e.roles[o])return;let s=await Wf(t,o);s&&(e.roles[o]=s)});let n=await jf(e,{groups:t});if(n.length&&!e.builder?.global){let o=e.builder?.apps||[];e.builder={apps:o.concat(n)}}return e}a($x,"enrichUserRolesFromGroups");async function Oa(){return await z.fetch()}a(Oa,"fetch");async function _r(e){return await z.get(e)}a(_r,"get");async function Qf(e,t={enriched:!0}){return await z.getBulk(e,t)}a(Qf,"getBulk");async function Gf(e){if(await z.getByName(e))throw new Bn(e)}a(Gf,"guardNameAvailability");async function Ff(e){let t=await z.getGroupUsers(e._id);if(!t.length)return 0;let n=await N.tenancy.getGlobalDB().getMultiple(t.map(s=>s._id));return(await N.userUtils.creatorsInList(n)).filter(s=>s).length}a(Ff,"getCreatorsCountInGroup");async function Gn(e){let t=[],r=!e._id,n=0;if(delete e.users,!e._id)e._id=z.generateUserGroupID(),await Gf(e.name),t.push(N.events.group.created(e));else{let s=await z.get(e._id);if(s.name!==e.name&&await Gf(e.name),t.push(N.events.group.updated(e)),JSON.stringify(s.roles)!==JSON.stringify(e.roles)){let i=s.users?.length||0,u=0;i>0&&(u=await Ff(s)),Object.values(e.roles).includes("CREATOR")?n=i-u:n=-i,t.push(N.events.group.permissionsEdited(e))}}await Promise.all(t);let o=a(()=>z.save(e),"saveGroup");if(r)return await Bs(o);{let s=await o();if(n>0)await kn(0,n);else if(n<0){let i=await Ff(e),u=Math.abs(n)-i;u>0&&await vr(0,u)}return s}}a(Gn,"save");async function Qs(e,t){let r;try{r=await z.get(e)}catch{throw new Error("Group not found")}let n=Object.values(r.roles||{}).includes("CREATOR"),o=a(()=>{},"recalculateCreatorsQuotasFn");if(n){let i=N.tenancy.getGlobalDB(),u=await z.getGroupUsers(e),f=(await Promise.all(u.map(E=>i.get(E._id)))).map(E=>({...E,userGroups:E.userGroups.filter(M=>M!==e)})),h=(await N.userUtils.creatorsInList(f)).filter(E=>E).length,y=u.length-h;y&&(o=a(()=>vr(0,y),"recalculateCreatorsQuotasFn"))}let s=await z.destroy(e,t);return await N.events.group.deleted(r),await Gs(),await o(),s}a(Qs,"remove");async function Fn(e,t){let r=await z.get(e),n=await N.users.bulkGetGlobalUsersById(t),o=[];for(let c of n)c.userGroups||(c.userGroups=[]),c.userGroups.includes(e)||o.push(c);if(!o.length)return o;let s=o.map(c=>({...c,userGroups:[...c?.userGroups||[],e]}));if(await N.users.bulkUpdateGlobalUsers(s),Object.values(r.roles||{}).includes("CREATOR")){let f=(await N.userUtils.creatorsInList(o)).filter(h=>h).length,g=o.length-f;g&&await kn(0,g)}let u=[];for(let c of t)u.push(N.cache.user.invalidateUser(c));return await Promise.all(u),await N.events.group.usersAdded(s.length,r,t),s}a(Fn,"addUsers");async function Ks(e,t){let r=await z.get(e),n=await N.users.bulkGetGlobalUsersById(t),o=[];for(let u of n){if(!u.userGroups||!u.userGroups.includes(e))continue;let c=u.userGroups.indexOf(e);u.userGroups.splice(c,1),o.push(u)}if(await N.users.bulkUpdateGlobalUsers(o),Object.values(r.roles||{}).includes("CREATOR")){let c=(await N.userUtils.creatorsInList(o)).filter(g=>g).length,f=o.length-c;f&&await vr(0,f)}let i=[];for(let u of t)i.push(N.cache.user.invalidateUser(u));return await Promise.all(i),o.length&&await N.events.group.usersDeleted(o.length,r,t),o}a(Ks,"removeUsers");async function Vs(e,t){let r=await _r(e);if(r.roles||(r.roles={}),t.appsToAdd)for(let n of t.appsToAdd)r.roles[n.appId]=n.roleId;if(t.appsToRemove)for(let n of t.appsToRemove)delete r.roles[n.appId];if(r.builder={apps:Object.entries(r.roles).filter(([n,o])=>o==="CREATOR").map(([n])=>n)},r.builder.apps.length&&!Us())throw new N.HTTPError("Feature not enabled, please check license",400);return await Gn(r)}a(Vs,"updateGroupApps");async function jx(e){let t=await Oa(),r=[];for(let n of t)!n.roles||!n.roles[e]||(delete n.roles[e],r.push(n));return await z.bulkSave(r)}a(jx,"cleanupApp");async function Qx(){if(!await qs()){let e=N.tenancy.getGlobalDB(),r=(await Oa()||[]).filter(n=>Object.values(n?.roles||{}).includes("CREATOR"));for(let n of r){let o=await z.getGroupUsers(n._id),i=(await Promise.all(o.map(g=>e.get(g._id)))).map(g=>({...g,userGroups:g.userGroups.filter(h=>h!==n._id)})),c=(await N.userUtils.creatorsInList(i)).filter(g=>g).length,f=o.length-c;await z.save({...n,roles:{}}),f&&await vr(0,f)}}}a(Qx,"adjustGroupCreatorsQuotas");Hs.users.UserDB.init(ft,re,Ze);var Qe=Hs.users.UserDB;var Qn={};x(Qn,{logs:()=>ti});var ti={};x(ti,{logSearch:()=>eC,oldestLogDate:()=>Xf,storeLog:()=>tC});var jn=require("@budibase/backend-core"),Jf=require("@budibase/types");var ge=require("@budibase/backend-core"),$n=require("@budibase/types");var Kf=require("@budibase/backend-core");async function Vf(e,t){let r,n=5,o=!1,s,i=!0;for(;n>0;n--)try{i?s=await e():s=await exports.randomDelay(e),o=!0;break}catch(u){r=u}return o||Kf.logging.logWarn(`Failed to backoff: ${t}`,r),s}a(Vf,"backOff");var{SEPARATOR:wt,UNICODE_MAX:Kx,DocumentType:Hf,AutomationViewMode:Ys,ViewName:Vx,getQueryIndex:Hx}=ge.db,Yx=new Date(0).toISOString(),zx=100,zs=a(async()=>sn($n.ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS),"oldestLogDate");function Yf(e,t,{status:r,automationId:n}={},o={}){let s=n?`${n}${wt}`:"",i=r?`${r}${wt}`:"",u;return r&&n?u=`${Ys.ALL}${wt}${i}${s}`:r?u=`${Ys.STATUS}${wt}${i}`:n?u=`${Ys.AUTOMATION}${wt}${s}`:u=`${Hf.AUTOMATION_LOG}${wt}`,{...o,descending:!0,startkey:`${u}${t}${Kx}`,endkey:`${u}${e}`}}a(Yf,"getAutomationLogParams");function Jx(e,t,r){return`${Hf.AUTOMATION_LOG}${wt}${e}${wt}${r}${wt}${t}`}a(Jx,"generateAutomationLogID");async function Js(e,t,r={docs:!0}){let n=ge.context.getProdWorkspaceDB();await n.exists()||(n=ge.context.getDevWorkspaceDB());let o={status:r.status},s=r?.limit?r.limit:r?.paginate?9+1:void 0,i=Yf(e,t,o,{include_docs:r.docs,limit:s});r?.page&&(i.startkey=r.page);let u=await n.allDocs(i);return na(u,{paginate:r?.paginate,pageSize:9})}a(Js,"getAllLogs");async function Xs(e,t,r={}){let n=ge.context.getProdWorkspaceDB();await n.exists()||(n=ge.context.getDevWorkspaceDB());let o;try{let s={automationId:r?.automationId,status:r?.status},i=Yf(e,t,s,{include_docs:!0,limit:9+1});r?.page&&(i.startkey=r.page),o=await n.query(Hx(Vx.AUTOMATION_LOGS),i)}catch(s){if(s!=null&&(s.name==="not_found"||s.error==="not_found"))return await Tc(),Xs(e,t,r);throw s}return na(o,{paginate:!0,pageSize:9})}a(Xs,"getLogsByView");async function zf(e,t){let r=ge.context.getProdWorkspaceDB(),n=e._id,o=e.name,s=new Date().toISOString(),i=Jx(s,t.status,n),u={...t,automationId:n,status:t.status,automationName:o,createdAt:s,_id:i};return await r.put(u),i}a(zf,"writeLog");async function Zs(e,{clearing:t}={clearing:!1}){let r=ge.context.getProdWorkspaceDB();await Vf(async()=>{let n=await r.get(ge.db.DocumentType.WORKSPACE_METADATA);for(let o of e){let s=o.split(ge.db.SEPARATOR),i=`${s[s.length-3]}${ge.db.SEPARATOR}${s[s.length-2]}`,u={};n.automationErrors&&(u=n.automationErrors),Array.isArray(u[i])||(u[i]=[]);let c=u[i].indexOf(o);t&&c!==-1?u[i].splice(c,1):u[i].push(o),u[i].length===0&&delete u[i],n.automationErrors=u}await r.put(n),await ge.cache.workspace.invalidateWorkspaceMetadata(n.appId,n)},"Failed to update app metadata with automation log error")}a(Zs,"updateAppMetadataWithErrors");async function Xx(){let e=await zs();try{return await Js(Yx,e,{docs:!1,paginate:!1,limit:zx})}catch{return{data:[],hasNextPage:!1}}}a(Xx,"getExpiredLogs");async function ei(){let e=ge.context.getProdWorkspaceDB();try{let t=await Xx();if(!t.data||t.data.length===0)return;let r=t.data.map(o=>({_id:o.id,_rev:o.value.rev,_deleted:!0})),n=t.data.filter(o=>{let s=o.id.split(ge.db.SEPARATOR);return s[s.length-1]===$n.AutomationStatus.ERROR}).map(o=>o.id);await e.bulkDocs(r),n.length&&await Zs(n,{clearing:!0})}catch(t){ge.logging.logAlert(`Failed to cleanup automation log history - Database "${e.name}"`,t)}}a(ei,"clearOldHistory");var Xf=zs;async function Zx(e,t,r,n){let o,s=new Date().toISOString(),i=await Xf();return(!e||e<i)&&(e=i),r||t?o=await Xs(e,s,{automationId:r,status:t,page:n}):o=await Js(e,s,{status:t,page:n,docs:!0,paginate:!0}),o}a(Zx,"getLogs");async function eC(e){return await ei(),await Zx(e.startDate,e.status,e.automationId,e.page)}a(eC,"logSearch");async function tC(e,t){if(!jn.db.isProdWorkspaceID(jn.context.getWorkspaceId()))return;let r=await zf(e,t);t.status===Jf.AutomationStatus.ERROR&&await Zs([r]),await ei()}a(tC,"storeLog");var Kn={};x(Kn,{checkPluginQuotas:()=>nC,deletePlugin:()=>aC,storePlugin:()=>rC});var rm=require("@budibase/types"),fe=require("@budibase/backend-core");var Zf=F(require("fs")),em=require("path");function tm(e,t){return Zf.default.readFileSync((0,em.join)(e,t),"utf8")}a(tm,"loadJSFile");async function rC(metadata,directory,source,origin){let db=fe.tenancy.getGlobalDB(),version=metadata.package.version,name=metadata.package.name,description=metadata.package.description,hash=metadata.schema.hash,bucketPath=fe.objectStore.getPluginS3Dir(name),files=await fe.objectStore.uploadDirectory(fe.objectStore.ObjectStoreBuckets.PLUGINS,directory,bucketPath),jsFile=files.find(e=>e.name.endsWith(".js")),iconFile=files.find(e=>e.name.endsWith(".svg"));if(!jsFile)throw new Error("Plugin missing .js file.");if(metadata.schema.type===rm.PluginType.DATASOURCE){let js=tm(directory,jsFile.name);try{eval(js)}catch(e){let t=e?.message?e.message:JSON.stringify(e);throw new Error(`JS invalid: ${t}`)}}let iconFileName=iconFile?iconFile.name:null,pluginId=fe.db.generatePluginID(name),rev;try{rev=(await db.get(pluginId))._rev}catch(e){rev=void 0}let doc={_id:pluginId,_rev:rev,...metadata,name,version,hash,description,source};iconFileName&&(doc.iconFileName=iconFileName),source&&(doc={...doc,source}),origin&&origin.source==="github"&&(doc.origin=origin);let write=a(async()=>{let e=await db.put(doc);return await fe.events.plugin.imported(doc),{...doc,_rev:e.rev}},"write");return rev?await write():await Fs(write)}a(rC,"storePlugin");async function aC(e){let t=fe.tenancy.getGlobalDB();try{let r=await t.get(e),n=fe.objectStore.getPluginS3Dir(r.name);await fe.objectStore.deleteFolder(fe.objectStore.ObjectStoreBuckets.PLUGINS,n),await t.remove(e,r._rev),await fe.events.plugin.deleted(r),await Ws()}catch(r){let n=r?.message?r?.message:r;throw new Error(`Failed to delete plugin: ${n}`)}}a(aC,"deletePlugin");async function nC(){let e=fe.tenancy.getGlobalDB();try{let r=(await e.allDocs(fe.db.getPluginParams())).rows.length;console.log(`Syncing plugin count: ${r}`),await $s(r)}catch(t){fe.logging.logAlert("Unable to retrieve plugins for quota check",t)}}a(nC,"checkPluginQuotas");var mt={};x(mt,{fetch:()=>sC,fetchValues:()=>iC,isEncryptionKeyAvailable:()=>oC,isValid:()=>om,remove:()=>cC,update:()=>uC});var am=require("@budibase/backend-core"),La=require("@budibase/types");function oC(){return!!am.env.ENCRYPTION_KEY}a(oC,"isEncryptionKeyAvailable");async function sC(){let e=await jt.get();return Object.keys(e.variables)}a(sC,"fetch");async function iC(e){let r=(await jt.get()).variables,n={};for(let[o,s]of Object.entries(r))switch(e){case La.Environment.DEVELOPMENT:n[o]=s.development;break;case La.Environment.PRODUCTION:default:n[o]=s.production;break}return n}a(iC,"fetchValues");async function nm(e){if(!(await ct.cache.getCachedLicense()).features.includes(La.Feature.ENVIRONMENT_VARIABLES))throw new Error("User does not have access to environment variables feature.");let r=await jt.get();r.variables=e(r.variables),await jt.update(r)}a(nm,"changeValues");async function uC(e,t){if(om(e))await nm(n=>(n[e]=t,n));else throw new Error("Variable name has characters that are not allowed")}a(uC,"update");async function cC(e){await nm(t=>(delete t[e],t))}a(cC,"remove");function om(e){return/^[a-zA-Z0-9-_]+$/.test(e)}a(om,"isValid");var kt={};x(kt,{definitions:()=>IC,download:()=>bC,fetch:()=>AC,write:()=>hC});var Pe=require("@budibase/backend-core"),Hn=require("@budibase/types");var ue=require("@budibase/backend-core"),tt=require("@budibase/types");var sm=require("memorystream"),im=new ue.sql.Sql(tt.SqlClient.SQL_LITE);async function pC(e,t,r){let n={operation:tt.Operation.READ,table:or.searchTable(),tables:{},paginate:{limit:r||9,page:t},filters:e,resource:{fields:[]},sort:{timestamp:{direction:tt.SortOrder.DESCENDING,type:tt.SortType.STRING}}},o=im._query(n);if(Array.isArray(o))throw new Error("Cannot execute multiple queries for audit log search");return{sql:o.sql,bindings:o.bindings}}a(pC,"getAuditLogSqlQuery");function lC(e){return`${ue.DocumentType.AUDIT_LOG}${ue.SEPARATOR}${e}${ue.SEPARATOR}${ue.utils.newid()}`}a(lC,"generateAuditLogID");async function um(e){e._id||(e._id=lC(e.timestamp)),e.type||(e.type=tt.AUDIT_LOG_TYPE);try{let r=await ue.context.getAuditLogsDB().put(e);return{...e,_rev:r.rev}}catch(t){ue.logging.logAlert("Failed to write audit log",t)}}a(um,"save");async function ri(e,t,r){t||(t=1);let n=ue.context.getAuditLogsDB();try{let o=9+1,s=await pC(e,t,o),i=or.searchTable(),u=im.convertJsonStringColumns(i,await n.sql(s.sql,s.bindings)),c;u.length>o&&(c=u.pop());let f={rows:u,hasNextPage:!!c};return f.hasNextPage&&(f.bookmark=t+1),f}catch(o){if(o.status===404&&!r?.isRetry)return await dC(),await cc(),await ri(e,t,{isRetry:!0});throw o}}a(ri,"searchSQL");async function dC(){let e=ue.context.getAuditLogsDB(),r=(await e.allDocs(ue.db.getDocParams(ue.DocumentType.AUDIT_LOG,null,{include_docs:!0}))).rows.map(n=>n.doc).filter(n=>n&&!n.type).map(n=>({...n,type:tt.AUDIT_LOG_TYPE}));await e.bulkDocs(r)}a(dC,"migrate");function cm(e){let t=ue.context.getAuditLogsDB(),r=new sm,n=t.dump(r,{filter:s=>{let i=s;if(!i._id?.startsWith(ue.DocumentType.AUDIT_LOG))return!1;let u=!0,c=a((f,g)=>{!f||f.length===0||(u=!!(u&&g&&f.includes(g)))},"matcher");if(c(e.userIds,i.userId),c(e.appIds,i.appId),c(e.events,i.event),(e.startDate||e.endDate)&&(u=u&&i.timestamp>=e.startDate&&i.timestamp<=e.endDate),e.fullSearch){let f=JSON.stringify(s);u=u&&f.includes(e.fullSearch)}return u}}),o=new sm;return r.on("data",s=>{let i=JSON.parse(Buffer.from(s).toString());if(Array.isArray(i.docs)){let u="";for(let c of i.docs)u+=JSON.stringify(c)+`
|
|
38
38
|
`;o.write(u)}}),r.on("end",()=>{o.end()}),{promise:n,stream:o}}a(cm,"dump");var Pa=require("@budibase/backend-core"),Ua=require("@budibase/string-templates"),Vn=require("@budibase/types");var mC=Pa.constants.MIN_VALID_DATE.toISOString(),gC=Pa.constants.MAX_VALID_DATE.toISOString();function ai(e){return(e.startDate||e.endDate)&&(e.startDate=e.startDate||mC,e.endDate=e.endDate||gC),e}a(ai,"fillDates");async function pm(e){Array.isArray(e.appIds)&&(e.appIds=e.appIds.map(n=>Pa.db.getProdWorkspaceID(n)));let t={};function r(n,o){o?.length&&(t.oneOf={...t.oneOf,[n]:o})}return a(r,"addStringParams"),r("userId",e.userIds),r("appId",e.appIds),r("event",e.events),e.fullSearch&&(t.fuzzyOr=!0,t.fuzzy={name:e.fullSearch,fallback:e.fullSearch}),(e.startDate||e.endDate)&&(e=ai(e),t.range={timestamp:{high:e.endDate,low:e.startDate}}),Object.keys(t).length===0&&(t.notEmpty={event:!0}),t}a(pm,"getSearchFilters");function ni(e,t,r){let n={_id:e,status:Vn.AuditLogResourceStatus.DELETED};switch(t){case"app":n.name=r?.appName;break;case"user":n.email=r?.email;break}return n}a(ni,"deleted");function oi(e){let t=(0,Ua.findHBSBlocks)(e);for(let r of t){let n=` "${r}"`;e=e.replace(e.includes(n)?n:` ${r}`,""),e=(0,Ua.processStringSync)(e,{})}return e}a(oi,"removeTemplateStrings");function lm(e,t){let r=Vn.AuditedEventFriendlyName[e];if(!r)throw new Error("No friendly name found.");let n=(0,Ua.processStringSync)(r,t);return n.includes('""')&&(n=oi(r)),n}a(lm,"getEventFriendlyName");async function hC(e,t,r){if(!await Pn()||!Pe.utils.isAudited(e))return;let n=lm(e,t),o=new Date;r?.timestamp&&(o=new Date(r.timestamp));let s={timestamp:o.toISOString(),event:e,name:n,userId:r?.userId||Hn.AuditLogSystemUser,metadata:{...t,...r?.hostInfo}},i={};try{if(r?.appId){s.appId=Pe.db.getProdWorkspaceID(r.appId);let u=await Pe.cache.workspace.getWorkspaceMetadata(r.appId);"name"in u&&(i.appName=u.name)}if(r?.userId){let u=await Pe.users.getById(r?.userId);i.email=u.email}}catch(u){Pe.logging.logAlert("Failed to retrieve fallback information for audit log",u)}return s.fallback=i,await um(s)}a(hC,"write");async function yC(e){let t=e.map(u=>u.userId),n=e.filter(u=>u.appId).map(u=>Pe.db.getDevWorkspaceID(u.appId)),o=await Pe.users.bulkGetGlobalUsersById([...new Set(t)],{cleanup:!0}),s=await Pe.db.getWorkspacesByIDs([...new Set(n)]),i=[];for(let u of e){let c=o.find(h=>h?._id===u.userId),f=s.find(h=>Pe.db.isSameWorkspaceID(h?.appId,u.appId)),g={event:u.event,timestamp:u.timestamp,name:u.name,metadata:u.metadata,user:c||ni(u.userId,"user",u.fallback)};u.appId&&(g.app=f||ni(u.appId,"app",u.fallback)),i.push(g)}return i}a(yC,"enrich");async function AC(e){if(!await Pn())throw new Error("Audit logs not available - license required.");let t=await pm(e);if(typeof e.bookmark=="string")throw new Error("String based bookmark not supported.");let r=await ri(t,e.bookmark);return{hasNextPage:r.hasNextPage,bookmark:r.bookmark,data:await yC(r.rows)}}a(AC,"fetch");function bC(e){return e=ai(e),cm(e)}a(bC,"download");function IC(){let e=Object.entries(Hn.AuditedEventFriendlyName).filter(r=>r[1]!=null),t={};for(let r of e)t[r[0]]=oi(r[1]);return t}a(IC,"definitions");var Yn={};x(Yn,{applications:()=>ci,roles:()=>ii,users:()=>si});var si={};x(si,{roleCheck:()=>wC});function SC(e,t){let r=e.request.body;return r.builder&&(r.builder=t?.builder||void 0),r.admin&&(r.admin=t?.admin||void 0),r.roles&&(r.roles=t?.roles||{}),e.request.body=r,e}a(SC,"removeRoles");async function wC(e,t){return await It()||SC(e,t),e}a(wC,"roleCheck");var ii={};x(ii,{assign:()=>TC,unAssign:()=>EC});var qa=require("@budibase/backend-core");async function TC(e,t){if(!await It())throw new Error("Unable to assign roles - license required.");let r=await Qe.bulkGet(e);for(let n of r){if(t.role&&t.role.roleId){let o=qa.db.getProdWorkspaceID(t.role.appId);n.roles[o]=t.role.roleId}if(t.appBuilder){let o=qa.db.getProdWorkspaceID(t.appBuilder.appId),s=n.builder?.apps||[];n.builder={apps:s.concat([o])}}t.builder&&(n.builder={global:!0}),t.admin&&(n.admin={global:!0}),n.roles}await Qe.bulkUpdate(r)}a(TC,"assign");async function EC(e,t){if(!await It())throw new Error("Unable to un-assign roles - license required.");let r=await Qe.bulkGet(e);for(let n of r){if(t.role){let o=qa.db.getProdWorkspaceID(t.role?.appId);n.roles[o]===t.role.roleId&&delete n.roles[o]}if(t.appBuilder&&n.builder?.apps){let o=qa.db.getProdWorkspaceID(t.appBuilder.appId);n.builder.apps=n.builder.apps.filter(s=>s!==o)}t.builder&&n.builder&&delete n.builder,t.admin&&n.admin&&delete n.admin}}a(EC,"unAssign");var ci={};x(ci,{buildExportFn:()=>vC,buildImportFn:()=>RC});var ui=require("@budibase/backend-core");function RC(e){return async(t,r)=>{await It()||t.throw(403,"Endpoint unavailable, license required."),t.request.files?.appExport||t.throw(400,"Must provide app export file for import."),await ui.context.doInWorkspaceContext(t.params.appId,async()=>{await e(t),t.body=void 0,t.status=204,await r()})}}a(RC,"buildImportFn");function vC(e){return async(t,r)=>{await It()||t.throw(403,"Endpoint unavailable, license required.");let{encryptPassword:n,excludeRows:o}=t.request.body;await ui.context.doInWorkspaceContext(t.params.appId,async()=>{t.request.body={encryptPassword:n,excludeRows:o},t.query.appId=t.params.appId,await e(t),await r()})}}a(vC,"buildExportFn");var Se=require("@budibase/backend-core"),Ie=require("@budibase/types"),mm=F(require("fs")),gm=require("path");var pi=require("@budibase/backend-core");var dm;function fm(){dm=new pi.queue.BudibaseQueue(pi.queue.JobQueue.APP_BACKUP,{maxStalledCount:3,jobOptions:{attempts:3,removeOnFail:!0,removeOnComplete:!0}})}a(fm,"init");function Jt(){return dm}a(Jt,"getBackupQueue");async function li(e,t={}){return $e.storeAppBackupMetadata(e,t)}a(li,"storeAppBackupMetadata");function hm(e){let t=new Date().toISOString();switch(e){case Ie.BackupStatus.COMPLETE:case Ie.BackupStatus.FAILED:return{timestamp:t,finishedAt:t};case Ie.BackupStatus.STARTED:return{timestamp:t,startedAt:t};case Ie.BackupStatus.PENDING:return{timestamp:t,createdAt:t}}}a(hm,"getTimestamps");async function _C(e,t,r,n){let o=await zn(e);return await $e.storeAppBackupMetadata({...o,...hm(t),contents:r,status:t,type:Ie.BackupType.BACKUP},{filename:n,docId:e})}a(_C,"updateBackupStatus");async function xC(e,t,r){let n=await zn(e);return await $e.storeAppBackupMetadata({...n,...hm(r),status:r,type:Ie.BackupType.RESTORE,trigger:Ie.BackupTrigger.MANUAL},{docId:e,docRev:t})}a(xC,"updateRestoreStatus");async function zn(e){return $e.getAppBackupMetadata(e)}a(zn,"getAppBackup");async function CC(e,t){return $e.updateAppBackupMetadata(e,t)}a(CC,"updateAppBackup");async function ym(e){let t=await $e.getAppBackupMetadata(e);return t.filename&&await Se.objectStore.deleteFile(Se.objectStore.ObjectStoreBuckets.BACKUPS,t.filename),$e.deleteAppBackupMetadata(e)}a(ym,"deleteAppBackup");async function OC(e){let t=[];for(let r of e)try{await ym(r),t.push({backupId:r,success:!0})}catch(n){t.push({backupId:r,success:!1,error:n instanceof Error?n.message:"Unknown error"})}return t}a(OC,"deleteAppBackups");async function LC(e,t){return $e.fetchAppBackups(e,t)}a(LC,"fetchAppBackups");async function Am(e){let t=await $e.getAppBackupMetadata(e);if(!t.filename)throw new Error("Backup incomplete - cannot download.");let{stream:r}=await Se.objectStore.getReadStream(Se.objectStore.ObjectStoreBuckets.BACKUPS,t.filename);return{metadata:t,stream:r}}a(Am,"getBackupDownloadStream");async function PC(e){let{stream:t}=await Am(e),r=(0,gm.join)(Se.objectStore.budibaseTempDir(),Se.utils.newid()),n=mm.default.createWriteStream(r);return new Promise((o,s)=>{t.on("error",s),n.on("error",s),t.pipe(n).on("close",()=>o(r))})}a(PC,"downloadAppBackup");async function UC(e,t,r={}){let n;try{n=await li({appId:e,trigger:t,timestamp:new Date().toISOString(),status:Ie.BackupStatus.PENDING,type:Ie.BackupType.BACKUP,...r})}catch(o){if(o.status===409)return;throw o}return await Jt().add({docId:n.id,docRev:n.rev,appId:e,export:{trigger:t,...r}}),await Se.events.backup.appBackupTriggered(e,n.id,Ie.BackupType.BACKUP,t,r?.name),n.id}a(UC,"triggerAppBackup");async function qC(e,t,r,n){let o=await zn(t),s;try{s=await li({appId:e,timestamp:new Date().toISOString(),status:Ie.BackupStatus.PENDING,type:Ie.BackupType.RESTORE,createdBy:n})}catch(i){if(i?.status===409)return;throw i}return await Jt().add({appId:e,docId:s.id,docRev:s.rev,import:{nameForBackup:r,backupId:t,createdBy:n}}),{restoreId:s.id,metadata:o}}a(qC,"triggerAppRestore");async function DC(e,t,r){let n=Se.db.getProdWorkspaceID(e);await Se.context.doInWorkspaceContext(n,async()=>{let o=Se.context.getProdWorkspaceDB();if(!await o.exists())return;let i=await o.tryGet(Ie.DocumentType.WORKSPACE_METADATA);i&&(i.backupErrors||(i.backupErrors={}),i.backupErrors[t]||(i.backupErrors[t]=[]),i.backupErrors[t].push(r),await o.put(i),await Se.cache.workspace.invalidateWorkspaceMetadata(i.appId,i))})}a(DC,"trackBackupError");var kC={isEnabled:Ls,triggerAppRestore:xe(qC),triggerAppBackup:xe(UC),getBackupDownloadStream:xe(Am),downloadAppBackup:xe(PC),fetchAppBackups:xe(LC),storeAppBackupMetadata:xe(li),updateBackupStatus:xe(_C),updateRestoreStatus:xe(xC),getAppBackup:xe(zn),updateAppBackup:xe(CC),deleteAppBackup:xe(ym),deleteAppBackups:xe(OC),trackBackupError:xe(DC)},Ke=kC;var fi={};x(fi,{init:()=>di});var ae=require("@budibase/backend-core"),rt=require("@budibase/types"),xr=F(require("fs"));async function di(e){Jt().process(async t=>{let r=t.data;try{if(r.export)return console.log("Exporting app backup:",r.appId,r.export.trigger),BC(t,e);if(r.import)return console.log("Importing app backup:",r.appId,r.import.backupId),NC(t,e)}catch(n){ae.logging.logAlert(`Failed to perform backup for app ID: ${r.appId}`,n)}})}a(di,"init");async function MC(e){await ae.db.getDB(e,{skip_setup:!0}).destroy()}a(MC,"removeExistingApp");async function bm(e,t,r,n){let o=ae.db.getDevWorkspaceID(r),s=ae.db.getProdWorkspaceID(r),i=new Date().toISOString(),u=a(async(c,f)=>{n?.doc?await Ke.updateBackupStatus(n.doc.id,c,f?.contents,f?.filename):await Ke.storeAppBackupMetadata({appId:s,timestamp:i,trigger:e,status:c,name:n?.name,type:rt.BackupType.BACKUP,contents:f?.contents,createdBy:n?.createdBy},{filename:f?.filename})},"updateMetadata");try{let c=await n.processing.exportAppFn(o,{tar:!0}),f=await n.processing.statsFn(o),g=`${s}/backup-${i}.tar.gz`,h=ae.objectStore.ObjectStoreBuckets.BACKUPS,y=xr.default.createReadStream(c);await ae.objectStore.streamUpload({bucket:h,filename:g,stream:y,extra:{type:"application/gzip",metadata:{name:n?.name,trigger:e,timestamp:i,appId:s}}}),await u(rt.BackupStatus.COMPLETE,{filename:g,contents:f}),xr.default.existsSync(c)&&xr.default.rmSync(c)}catch(c){ae.logging.logAlert("App backup error",c),await u(rt.BackupStatus.FAILED);let f=n?.doc?.id||`backup-${i}`,g=c instanceof Error?c.message:String(c);await Ke.trackBackupError(s,f,`Backup export failed: ${g}`)}}a(bm,"runBackup");async function NC(e,t){let r=e.data,n=r.appId,o=r.import.backupId,s=r.import.nameForBackup,i=r.import.createdBy,u=ae.tenancy.getTenantIDFromWorkspaceID(n);return ae.tenancy.doInTenant(u,async()=>{let c=ae.db.getDevWorkspaceID(n),f=`${c}_temp_${Date.now()}`,{rev:g}=await Ke.updateRestoreStatus(r.docId,r.docRev,rt.BackupStatus.STARTED);await bm(rt.BackupTrigger.RESTORING,u,n,{processing:t,createdBy:i,name:s});let h=await Ke.downloadAppBackup(o),y=rt.BackupStatus.COMPLETE;try{await t.importAppFn(f,ae.db.getDB(f),{file:{type:"application/gzip",path:h},key:h}),await MC(c),await new ae.db.Replication({source:f,target:c}).replicate()}catch(E){ae.logging.logAlert("App restore error",E),y=rt.BackupStatus.FAILED;let M=E instanceof Error?E.message:String(E);await Ke.trackBackupError(n,o,`Backup restore failed: ${M}`)}finally{try{await ae.db.getDB(f,{skip_setup:!0}).destroy()}catch{}}await Ke.updateRestoreStatus(r.docId,g,y),xr.default.existsSync(h)&&xr.default.rmSync(h,{force:!0})})}a(NC,"importProcessor");async function BC(e,t){let r=e.data,n=r.appId,o=r.export.trigger,s=r.export.name,i=ae.tenancy.getTenantIDFromWorkspaceID(n);await ae.tenancy.doInTenant(i,async()=>{try{let{rev:u}=await Ke.updateBackupStatus(r.docId,rt.BackupStatus.STARTED);return bm(o,i,n,{processing:t,doc:{id:r.docId,rev:u},name:s})}catch(u){ae.logging.logAlert("App backup error",u);let c=u instanceof Error?u.message:String(u);await Ke.trackBackupError(n,r.docId,`Backup export failed: ${c}`)}})}a(BC,"exportProcessor");var GC=a(async e=>{fm(),await di(e.processing)},"init"),Ne={...Ke,processing:fi,init:GC,getBackupQueue:Jt};var Im=a(async e=>{e.backups&&await Ne.init(e.backups)},"init");var qe={};x(qe,{create:()=>UN,find:()=>PN,get:()=>LN,remove:()=>DN,update:()=>qN});var WA=F(iu()),Tt=require("@budibase/backend-core");var $A=require("@budibase/types");async function LN(e){let t=Tt.tenancy.getGlobalDB(),r=new Tt.db.QueryBuilder(t.name,$A.SearchIndex.USER);r.setIndexBuilder(Tt.db.searchIndexes.createUserIndex),r.setLimit(e.pageSize),r.addEqual("scimInfo.isSync",!0);for(let[o,s]of Object.entries(e.filters?.equal??{}))r.addEqual(o,s);r.setSort("_id"),r.setSkip(e.skip);let n=await r.run();return{users:n.rows,total:n.totalRows}}a(LN,"get");async function PN(e){return await Tt.users.getById(e)}a(PN,"find");async function UN(e){let t=await Qe.getUserByEmail(e.email);if(t){if(t.scimInfo?.isSync)throw new Tt.HTTPError("User is already synched",409);e={...t,scimInfo:(0,WA.default)(t.scimInfo,e.scimInfo),password:void 0,firstName:e.firstName,lastName:e.lastName,updatedAt:e.updatedAt}}return await Qe.save(e,{requirePassword:!1})}a(UN,"create");async function qN(e,t){return await Qe.save(e,{requirePassword:!1,allowChangingEmail:t?.allowChangingEmail})}a(qN,"update");async function DN(e){return await Qe.destroy(e)}a(DN,"remove");var qr={};x(qr,{create:()=>kN});var jA=F(iu());var QA=require("@budibase/backend-core");async function kN(e){let t=await ko(e.name),r;if(!t)r=(await re.save(e)).id;else{if(t.scimInfo?.isSync)throw new QA.HTTPError("Group is already synched",409);r=t._id,t.users&&(await re.removeUsers(r,t.users.map(o=>o._id)),delete t.users),t.scimInfo=(0,jA.default)(t.scimInfo,e.scimInfo),await re.save(t)}return await re.get(r)}a(kN,"create");var Zt={};x(Zt,{logRequest:()=>BN,logResponse:()=>GN});var at=require("@budibase/backend-core"),VA=F(KA());var{DocWritethrough:MN}=at.cache.docWritethrough;function NN(){return`${at.db.DocumentType.SCIM_LOG}${at.db.SEPARATOR}${(0,VA.default)().format("YYYYMMDD")}`}a(NN,"getLogDocId");var HA=a(()=>{let e=at.context.getScimDBName();return new MN(at.db.getDB(e),NN())},"getDB");async function BN(e){at.logging.logWarn("SCIM request log",e);let t=Date.now().toString();return await HA().patch({[`${t}_request`]:{ts:new Date().toISOString(),...e}}),t}a(BN,"logRequest");async function GN(e,t){at.logging.logWarn("SCIM response",t),await HA().patch({[`${e}_response`]:{ts:new Date().toISOString(),...t}})}a(GN,"logResponse");var hu={};x(hu,{doInScimContext:()=>lu,feature:()=>we,internalGroupOnly:()=>Ba,licenseAuth:()=>gu,licensing:()=>YA,requireSCIM:()=>du,scimGroupOnly:()=>Na,scimUserOnly:()=>Ma});var Mt=require("@budibase/backend-core");var co=require("@budibase/types");var FN=a((e={checkUsersLimit:!0})=>async(t,r)=>{if((e.licensingCheck?e.licensingCheck:()=>!!t.user)(t)){if(Mt.env.SELF_HOSTED&&Mt.env.DEFAULT_LICENSE)return t.user.license=Mo,r();t.user.license=await ct.cache.getCachedLicense(t,{populateLicense:e.populateLicense,populateFreeLicense:e.populateFreeLicense}),e.checkUsersLimit&&(Mt.utils.isServingApp(t)||Mt.utils.isServingBuilder(t)||Mt.utils.isServingBuilderPreview(t)||Mt.utils.isPublicApiRequest(t))&&await ft.usageLimitIsExceeded({name:co.StaticQuotaName.USERS,type:co.QuotaUsageType.STATIC,usageChange:0})}return r()},"licensing"),YA=FN;var we={};x(we,{requireFeature:()=>WN,requireFeatures:()=>$N});var WN=a(e=>async(t,r)=>{await Ln(e),await r()},"requireFeature"),$N=a((...e)=>async(t,r)=>{await Os(e),await r()},"requireFeatures");var po=require("@budibase/backend-core");var lu=a(async(e,t)=>{let r;return po.env.ENABLE_SCIM_LOGGER&&(r=await Zt.logRequest({...e.request.toJSON(),body:e.request.body})),await po.context.doInScimContext(async()=>{let n=await t();return r&&await Zt.logResponse(r,{...e.response.toJSON(),body:e.response.body}),n})},"doInScimContext");var du=a(async(e,t)=>{await Ds(),await t()},"requireSCIM");var zA=require("@budibase/backend-core");var Ma=a(e=>fu(zA.users.getById,e,!0),"scimUserOnly"),Na=a(e=>fu(z.get,e,!0),"scimGroupOnly"),Ba=a(e=>fu(z.get,e,!1),"internalGroupOnly");function fu(e,t,r){return async(n,o)=>{let s=n.params[t];return typeof s!="string"&&n.throw(404),!!(await e(s)).scimInfo?.isSync!==r&&n.throw(404),o()}}a(fu,"scimSyncChecks");var Ga=require("@budibase/backend-core");var mu=require("dd-trace");async function gu(e,t){await mu.tracer.trace("licenseAuth",async r=>{let n=e.request.headers[Ga.constants.Header.LICENSE_KEY];Array.isArray(n)&&(n=n[0]),r.addTags({licenseKey:n}),n||e.throw(403,"License key not provided");let o=await vs(n);o||(r.addTags({licenseFound:!1}),e.throw(403,"License not found or invalid")),o.tenantId||e.throw(403,"License does not have a tenant ID"),mu.tracer.setUser({id:"anonymous",tenantId:o.tenantId}),await Ga.context.doInSelfHostTenantUsingCloud(o.tenantId,async()=>{await Ga.context.doInLicenseContext(o,async()=>{await t()})})})}a(gu,"default");var wu={};x(wu,{appBackups:()=>sb,auditLogs:()=>gb,environmentVariables:()=>Eb,groups:()=>kb,scim:()=>dI});var Et=require("@budibase/backend-core"),fo=require("@budibase/types"),nb=F(require("@koa/router")),tr=F(require("joi"));var lo=require("@budibase/backend-core"),yu=require("@budibase/types");async function er(e,t){t||e.throw(400,"App ID missing"),await cr.workspaceExists(t)||e.throw(400,`Provided app ID: ${t} - is invalid.`)}a(er,"checkAppID");async function JA(e){let t=e.params.appId;await er(e,t);let{body:r}=e.request,n=e.user?._id,o=await Ne.triggerAppBackup(t,yu.BackupTrigger.MANUAL,{name:r.name,createdBy:n});o||e.throw(500,"Unable to start backup."),e.body={backupId:o,message:"Backup triggered - process starting."}}a(JA,"manualBackup");async function XA(e){let t=e.params.appId;await er(e,t);let r=e.params.backupId,n=e.request.body.name,o=await Ne.triggerAppRestore(t,r,n,e.user?._id);o||e.throw(500,"Unable to start restore."),await lo.events.backup.appBackupRestored(o.metadata),e.body={restoreId:o?.restoreId,message:"Restore triggered - process starting."}}a(XA,"importBackup");async function ZA(e){let t=e.params.appId;await er(e,t);let r=e.params.backupId;await Ne.deleteAppBackup(r),e.body={message:"Backup deleted successfully."}}a(ZA,"deleteBackup");async function eb(e){let t=lo.context.getWorkspaceId();await er(e,t);let{backupIds:r}=e.request.body;(!Array.isArray(r)||r.length===0)&&e.throw(400,"backupIds must be a non-empty array");let n=await Ne.deleteAppBackups(r),o=n.filter(i=>i.success).length,s=n.length-o;e.body={message:`${o} backups deleted successfully${s>0?`, ${s} failed`:""}.`,results:n,successCount:o,failureCount:s}}a(eb,"deleteBackups");async function tb(e){let t=e.params.appId;await er(e,t);let r=e.request.body;r?.trigger&&(r.trigger=r.trigger.toLowerCase(),Object.values(yu.BackupTrigger).includes(r.trigger)||e.throw(400,"Provided trigger is not a valid option.")),e.body=await Ne.fetchAppBackups(t,{paginate:!0,...r})}a(tb,"fetchBackups");async function rb(e){let t=e.params.appId;await er(e,t);let r=e.params.backupId,n=e.request.body;e.body=await Ne.updateAppBackup(r,n.name)}a(rb,"updateBackup");async function ab(e){let t=e.params.appId;await er(e,t);let r=e.params.backupId,{metadata:n,stream:o}=await Ne.getBackupDownloadStream(r);e.attachment(`backup-${n.timestamp}.tar.gz`),e.body=o}a(ab,"downloadBackup");var ob=new nb.default;function QN(){return Et.auth.joiValidator.body(tr.default.object({trigger:tr.default.string().valid(...Object.values(fo.BackupTrigger)),type:tr.default.string().valid(...Object.values(fo.BackupType)),startDate:tr.default.date(),endDate:tr.default.date(),page:tr.default.string()}))}a(QN,"validateBackupSearch");ob.post("/api/apps/:appId/backups",Et.auth.builderOrAdmin,JA).post("/api/apps/:appId/backups/search",Et.auth.builderOrAdmin,QN(),tb).get("/api/apps/:appId/backups/:backupId/file",Et.auth.builderOrAdmin,ab).patch("/api/apps/:appId/backups/:backupId",Et.auth.builderOrAdmin,rb).delete("/api/apps/:appId/backups/:backupId",Et.auth.builderOrAdmin,ZA).delete("/api/apps/:appId/backups",Et.auth.builderOrAdmin,eb).post("/api/apps/:appId/backups/:backupId/import",Et.auth.builderOrAdmin,XA);var sb=ob;var Au=require("@budibase/backend-core");async function ib(e){let t=e.request.body,r=await kt.fetch(t);await Au.events.auditLog.filtered(t),e.body=r}a(ib,"search");async function ub(e){let t=e.request.body,{stream:r}=kt.download(t);await Au.events.auditLog.downloaded(t),e.attachment(`audit-logs-${Date.now()}.log`),e.body=r}a(ub,"download");async function cb(e){e.body={events:kt.definitions()}}a(cb,"definitions");var lb=require("@budibase/types"),rr=require("@budibase/backend-core"),fb=F(require("@koa/router")),Ve=F(require("joi"));function pb(){return rr.auth.joiValidator.body(Ve.default.object({userIds:Ve.default.array().items(Ve.default.string()).optional(),appIds:Ve.default.array().items(Ve.default.string()).optional(),events:Ve.default.array().items(Ve.default.string().valid(...Object.values(lb.Event))).optional(),startDate:Ve.default.string().optional().allow(""),endDate:Ve.default.string().optional().allow(""),fullSearch:Ve.default.string().optional().allow(""),bookmark:Ve.default.number()}))}a(pb,"buildAuditLogSearchValidator");var mb=new fb.default;mb.post("/api/global/auditlogs/search",rr.auth.adminOnly,pb(),ib).get("/api/global/auditlogs/download",rr.auth.adminOnly,rr.middleware.querystringToBody,pb(),ub).get("/api/global/auditlogs/definitions",rr.auth.adminOnly,cb);var gb=mb;var Iu=require("@budibase/backend-core"),bu=require("@budibase/types");async function hb(e){e.body={encryptionKeyAvailable:mt.isEncryptionKeyAvailable()}}a(hb,"status");async function yb(e){e.body={variables:await mt.fetch()}}a(yb,"fetch");async function Ab(e){let{name:t,production:r,development:n}=e.request.body;await mt.update(t,{production:r,development:n});let o=[bu.Environment.PRODUCTION];r!==n&&o.push(bu.Environment.DEVELOPMENT),await Iu.events.environmentVariable.created(t,o),e.body={message:`Environment variable "${t}" created.`}}a(Ab,"create");async function bb(e){let{production:t,development:r}=e.request.body,n=e.params.varName;await mt.update(n,{production:t,development:r}),e.body={message:`Environment variable "${n}" updated.`}}a(bb,"update");async function Ib(e){let t=e.params.varName;await mt.remove(t),await Iu.events.environmentVariable.deleted(t),e.body={message:`Environment variable "${t}" deleted.`}}a(Ib,"destroy");var ar=require("@budibase/backend-core"),wb=F(require("@koa/router")),Fa=F(require("joi"));var Tb=new wb.default;function Sb(){return ar.auth.joiValidator.body(Fa.default.object({name:Fa.default.string().optional(),production:Fa.default.string().required(),development:Fa.default.string().required()}))}a(Sb,"buildEnvVarUpdateValidator");Tb.get("/api/env/variables/status",ar.auth.builderOrAdmin,hb).get("/api/env/variables",ar.auth.builderOrAdmin,yb).post("/api/env/variables",ar.auth.builderOrAdmin,Sb(),Ab).patch("/api/env/variables/:varName",ar.auth.builderOrAdmin,Sb(),bb).delete("/api/env/variables/:varName",ar.auth.builderOrAdmin,Ib);var Eb=Tb;var gt=require("@budibase/backend-core"),Rt=require("@budibase/types"),qb=F(require("@koa/router")),Ce=F(require("joi"));var Rb=require("@budibase/backend-core");async function vb(e){let t=e.request.body;if(t.name=t.name.trim(),delete t.roles,t._id){let n=await _r(t._id);t.roles=n.roles,t.scimInfo=n.scimInfo}let r=await Gn(t);e.body={_id:r.id,_rev:r.rev}}a(vb,"save");async function _b(e){let t=e.params.groupId,r=e.request.body.add,n=e.request.body.remove;(r&&!Array.isArray(r)||n&&!Array.isArray(n))&&e.throw(400,"Must supply a list of users to add or to remove");let o,s;r&&(o=await Fn(t,r)),n&&(s=await Ks(t,n)),e.body={added:o,removed:s}}a(_b,"updateGroupUsers");async function xb(e){let t=e.params.groupId,r=e.request.body.add,n=e.request.body.remove;(r&&!Array.isArray(r)||n&&!Array.isArray(n))&&e.throw(400,"Must supply a list of objects, with appId and roleId to add or remove"),e.body=await Vs(t,{appsToAdd:r,appsToRemove:n})}a(xb,"updateGroupApps");async function Cb(e){e.body={data:await Oa()}}a(Cb,"fetch");async function Ob(e){let{groupId:t,rev:r}=e.params;try{await Qs(t,r),e.body={message:"Group deleted successfully"}}catch(n){e.throw(n.status,n)}}a(Ob,"destroy");async function Lb(e){try{e.body=await _r(e.params.groupId)}catch(t){e.throw(t.status,t)}}a(Lb,"find");async function Pb(e){let{pageSize:t=10,bookmark:r,emailSearch:n}=e.request.query,o=e.params.groupId,s={limit:t+1},i=await nn(o,{...s,emailSearch:n,bookmark:r}),u=n?i[t]?.email:i[t]?._id,c=!!u;e.body={users:i.slice(0,t),bookmark:u,hasNextPage:c}}a(Pb,"searchUsers");async function Ub(e){let{groupId:t}=e.params,{csvContent:r}=e.request.body;(r===void 0||r.trim().length===0)&&e.throw(400,"CSV is empty");let n=await Rb.csv.jsonFromCsvString(r,{allowSingleColumn:!0});(!n||n.length===0)&&e.throw(400,"CSV file is invalid");let s=Object.keys(n[0]).find(h=>/^(email|e-mail|email address|mail|e_mail)$/i.test(h.trim()));s||e.throw(400,"CSV file must contain an email column");let i=Array.from(new Set(n.map(h=>h[s]).filter(h=>h&&typeof h=="string"&&h.trim().length>0).map(h=>h.trim())));i.length===0&&e.throw(400,"No valid email addresses found in CSV");try{await _r(t)}catch(h){if(h.status===404)e.throw(404,"Group not found");else throw h}let u=[],c=[],f=[],g=await Promise.all(i.map(h=>Qe.getUserByEmail(h)));for(let h of i){let y=g.find(E=>E?.email===h);y?(u.push({_id:y._id,email:y.email}),f.push(y._id)):c.push({email:h,reason:"User not found"})}f.length>0&&await Fn(t,f),e.body={added:u,skipped:c}}a(Ub,"bulkAddUsersFromCsv");var Db=new qb.default;function YN(){return gt.auth.joiValidator.body(Ce.default.object({_id:Ce.default.string().optional(),_rev:Ce.default.string().optional(),color:Ce.default.string().required(),icon:Ce.default.string().required(),name:Ce.default.string().trim().required().max(50),role:Ce.default.string().optional(),users:Ce.default.array().optional(),apps:Ce.default.array().optional(),roles:Ce.default.object().optional(),createdAt:Ce.default.string().optional(),updatedAt:Ce.default.string().optional()}).required())}a(YN,"buildGroupSaveValidation");Db.post("/api/global/groups",gt.auth.adminOnly,we.requireFeature(Rt.Feature.USER_GROUPS),YN(),vb).get("/api/global/groups",we.requireFeature(Rt.Feature.USER_GROUPS),Cb).delete("/api/global/groups/:groupId/:rev",we.requireFeature(Rt.Feature.USER_GROUPS),gt.auth.adminOnly,Ba("groupId"),Ob).get("/api/global/groups/:groupId",we.requireFeature(Rt.Feature.USER_GROUPS),gt.auth.builderOrAdmin,Lb).get("/api/global/groups/:groupId/users",we.requireFeature(Rt.Feature.USER_GROUPS),gt.auth.builderOrAdmin,Pb).post("/api/global/groups/:groupId/users",gt.auth.adminOnly,we.requireFeature(Rt.Feature.USER_GROUPS),Ba("groupId"),_b).post("/api/global/groups/:groupId/users/bulk",gt.auth.adminOnly,we.requireFeature(Rt.Feature.USER_GROUPS),Ba("groupId"),gt.auth.joiValidator.body(Ce.default.object({csvContent:Ce.default.string().required()}).required()),Ub).post("/api/global/groups/:groupId/apps",gt.auth.builderOrAdmin,we.requireFeature(Rt.Feature.USER_GROUPS),xb);var kb=Db;var lI=F(require("@koa/router"));var mo=require("scim-patch");var Nb=require("@budibase/backend-core");function Mb(e,t){let r=e.request.query[t];if(r!==void 0)return+r}a(Mb,"tryGetQueryAsNumber");var Bb=a(async e=>{let t=Mb(e,"pageSize")??20,r=Mb(e,"startIndex"),n;e.request.query.filter&&(n=ce.user.userFilters(e.request.query.filter));let o=await qe.get({pageSize:t,skip:r,filters:n});e.body={schemas:["urn:ietf:params:scim:api:messages:2.0:ListResponse"],totalResults:o.total,Resources:o.users.map(ce.user.toScimUserResponse),startIndex:(r||0)+1,itemsPerPage:t}},"get"),Gb=a(async e=>{let{id:t}=e.params;typeof t!="string"&&e.throw(404);let r=await qe.find(t);e.body=ce.user.toScimUserResponse(r)},"find"),Fb=a(async e=>{let t=ce.user.fromScimUser(e.request.body);try{let r=await qe.create(t);e.body=ce.user.toScimUserResponse(r)}catch(r){throw r instanceof Nb.EmailUnavailableError&&e.throw(409,"Email already in use"),r}},"create");function zN(e){let t=e.Operations.find(r=>(r.op==="Replace"||r.op==="replace")&&r.path==="active");return t?t.value===!1||t.value?.toLowerCase?.()==="false":!1}a(zN,"isDeactivation");var Wb=a(async e=>{let t=await qe.find(e.params.id);t||e.throw(404);let r=ce.user.toScimUserResponse(t),n=e.request.body;try{(0,mo.patchBodyValidation)(n)}catch{}if(zN(n))return Su(e);let o;try{o=(0,mo.scimPatch)(r,n.Operations)}catch{}o||e.throw(500);let s=ce.user.fromScimUser(o);await qe.update(s,{allowChangingEmail:!0}),e.body=ce.user.toScimUserResponse(s)},"update"),Su=a(async e=>{let{id:t}=e.params;typeof t!="string"&&e.throw(404),await qe.remove(t),e.status=204},"remove");var aI=F(rI()),nI=require("@budibase/shared-core"),go=require("scim-patch");var ho=require("scim2-parse-filter");function oI(e,t){for(let r of t.split(","))delete e[r]}a(oI,"cleanResponse");var sI=a(async e=>{let r=(await re.fetch()).filter(s=>s.scimInfo?.isSync).map(ce.group.toScimGroupResponse),{filter:n,excludedAttributes:o}=e.request.query;if(n){let s=(0,ho.filter)((0,ho.parse)(n));r=r.filter(s)}o&&r.forEach(s=>{oI(s,o)}),e.body={schemas:["urn:ietf:params:scim:api:messages:2.0:ListResponse"],totalResults:r.length,Resources:r,startIndex:1,itemsPerPage:r.length}},"get"),iI=a(async e=>{let t=ce.group.fromScimGroup(e.request.body),r=await qr.create(t);e.body=ce.group.toScimGroupResponse(r)},"create"),uI=a(async e=>{let{id:t}=e.params,r=await re.get(t),n=ce.group.toScimGroupResponse(r),{excludedAttributes:o}=e.request.query;o&&oI(n,o),e.body=n},"find"),cI=a(async e=>{let{id:t}=e.params,r=await re.get(t);await re.remove(t,r._rev),e.status=204},"remove"),pI=a(async e=>{let{id:t}=e.params,r=await re.get(t),n=ce.group.toScimGroupResponse(r),o=e.request.body;try{(0,go.patchBodyValidation)(o)}catch{e.throw(400)}let{true:s,false:i}=(0,aI.default)(o.Operations,u=>u.path==="members");if(i?.length){let u=(0,go.scimPatch)(n,i);u||e.throw(500);let c={...ce.group.fromScimGroup(u),_rev:r._rev};await re.save(c)}if(s?.length){let u=[],c=[];for(let{op:f,value:g}of s)switch(f){case"add":case"Add":for(let h of g)u.push(await qe.find(h.value));break;case"remove":case"Remove":for(let h of g)try{c.push(await qe.find(h.value))}catch(y){if(y.status!==404)throw y}break;case"replace":case"Replace":throw new Error("Replacing members is not allowed");default:nI.utils.unreachable(f)}u.length&&await re.addUsers(t,u.map(f=>f._id)),c.length&&await re.removeUsers(t,c.map(f=>f._id))}e.body=ce.group.toScimGroupResponse(await re.get(t))},"update");var Wa=require("@budibase/types"),Be=new lI.default({prefix:"/api/global/scim/v2"});Be.use(du);Be.use(lu);Be.get("/users",Bb);Be.get("/users/:id",Ma("id"),Gb);Be.post("/users",Fb);Be.patch("/users/:id",Ma("id"),Wb);Be.delete("/users/:id",Ma("id"),Su);Be.get("/groups",sI);Be.post("/groups",we.requireFeature(Wa.Feature.USER_GROUPS),iI);Be.get("/groups/:id",we.requireFeature(Wa.Feature.USER_GROUPS),Na("id"),uI);Be.delete("/groups/:id",we.requireFeature(Wa.Feature.USER_GROUPS),Na("id"),cI);Be.patch("/groups/:id",we.requireFeature(Wa.Feature.USER_GROUPS),Na("id"),pI);var dI=Be;var ce={};x(ce,{group:()=>Eu,user:()=>Tu});var Tu={};x(Tu,{fromScimUser:()=>EB,toScimUserResponse:()=>SB,userFilters:()=>RB});var fI=require("@budibase/backend-core"),mI=require("@budibase/shared-core"),yo=require("@budibase/types"),gI=require("scim2-parse-filter");var{unreachable:IB}=mI.utils,SB=a(e=>{let{isSync:t,roles:r,...n}=e.scimInfo||{},o={...n,schemas:["urn:ietf:params:scim:schemas:core:2.0:User"],id:e._id,meta:{resourceType:"User",created:new Date(e.createdAt),lastModified:new Date(e.updatedAt)},active:e.status===yo.UserStatus.ACTIVE};(e.firstName||e.lastName)&&(o.name={formatted:[e.firstName,e.lastName].filter(i=>i).join(" "),familyName:e.lastName,givenName:e.firstName});let s="urn:ietf:params:scim:schemas:extension:enterprise:2.0:User";if(o[s]?.manager){let i=o[s].manager;typeof i=="string"&&(o[s].manager={value:i})}return o},"toScimUserResponse"),wB=a(e=>!!e?.id,"isScimUserResponse");function TB(e){if(fI.utils.validEmail(e.userName))return e.userName;if(e.emails)return e.emails.find(t=>t.primary)?.value||e.emails[0]?.value}a(TB,"tryGetEmail");var EB=a(e=>{let t=wB(e)?e:void 0,r=TB(e);if(!r)throw new Error("Email is required");let n;switch(e.active){case"True":case"true":case!0:n=!0;break;case"False":case"false":case!1:n=!1;break;default:IB(e.active)}let o,s;return e.name?.givenName?(o=e.name?.givenName,s=e.name?.familyName):o=e.displayName,{tenantId:"",_id:t?.id,userId:t?.id,email:r,firstName:o,lastName:s,scimInfo:{...e,isSync:!0},roles:{},status:n?yo.UserStatus.ACTIVE:yo.UserStatus.INACTIVE,createdAt:t?.meta.created.getTime(),updatedAt:t?.meta.lastModified.toISOString()}},"fromScimUser"),RB=a(e=>{let t={equal:{}},r=(0,gI.parse)(e);function n(o){switch(o.op){case"eq":{let s=o.attrPath,i;switch(s){case"emails.value":i="email";break;default:i=`scimInfo.${s}`}t.equal[i]=o.compValue;break}case"and":for(let s of o.filters)n(s);break;default:console.warn("Filter not handled",{filter:o})}}return a(n,"parseFilters"),n(r),t},"userFilters");var Eu={};x(Eu,{fromScimGroup:()=>xB,toScimGroupResponse:()=>vB});var vB=a(e=>({schemas:["urn:ietf:params:scim:schemas:core:2.0:Group"],id:e._id,externalId:e.scimInfo.externalId,meta:{resourceType:"Group",created:new Date(e.createdAt),lastModified:new Date(e.updatedAt)},displayName:e.name,members:e.users?.map(t=>({value:t._id}))}),"toScimGroupResponse"),_B=a(e=>!!e?.id,"isScimGroup"),xB=a(e=>{let t=_B(e)?e:void 0;return{_id:t?.id,name:e.displayName,scimInfo:{externalId:e.externalId,isSync:!0},icon:"UserGroup",color:"var(--spectrum-global-color-blue-600)",createdAt:t?.meta.created.getTime(),updatedAt:t?.meta.lastModified.toISOString()}},"fromScimGroup");var Hu={};x(Hu,{LLM:()=>ht,LLMRequest:()=>se,TableGeneration:()=>Vu,agentHistoryTitleSystemPrompt:()=>BB,agentSystemPrompt:()=>NB,aiColumnSchemas:()=>Qu,aiTableResponseToTableSchema:()=>Fu,appendAIColumns:()=>Wu,classifyText:()=>_u,cleanData:()=>xu,extractFileData:()=>qB,generateAIColumns:()=>Bu,generateCode:()=>MB,generateCronExpression:()=>Cu,generateData:()=>Gu,generateJs:()=>Uu,generateSQL:()=>kB,generateTables:()=>Nu,generationStructure:()=>ju,getLLM:()=>Ka,getLLMConfig:()=>Mu,getLLMOrThrow:()=>RI,normalizeContentType:()=>Ru,parseResponseFormat:()=>bo,sanitiseToolName:()=>CB,searchWeb:()=>Pu,sentimentAnalysis:()=>Lu,summarizeText:()=>Ao,tableDataStructuredOutput:()=>Ku,translate:()=>Ou});var $a=require("@budibase/types");function CB(e){if(e.length>64)throw new Error("Tool name must be under 64 characters long");return e.replace(/[^a-zA-Z0-9_-]/g,"_")}a(CB,"sanitiseToolName");function Ru(e){return e?e.includes("/")?e:{[$a.SupportedFileType.PDF]:"application/pdf",[$a.SupportedFileType.JPG]:"image/jpeg",[$a.SupportedFileType.JPEG]:"image/jpeg",[$a.SupportedFileType.PNG]:"image/png"}[e.toLowerCase()]||"application/octet-stream":"application/octet-stream"}a(Ru,"normalizeContentType");var Eo=require("@budibase/types");var yt=require("@budibase/backend-core"),SI=require("@budibase/types");var Io=F(require("openai"));var Nt=require("@budibase/types");var hI=require("@budibase/shared-core");var Bt=F(require("dd-trace"));function vu(e,t){return t.map(r=>e[r]).join(" ")}a(vu,"extractTextFromColumns");var ht=class{static{a(this,"LLM")}constructor({model:t,apiKey:r,maxTokens:n}){this._model=t,this._apiKey=r,this._maxTokens=n??parseInt(process.env.BUDIBASE_AI_MAX_PROMPT_TOKENS||"1000")}get model(){return this._model}get apiKey(){return this._apiKey}get maxTokens(){return this._maxTokens}async prompt(t){return await Bt.default.trace("prompt",async()=>{let r=typeof t=="string"?new se().addUserMessage(t):t,{messages:n,tokensUsed:o}=await Bt.default.trace("chatCompletion",()=>this.chatCompletion(r));return!n||n.length===0?{message:"",tokensUsed:o}:{message:n[n.length-1].content||"",tokensUsed:o}})}async chat(t){return await Bt.default.trace("chat",async()=>await this.chatCompletion(t))}async*chatStream(t){yield*this.chatCompletionStream(t)}async summarizeText(t){return Bt.default.trace("summarizeText",()=>this.prompt(Ao(t)))}async generateCronExpression(t){return Bt.default.trace("generateCronExpression",()=>this.prompt(Cu(t)))}async operation(t,r){return Bt.default.trace("operation",n=>{n.addTags({operation:t.operation,rowId:r.id});let o=this.promptForOperation(t,r);return this.prompt(o)})}promptForOperation(t,r){let{operation:n,column:o,columns:s,language:i,categories:u,prompt:c}=t;switch(n){case Nt.AIOperationEnum.SUMMARISE_TEXT:return Ao(vu(r,s));case Nt.AIOperationEnum.CLEAN_DATA:return xu(r[o]);case Nt.AIOperationEnum.TRANSLATE:return Ou(r[o],i);case Nt.AIOperationEnum.CATEGORISE_TEXT:if(!u)throw Error("No categories provided for categorise text operation. Please provide categories.");return _u(vu(r,s),u.split(","));case Nt.AIOperationEnum.SENTIMENT_ANALYSIS:return Lu(r[o]);case Nt.AIOperationEnum.PROMPT:return c;case Nt.AIOperationEnum.SEARCH_WEB:return Pu(vu(r,s));default:throw hI.utils.unreachable(n)}}async generateJs(t,r){return await Bt.default.trace("generateJs",async()=>{let{bindings:n=[],snippets:o=[]}=r||{};return await this.prompt(Uu(n,o).addUserMessage(t))})}};var AI=require("@budibase/types"),qu=require("openai/helpers/zod");var ja=(n=>(n.GPT_5_MINI="gpt-5-mini",n.GPT_5="gpt-5",n.GPT_5_NANO="gpt-5-nano",n))(ja||{});function bo(e){if(e)return e==="text"?{type:"text"}:e==="json"?{type:"json_object"}:e}a(bo,"parseResponseFormat");function yI(e){if(!e)return 0;let t=e.prompt_tokens;return e.completion_tokens*3+t}a(yI,"calculateBudibaseAICredits");var He=class extends ht{constructor(r){super(r);this.client=this.getClient(r)}static{a(this,"OpenAI")}getVerbosityForModel(){if(Object.values(ja).includes(this.model))return"low"}getClient(r){if(!r.apiKey)throw new Error("No OpenAI API key found");return new Io.default({apiKey:r.apiKey})}async uploadFile(r,n,o){let s=Ru(o);if(AI.ImageContentTypes.includes(s.toLowerCase())){let c;if(Buffer.isBuffer(r))c=r;else{let g=[];for await(let h of r)g.push(new Uint8Array(h));c=Buffer.concat(g)}let f=c.toString("base64");return`data:${s};base64,${f}`}let i=await(0,Io.toFile)(r,n);return(await this.client.files.create({file:i,purpose:"assistants"})).id}async chatCompletion(r){let n={model:this.model,messages:r.messages,max_completion_tokens:this._maxTokens,response_format:bo(r.format)};if(Object.values(ja).includes(this.model)){let i=this.getVerbosityForModel();i&&(n.verbosity=i),n.reasoning_effort="minimal"}r.tools&&r.tools.length>0&&(n.tool_choice="auto",n.tools=r.tools.map(qu.zodFunction));let o=await this.client.chat.completions.create(n),s=o?.choices?.[0]?.message;if(s?.tool_calls){r.addMessage(s);let i=[];for(let u of s.tool_calls){if(u.type!=="function"||!u.function){console.warn(`[OPENAI TOOL WARN] Unsupported tool call type: ${u.type}`);continue}let c=u.function.name,f=r.findTool(c);if(!f)throw new Error(`Tool ${c} not found in prompt tools`);let g=JSON.parse(u.function.arguments);i.push(f.handler(g).then(h=>({role:"tool",tool_call_id:u.id,content:h})).catch(h=>(console.error(`[OPENAI TOOL ERROR] Tool ${c} failed in OpenAI handler:`,h),{role:"tool",tool_call_id:u.id,content:`Error: ${h.message}`})))}return r.addMessages(await Promise.all(i)),this.chatCompletion(r)}else{if(s?.content)return{messages:[...r.messages,{role:s.role,content:s.content}],tokensUsed:yI(o.usage)};throw new Error("No response found")}}async*chatCompletionStream(r){let n={model:this.model,messages:r.messages,max_tokens:this.maxTokens,response_format:bo(r.format),stream:!0};r.tools&&r.tools.length>0&&(n.tool_choice="auto",n.tools=r.tools.map(qu.zodFunction));try{let o=await this.client.chat.completions.create(n),s=null,i="",u=null;for await(let f of o){let g=f?.choices?.[0]?.delta;if(g){if(g.content&&(i+=g.content,yield{type:"content",content:g.content}),g.tool_calls&&g.tool_calls.length>0){let h=g.tool_calls[0];h.id?(s={id:h.id,name:h.function?.name||"",arguments:h.function?.arguments||""},yield{type:"tool_call_start",toolCall:{id:s.id,name:s.name,arguments:s.arguments}}):s&&h.function?.arguments&&(s.arguments+=h.function.arguments,yield{type:"tool_call_start",toolCall:{id:s.id,name:s.name,arguments:s.arguments}})}f.usage&&(u=f.usage)}}let c=u?yI(u):0;if(s){r.addMessage({role:"assistant",content:"",tool_calls:[{id:s.id,type:"function",function:{name:s.name,arguments:s.arguments}}]});let f=r.findTool(s.name);if(f)try{let g=JSON.parse(s.arguments),h=await f.handler(g);yield{type:"tool_call_result",toolResult:{id:s.id,result:h}},r.addMessage({role:"tool",tool_call_id:s.id,content:h}),yield*this.chatCompletionStream(r);return}catch(g){yield{type:"tool_call_result",toolResult:{id:s.id,result:`Error: ${g.message}`,error:g.message}},r.addMessage({role:"tool",tool_call_id:s.id,content:`Error: ${g.message}`}),yield*this.chatCompletionStream(r);return}else{let g=`Tool '${s.name}' not found`;yield{type:"tool_call_result",toolResult:{id:s.id,result:g,error:g}},r.addMessage({role:"tool",tool_call_id:s.id,content:g}),yield*this.chatCompletionStream(r);return}}i&&r.addMessage({role:"assistant",content:i}),yield{type:"done",messages:r.messages,tokensUsed:c}}catch(o){yield{type:"error",content:o.message}}}};var he=require("@budibase/backend-core"),bI=require("@budibase/types");var Du=require("dd-trace");var So=class extends ht{static{a(this,"BudibaseAI")}async prompt(t){let r=await super.prompt(t);return r.tokensUsed&&await Nn(r.tokensUsed),r}async chat(t){let r=await super.chat(t);return r.tokensUsed&&await Nn(r.tokensUsed),r}async uploadFile(t,r,n){return he.env.SELF_HOSTED?this.uploadFileSelfHost(t,r,n):this.uploadFileCloud(t,r,n)}async uploadFileCloud(t,r,n){return new He({apiKey:he.env.OPENAI_API_KEY,model:this.model,max_completion_tokens:this.maxTokens}).uploadFile(t,r,n)}async uploadFileSelfHost(t,r,n){let o;if(Buffer.isBuffer(t))o=t;else{let g=[];for await(let h of t)g.push(new Uint8Array(h));o=Buffer.concat(g)}let s=o.toString("base64");if(n&&bI.ImageContentTypes.includes(n.toLowerCase()))return`data:image/jpeg;base64,${s}`;if(!he.env.BUDICLOUD_URL)throw new Error("No Budibase URL found");if(!this._apiKey){let g=await Cn();if(!g)throw new Error("No license key found");this._apiKey=g}let i=`${he.env.BUDICLOUD_URL}/api/ai/upload-file`,u={method:"POST",headers:{"Content-Type":"application/json",[he.constants.Header.LICENSE_KEY]:this._apiKey},body:JSON.stringify({data:s,filename:r,contentType:n})};console.debug("[BudibaseAI] uploadFileSelfHost - Making network call",{url:i,method:u.method,headers:u.headers,bodyKeys:["data","filename","contentType"],filename:r,contentType:n});let c=await Ja(i,u);if(console.debug("[BudibaseAI] uploadFileSelfHost - Network response",{url:i,status:c.status,statusText:c.statusText,ok:c.ok}),!c.ok)throw await he.HTTPError.fromResponse(c);return(await c.json()).fileId}async chatCompletion(t){return he.env.SELF_HOSTED?this.chatCompletionSelfHost(t):this.chatCompletionCloud(t)}async chatCompletionCloud(t){return await Du.tracer.trace("chatCompletionCloud",async()=>await new He({apiKey:he.env.OPENAI_API_KEY,model:this.model,max_completion_tokens:this.maxTokens}).chatCompletion(t))}async chatCompletionSelfHost(t){return await Du.tracer.trace("chatCompletionSelfHost",async r=>{if(!he.env.BUDICLOUD_URL)throw new Error("No Budibase URL found");if(r.addTags({budicloudUrl:he.env.BUDICLOUD_URL}),!this._apiKey){let c=await Cn();if(!c)throw new Error("No license key found");this._apiKey=c,r.addTags({licenseKey:this._apiKey})}let n={messages:t.messages,format:t.format,useTools:t.tools.length>0},o=`${he.env.BUDICLOUD_URL}/api/ai/chat`,s={method:"POST",headers:{"Content-Type":"application/json",[he.constants.Header.LICENSE_KEY]:this._apiKey},body:JSON.stringify(n)};console.debug("[BudibaseAI] chatCompletionSelfHost - Making network call",{url:o,method:s.method,headers:s.headers,bodyKeys:Object.keys(n),messagesCount:t.messages.length,useTools:n.useTools,format:n.format});let i=await Ja(o,s);if(console.debug("[BudibaseAI] chatCompletionSelfHost - Network response",{url:o,status:i.status,statusText:i.statusText,ok:i.ok}),!i.ok)throw await he.HTTPError.fromResponse(i);let u=await i.json();return console.debug("[BudibaseAI] chatCompletionSelfHost - Response data",{url:o,tokensUsed:u.tokensUsed,messagesCount:u.messages?.length}),u})}async*chatCompletionStream(t){he.env.SELF_HOSTED?yield*this.chatCompletionStreamSelfHost(t):yield*this.chatCompletionStreamCloud(t)}async*chatCompletionStreamCloud(t){yield*new He({apiKey:he.env.OPENAI_API_KEY,model:this.model,max_completion_tokens:this.maxTokens}).chatCompletionStream(t)}async*chatCompletionStreamSelfHost(t){console.debug("[BudibaseAI] chatCompletionStreamSelfHost - Starting streaming (fallback to non-streaming)",{messagesCount:t.messages.length,toolsCount:t.tools.length});try{let r=await this.chatCompletionSelfHost(t);if(console.debug("[BudibaseAI] chatCompletionStreamSelfHost - Yielding response chunks",{responseMessagesCount:r.messages.length,tokensUsed:r.tokensUsed}),r.messages.length>0){let n=r.messages[r.messages.length-1];n.content&&(yield{type:"content",content:n.content})}yield{type:"done",messages:r.messages,tokensUsed:r.tokensUsed}}catch(r){console.debug("[BudibaseAI] chatCompletionStreamSelfHost - Error occurred",{error:r.message}),yield{type:"error",content:r.message}}}};var Qa=require("dd-trace");var ku=F(require("@anthropic-ai/sdk"));function OB(e){if(!e)return 0;let t=e.input_tokens;return e.output_tokens*3+t}a(OB,"calculateBudibaseAICredits");var wo=class extends ht{constructor(r){super(r);this.client=new ku.default({apiKey:r.apiKey})}static{a(this,"Anthropic")}firstTextBlock(r){for(let n of r.content)if(n.type==="text")return n.text}async uploadFile(r,n,o){throw new Error("File upload not supported for this LLM provider")}async chatCompletion(r){try{let n=await this.client.messages.create({model:this.model,messages:r.messages.map(({content:s})=>{if(s==null)return{role:"user",content:""};if(typeof s=="string")return{role:"user",content:s};let i="";for(let u of s)u.type==="text"?i+=u.text:["image_url","input_audio","file"].includes(u.type);return{role:"user",content:i}}),max_tokens:this.maxTokens}),o=this.firstTextBlock(n)||"";return{messages:[...r.messages,{role:"assistant",content:o}],tokensUsed:OB(n.usage)}}catch(n){throw n instanceof ku.default.APIError&&console.error(`Anthropic Prompt failed with error ${n.name} and status: ${n.status}`),n}}async*chatCompletionStream(r){try{let n=await this.chatCompletion(r);if(n.messages.length>0){let o=n.messages[n.messages.length-1];o.content&&(yield{type:"content",content:o.content})}yield{type:"done",messages:n.messages,tokensUsed:n.tokensUsed}}catch(n){yield{type:"error",content:n.message}}}};var wI=require("zod"),TI=require("openai/helpers/zod");var II=require("openai");var To=class extends He{static{a(this,"AzureOpenAI")}getClient(t){if(!t.apiKey)throw new Error("No Azure OpenAI API key found");if(!t.model)throw new Error("No Azure OpenAI model specified");return new II.AzureOpenAI({apiKey:t.apiKey,apiVersion:"2024-10-01-preview",baseURL:t.baseUrl})}getVerbosityForModel(){return Object.values(ja).includes(this.model)?"medium":void 0}};var EI={OpenAI:"gpt-5-mini",TogetherAI:"gpt-5-mini",AzureOpenAI:"gpt-4.1",Custom:"gpt-5-mini",Anthropic:"claude-3-5-sonnet-20240620",BudibaseAI:"gpt-5-mini"},LB={OpenAI:He,TogetherAI:He,AzureOpenAI:To,Custom:He,Anthropic:wo,BudibaseAI:So};async function PB(){return await Qa.tracer.trace("getAIConfig",async e=>{let t={type:SI.ConfigType.AI,config:{}};if(!yt.context.isSelfHostUsingCloud()){let n=await yt.configs.getAIConfig();n&&(t=n)}await ks(t);let r=Object.values(t.config).find(n=>n.active&&n.isDefault);if(!r){e.addTags({enabled:!1,reason:"no provider found"});return}return e.addTags({enabled:!0}),{provider:r.provider,model:r.defaultModel||EI[r.provider],apiKey:r.apiKey,baseUrl:r.baseUrl}})}a(PB,"getAIConfig");async function UB(){return Qa.tracer.trace("getSelfHostOpenAIKeyConfig",e=>{if(!yt.env.SELF_HOSTED){e.addTags({enabled:!1,reason:"not self host"});return}if(!yt.env.OPENAI_API_KEY){e.addTags({enabled:!1,reason:"no OPENAI_API_KEY"});return}return e.addTags({enabled:!0}),{provider:"OpenAI",model:EI.OpenAI,apiKey:yt.env.OPENAI_API_KEY}})}a(UB,"getSelfHostOpenAIKeyConfig");async function Mu(){return Qa.tracer.trace("getLLMConfig",async()=>await PB()||await UB())}a(Mu,"getLLMConfig");async function Ka(e){return await Qa.tracer.trace("getLLM",async t=>{let{model:r,maxTokens:n}=e||{},o=await Mu();if(!o){t.addTags({enabled:!1,reason:"no config found"});return}r&&(o.model=r),n&&(o.maxTokens=n);let s=LB[o.provider];if(!s){t.addTags({enabled:!1,reason:"no provider found",provider:o.provider});return}return new s(o)})}a(Ka,"getLLM");async function RI(){let e=await Ka();if(!e)throw new yt.HTTPError("No available LLM configurations",500);return e}a(RI,"getLLMOrThrow");var se=class e{constructor(){this.messages=[];this.tools=[]}static{a(this,"LLMRequest")}addTool(t){return this.tools.push(t),this}addTools(t){return this.tools.push(...t),this}findTool(t){return this.tools.find(r=>r.name===t)}withFormat(t){return t instanceof wI.z.ZodType?this.format=(0,TI.zodResponseFormat)(t,"key"):this.format=t,this}addMessage(t){return this.messages.push(t),this}addMessages(t){return this.messages.push(...t),this}addUserMessage(t){return this.messages.push({role:"user",content:t}),this}addSystemMessage(t){return this.messages.push({role:"system",content:t}),this}static fromRequest(t){let r=new e;return t.messages&&r.addMessages(t.messages),t.format&&r.withFormat(t.format),r}};var vt=require("zod");function Ao(e,t){let r=`Summarize this text:
|
|
39
39
|
${e}`,n="";if(t)switch(t){case Eo.SummariseLength.SHORT:n="In 1-2 concise sentences, ";break;case Eo.SummariseLength.MEDIUM:n="In 2-3 paragraphs, ";break;case Eo.SummariseLength.LONG:n="In multiple detailed paragraphs, ";break}return new se().addUserMessage(`${n}${r}.
|
|
40
40
|
Only return the summary.`)}a(Ao,"summarizeText");function qB(e,t){let r=["You are a data extraction assistant.","Extract data from the attached document/image that matches the provided schema.","The schema defines the structure where values like 'string', 'number', 'boolean' indicate the expected data types.","Extract all items that match the schema from the document.","Return the data in json format","If no matching data is found, return an empty data array."].join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Plugin, PluginMetadata, PluginSource } from "@budibase/types";
|
|
2
|
-
export declare function storePlugin(metadata: PluginMetadata, directory: any, source: PluginSource): Promise<Plugin>;
|
|
1
|
+
import { Plugin, PluginMetadata, PluginSource, PluginOrigin } from "@budibase/types";
|
|
2
|
+
export declare function storePlugin(metadata: PluginMetadata, directory: any, source: PluginSource, origin?: PluginOrigin): Promise<Plugin>;
|
|
3
3
|
export declare function deletePlugin(pluginId: string): Promise<void>;
|
|
4
4
|
export declare function checkPluginQuotas(): Promise<void>;
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"dist"
|
|
5
5
|
],
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
|
-
"version": "3.22.
|
|
7
|
+
"version": "3.22.7",
|
|
8
8
|
"description": "Budibase Pro (Backend)",
|
|
9
9
|
"main": "dist/index.js",
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "e1771079f50e7bbd5ff170361b3adcb840102752"
|
|
75
75
|
}
|