@budibase/pro 3.7.0 → 3.7.1

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 CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var Gb=Object.create;var Dn=Object.defineProperty;var kb=Object.getOwnPropertyDescriptor;var Fb=Object.getOwnPropertyNames;var $b=Object.getPrototypeOf,Qb=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),x=(e,t)=>{for(var r in t)Dn(e,r,{get:t[r],enumerable:!0})},ru=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Fb(t))!Qb.call(e,a)&&a!==r&&Dn(e,a,{get:()=>t[a],enumerable:!(n=kb(t,a))||n.enumerable});return e};var M=(e,t,r)=>(r=e!=null?Gb($b(e)):{},ru(t||!e||!e.__esModule?Dn(r,"default",{value:e,enumerable:!0}):r,e)),jb=e=>ru(Dn({},"__esModule",{value:!0}),e);var Jn=u((cG,Gu)=>{"use strict";function QI(e,t){for(var r=-1,n=t.length,a=e.length;++r<n;)e[a+r]=t[r];return e}Gu.exports=QI});var go=u((lG,ku)=>{"use strict";var jI=typeof global=="object"&&global&&global.Object===Object&&global;ku.exports=jI});var Ae=u((dG,Fu)=>{"use strict";var WI=go(),VI=typeof self=="object"&&self&&self.Object===Object&&self,YI=WI||VI||Function("return this")();Fu.exports=YI});var Lt=u((fG,$u)=>{"use strict";var KI=Ae(),HI=KI.Symbol;$u.exports=HI});var Vu=u((gG,Wu)=>{"use strict";var Qu=Lt(),ju=Object.prototype,JI=ju.hasOwnProperty,zI=ju.toString,zr=Qu?Qu.toStringTag:void 0;function XI(e){var t=JI.call(e,zr),r=e[zr];try{e[zr]=void 0;var n=!0}catch{}var a=zI.call(e);return n&&(t?e[zr]=r:delete e[zr]),a}Wu.exports=XI});var Ku=u((mG,Yu)=>{"use strict";var ZI=Object.prototype,eS=ZI.toString;function tS(e){return eS.call(e)}Yu.exports=tS});var It=u((yG,zu)=>{"use strict";var Hu=Lt(),rS=Vu(),nS=Ku(),aS="[object Null]",oS="[object Undefined]",Ju=Hu?Hu.toStringTag:void 0;function sS(e){return e==null?e===void 0?oS:aS:Ju&&Ju in Object(e)?rS(e):nS(e)}zu.exports=sS});var _e=u((hG,Xu)=>{"use strict";function iS(e){return e!=null&&typeof e=="object"}Xu.exports=iS});var ep=u((AG,Zu)=>{"use strict";var uS=It(),pS=_e(),cS="[object Arguments]";function lS(e){return pS(e)&&uS(e)==cS}Zu.exports=lS});var Xr=u((bG,np)=>{"use strict";var tp=ep(),dS=_e(),rp=Object.prototype,fS=rp.hasOwnProperty,gS=rp.propertyIsEnumerable,mS=tp(function(){return arguments}())?tp:function(e){return dS(e)&&fS.call(e,"callee")&&!gS.call(e,"callee")};np.exports=mS});var de=u((IG,ap)=>{"use strict";var yS=Array.isArray;ap.exports=yS});var up=u((SG,ip)=>{"use strict";var op=Lt(),hS=Xr(),AS=de(),sp=op?op.isConcatSpreadable:void 0;function bS(e){return AS(e)||hS(e)||!!(sp&&e&&e[sp])}ip.exports=bS});var mo=u((wG,cp)=>{"use strict";var IS=Jn(),SS=up();function pp(e,t,r,n,a){var o=-1,i=e.length;for(r||(r=SS),a||(a=[]);++o<i;){var s=e[o];t>0&&r(s)?t>1?pp(s,t-1,r,n,a):IS(a,s):n||(a[a.length]=s)}return a}cp.exports=pp});var Zr=u((vG,lp)=>{"use strict";function wS(e){return e}lp.exports=wS});var zn=u((EG,dp)=>{"use strict";function vS(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)}dp.exports=vS});var yo=u((_G,gp)=>{"use strict";var ES=zn(),fp=Math.max;function _S(e,t,r){return t=fp(t===void 0?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=fp(n.length-t,0),i=Array(o);++a<o;)i[a]=n[t+a];a=-1;for(var s=Array(t+1);++a<t;)s[a]=n[a];return s[t]=r(i),ES(e,this,s)}}gp.exports=_S});var yp=u((xG,mp)=>{"use strict";function xS(e){return function(){return e}}mp.exports=xS});var Be=u((RG,hp)=>{"use strict";function RS(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}hp.exports=RS});var en=u((TG,Ap)=>{"use strict";var TS=It(),OS=Be(),PS="[object AsyncFunction]",CS="[object Function]",qS="[object GeneratorFunction]",US="[object Proxy]";function LS(e){if(!OS(e))return!1;var t=TS(e);return t==CS||t==qS||t==PS||t==US}Ap.exports=LS});var Ip=u((OG,bp)=>{"use strict";var DS=Ae(),BS=DS["__core-js_shared__"];bp.exports=BS});var vp=u((PG,wp)=>{"use strict";var ho=Ip(),Sp=function(){var e=/[^.]+$/.exec(ho&&ho.keys&&ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function NS(e){return!!Sp&&Sp in e}wp.exports=NS});var Ao=u((CG,Ep)=>{"use strict";var MS=Function.prototype,GS=MS.toString;function kS(e){if(e!=null){try{return GS.call(e)}catch{}try{return e+""}catch{}}return""}Ep.exports=kS});var xp=u((qG,_p)=>{"use strict";var FS=en(),$S=vp(),QS=Be(),jS=Ao(),WS=/[\\^$.*+?()[\]{}|]/g,VS=/^\[object .+?Constructor\]$/,YS=Function.prototype,KS=Object.prototype,HS=YS.toString,JS=KS.hasOwnProperty,zS=RegExp("^"+HS.call(JS).replace(WS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function XS(e){if(!QS(e)||$S(e))return!1;var t=FS(e)?zS:VS;return t.test(jS(e))}_p.exports=XS});var Tp=u((UG,Rp)=>{"use strict";function ZS(e,t){return e?.[t]}Rp.exports=ZS});var St=u((LG,Op)=>{"use strict";var ew=xp(),tw=Tp();function rw(e,t){var r=tw(e,t);return ew(r)?r:void 0}Op.exports=rw});var bo=u((DG,Pp)=>{"use strict";var nw=St(),aw=function(){try{var e=nw(Object,"defineProperty");return e({},"",{}),e}catch{}}();Pp.exports=aw});var Up=u((BG,qp)=>{"use strict";var ow=yp(),Cp=bo(),sw=Zr(),iw=Cp?function(e,t){return Cp(e,"toString",{configurable:!0,enumerable:!1,value:ow(t),writable:!0})}:sw;qp.exports=iw});var Io=u((NG,Lp)=>{"use strict";var uw=800,pw=16,cw=Date.now;function lw(e){var t=0,r=0;return function(){var n=cw(),a=pw-(n-r);if(r=n,a>0){if(++t>=uw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Lp.exports=lw});var Xn=u((MG,Dp)=>{"use strict";var dw=Up(),fw=Io(),gw=fw(dw);Dp.exports=gw});var So=u((GG,Bp)=>{"use strict";var mw=Zr(),yw=yo(),hw=Xn();function Aw(e,t){return hw(yw(e,t,mw),e+"")}Bp.exports=Aw});var tn=u((kG,Np)=>{"use strict";var bw=St(),Iw=bw(Object,"create");Np.exports=Iw});var kp=u((FG,Gp)=>{"use strict";var Mp=tn();function Sw(){this.__data__=Mp?Mp(null):{},this.size=0}Gp.exports=Sw});var $p=u(($G,Fp)=>{"use strict";function ww(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Fp.exports=ww});var jp=u((QG,Qp)=>{"use strict";var vw=tn(),Ew="__lodash_hash_undefined__",_w=Object.prototype,xw=_w.hasOwnProperty;function Rw(e){var t=this.__data__;if(vw){var r=t[e];return r===Ew?void 0:r}return xw.call(t,e)?t[e]:void 0}Qp.exports=Rw});var Vp=u((jG,Wp)=>{"use strict";var Tw=tn(),Ow=Object.prototype,Pw=Ow.hasOwnProperty;function Cw(e){var t=this.__data__;return Tw?t[e]!==void 0:Pw.call(t,e)}Wp.exports=Cw});var Kp=u((WG,Yp)=>{"use strict";var qw=tn(),Uw="__lodash_hash_undefined__";function Lw(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=qw&&t===void 0?Uw:t,this}Yp.exports=Lw});var Jp=u((VG,Hp)=>{"use strict";var Dw=kp(),Bw=$p(),Nw=jp(),Mw=Vp(),Gw=Kp();function tr(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])}}tr.prototype.clear=Dw;tr.prototype.delete=Bw;tr.prototype.get=Nw;tr.prototype.has=Mw;tr.prototype.set=Gw;Hp.exports=tr});var Xp=u((YG,zp)=>{"use strict";function kw(){this.__data__=[],this.size=0}zp.exports=kw});var rr=u((KG,Zp)=>{"use strict";function Fw(e,t){return e===t||e!==e&&t!==t}Zp.exports=Fw});var rn=u((HG,ec)=>{"use strict";var $w=rr();function Qw(e,t){for(var r=e.length;r--;)if($w(e[r][0],t))return r;return-1}ec.exports=Qw});var rc=u((JG,tc)=>{"use strict";var jw=rn(),Ww=Array.prototype,Vw=Ww.splice;function Yw(e){var t=this.__data__,r=jw(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Vw.call(t,r,1),--this.size,!0}tc.exports=Yw});var ac=u((zG,nc)=>{"use strict";var Kw=rn();function Hw(e){var t=this.__data__,r=Kw(t,e);return r<0?void 0:t[r][1]}nc.exports=Hw});var sc=u((XG,oc)=>{"use strict";var Jw=rn();function zw(e){return Jw(this.__data__,e)>-1}oc.exports=zw});var uc=u((ZG,ic)=>{"use strict";var Xw=rn();function Zw(e,t){var r=this.__data__,n=Xw(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}ic.exports=Zw});var nn=u((ek,pc)=>{"use strict";var ev=Xp(),tv=rc(),rv=ac(),nv=sc(),av=uc();function nr(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])}}nr.prototype.clear=ev;nr.prototype.delete=tv;nr.prototype.get=rv;nr.prototype.has=nv;nr.prototype.set=av;pc.exports=nr});var Zn=u((tk,cc)=>{"use strict";var ov=St(),sv=Ae(),iv=ov(sv,"Map");cc.exports=iv});var fc=u((rk,dc)=>{"use strict";var lc=Jp(),uv=nn(),pv=Zn();function cv(){this.size=0,this.__data__={hash:new lc,map:new(pv||uv),string:new lc}}dc.exports=cv});var mc=u((nk,gc)=>{"use strict";function lv(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}gc.exports=lv});var an=u((ak,yc)=>{"use strict";var dv=mc();function fv(e,t){var r=e.__data__;return dv(t)?r[typeof t=="string"?"string":"hash"]:r.map}yc.exports=fv});var Ac=u((ok,hc)=>{"use strict";var gv=an();function mv(e){var t=gv(this,e).delete(e);return this.size-=t?1:0,t}hc.exports=mv});var Ic=u((sk,bc)=>{"use strict";var yv=an();function hv(e){return yv(this,e).get(e)}bc.exports=hv});var wc=u((ik,Sc)=>{"use strict";var Av=an();function bv(e){return Av(this,e).has(e)}Sc.exports=bv});var Ec=u((uk,vc)=>{"use strict";var Iv=an();function Sv(e,t){var r=Iv(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}vc.exports=Sv});var ea=u((pk,_c)=>{"use strict";var wv=fc(),vv=Ac(),Ev=Ic(),_v=wc(),xv=Ec();function ar(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])}}ar.prototype.clear=wv;ar.prototype.delete=vv;ar.prototype.get=Ev;ar.prototype.has=_v;ar.prototype.set=xv;_c.exports=ar});var Rc=u((ck,xc)=>{"use strict";var Rv="__lodash_hash_undefined__";function Tv(e){return this.__data__.set(e,Rv),this}xc.exports=Tv});var Oc=u((lk,Tc)=>{"use strict";function Ov(e){return this.__data__.has(e)}Tc.exports=Ov});var wo=u((dk,Pc)=>{"use strict";var Pv=ea(),Cv=Rc(),qv=Oc();function ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Pv;++t<r;)this.add(e[t])}ta.prototype.add=ta.prototype.push=Cv;ta.prototype.has=qv;Pc.exports=ta});var qc=u((fk,Cc)=>{"use strict";function Uv(e,t,r,n){for(var a=e.length,o=r+(n?1:-1);n?o--:++o<a;)if(t(e[o],o,e))return o;return-1}Cc.exports=Uv});var Lc=u((gk,Uc)=>{"use strict";function Lv(e){return e!==e}Uc.exports=Lv});var Bc=u((mk,Dc)=>{"use strict";function Dv(e,t,r){for(var n=r-1,a=e.length;++n<a;)if(e[n]===t)return n;return-1}Dc.exports=Dv});var Mc=u((yk,Nc)=>{"use strict";var Bv=qc(),Nv=Lc(),Mv=Bc();function Gv(e,t,r){return t===t?Mv(e,t,r):Bv(e,Nv,r)}Nc.exports=Gv});var vo=u((hk,Gc)=>{"use strict";var kv=Mc();function Fv(e,t){var r=e==null?0:e.length;return!!r&&kv(e,t,0)>-1}Gc.exports=Fv});var Fc=u((Ak,kc)=>{"use strict";function $v(e,t,r){for(var n=-1,a=e==null?0:e.length;++n<a;)if(r(t,e[n]))return!0;return!1}kc.exports=$v});var Eo=u((bk,$c)=>{"use strict";function Qv(e,t){return e.has(t)}$c.exports=Qv});var _o=u((Ik,Qc)=>{"use strict";var jv=St(),Wv=Ae(),Vv=jv(Wv,"Set");Qc.exports=Vv});var xo=u((Sk,jc)=>{"use strict";function Yv(){}jc.exports=Yv});var ra=u((wk,Wc)=>{"use strict";function Kv(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}Wc.exports=Kv});var Yc=u((vk,Vc)=>{"use strict";var Ro=_o(),Hv=xo(),Jv=ra(),zv=1/0,Xv=Ro&&1/Jv(new Ro([,-0]))[1]==zv?function(e){return new Ro(e)}:Hv;Vc.exports=Xv});var Hc=u((Ek,Kc)=>{"use strict";var Zv=wo(),eE=vo(),tE=Fc(),rE=Eo(),nE=Yc(),aE=ra(),oE=200;function sE(e,t,r){var n=-1,a=eE,o=e.length,i=!0,s=[],c=s;if(r)i=!1,a=tE;else if(o>=oE){var d=t?null:nE(e);if(d)return aE(d);i=!1,a=rE,c=new Zv}else c=t?[]:s;e:for(;++n<o;){var m=e[n],g=t?t(m):m;if(m=r||m!==0?m:0,i&&g===g){for(var y=c.length;y--;)if(c[y]===g)continue e;t&&c.push(g),s.push(m)}else a(c,g,r)||(c!==s&&c.push(g),s.push(m))}return s}Kc.exports=sE});var na=u((_k,Jc)=>{"use strict";var iE=9007199254740991;function uE(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=iE}Jc.exports=uE});var or=u((xk,zc)=>{"use strict";var pE=en(),cE=na();function lE(e){return e!=null&&cE(e.length)&&!pE(e)}zc.exports=lE});var To=u((Rk,Xc)=>{"use strict";var dE=or(),fE=_e();function gE(e){return fE(e)&&dE(e)}Xc.exports=gE});var el=u((Tk,Zc)=>{"use strict";var mE=mo(),yE=So(),hE=Hc(),AE=To(),bE=yE(function(e){return hE(mE(e,1,AE,!0))});Zc.exports=bE});var rl=u((Ok,tl)=>{"use strict";var IE=nn();function SE(){this.__data__=new IE,this.size=0}tl.exports=SE});var al=u((Pk,nl)=>{"use strict";function wE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}nl.exports=wE});var sl=u((Ck,ol)=>{"use strict";function vE(e){return this.__data__.get(e)}ol.exports=vE});var ul=u((qk,il)=>{"use strict";function EE(e){return this.__data__.has(e)}il.exports=EE});var cl=u((Uk,pl)=>{"use strict";var _E=nn(),xE=Zn(),RE=ea(),TE=200;function OE(e,t){var r=this.__data__;if(r instanceof _E){var n=r.__data__;if(!xE||n.length<TE-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new RE(n)}return r.set(e,t),this.size=r.size,this}pl.exports=OE});var on=u((Lk,ll)=>{"use strict";var PE=nn(),CE=rl(),qE=al(),UE=sl(),LE=ul(),DE=cl();function sr(e){var t=this.__data__=new PE(e);this.size=t.size}sr.prototype.clear=CE;sr.prototype.delete=qE;sr.prototype.get=UE;sr.prototype.has=LE;sr.prototype.set=DE;ll.exports=sr});var sn=u((Dk,fl)=>{"use strict";var dl=bo();function BE(e,t,r){t=="__proto__"&&dl?dl(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}fl.exports=BE});var Oo=u((Bk,gl)=>{"use strict";var NE=sn(),ME=rr();function GE(e,t,r){(r!==void 0&&!ME(e[t],r)||r===void 0&&!(t in e))&&NE(e,t,r)}gl.exports=GE});var yl=u((Nk,ml)=>{"use strict";function kE(e){return function(t,r,n){for(var a=-1,o=Object(t),i=n(t),s=i.length;s--;){var c=i[e?s:++a];if(r(o[c],c,o)===!1)break}return t}}ml.exports=kE});var Po=u((Mk,hl)=>{"use strict";var FE=yl(),$E=FE();hl.exports=$E});var Co=u((un,ir)=>{"use strict";var QE=Ae(),Sl=typeof un=="object"&&un&&!un.nodeType&&un,Al=Sl&&typeof ir=="object"&&ir&&!ir.nodeType&&ir,jE=Al&&Al.exports===Sl,bl=jE?QE.Buffer:void 0,Il=bl?bl.allocUnsafe:void 0;function WE(e,t){if(t)return e.slice();var r=e.length,n=Il?Il(r):new e.constructor(r);return e.copy(n),n}ir.exports=WE});var qo=u((Gk,wl)=>{"use strict";var VE=Ae(),YE=VE.Uint8Array;wl.exports=YE});var aa=u((kk,El)=>{"use strict";var vl=qo();function KE(e){var t=new e.constructor(e.byteLength);return new vl(t).set(new vl(e)),t}El.exports=KE});var Uo=u((Fk,_l)=>{"use strict";var HE=aa();function JE(e,t){var r=t?HE(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}_l.exports=JE});var ur=u(($k,xl)=>{"use strict";function zE(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}xl.exports=zE});var pn=u((Qk,Tl)=>{"use strict";var XE=Be(),Rl=Object.create,ZE=function(){function e(){}return function(t){if(!XE(t))return{};if(Rl)return Rl(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();Tl.exports=ZE});var Lo=u((jk,Ol)=>{"use strict";function e_(e,t){return function(r){return e(t(r))}}Ol.exports=e_});var oa=u((Wk,Pl)=>{"use strict";var t_=Lo(),r_=t_(Object.getPrototypeOf,Object);Pl.exports=r_});var sa=u((Vk,Cl)=>{"use strict";var n_=Object.prototype;function a_(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||n_;return e===r}Cl.exports=a_});var Do=u((Yk,ql)=>{"use strict";var o_=pn(),s_=oa(),i_=sa();function u_(e){return typeof e.constructor=="function"&&!i_(e)?o_(s_(e)):{}}ql.exports=u_});var Ll=u((Kk,Ul)=>{"use strict";function p_(){return!1}Ul.exports=p_});var ln=u((cn,pr)=>{"use strict";var c_=Ae(),l_=Ll(),Nl=typeof cn=="object"&&cn&&!cn.nodeType&&cn,Dl=Nl&&typeof pr=="object"&&pr&&!pr.nodeType&&pr,d_=Dl&&Dl.exports===Nl,Bl=d_?c_.Buffer:void 0,f_=Bl?Bl.isBuffer:void 0,g_=f_||l_;pr.exports=g_});var Bo=u((Hk,Gl)=>{"use strict";var m_=It(),y_=oa(),h_=_e(),A_="[object Object]",b_=Function.prototype,I_=Object.prototype,Ml=b_.toString,S_=I_.hasOwnProperty,w_=Ml.call(Object);function v_(e){if(!h_(e)||m_(e)!=A_)return!1;var t=y_(e);if(t===null)return!0;var r=S_.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Ml.call(r)==w_}Gl.exports=v_});var Fl=u((Jk,kl)=>{"use strict";var E_=It(),__=na(),x_=_e(),R_="[object Arguments]",T_="[object Array]",O_="[object Boolean]",P_="[object Date]",C_="[object Error]",q_="[object Function]",U_="[object Map]",L_="[object Number]",D_="[object Object]",B_="[object RegExp]",N_="[object Set]",M_="[object String]",G_="[object WeakMap]",k_="[object ArrayBuffer]",F_="[object DataView]",$_="[object Float32Array]",Q_="[object Float64Array]",j_="[object Int8Array]",W_="[object Int16Array]",V_="[object Int32Array]",Y_="[object Uint8Array]",K_="[object Uint8ClampedArray]",H_="[object Uint16Array]",J_="[object Uint32Array]",j={};j[$_]=j[Q_]=j[j_]=j[W_]=j[V_]=j[Y_]=j[K_]=j[H_]=j[J_]=!0;j[R_]=j[T_]=j[k_]=j[O_]=j[F_]=j[P_]=j[C_]=j[q_]=j[U_]=j[L_]=j[D_]=j[B_]=j[N_]=j[M_]=j[G_]=!1;function z_(e){return x_(e)&&__(e.length)&&!!j[E_(e)]}kl.exports=z_});var ia=u((zk,$l)=>{"use strict";function X_(e){return function(t){return e(t)}}$l.exports=X_});var ua=u((dn,cr)=>{"use strict";var Z_=go(),Ql=typeof dn=="object"&&dn&&!dn.nodeType&&dn,fn=Ql&&typeof cr=="object"&&cr&&!cr.nodeType&&cr,ex=fn&&fn.exports===Ql,No=ex&&Z_.process,tx=function(){try{var e=fn&&fn.require&&fn.require("util").types;return e||No&&No.binding&&No.binding("util")}catch{}}();cr.exports=tx});var pa=u((Xk,Vl)=>{"use strict";var rx=Fl(),nx=ia(),jl=ua(),Wl=jl&&jl.isTypedArray,ax=Wl?nx(Wl):rx;Vl.exports=ax});var Mo=u((Zk,Yl)=>{"use strict";function ox(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}Yl.exports=ox});var Go=u((eF,Kl)=>{"use strict";var sx=sn(),ix=rr(),ux=Object.prototype,px=ux.hasOwnProperty;function cx(e,t,r){var n=e[t];(!(px.call(e,t)&&ix(n,r))||r===void 0&&!(t in e))&&sx(e,t,r)}Kl.exports=cx});var lr=u((tF,Hl)=>{"use strict";var lx=Go(),dx=sn();function fx(e,t,r,n){var a=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var s=t[o],c=n?n(r[s],e[s],s,r,e):void 0;c===void 0&&(c=e[s]),a?dx(r,s,c):lx(r,s,c)}return r}Hl.exports=fx});var zl=u((rF,Jl)=>{"use strict";function gx(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}Jl.exports=gx});var gn=u((nF,Xl)=>{"use strict";var mx=9007199254740991,yx=/^(?:0|[1-9]\d*)$/;function hx(e,t){var r=typeof e;return t=t??mx,!!t&&(r=="number"||r!="symbol"&&yx.test(e))&&e>-1&&e%1==0&&e<t}Xl.exports=hx});var ko=u((aF,Zl)=>{"use strict";var Ax=zl(),bx=Xr(),Ix=de(),Sx=ln(),wx=gn(),vx=pa(),Ex=Object.prototype,_x=Ex.hasOwnProperty;function xx(e,t){var r=Ix(e),n=!r&&bx(e),a=!r&&!n&&Sx(e),o=!r&&!n&&!a&&vx(e),i=r||n||a||o,s=i?Ax(e.length,String):[],c=s.length;for(var d in e)(t||_x.call(e,d))&&!(i&&(d=="length"||a&&(d=="offset"||d=="parent")||o&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||wx(d,c)))&&s.push(d);return s}Zl.exports=xx});var td=u((oF,ed)=>{"use strict";function Rx(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}ed.exports=Rx});var nd=u((sF,rd)=>{"use strict";var Tx=Be(),Ox=sa(),Px=td(),Cx=Object.prototype,qx=Cx.hasOwnProperty;function Ux(e){if(!Tx(e))return Px(e);var t=Ox(e),r=[];for(var n in e)n=="constructor"&&(t||!qx.call(e,n))||r.push(n);return r}rd.exports=Ux});var dr=u((iF,ad)=>{"use strict";var Lx=ko(),Dx=nd(),Bx=or();function Nx(e){return Bx(e)?Lx(e,!0):Dx(e)}ad.exports=Nx});var sd=u((uF,od)=>{"use strict";var Mx=lr(),Gx=dr();function kx(e){return Mx(e,Gx(e))}od.exports=kx});var dd=u((pF,ld)=>{"use strict";var id=Oo(),Fx=Co(),$x=Uo(),Qx=ur(),jx=Do(),ud=Xr(),pd=de(),Wx=To(),Vx=ln(),Yx=en(),Kx=Be(),Hx=Bo(),Jx=pa(),cd=Mo(),zx=sd();function Xx(e,t,r,n,a,o,i){var s=cd(e,r),c=cd(t,r),d=i.get(c);if(d){id(e,r,d);return}var m=o?o(s,c,r+"",e,t,i):void 0,g=m===void 0;if(g){var y=pd(c),w=!y&&Vx(c),C=!y&&!w&&Jx(c);m=c,y||w||C?pd(s)?m=s:Wx(s)?m=Qx(s):w?(g=!1,m=Fx(c,!0)):C?(g=!1,m=$x(c,!0)):m=[]:Hx(c)||ud(c)?(m=s,ud(s)?m=zx(s):(!Kx(s)||Yx(s))&&(m=jx(c))):g=!1}g&&(i.set(c,m),a(m,c,n,o,i),i.delete(c)),id(e,r,m)}ld.exports=Xx});var md=u((cF,gd)=>{"use strict";var Zx=on(),eR=Oo(),tR=Po(),rR=dd(),nR=Be(),aR=dr(),oR=Mo();function fd(e,t,r,n,a){e!==t&&tR(t,function(o,i){if(a||(a=new Zx),nR(o))rR(e,t,i,r,fd,n,a);else{var s=n?n(oR(e,i),o,i+"",e,t,a):void 0;s===void 0&&(s=o),eR(e,i,s)}},aR)}gd.exports=fd});var hd=u((lF,yd)=>{"use strict";var sR=rr(),iR=or(),uR=gn(),pR=Be();function cR(e,t,r){if(!pR(r))return!1;var n=typeof t;return(n=="number"?iR(r)&&uR(t,r.length):n=="string"&&t in r)?sR(r[t],e):!1}yd.exports=cR});var bd=u((dF,Ad)=>{"use strict";var lR=So(),dR=hd();function fR(e){return lR(function(t,r){var n=-1,a=r.length,o=a>1?r[a-1]:void 0,i=a>2?r[2]:void 0;for(o=e.length>3&&typeof o=="function"?(a--,o):void 0,i&&dR(r[0],r[1],i)&&(o=a<3?void 0:o,a=1),t=Object(t);++n<a;){var s=r[n];s&&e(t,s,n,o)}return t})}Ad.exports=fR});var Fo=u((fF,Id)=>{"use strict";var gR=md(),mR=bd(),yR=mR(function(e,t,r){gR(e,t,r)});Id.exports=yR});var Sf=u(we=>{"use strict";we.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"};we.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"]};we.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]};we.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};we.iterateeRearg={mapKeys:[1],reduceRight:[1,0]};we.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]};we.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}};we.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}};we.realToAlias=function(){var e=Object.prototype.hasOwnProperty,t=we.aliasToReal,r={};for(var n in t){var a=t[n];e.call(r,a)?r[a].push(n):r[a]=[n]}return r}();we.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"};we.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0};we.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 Ds=u((D$,wf)=>{"use strict";wf.exports={}});var xf=u((B$,_f)=>{"use strict";var ie=Sf(),eO=Ds(),vf=Array.prototype.push;function tO(e,t){return t==2?function(r,n){return e.apply(void 0,arguments)}:function(r){return e.apply(void 0,arguments)}}function Bs(e,t){return t==2?function(r,n){return e(r,n)}:function(r){return e(r)}}function Ef(e){for(var t=e?e.length:0,r=Array(t);t--;)r[t]=e[t];return r}function rO(e){return function(t){return e({},t)}}function nO(e,t){return function(){for(var r=arguments.length,n=r-1,a=Array(r);r--;)a[r]=arguments[r];var o=a[t],i=a.slice(0,t);return o&&vf.apply(i,o),t!=n&&vf.apply(i,a.slice(t+1)),e.apply(this,i)}}function Ns(e,t){return function(){var r=arguments.length;if(r){for(var n=Array(r);r--;)n[r]=arguments[r];var a=n[0]=t.apply(void 0,n);return e.apply(void 0,n),a}}}function Ms(e,t,r,n){var a=typeof t=="function",o=t===Object(t);if(o&&(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},s=a?r:eO,c="curry"in n&&n.curry,d="fixed"in n&&n.fixed,m="rearg"in n&&n.rearg,g=a?r.runInContext():void 0,y=a?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},w=y.ary,C=y.assign,D=y.clone,L=y.curry,q=y.forEach,k=y.isArray,Ie=y.isError,ee=y.isFunction,Fe=y.isWeakMap,He=y.keys,Je=y.rearg,W=y.toInteger,B=y.toPath,Ot=He(ie.aryMethod),Ln={castArray:function(v){return function(){var A=arguments[0];return k(A)?v(Ef(A)):v.apply(void 0,arguments)}},iteratee:function(v){return function(){var A=arguments[0],b=arguments[1],E=v(A,b),P=E.length;return i.cap&&typeof b=="number"?(b=b>2?b-2:1,P&&P<=b?E:Bs(E,b)):E}},mixin:function(v){return function(A){var b=this;if(!ee(b))return v(b,Object(A));var E=[];return q(He(A),function(P){ee(A[P])&&E.push([P,b.prototype[P]])}),v(b,Object(A)),q(E,function(P){var Z=P[1];ee(Z)?b.prototype[P[0]]=Z:delete b.prototype[P[0]]}),b}},nthArg:function(v){return function(A){var b=A<0?1:W(A)+1;return L(v(A),b)}},rearg:function(v){return function(A,b){var E=b?b.length:0;return L(v(A,b),E)}},runInContext:function(v){return function(A){return Ms(e,v(A),n)}}};function R(v,A){if(i.cap){var b=ie.iterateeRearg[v];if(b)return K(A,b);var E=!a&&ie.iterateeAry[v];if(E)return G(A,E)}return A}function S(v,A,b){return c||i.curry&&b>1?L(A,b):A}function h(v,A,b){if(i.fixed&&(d||!ie.skipFixed[v])){var E=ie.methodSpread[v],P=E&&E.start;return P===void 0?w(A,b):nO(A,P)}return A}function _(v,A,b){return i.rearg&&b>1&&(m||!ie.skipRearg[v])?Je(A,ie.methodRearg[v]||ie.aryRearg[b]):A}function I(v,A){A=B(A);for(var b=-1,E=A.length,P=E-1,Z=D(Object(v)),me=Z;me!=null&&++b<E;){var Ue=A[b],ze=me[Ue];ze!=null&&!(ee(ze)||Ie(ze)||Fe(ze))&&(me[Ue]=D(b==P?ze:Object(ze))),me=me[Ue]}return Z}function O(v){return F.runInContext.convert(v)(void 0)}function T(v,A){var b=ie.aliasToReal[v]||v,E=ie.remap[b]||b,P=n;return function(Z){var me=a?g:y,Ue=a?g[E]:A,ze=C(C({},P),Z);return Ms(me,b,Ue,ze)}}function G(v,A){return X(v,function(b){return typeof b=="function"?Bs(b,A):b})}function K(v,A){return X(v,function(b){var E=A.length;return tO(Je(Bs(b,E),A),E)})}function X(v,A){return function(){var b=arguments.length;if(!b)return v();for(var E=Array(b);b--;)E[b]=arguments[b];var P=i.rearg?0:b-1;return E[P]=A(E[P]),v.apply(void 0,E)}}function ae(v,A,b){var E,P=ie.aliasToReal[v]||v,Z=A,me=Ln[P];return me?Z=me(A):i.immutable&&(ie.mutate.array[P]?Z=Ns(A,Ef):ie.mutate.object[P]?Z=Ns(A,rO(A)):ie.mutate.set[P]&&(Z=Ns(A,I))),q(Ot,function(Ue){return q(ie.aryMethod[Ue],function(ze){if(P==ze){var tu=ie.methodSpread[P],Mb=tu&&tu.afterRearg;return E=Mb?h(P,_(P,Z,Ue),Ue):_(P,h(P,Z,Ue),Ue),E=R(P,E),E=S(P,E,Ue),!1}}),!E}),E||(E=Z),E==A&&(E=c?L(E,1):function(){return A.apply(this,arguments)}),E.convert=T(P,A),E.placeholder=A.placeholder=b,E}if(!o)return ae(t,r,s);var F=r,qe=[];return q(Ot,function(v){q(ie.aryMethod[v],function(A){var b=F[ie.remap[A]||A];b&&qe.push([A,ae(A,b,F)])})}),q(He(F),function(v){var A=F[v];if(typeof A=="function"){for(var b=qe.length;b--;)if(qe[b][0]==v)return;A.convert=T(v,A),qe.push([v,A])}}),q(qe,function(v){F[v[0]]=v[1]}),F.convert=O,F.placeholder=F,q(He(F),function(v){q(ie.realToAlias[v]||[],function(A){F[A]=F[v]})}),F}_f.exports=Ms});var Gs=u((N$,Rf)=>{"use strict";var aO=St(),oO=Ae(),sO=aO(oO,"WeakMap");Rf.exports=sO});var ks=u((M$,Of)=>{"use strict";var Tf=Gs(),iO=Tf&&new Tf;Of.exports=iO});var Fs=u((G$,Cf)=>{"use strict";var uO=Zr(),Pf=ks(),pO=Pf?function(e,t){return Pf.set(e,t),e}:uO;Cf.exports=pO});var xn=u((k$,qf)=>{"use strict";var cO=pn(),lO=Be();function dO(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=cO(e.prototype),n=e.apply(r,t);return lO(n)?n:r}}qf.exports=dO});var Lf=u((F$,Uf)=>{"use strict";var fO=xn(),gO=Ae(),mO=1;function yO(e,t,r){var n=t&mO,a=fO(e);function o(){var i=this&&this!==gO&&this instanceof o?a:e;return i.apply(n?r:this,arguments)}return o}Uf.exports=yO});var $s=u(($$,Df)=>{"use strict";var hO=Math.max;function AO(e,t,r,n){for(var a=-1,o=e.length,i=r.length,s=-1,c=t.length,d=hO(o-i,0),m=Array(c+d),g=!n;++s<c;)m[s]=t[s];for(;++a<i;)(g||a<o)&&(m[r[a]]=e[a]);for(;d--;)m[s++]=e[a++];return m}Df.exports=AO});var Qs=u((Q$,Bf)=>{"use strict";var bO=Math.max;function IO(e,t,r,n){for(var a=-1,o=e.length,i=-1,s=r.length,c=-1,d=t.length,m=bO(o-s,0),g=Array(m+d),y=!n;++a<m;)g[a]=e[a];for(var w=a;++c<d;)g[w+c]=t[c];for(;++i<s;)(y||a<o)&&(g[w+r[i]]=e[a++]);return g}Bf.exports=IO});var Mf=u((j$,Nf)=>{"use strict";function SO(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}Nf.exports=SO});var xa=u((W$,Gf)=>{"use strict";function wO(){}Gf.exports=wO});var Ta=u((V$,kf)=>{"use strict";var vO=pn(),EO=xa(),_O=4294967295;function Ra(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=_O,this.__views__=[]}Ra.prototype=vO(EO.prototype);Ra.prototype.constructor=Ra;kf.exports=Ra});var Ws=u((Y$,$f)=>{"use strict";var Ff=ks(),xO=xo(),RO=Ff?function(e){return Ff.get(e)}:xO;$f.exports=RO});var jf=u((K$,Qf)=>{"use strict";var TO={};Qf.exports=TO});var Yf=u((H$,Vf)=>{"use strict";var Wf=jf(),OO=Object.prototype,PO=OO.hasOwnProperty;function CO(e){for(var t=e.name+"",r=Wf[t],n=PO.call(Wf,t)?r.length:0;n--;){var a=r[n],o=a.func;if(o==null||o==e)return a.name}return t}Vf.exports=CO});var Vs=u((J$,Kf)=>{"use strict";var qO=pn(),UO=xa();function Oa(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}Oa.prototype=qO(UO.prototype);Oa.prototype.constructor=Oa;Kf.exports=Oa});var Jf=u((z$,Hf)=>{"use strict";var LO=Ta(),DO=Vs(),BO=ur();function NO(e){if(e instanceof LO)return e.clone();var t=new DO(e.__wrapped__,e.__chain__);return t.__actions__=BO(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}Hf.exports=NO});var Zf=u((X$,Xf)=>{"use strict";var MO=Ta(),zf=Vs(),GO=xa(),kO=de(),FO=_e(),$O=Jf(),QO=Object.prototype,jO=QO.hasOwnProperty;function Pa(e){if(FO(e)&&!kO(e)&&!(e instanceof MO)){if(e instanceof zf)return e;if(jO.call(e,"__wrapped__"))return $O(e)}return new zf(e)}Pa.prototype=GO.prototype;Pa.prototype.constructor=Pa;Xf.exports=Pa});var tg=u((Z$,eg)=>{"use strict";var WO=Ta(),VO=Ws(),YO=Yf(),KO=Zf();function HO(e){var t=YO(e),r=KO[t];if(typeof r!="function"||!(t in WO.prototype))return!1;if(e===r)return!0;var n=VO(r);return!!n&&e===n[0]}eg.exports=HO});var Ys=u((eQ,rg)=>{"use strict";var JO=Fs(),zO=Io(),XO=zO(JO);rg.exports=XO});var ag=u((tQ,ng)=>{"use strict";var ZO=/\{\n\/\* \[wrapped with (.+)\] \*/,eP=/,? & /;function tP(e){var t=e.match(ZO);return t?t[1].split(eP):[]}ng.exports=tP});var sg=u((rQ,og)=>{"use strict";var rP=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function nP(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(rP,`{
1
+ "use strict";var Ub=Object.create;var ba=Object.defineProperty;var Lb=Object.getOwnPropertyDescriptor;var Db=Object.getOwnPropertyNames;var Bb=Object.getPrototypeOf,Nb=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),S=(e,t)=>{for(var r in t)ba(e,r,{get:t[r],enumerable:!0})},Vi=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Db(t))!Nb.call(e,n)&&n!==r&&ba(e,n,{get:()=>t[n],enumerable:!(a=Lb(t,n))||a.enumerable});return e};var O=(e,t,r)=>(r=e!=null?Ub(Bb(e)):{},Vi(t||!e||!e.__esModule?ba(r,"default",{value:e,enumerable:!0}):r,e)),Gb=e=>Vi(ba({},"__esModule",{value:!0}),e);var La=u((r0,Pu)=>{"use strict";function NI(e,t){for(var r=-1,a=t.length,n=e.length;++r<a;)e[n+r]=t[r];return e}Pu.exports=NI});var Xn=u((a0,Ou)=>{"use strict";var GI=typeof global=="object"&&global&&global.Object===Object&&global;Ou.exports=GI});var re=u((n0,Cu)=>{"use strict";var MI=Xn(),kI=typeof self=="object"&&self&&self.Object===Object&&self,FI=MI||kI||Function("return this")();Cu.exports=FI});var yt=u((o0,qu)=>{"use strict";var QI=re(),jI=QI.Symbol;qu.exports=jI});var Bu=u((s0,Du)=>{"use strict";var Uu=yt(),Lu=Object.prototype,WI=Lu.hasOwnProperty,$I=Lu.toString,Nr=Uu?Uu.toStringTag:void 0;function VI(e){var t=WI.call(e,Nr),r=e[Nr];try{e[Nr]=void 0;var a=!0}catch{}var n=$I.call(e);return a&&(t?e[Nr]=r:delete e[Nr]),n}Du.exports=VI});var Gu=u((i0,Nu)=>{"use strict";var KI=Object.prototype,YI=KI.toString;function HI(e){return YI.call(e)}Nu.exports=HI});var nt=u((u0,Fu)=>{"use strict";var Mu=yt(),zI=Bu(),JI=Gu(),XI="[object Null]",ZI="[object Undefined]",ku=Mu?Mu.toStringTag:void 0;function eS(e){return e==null?e===void 0?ZI:XI:ku&&ku in Object(e)?zI(e):JI(e)}Fu.exports=eS});var pe=u((p0,Qu)=>{"use strict";function tS(e){return e!=null&&typeof e=="object"}Qu.exports=tS});var Wu=u((c0,ju)=>{"use strict";var rS=nt(),aS=pe(),nS="[object Arguments]";function oS(e){return aS(e)&&rS(e)==nS}ju.exports=oS});var Gr=u((l0,Ku)=>{"use strict";var $u=Wu(),sS=pe(),Vu=Object.prototype,iS=Vu.hasOwnProperty,uS=Vu.propertyIsEnumerable,pS=$u(function(){return arguments}())?$u:function(e){return sS(e)&&iS.call(e,"callee")&&!uS.call(e,"callee")};Ku.exports=pS});var z=u((d0,Yu)=>{"use strict";var cS=Array.isArray;Yu.exports=cS});var Xu=u((f0,Ju)=>{"use strict";var Hu=yt(),lS=Gr(),dS=z(),zu=Hu?Hu.isConcatSpreadable:void 0;function fS(e){return dS(e)||lS(e)||!!(zu&&e&&e[zu])}Ju.exports=fS});var Zn=u((g0,ep)=>{"use strict";var gS=La(),mS=Xu();function Zu(e,t,r,a,n){var o=-1,i=e.length;for(r||(r=mS),n||(n=[]);++o<i;){var s=e[o];t>0&&r(s)?t>1?Zu(s,t-1,r,a,n):gS(n,s):a||(n[n.length]=s)}return n}ep.exports=Zu});var Mr=u((m0,tp)=>{"use strict";function yS(e){return e}tp.exports=yS});var Da=u((y0,rp)=>{"use strict";function AS(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)}rp.exports=AS});var eo=u((A0,np)=>{"use strict";var hS=Da(),ap=Math.max;function bS(e,t,r){return t=ap(t===void 0?e.length-1:t,0),function(){for(var a=arguments,n=-1,o=ap(a.length-t,0),i=Array(o);++n<o;)i[n]=a[t+n];n=-1;for(var s=Array(t+1);++n<t;)s[n]=a[n];return s[t]=r(i),hS(e,this,s)}}np.exports=bS});var sp=u((h0,op)=>{"use strict";function IS(e){return function(){return e}}op.exports=IS});var Ie=u((b0,ip)=>{"use strict";function SS(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}ip.exports=SS});var kr=u((I0,up)=>{"use strict";var wS=nt(),vS=Ie(),ES="[object AsyncFunction]",RS="[object Function]",xS="[object GeneratorFunction]",_S="[object Proxy]";function TS(e){if(!vS(e))return!1;var t=wS(e);return t==RS||t==xS||t==ES||t==_S}up.exports=TS});var cp=u((S0,pp)=>{"use strict";var PS=re(),OS=PS["__core-js_shared__"];pp.exports=OS});var fp=u((w0,dp)=>{"use strict";var to=cp(),lp=function(){var e=/[^.]+$/.exec(to&&to.keys&&to.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function CS(e){return!!lp&&lp in e}dp.exports=CS});var ro=u((v0,gp)=>{"use strict";var qS=Function.prototype,US=qS.toString;function LS(e){if(e!=null){try{return US.call(e)}catch{}try{return e+""}catch{}}return""}gp.exports=LS});var yp=u((E0,mp)=>{"use strict";var DS=kr(),BS=fp(),NS=Ie(),GS=ro(),MS=/[\\^$.*+?()[\]{}|]/g,kS=/^\[object .+?Constructor\]$/,FS=Function.prototype,QS=Object.prototype,jS=FS.toString,WS=QS.hasOwnProperty,$S=RegExp("^"+jS.call(WS).replace(MS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function VS(e){if(!NS(e)||BS(e))return!1;var t=DS(e)?$S:kS;return t.test(GS(e))}mp.exports=VS});var hp=u((R0,Ap)=>{"use strict";function KS(e,t){return e?.[t]}Ap.exports=KS});var ot=u((x0,bp)=>{"use strict";var YS=yp(),HS=hp();function zS(e,t){var r=HS(e,t);return YS(r)?r:void 0}bp.exports=zS});var ao=u((_0,Ip)=>{"use strict";var JS=ot(),XS=function(){try{var e=JS(Object,"defineProperty");return e({},"",{}),e}catch{}}();Ip.exports=XS});var vp=u((T0,wp)=>{"use strict";var ZS=sp(),Sp=ao(),ew=Mr(),tw=Sp?function(e,t){return Sp(e,"toString",{configurable:!0,enumerable:!1,value:ZS(t),writable:!0})}:ew;wp.exports=tw});var no=u((P0,Ep)=>{"use strict";var rw=800,aw=16,nw=Date.now;function ow(e){var t=0,r=0;return function(){var a=nw(),n=aw-(a-r);if(r=a,n>0){if(++t>=rw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Ep.exports=ow});var Ba=u((O0,Rp)=>{"use strict";var sw=vp(),iw=no(),uw=iw(sw);Rp.exports=uw});var oo=u((C0,xp)=>{"use strict";var pw=Mr(),cw=eo(),lw=Ba();function dw(e,t){return lw(cw(e,t,pw),e+"")}xp.exports=dw});var Fr=u((q0,_p)=>{"use strict";var fw=ot(),gw=fw(Object,"create");_p.exports=gw});var Op=u((U0,Pp)=>{"use strict";var Tp=Fr();function mw(){this.__data__=Tp?Tp(null):{},this.size=0}Pp.exports=mw});var qp=u((L0,Cp)=>{"use strict";function yw(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Cp.exports=yw});var Lp=u((D0,Up)=>{"use strict";var Aw=Fr(),hw="__lodash_hash_undefined__",bw=Object.prototype,Iw=bw.hasOwnProperty;function Sw(e){var t=this.__data__;if(Aw){var r=t[e];return r===hw?void 0:r}return Iw.call(t,e)?t[e]:void 0}Up.exports=Sw});var Bp=u((B0,Dp)=>{"use strict";var ww=Fr(),vw=Object.prototype,Ew=vw.hasOwnProperty;function Rw(e){var t=this.__data__;return ww?t[e]!==void 0:Ew.call(t,e)}Dp.exports=Rw});var Gp=u((N0,Np)=>{"use strict";var xw=Fr(),_w="__lodash_hash_undefined__";function Tw(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xw&&t===void 0?_w:t,this}Np.exports=Tw});var kp=u((G0,Mp)=>{"use strict";var Pw=Op(),Ow=qp(),Cw=Lp(),qw=Bp(),Uw=Gp();function Gt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}Gt.prototype.clear=Pw;Gt.prototype.delete=Ow;Gt.prototype.get=Cw;Gt.prototype.has=qw;Gt.prototype.set=Uw;Mp.exports=Gt});var Qp=u((M0,Fp)=>{"use strict";function Lw(){this.__data__=[],this.size=0}Fp.exports=Lw});var Mt=u((k0,jp)=>{"use strict";function Dw(e,t){return e===t||e!==e&&t!==t}jp.exports=Dw});var Qr=u((F0,Wp)=>{"use strict";var Bw=Mt();function Nw(e,t){for(var r=e.length;r--;)if(Bw(e[r][0],t))return r;return-1}Wp.exports=Nw});var Vp=u((Q0,$p)=>{"use strict";var Gw=Qr(),Mw=Array.prototype,kw=Mw.splice;function Fw(e){var t=this.__data__,r=Gw(t,e);if(r<0)return!1;var a=t.length-1;return r==a?t.pop():kw.call(t,r,1),--this.size,!0}$p.exports=Fw});var Yp=u((j0,Kp)=>{"use strict";var Qw=Qr();function jw(e){var t=this.__data__,r=Qw(t,e);return r<0?void 0:t[r][1]}Kp.exports=jw});var zp=u((W0,Hp)=>{"use strict";var Ww=Qr();function $w(e){return Ww(this.__data__,e)>-1}Hp.exports=$w});var Xp=u(($0,Jp)=>{"use strict";var Vw=Qr();function Kw(e,t){var r=this.__data__,a=Vw(r,e);return a<0?(++this.size,r.push([e,t])):r[a][1]=t,this}Jp.exports=Kw});var jr=u((V0,Zp)=>{"use strict";var Yw=Qp(),Hw=Vp(),zw=Yp(),Jw=zp(),Xw=Xp();function kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}kt.prototype.clear=Yw;kt.prototype.delete=Hw;kt.prototype.get=zw;kt.prototype.has=Jw;kt.prototype.set=Xw;Zp.exports=kt});var Na=u((K0,ec)=>{"use strict";var Zw=ot(),ev=re(),tv=Zw(ev,"Map");ec.exports=tv});var ac=u((Y0,rc)=>{"use strict";var tc=kp(),rv=jr(),av=Na();function nv(){this.size=0,this.__data__={hash:new tc,map:new(av||rv),string:new tc}}rc.exports=nv});var oc=u((H0,nc)=>{"use strict";function ov(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}nc.exports=ov});var Wr=u((z0,sc)=>{"use strict";var sv=oc();function iv(e,t){var r=e.__data__;return sv(t)?r[typeof t=="string"?"string":"hash"]:r.map}sc.exports=iv});var uc=u((J0,ic)=>{"use strict";var uv=Wr();function pv(e){var t=uv(this,e).delete(e);return this.size-=t?1:0,t}ic.exports=pv});var cc=u((X0,pc)=>{"use strict";var cv=Wr();function lv(e){return cv(this,e).get(e)}pc.exports=lv});var dc=u((Z0,lc)=>{"use strict";var dv=Wr();function fv(e){return dv(this,e).has(e)}lc.exports=fv});var gc=u((ek,fc)=>{"use strict";var gv=Wr();function mv(e,t){var r=gv(this,e),a=r.size;return r.set(e,t),this.size+=r.size==a?0:1,this}fc.exports=mv});var Ga=u((tk,mc)=>{"use strict";var yv=ac(),Av=uc(),hv=cc(),bv=dc(),Iv=gc();function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}Ft.prototype.clear=yv;Ft.prototype.delete=Av;Ft.prototype.get=hv;Ft.prototype.has=bv;Ft.prototype.set=Iv;mc.exports=Ft});var Ac=u((rk,yc)=>{"use strict";var Sv="__lodash_hash_undefined__";function wv(e){return this.__data__.set(e,Sv),this}yc.exports=wv});var bc=u((ak,hc)=>{"use strict";function vv(e){return this.__data__.has(e)}hc.exports=vv});var so=u((nk,Ic)=>{"use strict";var Ev=Ga(),Rv=Ac(),xv=bc();function Ma(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ev;++t<r;)this.add(e[t])}Ma.prototype.add=Ma.prototype.push=Rv;Ma.prototype.has=xv;Ic.exports=Ma});var wc=u((ok,Sc)=>{"use strict";function _v(e,t,r,a){for(var n=e.length,o=r+(a?1:-1);a?o--:++o<n;)if(t(e[o],o,e))return o;return-1}Sc.exports=_v});var Ec=u((sk,vc)=>{"use strict";function Tv(e){return e!==e}vc.exports=Tv});var xc=u((ik,Rc)=>{"use strict";function Pv(e,t,r){for(var a=r-1,n=e.length;++a<n;)if(e[a]===t)return a;return-1}Rc.exports=Pv});var Tc=u((uk,_c)=>{"use strict";var Ov=wc(),Cv=Ec(),qv=xc();function Uv(e,t,r){return t===t?qv(e,t,r):Ov(e,Cv,r)}_c.exports=Uv});var io=u((pk,Pc)=>{"use strict";var Lv=Tc();function Dv(e,t){var r=e==null?0:e.length;return!!r&&Lv(e,t,0)>-1}Pc.exports=Dv});var Cc=u((ck,Oc)=>{"use strict";function Bv(e,t,r){for(var a=-1,n=e==null?0:e.length;++a<n;)if(r(t,e[a]))return!0;return!1}Oc.exports=Bv});var uo=u((lk,qc)=>{"use strict";function Nv(e,t){return e.has(t)}qc.exports=Nv});var po=u((dk,Uc)=>{"use strict";var Gv=ot(),Mv=re(),kv=Gv(Mv,"Set");Uc.exports=kv});var co=u((fk,Lc)=>{"use strict";function Fv(){}Lc.exports=Fv});var ka=u((gk,Dc)=>{"use strict";function Qv(e){var t=-1,r=Array(e.size);return e.forEach(function(a){r[++t]=a}),r}Dc.exports=Qv});var Nc=u((mk,Bc)=>{"use strict";var lo=po(),jv=co(),Wv=ka(),$v=1/0,Vv=lo&&1/Wv(new lo([,-0]))[1]==$v?function(e){return new lo(e)}:jv;Bc.exports=Vv});var Mc=u((yk,Gc)=>{"use strict";var Kv=so(),Yv=io(),Hv=Cc(),zv=uo(),Jv=Nc(),Xv=ka(),Zv=200;function eE(e,t,r){var a=-1,n=Yv,o=e.length,i=!0,s=[],c=s;if(r)i=!1,n=Hv;else if(o>=Zv){var f=t?null:Jv(e);if(f)return Xv(f);i=!1,n=zv,c=new Kv}else c=t?[]:s;e:for(;++a<o;){var m=e[a],g=t?t(m):m;if(m=r||m!==0?m:0,i&&g===g){for(var y=c.length;y--;)if(c[y]===g)continue e;t&&c.push(g),s.push(m)}else n(c,g,r)||(c!==s&&c.push(g),s.push(m))}return s}Gc.exports=eE});var Fa=u((Ak,kc)=>{"use strict";var tE=9007199254740991;function rE(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=tE}kc.exports=rE});var Qt=u((hk,Fc)=>{"use strict";var aE=kr(),nE=Fa();function oE(e){return e!=null&&nE(e.length)&&!aE(e)}Fc.exports=oE});var fo=u((bk,Qc)=>{"use strict";var sE=Qt(),iE=pe();function uE(e){return iE(e)&&sE(e)}Qc.exports=uE});var Wc=u((Ik,jc)=>{"use strict";var pE=Zn(),cE=oo(),lE=Mc(),dE=fo(),fE=cE(function(e){return lE(pE(e,1,dE,!0))});jc.exports=fE});var Vc=u((Sk,$c)=>{"use strict";var gE=jr();function mE(){this.__data__=new gE,this.size=0}$c.exports=mE});var Yc=u((wk,Kc)=>{"use strict";function yE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}Kc.exports=yE});var zc=u((vk,Hc)=>{"use strict";function AE(e){return this.__data__.get(e)}Hc.exports=AE});var Xc=u((Ek,Jc)=>{"use strict";function hE(e){return this.__data__.has(e)}Jc.exports=hE});var el=u((Rk,Zc)=>{"use strict";var bE=jr(),IE=Na(),SE=Ga(),wE=200;function vE(e,t){var r=this.__data__;if(r instanceof bE){var a=r.__data__;if(!IE||a.length<wE-1)return a.push([e,t]),this.size=++r.size,this;r=this.__data__=new SE(a)}return r.set(e,t),this.size=r.size,this}Zc.exports=vE});var $r=u((xk,tl)=>{"use strict";var EE=jr(),RE=Vc(),xE=Yc(),_E=zc(),TE=Xc(),PE=el();function jt(e){var t=this.__data__=new EE(e);this.size=t.size}jt.prototype.clear=RE;jt.prototype.delete=xE;jt.prototype.get=_E;jt.prototype.has=TE;jt.prototype.set=PE;tl.exports=jt});var Vr=u((_k,al)=>{"use strict";var rl=ao();function OE(e,t,r){t=="__proto__"&&rl?rl(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}al.exports=OE});var go=u((Tk,nl)=>{"use strict";var CE=Vr(),qE=Mt();function UE(e,t,r){(r!==void 0&&!qE(e[t],r)||r===void 0&&!(t in e))&&CE(e,t,r)}nl.exports=UE});var sl=u((Pk,ol)=>{"use strict";function LE(e){return function(t,r,a){for(var n=-1,o=Object(t),i=a(t),s=i.length;s--;){var c=i[e?s:++n];if(r(o[c],c,o)===!1)break}return t}}ol.exports=LE});var mo=u((Ok,il)=>{"use strict";var DE=sl(),BE=DE();il.exports=BE});var yo=u((Kr,Wt)=>{"use strict";var NE=re(),ll=typeof Kr=="object"&&Kr&&!Kr.nodeType&&Kr,ul=ll&&typeof Wt=="object"&&Wt&&!Wt.nodeType&&Wt,GE=ul&&ul.exports===ll,pl=GE?NE.Buffer:void 0,cl=pl?pl.allocUnsafe:void 0;function ME(e,t){if(t)return e.slice();var r=e.length,a=cl?cl(r):new e.constructor(r);return e.copy(a),a}Wt.exports=ME});var Ao=u((Ck,dl)=>{"use strict";var kE=re(),FE=kE.Uint8Array;dl.exports=FE});var Qa=u((qk,gl)=>{"use strict";var fl=Ao();function QE(e){var t=new e.constructor(e.byteLength);return new fl(t).set(new fl(e)),t}gl.exports=QE});var ho=u((Uk,ml)=>{"use strict";var jE=Qa();function WE(e,t){var r=t?jE(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}ml.exports=WE});var $t=u((Lk,yl)=>{"use strict";function $E(e,t){var r=-1,a=e.length;for(t||(t=Array(a));++r<a;)t[r]=e[r];return t}yl.exports=$E});var Yr=u((Dk,hl)=>{"use strict";var VE=Ie(),Al=Object.create,KE=function(){function e(){}return function(t){if(!VE(t))return{};if(Al)return Al(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();hl.exports=KE});var bo=u((Bk,bl)=>{"use strict";function YE(e,t){return function(r){return e(t(r))}}bl.exports=YE});var ja=u((Nk,Il)=>{"use strict";var HE=bo(),zE=HE(Object.getPrototypeOf,Object);Il.exports=zE});var Wa=u((Gk,Sl)=>{"use strict";var JE=Object.prototype;function XE(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||JE;return e===r}Sl.exports=XE});var Io=u((Mk,wl)=>{"use strict";var ZE=Yr(),eR=ja(),tR=Wa();function rR(e){return typeof e.constructor=="function"&&!tR(e)?ZE(eR(e)):{}}wl.exports=rR});var El=u((kk,vl)=>{"use strict";function aR(){return!1}vl.exports=aR});var zr=u((Hr,Vt)=>{"use strict";var nR=re(),oR=El(),_l=typeof Hr=="object"&&Hr&&!Hr.nodeType&&Hr,Rl=_l&&typeof Vt=="object"&&Vt&&!Vt.nodeType&&Vt,sR=Rl&&Rl.exports===_l,xl=sR?nR.Buffer:void 0,iR=xl?xl.isBuffer:void 0,uR=iR||oR;Vt.exports=uR});var So=u((Fk,Pl)=>{"use strict";var pR=nt(),cR=ja(),lR=pe(),dR="[object Object]",fR=Function.prototype,gR=Object.prototype,Tl=fR.toString,mR=gR.hasOwnProperty,yR=Tl.call(Object);function AR(e){if(!lR(e)||pR(e)!=dR)return!1;var t=cR(e);if(t===null)return!0;var r=mR.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Tl.call(r)==yR}Pl.exports=AR});var Cl=u((Qk,Ol)=>{"use strict";var hR=nt(),bR=Fa(),IR=pe(),SR="[object Arguments]",wR="[object Array]",vR="[object Boolean]",ER="[object Date]",RR="[object Error]",xR="[object Function]",_R="[object Map]",TR="[object Number]",PR="[object Object]",OR="[object RegExp]",CR="[object Set]",qR="[object String]",UR="[object WeakMap]",LR="[object ArrayBuffer]",DR="[object DataView]",BR="[object Float32Array]",NR="[object Float64Array]",GR="[object Int8Array]",MR="[object Int16Array]",kR="[object Int32Array]",FR="[object Uint8Array]",QR="[object Uint8ClampedArray]",jR="[object Uint16Array]",WR="[object Uint32Array]",U={};U[BR]=U[NR]=U[GR]=U[MR]=U[kR]=U[FR]=U[QR]=U[jR]=U[WR]=!0;U[SR]=U[wR]=U[LR]=U[vR]=U[DR]=U[ER]=U[RR]=U[xR]=U[_R]=U[TR]=U[PR]=U[OR]=U[CR]=U[qR]=U[UR]=!1;function $R(e){return IR(e)&&bR(e.length)&&!!U[hR(e)]}Ol.exports=$R});var $a=u((jk,ql)=>{"use strict";function VR(e){return function(t){return e(t)}}ql.exports=VR});var Va=u((Jr,Kt)=>{"use strict";var KR=Xn(),Ul=typeof Jr=="object"&&Jr&&!Jr.nodeType&&Jr,Xr=Ul&&typeof Kt=="object"&&Kt&&!Kt.nodeType&&Kt,YR=Xr&&Xr.exports===Ul,wo=YR&&KR.process,HR=function(){try{var e=Xr&&Xr.require&&Xr.require("util").types;return e||wo&&wo.binding&&wo.binding("util")}catch{}}();Kt.exports=HR});var Ka=u((Wk,Bl)=>{"use strict";var zR=Cl(),JR=$a(),Ll=Va(),Dl=Ll&&Ll.isTypedArray,XR=Dl?JR(Dl):zR;Bl.exports=XR});var vo=u(($k,Nl)=>{"use strict";function ZR(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}Nl.exports=ZR});var Eo=u((Vk,Gl)=>{"use strict";var ex=Vr(),tx=Mt(),rx=Object.prototype,ax=rx.hasOwnProperty;function nx(e,t,r){var a=e[t];(!(ax.call(e,t)&&tx(a,r))||r===void 0&&!(t in e))&&ex(e,t,r)}Gl.exports=nx});var Yt=u((Kk,Ml)=>{"use strict";var ox=Eo(),sx=Vr();function ix(e,t,r,a){var n=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var s=t[o],c=a?a(r[s],e[s],s,r,e):void 0;c===void 0&&(c=e[s]),n?sx(r,s,c):ox(r,s,c)}return r}Ml.exports=ix});var Fl=u((Yk,kl)=>{"use strict";function ux(e,t){for(var r=-1,a=Array(e);++r<e;)a[r]=t(r);return a}kl.exports=ux});var Zr=u((Hk,Ql)=>{"use strict";var px=9007199254740991,cx=/^(?:0|[1-9]\d*)$/;function lx(e,t){var r=typeof e;return t=t??px,!!t&&(r=="number"||r!="symbol"&&cx.test(e))&&e>-1&&e%1==0&&e<t}Ql.exports=lx});var Ro=u((zk,jl)=>{"use strict";var dx=Fl(),fx=Gr(),gx=z(),mx=zr(),yx=Zr(),Ax=Ka(),hx=Object.prototype,bx=hx.hasOwnProperty;function Ix(e,t){var r=gx(e),a=!r&&fx(e),n=!r&&!a&&mx(e),o=!r&&!a&&!n&&Ax(e),i=r||a||n||o,s=i?dx(e.length,String):[],c=s.length;for(var f in e)(t||bx.call(e,f))&&!(i&&(f=="length"||n&&(f=="offset"||f=="parent")||o&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||yx(f,c)))&&s.push(f);return s}jl.exports=Ix});var $l=u((Jk,Wl)=>{"use strict";function Sx(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}Wl.exports=Sx});var Kl=u((Xk,Vl)=>{"use strict";var wx=Ie(),vx=Wa(),Ex=$l(),Rx=Object.prototype,xx=Rx.hasOwnProperty;function _x(e){if(!wx(e))return Ex(e);var t=vx(e),r=[];for(var a in e)a=="constructor"&&(t||!xx.call(e,a))||r.push(a);return r}Vl.exports=_x});var Ht=u((Zk,Yl)=>{"use strict";var Tx=Ro(),Px=Kl(),Ox=Qt();function Cx(e){return Ox(e)?Tx(e,!0):Px(e)}Yl.exports=Cx});var zl=u((eF,Hl)=>{"use strict";var qx=Yt(),Ux=Ht();function Lx(e){return qx(e,Ux(e))}Hl.exports=Lx});var rd=u((tF,td)=>{"use strict";var Jl=go(),Dx=yo(),Bx=ho(),Nx=$t(),Gx=Io(),Xl=Gr(),Zl=z(),Mx=fo(),kx=zr(),Fx=kr(),Qx=Ie(),jx=So(),Wx=Ka(),ed=vo(),$x=zl();function Vx(e,t,r,a,n,o,i){var s=ed(e,r),c=ed(t,r),f=i.get(c);if(f){Jl(e,r,f);return}var m=o?o(s,c,r+"",e,t,i):void 0,g=m===void 0;if(g){var y=Zl(c),h=!y&&kx(c),E=!y&&!h&&Wx(c);m=c,y||h||E?Zl(s)?m=s:Mx(s)?m=Nx(s):h?(g=!1,m=Dx(c,!0)):E?(g=!1,m=Bx(c,!0)):m=[]:jx(c)||Xl(c)?(m=s,Xl(s)?m=$x(s):(!Qx(s)||Fx(s))&&(m=Gx(c))):g=!1}g&&(i.set(c,m),n(m,c,a,o,i),i.delete(c)),Jl(e,r,m)}td.exports=Vx});var od=u((rF,nd)=>{"use strict";var Kx=$r(),Yx=go(),Hx=mo(),zx=rd(),Jx=Ie(),Xx=Ht(),Zx=vo();function ad(e,t,r,a,n){e!==t&&Hx(t,function(o,i){if(n||(n=new Kx),Jx(o))zx(e,t,i,r,ad,a,n);else{var s=a?a(Zx(e,i),o,i+"",e,t,n):void 0;s===void 0&&(s=o),Yx(e,i,s)}},Xx)}nd.exports=ad});var id=u((aF,sd)=>{"use strict";var e_=Mt(),t_=Qt(),r_=Zr(),a_=Ie();function n_(e,t,r){if(!a_(r))return!1;var a=typeof t;return(a=="number"?t_(r)&&r_(t,r.length):a=="string"&&t in r)?e_(r[t],e):!1}sd.exports=n_});var pd=u((nF,ud)=>{"use strict";var o_=oo(),s_=id();function i_(e){return o_(function(t,r){var a=-1,n=r.length,o=n>1?r[n-1]:void 0,i=n>2?r[2]:void 0;for(o=e.length>3&&typeof o=="function"?(n--,o):void 0,i&&s_(r[0],r[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++a<n;){var s=r[a];s&&e(t,s,a,o)}return t})}ud.exports=i_});var xo=u((oF,cd)=>{"use strict";var u_=od(),p_=pd(),c_=p_(function(e,t,r){u_(e,t,r)});cd.exports=c_});var lf=u(oe=>{"use strict";oe.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"};oe.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"]};oe.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]};oe.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};oe.iterateeRearg={mapKeys:[1],reduceRight:[1,0]};oe.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]};oe.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}};oe.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}};oe.realToAlias=function(){var e=Object.prototype.hasOwnProperty,t=oe.aliasToReal,r={};for(var a in t){var n=t[a];e.call(r,n)?r[n].push(a):r[n]=[a]}return r}();oe.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"};oe.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0};oe.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 Is=u((_Q,df)=>{"use strict";df.exports={}});var yf=u((TQ,mf)=>{"use strict";var $=lf(),YT=Is(),ff=Array.prototype.push;function HT(e,t){return t==2?function(r,a){return e.apply(void 0,arguments)}:function(r){return e.apply(void 0,arguments)}}function Ss(e,t){return t==2?function(r,a){return e(r,a)}:function(r){return e(r)}}function gf(e){for(var t=e?e.length:0,r=Array(t);t--;)r[t]=e[t];return r}function zT(e){return function(t){return e({},t)}}function JT(e,t){return function(){for(var r=arguments.length,a=r-1,n=Array(r);r--;)n[r]=arguments[r];var o=n[t],i=n.slice(0,t);return o&&ff.apply(i,o),t!=a&&ff.apply(i,n.slice(t+1)),e.apply(this,i)}}function ws(e,t){return function(){var r=arguments.length;if(r){for(var a=Array(r);r--;)a[r]=arguments[r];var n=a[0]=t.apply(void 0,a);return e.apply(void 0,a),n}}}function vs(e,t,r,a){var n=typeof t=="function",o=t===Object(t);if(o&&(a=r,r=t,t=void 0),r==null)throw new TypeError;a||(a={});var i={cap:"cap"in a?a.cap:!0,curry:"curry"in a?a.curry:!0,fixed:"fixed"in a?a.fixed:!0,immutable:"immutable"in a?a.immutable:!0,rearg:"rearg"in a?a.rearg:!0},s=n?r:YT,c="curry"in a&&a.curry,f="fixed"in a&&a.fixed,m="rearg"in a&&a.rearg,g=n?r.runInContext():void 0,y=n?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},h=y.ary,E=y.assign,T=y.clone,x=y.curry,R=y.forEach,L=y.isArray,Xe=y.isError,ye=y.isFunction,Ze=y.isWeakMap,Ct=y.keys,lr=y.rearg,dr=y.toInteger,Eb=y.toPath,Mi=Ct($.aryMethod),Rb={castArray:function(I){return function(){var A=arguments[0];return L(A)?I(gf(A)):I.apply(void 0,arguments)}},iteratee:function(I){return function(){var A=arguments[0],b=arguments[1],w=I(A,b),_=w.length;return i.cap&&typeof b=="number"?(b=b>2?b-2:1,_&&_<=b?w:Ss(w,b)):w}},mixin:function(I){return function(A){var b=this;if(!ye(b))return I(b,Object(A));var w=[];return R(Ct(A),function(_){ye(A[_])&&w.push([_,b.prototype[_]])}),I(b,Object(A)),R(w,function(_){var Z=_[1];ye(Z)?b.prototype[_[0]]=Z:delete b.prototype[_[0]]}),b}},nthArg:function(I){return function(A){var b=A<0?1:dr(A)+1;return x(I(A),b)}},rearg:function(I){return function(A,b){var w=b?b.length:0;return x(I(A,b),w)}},runInContext:function(I){return function(A){return vs(e,I(A),a)}}};function xb(I,A){if(i.cap){var b=$.iterateeRearg[I];if(b)return Cb(A,b);var w=!n&&$.iterateeAry[I];if(w)return Ob(A,w)}return A}function _b(I,A,b){return c||i.curry&&b>1?x(A,b):A}function ki(I,A,b){if(i.fixed&&(f||!$.skipFixed[I])){var w=$.methodSpread[I],_=w&&w.start;return _===void 0?h(A,b):JT(A,_)}return A}function Fi(I,A,b){return i.rearg&&b>1&&(m||!$.skipRearg[I])?lr(A,$.methodRearg[I]||$.aryRearg[b]):A}function Tb(I,A){A=Eb(A);for(var b=-1,w=A.length,_=w-1,Z=T(Object(I)),qe=Z;qe!=null&&++b<w;){var Ae=A[b],Ue=qe[Ae];Ue!=null&&!(ye(Ue)||Xe(Ue)||Ze(Ue))&&(qe[Ae]=T(b==_?Ue:Object(Ue))),qe=qe[Ae]}return Z}function Pb(I){return ie.runInContext.convert(I)(void 0)}function Qi(I,A){var b=$.aliasToReal[I]||I,w=$.remap[b]||b,_=a;return function(Z){var qe=n?g:y,Ae=n?g[w]:A,Ue=E(E({},_),Z);return vs(qe,b,Ae,Ue)}}function Ob(I,A){return ji(I,function(b){return typeof b=="function"?Ss(b,A):b})}function Cb(I,A){return ji(I,function(b){var w=A.length;return HT(lr(Ss(b,w),A),w)})}function ji(I,A){return function(){var b=arguments.length;if(!b)return I();for(var w=Array(b);b--;)w[b]=arguments[b];var _=i.rearg?0:b-1;return w[_]=A(w[_]),I.apply(void 0,w)}}function Wi(I,A,b){var w,_=$.aliasToReal[I]||I,Z=A,qe=Rb[_];return qe?Z=qe(A):i.immutable&&($.mutate.array[_]?Z=ws(A,gf):$.mutate.object[_]?Z=ws(A,zT(A)):$.mutate.set[_]&&(Z=ws(A,Tb))),R(Mi,function(Ae){return R($.aryMethod[Ae],function(Ue){if(_==Ue){var $i=$.methodSpread[_],qb=$i&&$i.afterRearg;return w=qb?ki(_,Fi(_,Z,Ae),Ae):Fi(_,ki(_,Z,Ae),Ae),w=xb(_,w),w=_b(_,w,Ae),!1}}),!w}),w||(w=Z),w==A&&(w=c?x(w,1):function(){return A.apply(this,arguments)}),w.convert=Qi(_,A),w.placeholder=A.placeholder=b,w}if(!o)return Wi(t,r,s);var ie=r,fr=[];return R(Mi,function(I){R($.aryMethod[I],function(A){var b=ie[$.remap[A]||A];b&&fr.push([A,Wi(A,b,ie)])})}),R(Ct(ie),function(I){var A=ie[I];if(typeof A=="function"){for(var b=fr.length;b--;)if(fr[b][0]==I)return;A.convert=Qi(I,A),fr.push([I,A])}}),R(fr,function(I){ie[I[0]]=I[1]}),ie.convert=Pb,ie.placeholder=ie,R(Ct(ie),function(I){R($.realToAlias[I]||[],function(A){ie[A]=ie[I]})}),ie}mf.exports=vs});var Es=u((PQ,Af)=>{"use strict";var XT=ot(),ZT=re(),eP=XT(ZT,"WeakMap");Af.exports=eP});var Rs=u((OQ,bf)=>{"use strict";var hf=Es(),tP=hf&&new hf;bf.exports=tP});var xs=u((CQ,Sf)=>{"use strict";var rP=Mr(),If=Rs(),aP=If?function(e,t){return If.set(e,t),e}:rP;Sf.exports=aP});var la=u((qQ,wf)=>{"use strict";var nP=Yr(),oP=Ie();function sP(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=nP(e.prototype),a=e.apply(r,t);return oP(a)?a:r}}wf.exports=sP});var Ef=u((UQ,vf)=>{"use strict";var iP=la(),uP=re(),pP=1;function cP(e,t,r){var a=t&pP,n=iP(e);function o(){var i=this&&this!==uP&&this instanceof o?n:e;return i.apply(a?r:this,arguments)}return o}vf.exports=cP});var _s=u((LQ,Rf)=>{"use strict";var lP=Math.max;function dP(e,t,r,a){for(var n=-1,o=e.length,i=r.length,s=-1,c=t.length,f=lP(o-i,0),m=Array(c+f),g=!a;++s<c;)m[s]=t[s];for(;++n<i;)(g||n<o)&&(m[r[n]]=e[n]);for(;f--;)m[s++]=e[n++];return m}Rf.exports=dP});var Ts=u((DQ,xf)=>{"use strict";var fP=Math.max;function gP(e,t,r,a){for(var n=-1,o=e.length,i=-1,s=r.length,c=-1,f=t.length,m=fP(o-s,0),g=Array(m+f),y=!a;++n<m;)g[n]=e[n];for(var h=n;++c<f;)g[h+c]=t[c];for(;++i<s;)(y||n<o)&&(g[h+r[i]]=e[n++]);return g}xf.exports=gP});var Tf=u((BQ,_f)=>{"use strict";function mP(e,t){for(var r=e.length,a=0;r--;)e[r]===t&&++a;return a}_f.exports=mP});var ln=u((NQ,Pf)=>{"use strict";function yP(){}Pf.exports=yP});var fn=u((GQ,Of)=>{"use strict";var AP=Yr(),hP=ln(),bP=4294967295;function dn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=bP,this.__views__=[]}dn.prototype=AP(hP.prototype);dn.prototype.constructor=dn;Of.exports=dn});var Ps=u((MQ,qf)=>{"use strict";var Cf=Rs(),IP=co(),SP=Cf?function(e){return Cf.get(e)}:IP;qf.exports=SP});var Lf=u((kQ,Uf)=>{"use strict";var wP={};Uf.exports=wP});var Nf=u((FQ,Bf)=>{"use strict";var Df=Lf(),vP=Object.prototype,EP=vP.hasOwnProperty;function RP(e){for(var t=e.name+"",r=Df[t],a=EP.call(Df,t)?r.length:0;a--;){var n=r[a],o=n.func;if(o==null||o==e)return n.name}return t}Bf.exports=RP});var Os=u((QQ,Gf)=>{"use strict";var xP=Yr(),_P=ln();function gn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}gn.prototype=xP(_P.prototype);gn.prototype.constructor=gn;Gf.exports=gn});var kf=u((jQ,Mf)=>{"use strict";var TP=fn(),PP=Os(),OP=$t();function CP(e){if(e instanceof TP)return e.clone();var t=new PP(e.__wrapped__,e.__chain__);return t.__actions__=OP(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}Mf.exports=CP});var jf=u((WQ,Qf)=>{"use strict";var qP=fn(),Ff=Os(),UP=ln(),LP=z(),DP=pe(),BP=kf(),NP=Object.prototype,GP=NP.hasOwnProperty;function mn(e){if(DP(e)&&!LP(e)&&!(e instanceof qP)){if(e instanceof Ff)return e;if(GP.call(e,"__wrapped__"))return BP(e)}return new Ff(e)}mn.prototype=UP.prototype;mn.prototype.constructor=mn;Qf.exports=mn});var $f=u(($Q,Wf)=>{"use strict";var MP=fn(),kP=Ps(),FP=Nf(),QP=jf();function jP(e){var t=FP(e),r=QP[t];if(typeof r!="function"||!(t in MP.prototype))return!1;if(e===r)return!0;var a=kP(r);return!!a&&e===a[0]}Wf.exports=jP});var Cs=u((VQ,Vf)=>{"use strict";var WP=xs(),$P=no(),VP=$P(WP);Vf.exports=VP});var Yf=u((KQ,Kf)=>{"use strict";var KP=/\{\n\/\* \[wrapped with (.+)\] \*/,YP=/,? & /;function HP(e){var t=e.match(KP);return t?t[1].split(YP):[]}Kf.exports=HP});var zf=u((YQ,Hf)=>{"use strict";var zP=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function JP(e,t){var r=t.length;if(!r)return e;var a=r-1;return t[a]=(r>1?"& ":"")+t[a],t=t.join(r>2?", ":" "),e.replace(zP,`{
2
2
  /* [wrapped with `+t+`] */
3
- `)}og.exports=nP});var Ca=u((nQ,ig)=>{"use strict";function aP(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}ig.exports=aP});var pg=u((aQ,ug)=>{"use strict";var oP=Ca(),sP=vo(),iP=1,uP=2,pP=8,cP=16,lP=32,dP=64,fP=128,gP=256,mP=512,yP=[["ary",fP],["bind",iP],["bindKey",uP],["curry",pP],["curryRight",cP],["flip",mP],["partial",lP],["partialRight",dP],["rearg",gP]];function hP(e,t){return oP(yP,function(r){var n="_."+r[0];t&r[1]&&!sP(e,n)&&e.push(n)}),e.sort()}ug.exports=hP});var Ks=u((oQ,cg)=>{"use strict";var AP=ag(),bP=sg(),IP=Xn(),SP=pg();function wP(e,t,r){var n=t+"";return IP(e,bP(n,SP(AP(n),r)))}cg.exports=wP});var Hs=u((sQ,fg)=>{"use strict";var vP=tg(),EP=Ys(),_P=Ks(),xP=1,RP=2,TP=4,OP=8,lg=32,dg=64;function PP(e,t,r,n,a,o,i,s,c,d){var m=t&OP,g=m?i:void 0,y=m?void 0:i,w=m?o:void 0,C=m?void 0:o;t|=m?lg:dg,t&=~(m?dg:lg),t&TP||(t&=~(xP|RP));var D=[e,t,a,w,g,C,y,s,c,d],L=r.apply(void 0,D);return vP(e)&&EP(L,D),L.placeholder=n,_P(L,e,t)}fg.exports=PP});var Js=u((iQ,gg)=>{"use strict";function CP(e){var t=e;return t.placeholder}gg.exports=CP});var yg=u((uQ,mg)=>{"use strict";var qP=ur(),UP=gn(),LP=Math.min;function DP(e,t){for(var r=e.length,n=LP(t.length,r),a=qP(e);n--;){var o=t[n];e[n]=UP(o,r)?a[o]:void 0}return e}mg.exports=DP});var qa=u((pQ,Ag)=>{"use strict";var hg="__lodash_placeholder__";function BP(e,t){for(var r=-1,n=e.length,a=0,o=[];++r<n;){var i=e[r];(i===t||i===hg)&&(e[r]=hg,o[a++]=r)}return o}Ag.exports=BP});var zs=u((cQ,Sg)=>{"use strict";var NP=$s(),MP=Qs(),GP=Mf(),bg=xn(),kP=Hs(),FP=Js(),$P=yg(),QP=qa(),jP=Ae(),WP=1,VP=2,YP=8,KP=16,HP=128,JP=512;function Ig(e,t,r,n,a,o,i,s,c,d){var m=t&HP,g=t&WP,y=t&VP,w=t&(YP|KP),C=t&JP,D=y?void 0:bg(e);function L(){for(var q=arguments.length,k=Array(q),Ie=q;Ie--;)k[Ie]=arguments[Ie];if(w)var ee=FP(L),Fe=GP(k,ee);if(n&&(k=NP(k,n,a,w)),o&&(k=MP(k,o,i,w)),q-=Fe,w&&q<d){var He=QP(k,ee);return kP(e,t,Ig,L.placeholder,r,k,He,s,c,d-q)}var Je=g?r:this,W=y?Je[e]:e;return q=k.length,s?k=$P(k,s):C&&q>1&&k.reverse(),m&&c<q&&(k.length=c),this&&this!==jP&&this instanceof L&&(W=D||bg(W)),W.apply(Je,k)}return L}Sg.exports=Ig});var vg=u((lQ,wg)=>{"use strict";var zP=zn(),XP=xn(),ZP=zs(),eC=Hs(),tC=Js(),rC=qa(),nC=Ae();function aC(e,t,r){var n=XP(e);function a(){for(var o=arguments.length,i=Array(o),s=o,c=tC(a);s--;)i[s]=arguments[s];var d=o<3&&i[0]!==c&&i[o-1]!==c?[]:rC(i,c);if(o-=d.length,o<r)return eC(e,t,ZP,a.placeholder,void 0,i,d,void 0,void 0,r-o);var m=this&&this!==nC&&this instanceof a?n:e;return zP(m,this,i)}return a}wg.exports=aC});var _g=u((dQ,Eg)=>{"use strict";var oC=zn(),sC=xn(),iC=Ae(),uC=1;function pC(e,t,r,n){var a=t&uC,o=sC(e);function i(){for(var s=-1,c=arguments.length,d=-1,m=n.length,g=Array(m+c),y=this&&this!==iC&&this instanceof i?o:e;++d<m;)g[d]=n[d];for(;c--;)g[d++]=arguments[++s];return oC(y,a?r:this,g)}return i}Eg.exports=pC});var Cg=u((fQ,Pg)=>{"use strict";var cC=$s(),lC=Qs(),xg=qa(),Rg="__lodash_placeholder__",Xs=1,dC=2,fC=4,Tg=8,Rn=128,Og=256,gC=Math.min;function mC(e,t){var r=e[1],n=t[1],a=r|n,o=a<(Xs|dC|Rn),i=n==Rn&&r==Tg||n==Rn&&r==Og&&e[7].length<=t[8]||n==(Rn|Og)&&t[7].length<=t[8]&&r==Tg;if(!(o||i))return e;n&Xs&&(e[2]=t[2],a|=r&Xs?0:fC);var s=t[3];if(s){var c=e[3];e[3]=c?cC(c,s,t[4]):s,e[4]=c?xg(e[3],Rg):t[4]}return s=t[5],s&&(c=e[5],e[5]=c?lC(c,s,t[6]):s,e[6]=c?xg(e[5],Rg):t[6]),s=t[7],s&&(e[7]=s),n&Rn&&(e[8]=e[8]==null?t[8]:gC(e[8],t[8])),e[9]==null&&(e[9]=t[9]),e[0]=t[0],e[1]=a,e}Pg.exports=mC});var Ug=u((gQ,qg)=>{"use strict";var yC=/\s/;function hC(e){for(var t=e.length;t--&&yC.test(e.charAt(t)););return t}qg.exports=hC});var Dg=u((mQ,Lg)=>{"use strict";var AC=Ug(),bC=/^\s+/;function IC(e){return e&&e.slice(0,AC(e)+1).replace(bC,"")}Lg.exports=IC});var Ir=u((yQ,Bg)=>{"use strict";var SC=It(),wC=_e(),vC="[object Symbol]";function EC(e){return typeof e=="symbol"||wC(e)&&SC(e)==vC}Bg.exports=EC});var kg=u((hQ,Gg)=>{"use strict";var _C=Dg(),Ng=Be(),xC=Ir(),Mg=0/0,RC=/^[-+]0x[0-9a-f]+$/i,TC=/^0b[01]+$/i,OC=/^0o[0-7]+$/i,PC=parseInt;function CC(e){if(typeof e=="number")return e;if(xC(e))return Mg;if(Ng(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Ng(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=_C(e);var r=TC.test(e);return r||OC.test(e)?PC(e.slice(2),r?2:8):RC.test(e)?Mg:+e}Gg.exports=CC});var Qg=u((AQ,$g)=>{"use strict";var qC=kg(),Fg=1/0,UC=17976931348623157e292;function LC(e){if(!e)return e===0?e:0;if(e=qC(e),e===Fg||e===-Fg){var t=e<0?-1:1;return t*UC}return e===e?e:0}$g.exports=LC});var Zs=u((bQ,jg)=>{"use strict";var DC=Qg();function BC(e){var t=DC(e),r=t%1;return t===t?r?t-r:t:0}jg.exports=BC});var Ua=u((IQ,Hg)=>{"use strict";var NC=Fs(),MC=Lf(),GC=vg(),kC=zs(),FC=_g(),$C=Ws(),QC=Cg(),jC=Ys(),WC=Ks(),Wg=Zs(),VC="Expected a function",Vg=1,YC=2,ei=8,ti=16,ri=32,Yg=64,Kg=Math.max;function KC(e,t,r,n,a,o,i,s){var c=t&YC;if(!c&&typeof e!="function")throw new TypeError(VC);var d=n?n.length:0;if(d||(t&=~(ri|Yg),n=a=void 0),i=i===void 0?i:Kg(Wg(i),0),s=s===void 0?s:Wg(s),d-=a?a.length:0,t&Yg){var m=n,g=a;n=a=void 0}var y=c?void 0:$C(e),w=[e,t,r,n,a,m,g,o,i,s];if(y&&QC(w,y),e=w[0],t=w[1],r=w[2],n=w[3],a=w[4],s=w[9]=w[9]===void 0?c?0:e.length:Kg(w[9]-d,0),!s&&t&(ei|ti)&&(t&=~(ei|ti)),!t||t==Vg)var C=MC(e,t,r);else t==ei||t==ti?C=GC(e,t,s):(t==ri||t==(Vg|ri))&&!a.length?C=FC(e,t,r,n):C=kC.apply(void 0,w);var D=y?NC:jC;return WC(D(C,w),e,t)}Hg.exports=KC});var zg=u((SQ,Jg)=>{"use strict";var HC=Ua(),JC=128;function zC(e,t,r){return t=r?void 0:t,t=e&&t==null?e.length:t,HC(e,JC,void 0,void 0,void 0,void 0,t)}Jg.exports=zC});var Zg=u((wQ,Xg)=>{"use strict";var XC=Lo(),ZC=XC(Object.keys,Object);Xg.exports=ZC});var ni=u((vQ,em)=>{"use strict";var eq=sa(),tq=Zg(),rq=Object.prototype,nq=rq.hasOwnProperty;function aq(e){if(!eq(e))return tq(e);var t=[];for(var r in Object(e))nq.call(e,r)&&r!="constructor"&&t.push(r);return t}em.exports=aq});var Sr=u((EQ,tm)=>{"use strict";var oq=ko(),sq=ni(),iq=or();function uq(e){return iq(e)?oq(e):sq(e)}tm.exports=uq});var ai=u((_Q,rm)=>{"use strict";var pq=lr(),cq=Sr();function lq(e,t){return e&&pq(t,cq(t),e)}rm.exports=lq});var am=u((xQ,nm)=>{"use strict";var dq=lr(),fq=dr();function gq(e,t){return e&&dq(t,fq(t),e)}nm.exports=gq});var sm=u((RQ,om)=>{"use strict";function mq(e,t){for(var r=-1,n=e==null?0:e.length,a=0,o=[];++r<n;){var i=e[r];t(i,r,e)&&(o[a++]=i)}return o}om.exports=mq});var oi=u((TQ,im)=>{"use strict";function yq(){return[]}im.exports=yq});var La=u((OQ,pm)=>{"use strict";var hq=sm(),Aq=oi(),bq=Object.prototype,Iq=bq.propertyIsEnumerable,um=Object.getOwnPropertySymbols,Sq=um?function(e){return e==null?[]:(e=Object(e),hq(um(e),function(t){return Iq.call(e,t)}))}:Aq;pm.exports=Sq});var lm=u((PQ,cm)=>{"use strict";var wq=lr(),vq=La();function Eq(e,t){return wq(e,vq(e),t)}cm.exports=Eq});var si=u((CQ,dm)=>{"use strict";var _q=Jn(),xq=oa(),Rq=La(),Tq=oi(),Oq=Object.getOwnPropertySymbols,Pq=Oq?function(e){for(var t=[];e;)_q(t,Rq(e)),e=xq(e);return t}:Tq;dm.exports=Pq});var gm=u((qQ,fm)=>{"use strict";var Cq=lr(),qq=si();function Uq(e,t){return Cq(e,qq(e),t)}fm.exports=Uq});var ii=u((UQ,mm)=>{"use strict";var Lq=Jn(),Dq=de();function Bq(e,t,r){var n=t(e);return Dq(e)?n:Lq(n,r(e))}mm.exports=Bq});var ui=u((LQ,ym)=>{"use strict";var Nq=ii(),Mq=La(),Gq=Sr();function kq(e){return Nq(e,Gq,Mq)}ym.exports=kq});var Am=u((DQ,hm)=>{"use strict";var Fq=ii(),$q=si(),Qq=dr();function jq(e){return Fq(e,Qq,$q)}hm.exports=jq});var Im=u((BQ,bm)=>{"use strict";var Wq=St(),Vq=Ae(),Yq=Wq(Vq,"DataView");bm.exports=Yq});var wm=u((NQ,Sm)=>{"use strict";var Kq=St(),Hq=Ae(),Jq=Kq(Hq,"Promise");Sm.exports=Jq});var vr=u((MQ,Om)=>{"use strict";var pi=Im(),ci=Zn(),li=wm(),di=_o(),fi=Gs(),Tm=It(),wr=Ao(),vm="[object Map]",zq="[object Object]",Em="[object Promise]",_m="[object Set]",xm="[object WeakMap]",Rm="[object DataView]",Xq=wr(pi),Zq=wr(ci),eU=wr(li),tU=wr(di),rU=wr(fi),Qt=Tm;(pi&&Qt(new pi(new ArrayBuffer(1)))!=Rm||ci&&Qt(new ci)!=vm||li&&Qt(li.resolve())!=Em||di&&Qt(new di)!=_m||fi&&Qt(new fi)!=xm)&&(Qt=function(e){var t=Tm(e),r=t==zq?e.constructor:void 0,n=r?wr(r):"";if(n)switch(n){case Xq:return Rm;case Zq:return vm;case eU:return Em;case tU:return _m;case rU:return xm}return t});Om.exports=Qt});var Cm=u((GQ,Pm)=>{"use strict";var nU=Object.prototype,aU=nU.hasOwnProperty;function oU(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&aU.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Pm.exports=oU});var Um=u((kQ,qm)=>{"use strict";var sU=aa();function iU(e,t){var r=t?sU(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}qm.exports=iU});var Dm=u((FQ,Lm)=>{"use strict";var uU=/\w*$/;function pU(e){var t=new e.constructor(e.source,uU.exec(e));return t.lastIndex=e.lastIndex,t}Lm.exports=pU});var km=u(($Q,Gm)=>{"use strict";var Bm=Lt(),Nm=Bm?Bm.prototype:void 0,Mm=Nm?Nm.valueOf:void 0;function cU(e){return Mm?Object(Mm.call(e)):{}}Gm.exports=cU});var $m=u((QQ,Fm)=>{"use strict";var lU=aa(),dU=Um(),fU=Dm(),gU=km(),mU=Uo(),yU="[object Boolean]",hU="[object Date]",AU="[object Map]",bU="[object Number]",IU="[object RegExp]",SU="[object Set]",wU="[object String]",vU="[object Symbol]",EU="[object ArrayBuffer]",_U="[object DataView]",xU="[object Float32Array]",RU="[object Float64Array]",TU="[object Int8Array]",OU="[object Int16Array]",PU="[object Int32Array]",CU="[object Uint8Array]",qU="[object Uint8ClampedArray]",UU="[object Uint16Array]",LU="[object Uint32Array]";function DU(e,t,r){var n=e.constructor;switch(t){case EU:return lU(e);case yU:case hU:return new n(+e);case _U:return dU(e,r);case xU:case RU:case TU:case OU:case PU:case CU:case qU:case UU:case LU:return mU(e,r);case AU:return new n;case bU:case wU:return new n(e);case IU:return fU(e);case SU:return new n;case vU:return gU(e)}}Fm.exports=DU});var jm=u((jQ,Qm)=>{"use strict";var BU=vr(),NU=_e(),MU="[object Map]";function GU(e){return NU(e)&&BU(e)==MU}Qm.exports=GU});var Km=u((WQ,Ym)=>{"use strict";var kU=jm(),FU=ia(),Wm=ua(),Vm=Wm&&Wm.isMap,$U=Vm?FU(Vm):kU;Ym.exports=$U});var Jm=u((VQ,Hm)=>{"use strict";var QU=vr(),jU=_e(),WU="[object Set]";function VU(e){return jU(e)&&QU(e)==WU}Hm.exports=VU});var ey=u((YQ,Zm)=>{"use strict";var YU=Jm(),KU=ia(),zm=ua(),Xm=zm&&zm.isSet,HU=Xm?KU(Xm):YU;Zm.exports=HU});var gi=u((KQ,ay)=>{"use strict";var JU=on(),zU=Ca(),XU=Go(),ZU=ai(),eL=am(),tL=Co(),rL=ur(),nL=lm(),aL=gm(),oL=ui(),sL=Am(),iL=vr(),uL=Cm(),pL=$m(),cL=Do(),lL=de(),dL=ln(),fL=Km(),gL=Be(),mL=ey(),yL=Sr(),hL=dr(),AL=1,bL=2,IL=4,ty="[object Arguments]",SL="[object Array]",wL="[object Boolean]",vL="[object Date]",EL="[object Error]",ry="[object Function]",_L="[object GeneratorFunction]",xL="[object Map]",RL="[object Number]",ny="[object Object]",TL="[object RegExp]",OL="[object Set]",PL="[object String]",CL="[object Symbol]",qL="[object WeakMap]",UL="[object ArrayBuffer]",LL="[object DataView]",DL="[object Float32Array]",BL="[object Float64Array]",NL="[object Int8Array]",ML="[object Int16Array]",GL="[object Int32Array]",kL="[object Uint8Array]",FL="[object Uint8ClampedArray]",$L="[object Uint16Array]",QL="[object Uint32Array]",$={};$[ty]=$[SL]=$[UL]=$[LL]=$[wL]=$[vL]=$[DL]=$[BL]=$[NL]=$[ML]=$[GL]=$[xL]=$[RL]=$[ny]=$[TL]=$[OL]=$[PL]=$[CL]=$[kL]=$[FL]=$[$L]=$[QL]=!0;$[EL]=$[ry]=$[qL]=!1;function Da(e,t,r,n,a,o){var i,s=t&AL,c=t&bL,d=t&IL;if(r&&(i=a?r(e,n,a,o):r(e)),i!==void 0)return i;if(!gL(e))return e;var m=lL(e);if(m){if(i=uL(e),!s)return rL(e,i)}else{var g=iL(e),y=g==ry||g==_L;if(dL(e))return tL(e,s);if(g==ny||g==ty||y&&!a){if(i=c||y?{}:cL(e),!s)return c?aL(e,eL(i,e)):nL(e,ZU(i,e))}else{if(!$[g])return a?e:{};i=pL(e,g,s)}}o||(o=new JU);var w=o.get(e);if(w)return w;o.set(e,i),mL(e)?e.forEach(function(L){i.add(Da(L,t,r,L,e,o))}):fL(e)&&e.forEach(function(L,q){i.set(q,Da(L,t,r,q,e,o))});var C=d?c?sL:oL:c?hL:yL,D=m?void 0:C(e);return zU(D||e,function(L,q){D&&(q=L,L=e[q]),XU(i,q,Da(L,t,r,q,e,o))}),i}ay.exports=Da});var sy=u((HQ,oy)=>{"use strict";var jL=gi(),WL=4;function VL(e){return jL(e,WL)}oy.exports=VL});var uy=u((JQ,iy)=>{"use strict";var YL=Ua(),KL=8;function mi(e,t,r){t=r?void 0:t;var n=YL(e,KL,void 0,void 0,void 0,void 0,void 0,t);return n.placeholder=mi.placeholder,n}mi.placeholder={};iy.exports=mi});var cy=u((zQ,py)=>{"use strict";var HL=It(),JL=_e(),zL=Bo(),XL="[object DOMException]",ZL="[object Error]";function eD(e){if(!JL(e))return!1;var t=HL(e);return t==ZL||t==XL||typeof e.message=="string"&&typeof e.name=="string"&&!zL(e)}py.exports=eD});var dy=u((XQ,ly)=>{"use strict";var tD=vr(),rD=_e(),nD="[object WeakMap]";function aD(e){return rD(e)&&tD(e)==nD}ly.exports=aD});var gy=u((ZQ,fy)=>{"use strict";function oD(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}fy.exports=oD});var yi=u((ej,my)=>{"use strict";var sD=wo(),iD=gy(),uD=Eo(),pD=1,cD=2;function lD(e,t,r,n,a,o){var i=r&pD,s=e.length,c=t.length;if(s!=c&&!(i&&c>s))return!1;var d=o.get(e),m=o.get(t);if(d&&m)return d==t&&m==e;var g=-1,y=!0,w=r&cD?new sD:void 0;for(o.set(e,t),o.set(t,e);++g<s;){var C=e[g],D=t[g];if(n)var L=i?n(D,C,g,t,e,o):n(C,D,g,e,t,o);if(L!==void 0){if(L)continue;y=!1;break}if(w){if(!iD(t,function(q,k){if(!uD(w,k)&&(C===q||a(C,q,r,n,o)))return w.push(k)})){y=!1;break}}else if(!(C===D||a(C,D,r,n,o))){y=!1;break}}return o.delete(e),o.delete(t),y}my.exports=lD});var hy=u((tj,yy)=>{"use strict";function dD(e){var t=-1,r=Array(e.size);return e.forEach(function(n,a){r[++t]=[a,n]}),r}yy.exports=dD});var wy=u((rj,Sy)=>{"use strict";var Ay=Lt(),by=qo(),fD=rr(),gD=yi(),mD=hy(),yD=ra(),hD=1,AD=2,bD="[object Boolean]",ID="[object Date]",SD="[object Error]",wD="[object Map]",vD="[object Number]",ED="[object RegExp]",_D="[object Set]",xD="[object String]",RD="[object Symbol]",TD="[object ArrayBuffer]",OD="[object DataView]",Iy=Ay?Ay.prototype:void 0,hi=Iy?Iy.valueOf:void 0;function PD(e,t,r,n,a,o,i){switch(r){case OD:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case TD:return!(e.byteLength!=t.byteLength||!o(new by(e),new by(t)));case bD:case ID:case vD:return fD(+e,+t);case SD:return e.name==t.name&&e.message==t.message;case ED:case xD:return e==t+"";case wD:var s=mD;case _D:var c=n&hD;if(s||(s=yD),e.size!=t.size&&!c)return!1;var d=i.get(e);if(d)return d==t;n|=AD,i.set(e,t);var m=gD(s(e),s(t),n,a,o,i);return i.delete(e),m;case RD:if(hi)return hi.call(e)==hi.call(t)}return!1}Sy.exports=PD});var _y=u((nj,Ey)=>{"use strict";var vy=ui(),CD=1,qD=Object.prototype,UD=qD.hasOwnProperty;function LD(e,t,r,n,a,o){var i=r&CD,s=vy(e),c=s.length,d=vy(t),m=d.length;if(c!=m&&!i)return!1;for(var g=c;g--;){var y=s[g];if(!(i?y in t:UD.call(t,y)))return!1}var w=o.get(e),C=o.get(t);if(w&&C)return w==t&&C==e;var D=!0;o.set(e,t),o.set(t,e);for(var L=i;++g<c;){y=s[g];var q=e[y],k=t[y];if(n)var Ie=i?n(k,q,y,t,e,o):n(q,k,y,e,t,o);if(!(Ie===void 0?q===k||a(q,k,r,n,o):Ie)){D=!1;break}L||(L=y=="constructor")}if(D&&!L){var ee=e.constructor,Fe=t.constructor;ee!=Fe&&"constructor"in e&&"constructor"in t&&!(typeof ee=="function"&&ee instanceof ee&&typeof Fe=="function"&&Fe instanceof Fe)&&(D=!1)}return o.delete(e),o.delete(t),D}Ey.exports=LD});var Uy=u((aj,qy)=>{"use strict";var Ai=on(),DD=yi(),BD=wy(),ND=_y(),xy=vr(),Ry=de(),Ty=ln(),MD=pa(),GD=1,Oy="[object Arguments]",Py="[object Array]",Ba="[object Object]",kD=Object.prototype,Cy=kD.hasOwnProperty;function FD(e,t,r,n,a,o){var i=Ry(e),s=Ry(t),c=i?Py:xy(e),d=s?Py:xy(t);c=c==Oy?Ba:c,d=d==Oy?Ba:d;var m=c==Ba,g=d==Ba,y=c==d;if(y&&Ty(e)){if(!Ty(t))return!1;i=!0,m=!1}if(y&&!m)return o||(o=new Ai),i||MD(e)?DD(e,t,r,n,a,o):BD(e,t,c,r,n,a,o);if(!(r&GD)){var w=m&&Cy.call(e,"__wrapped__"),C=g&&Cy.call(t,"__wrapped__");if(w||C){var D=w?e.value():e,L=C?t.value():t;return o||(o=new Ai),a(D,L,r,n,o)}}return y?(o||(o=new Ai),ND(e,t,r,n,a,o)):!1}qy.exports=FD});var bi=u((oj,By)=>{"use strict";var $D=Uy(),Ly=_e();function Dy(e,t,r,n,a){return e===t?!0:e==null||t==null||!Ly(e)&&!Ly(t)?e!==e&&t!==t:$D(e,t,r,n,Dy,a)}By.exports=Dy});var My=u((sj,Ny)=>{"use strict";var QD=on(),jD=bi(),WD=1,VD=2;function YD(e,t,r,n){var a=r.length,o=a,i=!n;if(e==null)return!o;for(e=Object(e);a--;){var s=r[a];if(i&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++a<o;){s=r[a];var c=s[0],d=e[c],m=s[1];if(i&&s[2]){if(d===void 0&&!(c in e))return!1}else{var g=new QD;if(n)var y=n(d,m,c,e,t,g);if(!(y===void 0?jD(m,d,WD|VD,n,g):y))return!1}}return!0}Ny.exports=YD});var Ii=u((ij,Gy)=>{"use strict";var KD=Be();function HD(e){return e===e&&!KD(e)}Gy.exports=HD});var Fy=u((uj,ky)=>{"use strict";var JD=Ii(),zD=Sr();function XD(e){for(var t=zD(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,JD(a)]}return t}ky.exports=XD});var Si=u((pj,$y)=>{"use strict";function ZD(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}$y.exports=ZD});var jy=u((cj,Qy)=>{"use strict";var eB=My(),tB=Fy(),rB=Si();function nB(e){var t=tB(e);return t.length==1&&t[0][2]?rB(t[0][0],t[0][1]):function(r){return r===e||eB(r,e,t)}}Qy.exports=nB});var Na=u((lj,Wy)=>{"use strict";var aB=de(),oB=Ir(),sB=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,iB=/^\w*$/;function uB(e,t){if(aB(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||oB(e)?!0:iB.test(e)||!sB.test(e)||t!=null&&e in Object(t)}Wy.exports=uB});var Ky=u((dj,Yy)=>{"use strict";var Vy=ea(),pB="Expected a function";function wi(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(pB);var r=function(){var n=arguments,a=t?t.apply(this,n):n[0],o=r.cache;if(o.has(a))return o.get(a);var i=e.apply(this,n);return r.cache=o.set(a,i)||o,i};return r.cache=new(wi.Cache||Vy),r}wi.Cache=Vy;Yy.exports=wi});var Jy=u((fj,Hy)=>{"use strict";var cB=Ky(),lB=500;function dB(e){var t=cB(e,function(n){return r.size===lB&&r.clear(),n}),r=t.cache;return t}Hy.exports=dB});var vi=u((gj,zy)=>{"use strict";var fB=Jy(),gB=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mB=/\\(\\)?/g,yB=fB(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(gB,function(r,n,a,o){t.push(a?o.replace(mB,"$1"):n||r)}),t});zy.exports=yB});var Ei=u((mj,Xy)=>{"use strict";function hB(e,t){for(var r=-1,n=e==null?0:e.length,a=Array(n);++r<n;)a[r]=t(e[r],r,e);return a}Xy.exports=hB});var ah=u((yj,nh)=>{"use strict";var Zy=Lt(),AB=Ei(),bB=de(),IB=Ir(),SB=1/0,eh=Zy?Zy.prototype:void 0,th=eh?eh.toString:void 0;function rh(e){if(typeof e=="string")return e;if(bB(e))return AB(e,rh)+"";if(IB(e))return th?th.call(e):"";var t=e+"";return t=="0"&&1/e==-SB?"-0":t}nh.exports=rh});var _i=u((hj,oh)=>{"use strict";var wB=ah();function vB(e){return e==null?"":wB(e)}oh.exports=vB});var xi=u((Aj,sh)=>{"use strict";var EB=de(),_B=Na(),xB=vi(),RB=_i();function TB(e,t){return EB(e)?e:_B(e,t)?[e]:xB(RB(e))}sh.exports=TB});var Er=u((bj,ih)=>{"use strict";var OB=Ir(),PB=1/0;function CB(e){if(typeof e=="string"||OB(e))return e;var t=e+"";return t=="0"&&1/e==-PB?"-0":t}ih.exports=CB});var Ri=u((Ij,uh)=>{"use strict";var qB=xi(),UB=Er();function LB(e,t){t=qB(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[UB(t[r++])];return r&&r==n?e:void 0}uh.exports=LB});var ch=u((Sj,ph)=>{"use strict";var DB=Ri();function BB(e,t,r){var n=e==null?void 0:DB(e,t);return n===void 0?r:n}ph.exports=BB});var dh=u((wj,lh)=>{"use strict";function NB(e,t){return e!=null&&t in Object(e)}lh.exports=NB});var gh=u((vj,fh)=>{"use strict";var MB=xi(),GB=Xr(),kB=de(),FB=gn(),$B=na(),QB=Er();function jB(e,t,r){t=MB(t,e);for(var n=-1,a=t.length,o=!1;++n<a;){var i=QB(t[n]);if(!(o=e!=null&&r(e,i)))break;e=e[i]}return o||++n!=a?o:(a=e==null?0:e.length,!!a&&$B(a)&&FB(i,a)&&(kB(e)||GB(e)))}fh.exports=jB});var yh=u((Ej,mh)=>{"use strict";var WB=dh(),VB=gh();function YB(e,t){return e!=null&&VB(e,t,WB)}mh.exports=YB});var Ah=u((_j,hh)=>{"use strict";var KB=bi(),HB=ch(),JB=yh(),zB=Na(),XB=Ii(),ZB=Si(),eN=Er(),tN=1,rN=2;function nN(e,t){return zB(e)&&XB(t)?ZB(eN(e),t):function(r){var n=HB(r,e);return n===void 0&&n===t?JB(r,e):KB(t,n,tN|rN)}}hh.exports=nN});var Ih=u((xj,bh)=>{"use strict";function aN(e){return function(t){return t?.[e]}}bh.exports=aN});var wh=u((Rj,Sh)=>{"use strict";var oN=Ri();function sN(e){return function(t){return oN(t,e)}}Sh.exports=sN});var Eh=u((Tj,vh)=>{"use strict";var iN=Ih(),uN=wh(),pN=Na(),cN=Er();function lN(e){return pN(e)?iN(cN(e)):uN(e)}vh.exports=lN});var Ti=u((Oj,_h)=>{"use strict";var dN=jy(),fN=Ah(),gN=Zr(),mN=de(),yN=Eh();function hN(e){return typeof e=="function"?e:e==null?gN:typeof e=="object"?mN(e)?fN(e[0],e[1]):dN(e):yN(e)}_h.exports=hN});var Rh=u((Pj,xh)=>{"use strict";var AN=gi(),bN=Ti(),IN=1;function SN(e){return bN(typeof e=="function"?e:AN(e,IN))}xh.exports=SN});var Oh=u((Cj,Th)=>{"use strict";var wN=mo();function vN(e){var t=e==null?0:e.length;return t?wN(e,1):[]}Th.exports=vN});var Ch=u((qj,Ph)=>{"use strict";var EN=Oh(),_N=yo(),xN=Xn();function RN(e){return xN(_N(e,void 0,EN),e+"")}Ph.exports=RN});var Uh=u((Uj,qh)=>{"use strict";var TN=Ua(),ON=Ch(),PN=256,CN=ON(function(e,t){return TN(e,PN,void 0,void 0,void 0,t)});qh.exports=CN});var Dh=u((Lj,Lh)=>{"use strict";var qN=Ei(),UN=ur(),LN=de(),DN=Ir(),BN=vi(),NN=Er(),MN=_i();function GN(e){return LN(e)?qN(e,NN):DN(e)?[e]:UN(BN(MN(e)))}Lh.exports=GN});var Nh=u((Dj,Bh)=>{"use strict";Bh.exports={ary:zg(),assign:ai(),clone:sy(),curry:uy(),forEach:Ca(),isArray:de(),isError:cy(),isFunction:en(),isWeakMap:dy(),iteratee:Rh(),keys:ni(),rearg:Uh(),toInteger:Zs(),toPath:Dh()}});var Gh=u((Bj,Mh)=>{"use strict";var kN=xf(),FN=Nh();function $N(e,t,r){return kN(FN,e,t,r)}Mh.exports=$N});var Oi=u((Nj,Fh)=>{"use strict";var QN=Gh(),kh=QN("merge",Fo());kh.placeholder=Ds();Fh.exports=kh});var Vh=u((Pi,Ci)=>{"use strict";(function(e,t){typeof Pi=="object"&&typeof Ci<"u"?Ci.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs=t()})(Pi,function(){"use strict";var e=1e3,t=6e4,r=36e5,n="millisecond",a="second",o="minute",i="hour",s="day",c="week",d="month",m="quarter",g="year",y="date",w="Invalid Date",C=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,D=/\[([^\]]+)]|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,L={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(R){var S=["th","st","nd","rd"],h=R%100;return"["+R+(S[(h-20)%10]||S[h]||S[0])+"]"}},q=function(R,S,h){var _=String(R);return!_||_.length>=S?R:""+Array(S+1-_.length).join(h)+R},k={s:q,z:function(R){var S=-R.utcOffset(),h=Math.abs(S),_=Math.floor(h/60),I=h%60;return(S<=0?"+":"-")+q(_,2,"0")+":"+q(I,2,"0")},m:function R(S,h){if(S.date()<h.date())return-R(h,S);var _=12*(h.year()-S.year())+(h.month()-S.month()),I=S.clone().add(_,d),O=h-I<0,T=S.clone().add(_+(O?-1:1),d);return+(-(_+(h-I)/(O?I-T:T-I))||0)},a:function(R){return R<0?Math.ceil(R)||0:Math.floor(R)},p:function(R){return{M:d,y:g,w:c,d:s,D:y,h:i,m:o,s:a,ms:n,Q:m}[R]||String(R||"").toLowerCase().replace(/s$/,"")},u:function(R){return R===void 0}},Ie="en",ee={};ee[Ie]=L;var Fe="$isDayjsObject",He=function(R){return R instanceof Ot||!(!R||!R[Fe])},Je=function R(S,h,_){var I;if(!S)return Ie;if(typeof S=="string"){var O=S.toLowerCase();ee[O]&&(I=O),h&&(ee[O]=h,I=O);var T=S.split("-");if(!I&&T.length>1)return R(T[0])}else{var G=S.name;ee[G]=S,I=G}return!_&&I&&(Ie=I),I||!_&&Ie},W=function(R,S){if(He(R))return R.clone();var h=typeof S=="object"?S:{};return h.date=R,h.args=arguments,new Ot(h)},B=k;B.l=Je,B.i=He,B.w=function(R,S){return W(R,{locale:S.$L,utc:S.$u,x:S.$x,$offset:S.$offset})};var Ot=function(){function R(h){this.$L=Je(h.locale,null,!0),this.parse(h),this.$x=this.$x||h.x||{},this[Fe]=!0}var S=R.prototype;return S.parse=function(h){this.$d=function(_){var I=_.date,O=_.utc;if(I===null)return new Date(NaN);if(B.u(I))return new Date;if(I instanceof Date)return new Date(I);if(typeof I=="string"&&!/Z$/i.test(I)){var T=I.match(C);if(T){var G=T[2]-1||0,K=(T[7]||"0").substring(0,3);return O?new Date(Date.UTC(T[1],G,T[3]||1,T[4]||0,T[5]||0,T[6]||0,K)):new Date(T[1],G,T[3]||1,T[4]||0,T[5]||0,T[6]||0,K)}}return new Date(I)}(h),this.init()},S.init=function(){var h=this.$d;this.$y=h.getFullYear(),this.$M=h.getMonth(),this.$D=h.getDate(),this.$W=h.getDay(),this.$H=h.getHours(),this.$m=h.getMinutes(),this.$s=h.getSeconds(),this.$ms=h.getMilliseconds()},S.$utils=function(){return B},S.isValid=function(){return this.$d.toString()!==w},S.isSame=function(h,_){var I=W(h);return this.startOf(_)<=I&&I<=this.endOf(_)},S.isAfter=function(h,_){return W(h)<this.startOf(_)},S.isBefore=function(h,_){return this.endOf(_)<W(h)},S.$g=function(h,_,I){return B.u(h)?this[_]:this.set(I,h)},S.unix=function(){return Math.floor(this.valueOf()/1e3)},S.valueOf=function(){return this.$d.getTime()},S.startOf=function(h,_){var I=this,O=!!B.u(_)||_,T=B.p(h),G=function(b,E){var P=B.w(I.$u?Date.UTC(I.$y,E,b):new Date(I.$y,E,b),I);return O?P:P.endOf(s)},K=function(b,E){return B.w(I.toDate()[b].apply(I.toDate("s"),(O?[0,0,0,0]:[23,59,59,999]).slice(E)),I)},X=this.$W,ae=this.$M,F=this.$D,qe="set"+(this.$u?"UTC":"");switch(T){case g:return O?G(1,0):G(31,11);case d:return O?G(1,ae):G(0,ae+1);case c:var v=this.$locale().weekStart||0,A=(X<v?X+7:X)-v;return G(O?F-A:F+(6-A),ae);case s:case y:return K(qe+"Hours",0);case i:return K(qe+"Minutes",1);case o:return K(qe+"Seconds",2);case a:return K(qe+"Milliseconds",3);default:return this.clone()}},S.endOf=function(h){return this.startOf(h,!1)},S.$set=function(h,_){var I,O=B.p(h),T="set"+(this.$u?"UTC":""),G=(I={},I[s]=T+"Date",I[y]=T+"Date",I[d]=T+"Month",I[g]=T+"FullYear",I[i]=T+"Hours",I[o]=T+"Minutes",I[a]=T+"Seconds",I[n]=T+"Milliseconds",I)[O],K=O===s?this.$D+(_-this.$W):_;if(O===d||O===g){var X=this.clone().set(y,1);X.$d[G](K),X.init(),this.$d=X.set(y,Math.min(this.$D,X.daysInMonth())).$d}else G&&this.$d[G](K);return this.init(),this},S.set=function(h,_){return this.clone().$set(h,_)},S.get=function(h){return this[B.p(h)]()},S.add=function(h,_){var I,O=this;h=Number(h);var T=B.p(_),G=function(ae){var F=W(O);return B.w(F.date(F.date()+Math.round(ae*h)),O)};if(T===d)return this.set(d,this.$M+h);if(T===g)return this.set(g,this.$y+h);if(T===s)return G(1);if(T===c)return G(7);var K=(I={},I[o]=t,I[i]=r,I[a]=e,I)[T]||1,X=this.$d.getTime()+h*K;return B.w(X,this)},S.subtract=function(h,_){return this.add(-1*h,_)},S.format=function(h){var _=this,I=this.$locale();if(!this.isValid())return I.invalidDate||w;var O=h||"YYYY-MM-DDTHH:mm:ssZ",T=B.z(this),G=this.$H,K=this.$m,X=this.$M,ae=I.weekdays,F=I.months,qe=I.meridiem,v=function(E,P,Z,me){return E&&(E[P]||E(_,O))||Z[P].slice(0,me)},A=function(E){return B.s(G%12||12,E,"0")},b=qe||function(E,P,Z){var me=E<12?"AM":"PM";return Z?me.toLowerCase():me};return O.replace(D,function(E,P){return P||function(Z){switch(Z){case"YY":return String(_.$y).slice(-2);case"YYYY":return B.s(_.$y,4,"0");case"M":return X+1;case"MM":return B.s(X+1,2,"0");case"MMM":return v(I.monthsShort,X,F,3);case"MMMM":return v(F,X);case"D":return _.$D;case"DD":return B.s(_.$D,2,"0");case"d":return String(_.$W);case"dd":return v(I.weekdaysMin,_.$W,ae,2);case"ddd":return v(I.weekdaysShort,_.$W,ae,3);case"dddd":return ae[_.$W];case"H":return String(G);case"HH":return B.s(G,2,"0");case"h":return A(1);case"hh":return A(2);case"a":return b(G,K,!0);case"A":return b(G,K,!1);case"m":return String(K);case"mm":return B.s(K,2,"0");case"s":return String(_.$s);case"ss":return B.s(_.$s,2,"0");case"SSS":return B.s(_.$ms,3,"0");case"Z":return T}return null}(E)||T.replace(":","")})},S.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},S.diff=function(h,_,I){var O,T=this,G=B.p(_),K=W(h),X=(K.utcOffset()-this.utcOffset())*t,ae=this-K,F=function(){return B.m(T,K)};switch(G){case g:O=F()/12;break;case d:O=F();break;case m:O=F()/3;break;case c:O=(ae-X)/6048e5;break;case s:O=(ae-X)/864e5;break;case i:O=ae/r;break;case o:O=ae/t;break;case a:O=ae/e;break;default:O=ae}return I?O:B.a(O)},S.daysInMonth=function(){return this.endOf(d).$D},S.$locale=function(){return ee[this.$L]},S.locale=function(h,_){if(!h)return this.$L;var I=this.clone(),O=Je(h,_,!0);return O&&(I.$L=O),I},S.clone=function(){return B.w(this.$d,this)},S.toDate=function(){return new Date(this.valueOf())},S.toJSON=function(){return this.isValid()?this.toISOString():null},S.toISOString=function(){return this.$d.toISOString()},S.toString=function(){return this.$d.toUTCString()},R}(),Ln=Ot.prototype;return W.prototype=Ln,[["$ms",n],["$s",a],["$m",o],["$H",i],["$W",s],["$M",d],["$y",g],["$D",y]].forEach(function(R){Ln[R[1]]=function(S){return this.$g(S,R[0],R[1])}}),W.extend=function(R,S){return R.$i||(R(S,Ot,W),R.$i=!0),W},W.locale=Je,W.isDayjs=He,W.unix=function(R){return W(1e3*R)},W.en=ee[Ie],W.Ls=ee,W.p={},W})});var sb=u((ZW,ob)=>{"use strict";function hM(e,t,r,n){for(var a=-1,o=e==null?0:e.length;++a<o;){var i=e[a];t(n,i,r(i),e)}return n}ob.exports=hM});var ub=u((e2,ib)=>{"use strict";var AM=Po(),bM=Sr();function IM(e,t){return e&&AM(e,t,bM)}ib.exports=IM});var cb=u((t2,pb)=>{"use strict";var SM=or();function wM(e,t){return function(r,n){if(r==null)return r;if(!SM(r))return e(r,n);for(var a=r.length,o=t?a:-1,i=Object(r);(t?o--:++o<a)&&n(i[o],o,i)!==!1;);return r}}pb.exports=wM});var fb=u((r2,lb)=>{"use strict";var vM=ub(),EM=cb(),_M=EM(vM);lb.exports=_M});var mb=u((n2,gb)=>{"use strict";var xM=fb();function RM(e,t,r,n){return xM(e,function(a,o,i){t(n,a,r(a),i)}),n}gb.exports=RM});var hb=u((a2,yb)=>{"use strict";var TM=sb(),OM=mb(),PM=Ti(),CM=de();function qM(e,t){return function(r,n){var a=CM(r)?TM:OM,o=t?t():{};return a(r,e,PM(n,2),o)}}yb.exports=qM});var bb=u((o2,Ab)=>{"use strict";var UM=sn(),LM=hb(),DM=Object.prototype,BM=DM.hasOwnProperty,NM=LM(function(e,t,r){BM.call(e,r)?e[r].push(t):UM(e,r,[t])});Ab.exports=NM});var HM={};x(HM,{Method:()=>Ya,ai:()=>Fi,api:()=>Xi,auditLogs:()=>Et,automations:()=>Ia,backups:()=>Ne,branding:()=>ga,constants:()=>Vr,environmentVariables:()=>st,features:()=>Re,groups:()=>z,init:()=>If,licensing:()=>tt,logger:()=>jt,mappers:()=>ne,middleware:()=>Bi,plugins:()=>Sa,publicApi:()=>Ea,quotas:()=>at,scimGroups:()=>_r,scimUsers:()=>ve,sdk:()=>qi,users:()=>dt,utils:()=>er});module.exports=jb(HM);var Ya=(o=>(o.POST="POST",o.GET="GET",o.PATCH="PATCH",o.DELETE="DELETE",o.PUT="PUT",o))(Ya||{});var qi={};x(qi,{ai:()=>ma,auditLogs:()=>Et,automations:()=>Ia,backups:()=>Ne,branding:()=>ga,environmentVariables:()=>st,features:()=>Re,groups:()=>z,init:()=>If,licensing:()=>tt,logger:()=>jt,plugins:()=>Sa,publicApi:()=>Ea,quotas:()=>at,scimGroups:()=>_r,scimUsers:()=>ve,users:()=>dt,utils:()=>er});var ga={};x(ga,{getBrandingConfig:()=>MR});var Re={};x(Re,{checkBackups:()=>xe,checkFeature:()=>da,checkFeatures:()=>Jo,checkSCIM:()=>es,isAICustomConfigsEnabled:()=>BR,isAppBuildersEnabled:()=>Nt,isAuditLogsEnabled:()=>fa,isBackupsEnabled:()=>zo,isBrandingEnabled:()=>Xo,isBudibaseAIEnabled:()=>An,isEnforceableSSO:()=>Ld,isExpandedPublicApiEnabled:()=>lt,isSSOEnforced:()=>UR,isSyncAutomationsEnabled:()=>CR,isTriggerAutomationRunEnabled:()=>qR,isUserGroupsEnabled:()=>Zo,isViewPermissionEnabled:()=>LR,isViewReadonlyColumnsEnabled:()=>DR});var fe=require("@budibase/types"),ct=require("@budibase/backend-core");var tt={};x(tt,{cache:()=>Qe,client:()=>bt,features:()=>Kn,getFreeLicense:()=>Ko,getLicense:()=>Yo,getLicenseFromKey:()=>xR,keys:()=>Ho,offline:()=>ca,quotas:()=>Hn});var Qe={};x(Qe,{getCachedLicense:()=>qd,invalidate:()=>Ud,refresh:()=>Dt});var Ka=require("@budibase/backend-core"),Tr,Wb=async()=>{Tr=await new Ka.redis.Client(Ka.redis.utils.Databases.LICENSES).init()},Vb=async()=>{Tr&&await Tr.finish()};process.on("exit",async()=>{await Vb()});var Ha=async()=>(Tr||await Wb(),Tr);var bt={};x(bt,{activateLicenseKey:()=>po,getLicense:()=>Xt,getLicenseFromKey:()=>uo,triggerQuota:()=>UI});var nu=M(require("node-fetch"));var au=require("@budibase/backend-core"),Ja=class{constructor(t){this.apiCall=t=>async(r="",n={})=>{n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let a=n.headers["Content-Type"]==="application/json";au.logging.correlation.setHeader(n.headers);let o={method:t,body:a?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return(0,nu.default)(`${this.host}${r}`,o)};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}},za=Ja;var Wn=require("@budibase/types"),N=require("@budibase/backend-core");var Xe={};x(Xe,{bustCache:()=>iu,getCurrentUsageValues:()=>lu,getQuotaUsage:()=>Pt,setAllUsage:()=>ro,setAppUsageValue:()=>to,setUsage:()=>uu,setUsagePerApp:()=>pu,utils:()=>Pr});var ye=require("@budibase/types"),le=require("@budibase/backend-core");var Pr={};x(Pr,{generateBaseQuotaUsage:()=>Nn,generateNewMonthlyQuotas:()=>Or,generateNewQuotaUsage:()=>Za,getBreakdownName:()=>Gn,getCurrentMonthString:()=>yt,setCurrentMonth:()=>Mn,setQuotaReset:()=>Xa});var ue=require("@budibase/types"),Bn=require("@budibase/backend-core"),ou=()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth()+1,1).toISOString()},Xa=e=>{e.quotaReset=ou()},yt=()=>{let e=new Date,t=e.getMonth()+1,r=e.getFullYear();return`${t}-${r}`},Nn=()=>({usageQuota:{[ue.StaticQuotaName.APPS]:0,[ue.StaticQuotaName.ROWS]:0,[ue.StaticQuotaName.PLUGINS]:0,[ue.StaticQuotaName.USERS]:0,[ue.StaticQuotaName.CREATORS]:0,[ue.StaticQuotaName.USER_GROUPS]:0,[ue.StaticQuotaName.AI_CUSTOM_CONFIGS]:0,triggers:{}},monthly:{[yt()]:Or()}}),Za=()=>{let e={_id:Bn.db.StaticDatabases.GLOBAL.docs.usageQuota,quotaReset:ou(),...Nn(),apps:{}};return Mn(e),e},Or=()=>({[ue.MonthlyQuotaName.QUERIES]:0,[ue.MonthlyQuotaName.AUTOMATIONS]:0,[ue.MonthlyQuotaName.BUDIBASE_AI_CREDITS]:0,triggers:{}}),Mn=e=>{let t=yt();e.monthly||(e.monthly={}),e.monthly[t]||(e.monthly[t]=Or()),e.monthly.current=e.monthly[t]},Gn=(e,t)=>{if(!(!t||!e))switch(e){case ue.MonthlyQuotaName.AUTOMATIONS:return ue.BreakdownQuotaName.AUTOMATIONS;case ue.MonthlyQuotaName.QUERIES:return Bn.db.isTableId(t)?ue.BreakdownQuotaName.ROW_QUERIES:Bn.db.isDatasourceId(t)?ue.BreakdownQuotaName.DATASOURCE_QUERIES:void 0}};var Kb=le.Duration.fromSeconds(60).toMs(),{Writethrough:Hb}=le.cache.writethrough;function Jb(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}var eo=()=>new Hb(le.tenancy.getGlobalDB(),Kb),iu=async()=>{let e=le.tenancy.getGlobalDB();try{let t=await e.get(le.db.StaticDatabases.GLOBAL.docs.usageQuota);t?._rev&&await e.remove(le.db.StaticDatabases.GLOBAL.docs.usageQuota,t._rev)}catch(t){if(t.status!==404)throw t}},Pt=async()=>{let e=eo(),t;try{t=await e.get(le.db.StaticDatabases.GLOBAL.docs.usageQuota),Mn(t),Xa(t)}catch(r){if(r.status===404){t=Za();let n=await e.put(t);t._rev=n.rev}else throw r}return Jb(t)},uu=async(e,t,r)=>ro({name:t,type:r,values:{total:e}}),pu=async(e,t,r)=>{let n=eo(),a=await Pt(),o=Object.values(e).reduce((s,c)=>s+c,0);for(let[s,c]of Object.entries(e))a=cu(a,t,r,{total:o,app:c},{appId:s});let i=await n.put(a);return a._rev=i.rev,a},zb=(e,t,r,n)=>{let a=Gn(t,r);if(!a||!n?.breakdown)return e;e.breakdown||(e.breakdown={}),e.breakdown[a]||(e.breakdown[a]={parent:t,values:{}});let o=e.breakdown[a];return o.values[r]=n.breakdown,e},to=(e,t,r,n={},a)=>{let o;try{o=le.db.getProdAppID(n?.appId||le.context.getAppId())}catch{}if(!o||!a.app||!ye.APP_QUOTA_NAMES.includes(t))return e;e.apps?.[o]||(e.apps={...e.apps,[o]:Nn()});let i=e.apps[o];switch(r){case ye.QuotaUsageType.STATIC:i.usageQuota[t]=a.app;break;case ye.QuotaUsageType.MONTHLY:{let s=yt(),c=t,d=i.monthly[s];d||(i.monthly[s]=Or(),d=i.monthly[s]),d[c]=a.app,ye.BREAKDOWN_QUOTA_NAMES.includes(c)&&n?.id&&(d=zb(d,c,n.id,a));break}}return e},su=(e,t,r,n)=>{if(!ye.APP_QUOTA_NAMES.includes(r))return{};let a;try{a=le.db.getProdAppID(le.context.getAppId())}catch{}if(!a||!e.apps||!e.apps[a])return{app:0};let o=e.apps[a];switch(t){case ye.QuotaUsageType.STATIC:if(o.usageQuota?.[r])return{app:o.usageQuota[r]};break;case ye.QuotaUsageType.MONTHLY:{let i=yt(),s=r;if(!o.monthly?.[i]?.[s])break;let c=o.monthly[i],d=c[s],m,g=Gn(s,n);return g&&n&&c.breakdown?.[g]&&(m=c.breakdown[g]?.values[n]),{app:d,breakdown:m||0}}}return{app:0}},Xb=(e,t,r)=>{t.usageQuota.triggers||(t.usageQuota.triggers={}),r&&(t.usageQuota.triggers[e]=r)},Zb=(e,t,r,n)=>{r.monthly[t].triggers||(r.monthly[t].triggers={}),n&&(r.monthly[t].triggers[e]=n)},cu=(e,t,r,n,a={})=>{if(r===ye.QuotaUsageType.STATIC)t=t,e.usageQuota[t]=n.total,Xb(t,e,n.triggers);else if(r===ye.QuotaUsageType.MONTHLY){t=t;let o=yt();e.monthly[o][t]=n.total,Zb(t,o,e,n.triggers)}else throw new Error(`Invalid usage type: ${r}`);return to(e,t,r,a,n)},ro=async e=>{let t=Array.isArray(e)?e:[e],r=eo(),n=await Pt();for(let o of t)n=cu(n,o.name,o.type,o.values,o.opts);let a=await r.put(n,0);return n._rev=a.rev,n},lu=async(e,t,r)=>{let n=await Pt(),a=0,o={};switch(e){case ye.QuotaUsageType.STATIC:if(n.usageQuota[t]){let i=t;a=n.usageQuota[i],o=su(n,e,t,r)}break;case ye.QuotaUsageType.MONTHLY:{let i=yt(),s=t;n.monthly[i][s]&&(a=n.monthly[i][s],o=su(n,e,t,r));break}default:throw new Error(`Invalid usage type: ${e}`)}return ye.APP_QUOTA_NAMES.includes(t)&&!(o.app||o.breakdown)&&(o.app=o.app||0,o.breakdown=o.breakdown||0),{total:a,app:o.app,breakdown:o.breakdown}};var Le={};x(Le,{destroy:()=>rI,get:()=>no,save:()=>tI});var ht=require("@budibase/backend-core"),eI=()=>({_id:ht.StaticDatabases.GLOBAL.docs.licenseInfo}),tI=async e=>{let t=await no();t={...t,...e};let n=await ht.tenancy.getGlobalDB().put(t);return t._rev=n.rev,t},no=async()=>{let e=ht.tenancy.getGlobalDB();try{return await e.get(ht.StaticDatabases.GLOBAL.docs.licenseInfo)}catch(t){if(t.status===404)return eI();throw t}},rI=async()=>{let e=ht.tenancy.getGlobalDB(),t=await no();t&&t._rev&&await e.remove(ht.StaticDatabases.GLOBAL.docs.licenseInfo,t._rev)};var V={};x(V,{bulkSave:()=>gI,destroy:()=>mI,fetch:()=>cI,generateUserGroupID:()=>uI,get:()=>lI,getBulk:()=>dI,getByName:()=>ao,getGroupUsers:()=>Fn,getGroupUsersParams:()=>yu,getUserGroupsParams:()=>mu,save:()=>fI});var Q=require("@budibase/backend-core");var $e=require("@budibase/types"),Ht=require("@budibase/backend-core");async function du(){let e=Ht.sql.designDoc.base("type");e.sql.tables={[$e.AUDIT_LOG_TYPE]:{fields:{appId:$e.SQLiteType.TEXT,event:$e.SQLiteType.TEXT,userId:$e.SQLiteType.TEXT,timestamp:$e.SQLiteType.TEXT,metadata:$e.SQLiteType.TEXT,name:$e.SQLiteType.TEXT,type:$e.SQLiteType.TEXT,fallback:$e.SQLiteType.TEXT}}};let t=Ht.context.getAuditLogsDB(),r;try{r=await t.get(Ht.SQLITE_DESIGN_DOC_ID),r={...r,...e}}catch(n){if(n.status===404)r=e;else throw n}await t.put(r)}var kn=require("@budibase/backend-core"),{ViewName:nI,SEPARATOR:aI,DocumentType:oI,createView:sI}=kn.db,iI=oI.USER+aI;async function fu(){let e=kn.tenancy.getGlobalDB(),t=`function(doc) {
4
- if (doc._id.startsWith("${iI}") && Array.isArray(doc.userGroups)) {
3
+ `)}Hf.exports=JP});var yn=u((HQ,Jf)=>{"use strict";function XP(e,t){for(var r=-1,a=e==null?0:e.length;++r<a&&t(e[r],r,e)!==!1;);return e}Jf.exports=XP});var Zf=u((zQ,Xf)=>{"use strict";var ZP=yn(),eO=io(),tO=1,rO=2,aO=8,nO=16,oO=32,sO=64,iO=128,uO=256,pO=512,cO=[["ary",iO],["bind",tO],["bindKey",rO],["curry",aO],["curryRight",nO],["flip",pO],["partial",oO],["partialRight",sO],["rearg",uO]];function lO(e,t){return ZP(cO,function(r){var a="_."+r[0];t&r[1]&&!eO(e,a)&&e.push(a)}),e.sort()}Xf.exports=lO});var qs=u((JQ,eg)=>{"use strict";var dO=Yf(),fO=zf(),gO=Ba(),mO=Zf();function yO(e,t,r){var a=t+"";return gO(e,fO(a,mO(dO(a),r)))}eg.exports=yO});var Us=u((XQ,ag)=>{"use strict";var AO=$f(),hO=Cs(),bO=qs(),IO=1,SO=2,wO=4,vO=8,tg=32,rg=64;function EO(e,t,r,a,n,o,i,s,c,f){var m=t&vO,g=m?i:void 0,y=m?void 0:i,h=m?o:void 0,E=m?void 0:o;t|=m?tg:rg,t&=~(m?rg:tg),t&wO||(t&=~(IO|SO));var T=[e,t,n,h,g,E,y,s,c,f],x=r.apply(void 0,T);return AO(e)&&hO(x,T),x.placeholder=a,bO(x,e,t)}ag.exports=EO});var Ls=u((ZQ,ng)=>{"use strict";function RO(e){var t=e;return t.placeholder}ng.exports=RO});var sg=u((ej,og)=>{"use strict";var xO=$t(),_O=Zr(),TO=Math.min;function PO(e,t){for(var r=e.length,a=TO(t.length,r),n=xO(e);a--;){var o=t[a];e[a]=_O(o,r)?n[o]:void 0}return e}og.exports=PO});var An=u((tj,ug)=>{"use strict";var ig="__lodash_placeholder__";function OO(e,t){for(var r=-1,a=e.length,n=0,o=[];++r<a;){var i=e[r];(i===t||i===ig)&&(e[r]=ig,o[n++]=r)}return o}ug.exports=OO});var Ds=u((rj,lg)=>{"use strict";var CO=_s(),qO=Ts(),UO=Tf(),pg=la(),LO=Us(),DO=Ls(),BO=sg(),NO=An(),GO=re(),MO=1,kO=2,FO=8,QO=16,jO=128,WO=512;function cg(e,t,r,a,n,o,i,s,c,f){var m=t&jO,g=t&MO,y=t&kO,h=t&(FO|QO),E=t&WO,T=y?void 0:pg(e);function x(){for(var R=arguments.length,L=Array(R),Xe=R;Xe--;)L[Xe]=arguments[Xe];if(h)var ye=DO(x),Ze=UO(L,ye);if(a&&(L=CO(L,a,n,h)),o&&(L=qO(L,o,i,h)),R-=Ze,h&&R<f){var Ct=NO(L,ye);return LO(e,t,cg,x.placeholder,r,L,Ct,s,c,f-R)}var lr=g?r:this,dr=y?lr[e]:e;return R=L.length,s?L=BO(L,s):E&&R>1&&L.reverse(),m&&c<R&&(L.length=c),this&&this!==GO&&this instanceof x&&(dr=T||pg(dr)),dr.apply(lr,L)}return x}lg.exports=cg});var fg=u((aj,dg)=>{"use strict";var $O=Da(),VO=la(),KO=Ds(),YO=Us(),HO=Ls(),zO=An(),JO=re();function XO(e,t,r){var a=VO(e);function n(){for(var o=arguments.length,i=Array(o),s=o,c=HO(n);s--;)i[s]=arguments[s];var f=o<3&&i[0]!==c&&i[o-1]!==c?[]:zO(i,c);if(o-=f.length,o<r)return YO(e,t,KO,n.placeholder,void 0,i,f,void 0,void 0,r-o);var m=this&&this!==JO&&this instanceof n?a:e;return $O(m,this,i)}return n}dg.exports=XO});var mg=u((nj,gg)=>{"use strict";var ZO=Da(),eC=la(),tC=re(),rC=1;function aC(e,t,r,a){var n=t&rC,o=eC(e);function i(){for(var s=-1,c=arguments.length,f=-1,m=a.length,g=Array(m+c),y=this&&this!==tC&&this instanceof i?o:e;++f<m;)g[f]=a[f];for(;c--;)g[f++]=arguments[++s];return ZO(y,n?r:this,g)}return i}gg.exports=aC});var Sg=u((oj,Ig)=>{"use strict";var nC=_s(),oC=Ts(),yg=An(),Ag="__lodash_placeholder__",Bs=1,sC=2,iC=4,hg=8,da=128,bg=256,uC=Math.min;function pC(e,t){var r=e[1],a=t[1],n=r|a,o=n<(Bs|sC|da),i=a==da&&r==hg||a==da&&r==bg&&e[7].length<=t[8]||a==(da|bg)&&t[7].length<=t[8]&&r==hg;if(!(o||i))return e;a&Bs&&(e[2]=t[2],n|=r&Bs?0:iC);var s=t[3];if(s){var c=e[3];e[3]=c?nC(c,s,t[4]):s,e[4]=c?yg(e[3],Ag):t[4]}return s=t[5],s&&(c=e[5],e[5]=c?oC(c,s,t[6]):s,e[6]=c?yg(e[5],Ag):t[6]),s=t[7],s&&(e[7]=s),a&da&&(e[8]=e[8]==null?t[8]:uC(e[8],t[8])),e[9]==null&&(e[9]=t[9]),e[0]=t[0],e[1]=n,e}Ig.exports=pC});var vg=u((sj,wg)=>{"use strict";var cC=/\s/;function lC(e){for(var t=e.length;t--&&cC.test(e.charAt(t)););return t}wg.exports=lC});var Rg=u((ij,Eg)=>{"use strict";var dC=vg(),fC=/^\s+/;function gC(e){return e&&e.slice(0,dC(e)+1).replace(fC,"")}Eg.exports=gC});var ar=u((uj,xg)=>{"use strict";var mC=nt(),yC=pe(),AC="[object Symbol]";function hC(e){return typeof e=="symbol"||yC(e)&&mC(e)==AC}xg.exports=hC});var Og=u((pj,Pg)=>{"use strict";var bC=Rg(),_g=Ie(),IC=ar(),Tg=0/0,SC=/^[-+]0x[0-9a-f]+$/i,wC=/^0b[01]+$/i,vC=/^0o[0-7]+$/i,EC=parseInt;function RC(e){if(typeof e=="number")return e;if(IC(e))return Tg;if(_g(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=_g(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=bC(e);var r=wC.test(e);return r||vC.test(e)?EC(e.slice(2),r?2:8):SC.test(e)?Tg:+e}Pg.exports=RC});var Ug=u((cj,qg)=>{"use strict";var xC=Og(),Cg=1/0,_C=17976931348623157e292;function TC(e){if(!e)return e===0?e:0;if(e=xC(e),e===Cg||e===-Cg){var t=e<0?-1:1;return t*_C}return e===e?e:0}qg.exports=TC});var Ns=u((lj,Lg)=>{"use strict";var PC=Ug();function OC(e){var t=PC(e),r=t%1;return t===t?r?t-r:t:0}Lg.exports=OC});var hn=u((dj,Mg)=>{"use strict";var CC=xs(),qC=Ef(),UC=fg(),LC=Ds(),DC=mg(),BC=Ps(),NC=Sg(),GC=Cs(),MC=qs(),Dg=Ns(),kC="Expected a function",Bg=1,FC=2,Gs=8,Ms=16,ks=32,Ng=64,Gg=Math.max;function QC(e,t,r,a,n,o,i,s){var c=t&FC;if(!c&&typeof e!="function")throw new TypeError(kC);var f=a?a.length:0;if(f||(t&=~(ks|Ng),a=n=void 0),i=i===void 0?i:Gg(Dg(i),0),s=s===void 0?s:Dg(s),f-=n?n.length:0,t&Ng){var m=a,g=n;a=n=void 0}var y=c?void 0:BC(e),h=[e,t,r,a,n,m,g,o,i,s];if(y&&NC(h,y),e=h[0],t=h[1],r=h[2],a=h[3],n=h[4],s=h[9]=h[9]===void 0?c?0:e.length:Gg(h[9]-f,0),!s&&t&(Gs|Ms)&&(t&=~(Gs|Ms)),!t||t==Bg)var E=qC(e,t,r);else t==Gs||t==Ms?E=UC(e,t,s):(t==ks||t==(Bg|ks))&&!n.length?E=DC(e,t,r,a):E=LC.apply(void 0,h);var T=y?CC:GC;return MC(T(E,h),e,t)}Mg.exports=QC});var Fg=u((fj,kg)=>{"use strict";var jC=hn(),WC=128;function $C(e,t,r){return t=r?void 0:t,t=e&&t==null?e.length:t,jC(e,WC,void 0,void 0,void 0,void 0,t)}kg.exports=$C});var jg=u((gj,Qg)=>{"use strict";var VC=bo(),KC=VC(Object.keys,Object);Qg.exports=KC});var Fs=u((mj,Wg)=>{"use strict";var YC=Wa(),HC=jg(),zC=Object.prototype,JC=zC.hasOwnProperty;function XC(e){if(!YC(e))return HC(e);var t=[];for(var r in Object(e))JC.call(e,r)&&r!="constructor"&&t.push(r);return t}Wg.exports=XC});var nr=u((yj,$g)=>{"use strict";var ZC=Ro(),eq=Fs(),tq=Qt();function rq(e){return tq(e)?ZC(e):eq(e)}$g.exports=rq});var Qs=u((Aj,Vg)=>{"use strict";var aq=Yt(),nq=nr();function oq(e,t){return e&&aq(t,nq(t),e)}Vg.exports=oq});var Yg=u((hj,Kg)=>{"use strict";var sq=Yt(),iq=Ht();function uq(e,t){return e&&sq(t,iq(t),e)}Kg.exports=uq});var zg=u((bj,Hg)=>{"use strict";function pq(e,t){for(var r=-1,a=e==null?0:e.length,n=0,o=[];++r<a;){var i=e[r];t(i,r,e)&&(o[n++]=i)}return o}Hg.exports=pq});var Ws=u((Ij,Jg)=>{"use strict";function cq(){return[]}Jg.exports=cq});var bn=u((Sj,Zg)=>{"use strict";var lq=zg(),dq=Ws(),fq=Object.prototype,gq=fq.propertyIsEnumerable,Xg=Object.getOwnPropertySymbols,mq=Xg?function(e){return e==null?[]:(e=Object(e),lq(Xg(e),function(t){return gq.call(e,t)}))}:dq;Zg.exports=mq});var tm=u((wj,em)=>{"use strict";var yq=Yt(),Aq=bn();function hq(e,t){return yq(e,Aq(e),t)}em.exports=hq});var $s=u((vj,rm)=>{"use strict";var bq=La(),Iq=ja(),Sq=bn(),wq=Ws(),vq=Object.getOwnPropertySymbols,Eq=vq?function(e){for(var t=[];e;)bq(t,Sq(e)),e=Iq(e);return t}:wq;rm.exports=Eq});var nm=u((Ej,am)=>{"use strict";var Rq=Yt(),xq=$s();function _q(e,t){return Rq(e,xq(e),t)}am.exports=_q});var Vs=u((Rj,om)=>{"use strict";var Tq=La(),Pq=z();function Oq(e,t,r){var a=t(e);return Pq(e)?a:Tq(a,r(e))}om.exports=Oq});var Ks=u((xj,sm)=>{"use strict";var Cq=Vs(),qq=bn(),Uq=nr();function Lq(e){return Cq(e,Uq,qq)}sm.exports=Lq});var um=u((_j,im)=>{"use strict";var Dq=Vs(),Bq=$s(),Nq=Ht();function Gq(e){return Dq(e,Nq,Bq)}im.exports=Gq});var cm=u((Tj,pm)=>{"use strict";var Mq=ot(),kq=re(),Fq=Mq(kq,"DataView");pm.exports=Fq});var dm=u((Pj,lm)=>{"use strict";var Qq=ot(),jq=re(),Wq=Qq(jq,"Promise");lm.exports=Wq});var sr=u((Oj,bm)=>{"use strict";var Ys=cm(),Hs=Na(),zs=dm(),Js=po(),Xs=Es(),hm=nt(),or=ro(),fm="[object Map]",$q="[object Object]",gm="[object Promise]",mm="[object Set]",ym="[object WeakMap]",Am="[object DataView]",Vq=or(Ys),Kq=or(Hs),Yq=or(zs),Hq=or(Js),zq=or(Xs),Rt=hm;(Ys&&Rt(new Ys(new ArrayBuffer(1)))!=Am||Hs&&Rt(new Hs)!=fm||zs&&Rt(zs.resolve())!=gm||Js&&Rt(new Js)!=mm||Xs&&Rt(new Xs)!=ym)&&(Rt=function(e){var t=hm(e),r=t==$q?e.constructor:void 0,a=r?or(r):"";if(a)switch(a){case Vq:return Am;case Kq:return fm;case Yq:return gm;case Hq:return mm;case zq:return ym}return t});bm.exports=Rt});var Sm=u((Cj,Im)=>{"use strict";var Jq=Object.prototype,Xq=Jq.hasOwnProperty;function Zq(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Xq.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Im.exports=Zq});var vm=u((qj,wm)=>{"use strict";var eU=Qa();function tU(e,t){var r=t?eU(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}wm.exports=tU});var Rm=u((Uj,Em)=>{"use strict";var rU=/\w*$/;function aU(e){var t=new e.constructor(e.source,rU.exec(e));return t.lastIndex=e.lastIndex,t}Em.exports=aU});var Om=u((Lj,Pm)=>{"use strict";var xm=yt(),_m=xm?xm.prototype:void 0,Tm=_m?_m.valueOf:void 0;function nU(e){return Tm?Object(Tm.call(e)):{}}Pm.exports=nU});var qm=u((Dj,Cm)=>{"use strict";var oU=Qa(),sU=vm(),iU=Rm(),uU=Om(),pU=ho(),cU="[object Boolean]",lU="[object Date]",dU="[object Map]",fU="[object Number]",gU="[object RegExp]",mU="[object Set]",yU="[object String]",AU="[object Symbol]",hU="[object ArrayBuffer]",bU="[object DataView]",IU="[object Float32Array]",SU="[object Float64Array]",wU="[object Int8Array]",vU="[object Int16Array]",EU="[object Int32Array]",RU="[object Uint8Array]",xU="[object Uint8ClampedArray]",_U="[object Uint16Array]",TU="[object Uint32Array]";function PU(e,t,r){var a=e.constructor;switch(t){case hU:return oU(e);case cU:case lU:return new a(+e);case bU:return sU(e,r);case IU:case SU:case wU:case vU:case EU:case RU:case xU:case _U:case TU:return pU(e,r);case dU:return new a;case fU:case yU:return new a(e);case gU:return iU(e);case mU:return new a;case AU:return uU(e)}}Cm.exports=PU});var Lm=u((Bj,Um)=>{"use strict";var OU=sr(),CU=pe(),qU="[object Map]";function UU(e){return CU(e)&&OU(e)==qU}Um.exports=UU});var Gm=u((Nj,Nm)=>{"use strict";var LU=Lm(),DU=$a(),Dm=Va(),Bm=Dm&&Dm.isMap,BU=Bm?DU(Bm):LU;Nm.exports=BU});var km=u((Gj,Mm)=>{"use strict";var NU=sr(),GU=pe(),MU="[object Set]";function kU(e){return GU(e)&&NU(e)==MU}Mm.exports=kU});var Wm=u((Mj,jm)=>{"use strict";var FU=km(),QU=$a(),Fm=Va(),Qm=Fm&&Fm.isSet,jU=Qm?QU(Qm):FU;jm.exports=jU});var Zs=u((kj,Ym)=>{"use strict";var WU=$r(),$U=yn(),VU=Eo(),KU=Qs(),YU=Yg(),HU=yo(),zU=$t(),JU=tm(),XU=nm(),ZU=Ks(),eL=um(),tL=sr(),rL=Sm(),aL=qm(),nL=Io(),oL=z(),sL=zr(),iL=Gm(),uL=Ie(),pL=Wm(),cL=nr(),lL=Ht(),dL=1,fL=2,gL=4,$m="[object Arguments]",mL="[object Array]",yL="[object Boolean]",AL="[object Date]",hL="[object Error]",Vm="[object Function]",bL="[object GeneratorFunction]",IL="[object Map]",SL="[object Number]",Km="[object Object]",wL="[object RegExp]",vL="[object Set]",EL="[object String]",RL="[object Symbol]",xL="[object WeakMap]",_L="[object ArrayBuffer]",TL="[object DataView]",PL="[object Float32Array]",OL="[object Float64Array]",CL="[object Int8Array]",qL="[object Int16Array]",UL="[object Int32Array]",LL="[object Uint8Array]",DL="[object Uint8ClampedArray]",BL="[object Uint16Array]",NL="[object Uint32Array]",C={};C[$m]=C[mL]=C[_L]=C[TL]=C[yL]=C[AL]=C[PL]=C[OL]=C[CL]=C[qL]=C[UL]=C[IL]=C[SL]=C[Km]=C[wL]=C[vL]=C[EL]=C[RL]=C[LL]=C[DL]=C[BL]=C[NL]=!0;C[hL]=C[Vm]=C[xL]=!1;function In(e,t,r,a,n,o){var i,s=t&dL,c=t&fL,f=t&gL;if(r&&(i=n?r(e,a,n,o):r(e)),i!==void 0)return i;if(!uL(e))return e;var m=oL(e);if(m){if(i=rL(e),!s)return zU(e,i)}else{var g=tL(e),y=g==Vm||g==bL;if(sL(e))return HU(e,s);if(g==Km||g==$m||y&&!n){if(i=c||y?{}:nL(e),!s)return c?XU(e,YU(i,e)):JU(e,KU(i,e))}else{if(!C[g])return n?e:{};i=aL(e,g,s)}}o||(o=new WU);var h=o.get(e);if(h)return h;o.set(e,i),pL(e)?e.forEach(function(x){i.add(In(x,t,r,x,e,o))}):iL(e)&&e.forEach(function(x,R){i.set(R,In(x,t,r,R,e,o))});var E=f?c?eL:ZU:c?lL:cL,T=m?void 0:E(e);return $U(T||e,function(x,R){T&&(R=x,x=e[R]),VU(i,R,In(x,t,r,R,e,o))}),i}Ym.exports=In});var zm=u((Fj,Hm)=>{"use strict";var GL=Zs(),ML=4;function kL(e){return GL(e,ML)}Hm.exports=kL});var Xm=u((Qj,Jm)=>{"use strict";var FL=hn(),QL=8;function ei(e,t,r){t=r?void 0:t;var a=FL(e,QL,void 0,void 0,void 0,void 0,void 0,t);return a.placeholder=ei.placeholder,a}ei.placeholder={};Jm.exports=ei});var ey=u((jj,Zm)=>{"use strict";var jL=nt(),WL=pe(),$L=So(),VL="[object DOMException]",KL="[object Error]";function YL(e){if(!WL(e))return!1;var t=jL(e);return t==KL||t==VL||typeof e.message=="string"&&typeof e.name=="string"&&!$L(e)}Zm.exports=YL});var ry=u((Wj,ty)=>{"use strict";var HL=sr(),zL=pe(),JL="[object WeakMap]";function XL(e){return zL(e)&&HL(e)==JL}ty.exports=XL});var ny=u(($j,ay)=>{"use strict";function ZL(e,t){for(var r=-1,a=e==null?0:e.length;++r<a;)if(t(e[r],r,e))return!0;return!1}ay.exports=ZL});var ti=u((Vj,oy)=>{"use strict";var eD=so(),tD=ny(),rD=uo(),aD=1,nD=2;function oD(e,t,r,a,n,o){var i=r&aD,s=e.length,c=t.length;if(s!=c&&!(i&&c>s))return!1;var f=o.get(e),m=o.get(t);if(f&&m)return f==t&&m==e;var g=-1,y=!0,h=r&nD?new eD:void 0;for(o.set(e,t),o.set(t,e);++g<s;){var E=e[g],T=t[g];if(a)var x=i?a(T,E,g,t,e,o):a(E,T,g,e,t,o);if(x!==void 0){if(x)continue;y=!1;break}if(h){if(!tD(t,function(R,L){if(!rD(h,L)&&(E===R||n(E,R,r,a,o)))return h.push(L)})){y=!1;break}}else if(!(E===T||n(E,T,r,a,o))){y=!1;break}}return o.delete(e),o.delete(t),y}oy.exports=oD});var iy=u((Kj,sy)=>{"use strict";function sD(e){var t=-1,r=Array(e.size);return e.forEach(function(a,n){r[++t]=[n,a]}),r}sy.exports=sD});var dy=u((Yj,ly)=>{"use strict";var uy=yt(),py=Ao(),iD=Mt(),uD=ti(),pD=iy(),cD=ka(),lD=1,dD=2,fD="[object Boolean]",gD="[object Date]",mD="[object Error]",yD="[object Map]",AD="[object Number]",hD="[object RegExp]",bD="[object Set]",ID="[object String]",SD="[object Symbol]",wD="[object ArrayBuffer]",vD="[object DataView]",cy=uy?uy.prototype:void 0,ri=cy?cy.valueOf:void 0;function ED(e,t,r,a,n,o,i){switch(r){case vD:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case wD:return!(e.byteLength!=t.byteLength||!o(new py(e),new py(t)));case fD:case gD:case AD:return iD(+e,+t);case mD:return e.name==t.name&&e.message==t.message;case hD:case ID:return e==t+"";case yD:var s=pD;case bD:var c=a&lD;if(s||(s=cD),e.size!=t.size&&!c)return!1;var f=i.get(e);if(f)return f==t;a|=dD,i.set(e,t);var m=uD(s(e),s(t),a,n,o,i);return i.delete(e),m;case SD:if(ri)return ri.call(e)==ri.call(t)}return!1}ly.exports=ED});var my=u((Hj,gy)=>{"use strict";var fy=Ks(),RD=1,xD=Object.prototype,_D=xD.hasOwnProperty;function TD(e,t,r,a,n,o){var i=r&RD,s=fy(e),c=s.length,f=fy(t),m=f.length;if(c!=m&&!i)return!1;for(var g=c;g--;){var y=s[g];if(!(i?y in t:_D.call(t,y)))return!1}var h=o.get(e),E=o.get(t);if(h&&E)return h==t&&E==e;var T=!0;o.set(e,t),o.set(t,e);for(var x=i;++g<c;){y=s[g];var R=e[y],L=t[y];if(a)var Xe=i?a(L,R,y,t,e,o):a(R,L,y,e,t,o);if(!(Xe===void 0?R===L||n(R,L,r,a,o):Xe)){T=!1;break}x||(x=y=="constructor")}if(T&&!x){var ye=e.constructor,Ze=t.constructor;ye!=Ze&&"constructor"in e&&"constructor"in t&&!(typeof ye=="function"&&ye instanceof ye&&typeof Ze=="function"&&Ze instanceof Ze)&&(T=!1)}return o.delete(e),o.delete(t),T}gy.exports=TD});var vy=u((zj,wy)=>{"use strict";var ai=$r(),PD=ti(),OD=dy(),CD=my(),yy=sr(),Ay=z(),hy=zr(),qD=Ka(),UD=1,by="[object Arguments]",Iy="[object Array]",Sn="[object Object]",LD=Object.prototype,Sy=LD.hasOwnProperty;function DD(e,t,r,a,n,o){var i=Ay(e),s=Ay(t),c=i?Iy:yy(e),f=s?Iy:yy(t);c=c==by?Sn:c,f=f==by?Sn:f;var m=c==Sn,g=f==Sn,y=c==f;if(y&&hy(e)){if(!hy(t))return!1;i=!0,m=!1}if(y&&!m)return o||(o=new ai),i||qD(e)?PD(e,t,r,a,n,o):OD(e,t,c,r,a,n,o);if(!(r&UD)){var h=m&&Sy.call(e,"__wrapped__"),E=g&&Sy.call(t,"__wrapped__");if(h||E){var T=h?e.value():e,x=E?t.value():t;return o||(o=new ai),n(T,x,r,a,o)}}return y?(o||(o=new ai),CD(e,t,r,a,n,o)):!1}wy.exports=DD});var ni=u((Jj,xy)=>{"use strict";var BD=vy(),Ey=pe();function Ry(e,t,r,a,n){return e===t?!0:e==null||t==null||!Ey(e)&&!Ey(t)?e!==e&&t!==t:BD(e,t,r,a,Ry,n)}xy.exports=Ry});var Ty=u((Xj,_y)=>{"use strict";var ND=$r(),GD=ni(),MD=1,kD=2;function FD(e,t,r,a){var n=r.length,o=n,i=!a;if(e==null)return!o;for(e=Object(e);n--;){var s=r[n];if(i&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++n<o;){s=r[n];var c=s[0],f=e[c],m=s[1];if(i&&s[2]){if(f===void 0&&!(c in e))return!1}else{var g=new ND;if(a)var y=a(f,m,c,e,t,g);if(!(y===void 0?GD(m,f,MD|kD,a,g):y))return!1}}return!0}_y.exports=FD});var oi=u((Zj,Py)=>{"use strict";var QD=Ie();function jD(e){return e===e&&!QD(e)}Py.exports=jD});var Cy=u((eW,Oy)=>{"use strict";var WD=oi(),$D=nr();function VD(e){for(var t=$D(e),r=t.length;r--;){var a=t[r],n=e[a];t[r]=[a,n,WD(n)]}return t}Oy.exports=VD});var si=u((tW,qy)=>{"use strict";function KD(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}qy.exports=KD});var Ly=u((rW,Uy)=>{"use strict";var YD=Ty(),HD=Cy(),zD=si();function JD(e){var t=HD(e);return t.length==1&&t[0][2]?zD(t[0][0],t[0][1]):function(r){return r===e||YD(r,e,t)}}Uy.exports=JD});var wn=u((aW,Dy)=>{"use strict";var XD=z(),ZD=ar(),eB=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,tB=/^\w*$/;function rB(e,t){if(XD(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||ZD(e)?!0:tB.test(e)||!eB.test(e)||t!=null&&e in Object(t)}Dy.exports=rB});var Gy=u((nW,Ny)=>{"use strict";var By=Ga(),aB="Expected a function";function ii(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(aB);var r=function(){var a=arguments,n=t?t.apply(this,a):a[0],o=r.cache;if(o.has(n))return o.get(n);var i=e.apply(this,a);return r.cache=o.set(n,i)||o,i};return r.cache=new(ii.Cache||By),r}ii.Cache=By;Ny.exports=ii});var ky=u((oW,My)=>{"use strict";var nB=Gy(),oB=500;function sB(e){var t=nB(e,function(a){return r.size===oB&&r.clear(),a}),r=t.cache;return t}My.exports=sB});var ui=u((sW,Fy)=>{"use strict";var iB=ky(),uB=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pB=/\\(\\)?/g,cB=iB(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(uB,function(r,a,n,o){t.push(n?o.replace(pB,"$1"):a||r)}),t});Fy.exports=cB});var pi=u((iW,Qy)=>{"use strict";function lB(e,t){for(var r=-1,a=e==null?0:e.length,n=Array(a);++r<a;)n[r]=t(e[r],r,e);return n}Qy.exports=lB});var Yy=u((uW,Ky)=>{"use strict";var jy=yt(),dB=pi(),fB=z(),gB=ar(),mB=1/0,Wy=jy?jy.prototype:void 0,$y=Wy?Wy.toString:void 0;function Vy(e){if(typeof e=="string")return e;if(fB(e))return dB(e,Vy)+"";if(gB(e))return $y?$y.call(e):"";var t=e+"";return t=="0"&&1/e==-mB?"-0":t}Ky.exports=Vy});var ci=u((pW,Hy)=>{"use strict";var yB=Yy();function AB(e){return e==null?"":yB(e)}Hy.exports=AB});var li=u((cW,zy)=>{"use strict";var hB=z(),bB=wn(),IB=ui(),SB=ci();function wB(e,t){return hB(e)?e:bB(e,t)?[e]:IB(SB(e))}zy.exports=wB});var ir=u((lW,Jy)=>{"use strict";var vB=ar(),EB=1/0;function RB(e){if(typeof e=="string"||vB(e))return e;var t=e+"";return t=="0"&&1/e==-EB?"-0":t}Jy.exports=RB});var di=u((dW,Xy)=>{"use strict";var xB=li(),_B=ir();function TB(e,t){t=xB(t,e);for(var r=0,a=t.length;e!=null&&r<a;)e=e[_B(t[r++])];return r&&r==a?e:void 0}Xy.exports=TB});var eA=u((fW,Zy)=>{"use strict";var PB=di();function OB(e,t,r){var a=e==null?void 0:PB(e,t);return a===void 0?r:a}Zy.exports=OB});var rA=u((gW,tA)=>{"use strict";function CB(e,t){return e!=null&&t in Object(e)}tA.exports=CB});var nA=u((mW,aA)=>{"use strict";var qB=li(),UB=Gr(),LB=z(),DB=Zr(),BB=Fa(),NB=ir();function GB(e,t,r){t=qB(t,e);for(var a=-1,n=t.length,o=!1;++a<n;){var i=NB(t[a]);if(!(o=e!=null&&r(e,i)))break;e=e[i]}return o||++a!=n?o:(n=e==null?0:e.length,!!n&&BB(n)&&DB(i,n)&&(LB(e)||UB(e)))}aA.exports=GB});var sA=u((yW,oA)=>{"use strict";var MB=rA(),kB=nA();function FB(e,t){return e!=null&&kB(e,t,MB)}oA.exports=FB});var uA=u((AW,iA)=>{"use strict";var QB=ni(),jB=eA(),WB=sA(),$B=wn(),VB=oi(),KB=si(),YB=ir(),HB=1,zB=2;function JB(e,t){return $B(e)&&VB(t)?KB(YB(e),t):function(r){var a=jB(r,e);return a===void 0&&a===t?WB(r,e):QB(t,a,HB|zB)}}iA.exports=JB});var cA=u((hW,pA)=>{"use strict";function XB(e){return function(t){return t?.[e]}}pA.exports=XB});var dA=u((bW,lA)=>{"use strict";var ZB=di();function eN(e){return function(t){return ZB(t,e)}}lA.exports=eN});var gA=u((IW,fA)=>{"use strict";var tN=cA(),rN=dA(),aN=wn(),nN=ir();function oN(e){return aN(e)?tN(nN(e)):rN(e)}fA.exports=oN});var fi=u((SW,mA)=>{"use strict";var sN=Ly(),iN=uA(),uN=Mr(),pN=z(),cN=gA();function lN(e){return typeof e=="function"?e:e==null?uN:typeof e=="object"?pN(e)?iN(e[0],e[1]):sN(e):cN(e)}mA.exports=lN});var AA=u((wW,yA)=>{"use strict";var dN=Zs(),fN=fi(),gN=1;function mN(e){return fN(typeof e=="function"?e:dN(e,gN))}yA.exports=mN});var bA=u((vW,hA)=>{"use strict";var yN=Zn();function AN(e){var t=e==null?0:e.length;return t?yN(e,1):[]}hA.exports=AN});var SA=u((EW,IA)=>{"use strict";var hN=bA(),bN=eo(),IN=Ba();function SN(e){return IN(bN(e,void 0,hN),e+"")}IA.exports=SN});var vA=u((RW,wA)=>{"use strict";var wN=hn(),vN=SA(),EN=256,RN=vN(function(e,t){return wN(e,EN,void 0,void 0,void 0,t)});wA.exports=RN});var RA=u((xW,EA)=>{"use strict";var xN=pi(),_N=$t(),TN=z(),PN=ar(),ON=ui(),CN=ir(),qN=ci();function UN(e){return TN(e)?xN(e,CN):PN(e)?[e]:_N(ON(qN(e)))}EA.exports=UN});var _A=u((_W,xA)=>{"use strict";xA.exports={ary:Fg(),assign:Qs(),clone:zm(),curry:Xm(),forEach:yn(),isArray:z(),isError:ey(),isFunction:kr(),isWeakMap:ry(),iteratee:AA(),keys:Fs(),rearg:vA(),toInteger:Ns(),toPath:RA()}});var PA=u((TW,TA)=>{"use strict";var LN=yf(),DN=_A();function BN(e,t,r){return LN(DN,e,t,r)}TA.exports=BN});var gi=u((PW,CA)=>{"use strict";var NN=PA(),OA=NN("merge",xo());OA.placeholder=Is();CA.exports=OA});var Vh=u(($$,$h)=>{"use strict";function pG(e,t,r,a){for(var n=-1,o=e==null?0:e.length;++n<o;){var i=e[n];t(a,i,r(i),e)}return a}$h.exports=pG});var Yh=u((V$,Kh)=>{"use strict";var cG=mo(),lG=nr();function dG(e,t){return e&&cG(e,t,lG)}Kh.exports=dG});var zh=u((K$,Hh)=>{"use strict";var fG=Qt();function gG(e,t){return function(r,a){if(r==null)return r;if(!fG(r))return e(r,a);for(var n=r.length,o=t?n:-1,i=Object(r);(t?o--:++o<n)&&a(i[o],o,i)!==!1;);return r}}Hh.exports=gG});var Xh=u((Y$,Jh)=>{"use strict";var mG=Yh(),yG=zh(),AG=yG(mG);Jh.exports=AG});var eb=u((H$,Zh)=>{"use strict";var hG=Xh();function bG(e,t,r,a){return hG(e,function(n,o,i){t(a,n,r(n),i)}),a}Zh.exports=bG});var rb=u((z$,tb)=>{"use strict";var IG=Vh(),SG=eb(),wG=fi(),vG=z();function EG(e,t){return function(r,a){var n=vG(r)?IG:SG,o=t?t():{};return n(r,e,wG(a,2),o)}}tb.exports=EG});var nb=u((J$,ab)=>{"use strict";var RG=Vr(),xG=rb(),_G=Object.prototype,TG=_G.hasOwnProperty,PG=xG(function(e,t,r){TG.call(e,r)?e[r].push(t):RG(e,r,[t])});ab.exports=PG});var FG={};S(FG,{Method:()=>qn,ai:()=>Ri,api:()=>Bi,auditLogs:()=>ut,automations:()=>nn,backups:()=>Se,branding:()=>Xa,constants:()=>qr,environmentVariables:()=>Qe,features:()=>le,groups:()=>M,init:()=>cf,licensing:()=>Ne,logger:()=>xt,mappers:()=>Q,middleware:()=>Ii,plugins:()=>on,publicApi:()=>pn,quotas:()=>ke,scimGroups:()=>ur,scimUsers:()=>se,sdk:()=>yi,users:()=>Ye,utils:()=>Nt});module.exports=Gb(FG);var qn=(o=>(o.POST="POST",o.GET="GET",o.PATCH="PATCH",o.DELETE="DELETE",o.PUT="PUT",o))(qn||{});var yi={};S(yi,{ai:()=>Za,auditLogs:()=>ut,automations:()=>nn,backups:()=>Se,branding:()=>Xa,environmentVariables:()=>Qe,features:()=>le,groups:()=>M,init:()=>cf,licensing:()=>Ne,logger:()=>xt,plugins:()=>on,publicApi:()=>pn,quotas:()=>ke,scimGroups:()=>ur,scimUsers:()=>se,users:()=>Ye,utils:()=>Nt});var Xa={};S(Xa,{getBrandingConfig:()=>q_});var le={};S(le,{checkBackups:()=>ce,checkFeature:()=>za,checkFeatures:()=>Do,checkSCIM:()=>Mo,isAICustomConfigsEnabled:()=>O_,isAppBuildersEnabled:()=>bt,isAuditLogsEnabled:()=>Ja,isBackupsEnabled:()=>Bo,isBrandingEnabled:()=>No,isBudibaseAIEnabled:()=>aa,isEnforceableSSO:()=>Ed,isExpandedPublicApiEnabled:()=>Ke,isSSOEnforced:()=>__,isSyncAutomationsEnabled:()=>R_,isTriggerAutomationRunEnabled:()=>x_,isUserGroupsEnabled:()=>Go,isViewPermissionEnabled:()=>T_,isViewReadonlyColumnsEnabled:()=>P_});var J=require("@budibase/types"),Ve=require("@budibase/backend-core");var Ne={};S(Ne,{cache:()=>xe,client:()=>at,features:()=>qa,getFreeLicense:()=>Uo,getLicense:()=>qo,getLicenseFromKey:()=>I_,keys:()=>Lo,offline:()=>Ya,quotas:()=>Ua});var xe={};S(xe,{getCachedLicense:()=>wd,invalidate:()=>vd,refresh:()=>At});var Un=require("@budibase/backend-core"),gr,Mb=async()=>{gr=await new Un.redis.Client(Un.redis.utils.Databases.LICENSES).init()},kb=async()=>{gr&&await gr.finish()};process.on("exit",async()=>{await kb()});var Ln=async()=>(gr||await Mb(),gr);var at={};S(at,{activateLicenseKey:()=>Yn,getLicense:()=>Dt,getLicenseFromKey:()=>Kn,triggerQuota:()=>_I});var Ki=O(require("node-fetch"));var Yi=require("@budibase/backend-core"),Dn=class{constructor(t){this.apiCall=t=>async(r="",a={})=>{a.headers||(a.headers={}),a.headers["Content-Type"]||(a.headers={"Content-Type":"application/json",Accept:"application/json",...a.headers});let n=a.headers["Content-Type"]==="application/json";Yi.logging.correlation.setHeader(a.headers);let o={method:t,body:n?JSON.stringify(a.body):a.body,headers:a.headers,credentials:"include"};return(0,Ki.default)(`${this.host}${r}`,o)};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}},Bn=Dn;var Pa=require("@budibase/types"),P=require("@budibase/backend-core");var Le={};S(Le,{bustCache:()=>Ji,getCurrentUsageValues:()=>tu,getQuotaUsage:()=>dt,setAllUsage:()=>Fn,setAppUsageValue:()=>kn,setUsage:()=>Xi,setUsagePerApp:()=>Zi,utils:()=>yr});var ee=require("@budibase/types"),H=require("@budibase/backend-core");var yr={};S(yr,{generateBaseQuotaUsage:()=>Sa,generateNewMonthlyQuotas:()=>mr,generateNewQuotaUsage:()=>Gn,getBreakdownName:()=>va,getCurrentMonthString:()=>et,setCurrentMonth:()=>wa,setQuotaReset:()=>Nn});var V=require("@budibase/types"),Ia=require("@budibase/backend-core"),Hi=()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth()+1,1).toISOString()},Nn=e=>{e.quotaReset=Hi()},et=()=>{let e=new Date,t=e.getMonth()+1,r=e.getFullYear();return`${t}-${r}`},Sa=()=>({usageQuota:{[V.StaticQuotaName.APPS]:0,[V.StaticQuotaName.ROWS]:0,[V.StaticQuotaName.PLUGINS]:0,[V.StaticQuotaName.USERS]:0,[V.StaticQuotaName.CREATORS]:0,[V.StaticQuotaName.USER_GROUPS]:0,[V.StaticQuotaName.AI_CUSTOM_CONFIGS]:0,triggers:{}},monthly:{[et()]:mr()}}),Gn=()=>{let e={_id:Ia.db.StaticDatabases.GLOBAL.docs.usageQuota,quotaReset:Hi(),...Sa(),apps:{}};return wa(e),e},mr=()=>({[V.MonthlyQuotaName.QUERIES]:0,[V.MonthlyQuotaName.AUTOMATIONS]:0,[V.MonthlyQuotaName.BUDIBASE_AI_CREDITS]:0,triggers:{}}),wa=e=>{let t=et();e.monthly||(e.monthly={}),e.monthly[t]||(e.monthly[t]=mr()),e.monthly.current=e.monthly[t]},va=(e,t)=>{if(!(!t||!e))switch(e){case V.MonthlyQuotaName.AUTOMATIONS:return V.BreakdownQuotaName.AUTOMATIONS;case V.MonthlyQuotaName.QUERIES:return Ia.db.isTableId(t)?V.BreakdownQuotaName.ROW_QUERIES:Ia.db.isDatasourceId(t)?V.BreakdownQuotaName.DATASOURCE_QUERIES:void 0}};var Qb=H.Duration.fromSeconds(60).toMs(),{Writethrough:jb}=H.cache.writethrough;function Wb(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}var Mn=()=>new jb(H.tenancy.getGlobalDB(),Qb),Ji=async()=>{let e=H.tenancy.getGlobalDB();try{let t=await e.get(H.db.StaticDatabases.GLOBAL.docs.usageQuota);t?._rev&&await e.remove(H.db.StaticDatabases.GLOBAL.docs.usageQuota,t._rev)}catch(t){if(t.status!==404)throw t}},dt=async()=>{let e=Mn(),t;try{t=await e.get(H.db.StaticDatabases.GLOBAL.docs.usageQuota),wa(t),Nn(t)}catch(r){if(r.status===404){t=Gn();let a=await e.put(t);t._rev=a.rev}else throw r}return Wb(t)},Xi=async(e,t,r)=>Fn({name:t,type:r,values:{total:e}}),Zi=async(e,t,r)=>{let a=Mn(),n=await dt(),o=Object.values(e).reduce((s,c)=>s+c,0);for(let[s,c]of Object.entries(e))n=eu(n,t,r,{total:o,app:c},{appId:s});let i=await a.put(n);return n._rev=i.rev,n},$b=(e,t,r,a)=>{let n=va(t,r);if(!n||!a?.breakdown)return e;e.breakdown||(e.breakdown={}),e.breakdown[n]||(e.breakdown[n]={parent:t,values:{}});let o=e.breakdown[n];return o.values[r]=a.breakdown,e},kn=(e,t,r,a={},n)=>{let o;try{o=H.db.getProdAppID(a?.appId||H.context.getAppId())}catch{}if(!o||!n.app||!ee.APP_QUOTA_NAMES.includes(t))return e;e.apps?.[o]||(e.apps={...e.apps,[o]:Sa()});let i=e.apps[o];switch(r){case ee.QuotaUsageType.STATIC:i.usageQuota[t]=n.app;break;case ee.QuotaUsageType.MONTHLY:{let s=et(),c=t,f=i.monthly[s];f||(i.monthly[s]=mr(),f=i.monthly[s]),f[c]=n.app,ee.BREAKDOWN_QUOTA_NAMES.includes(c)&&a?.id&&(f=$b(f,c,a.id,n));break}}return e},zi=(e,t,r,a)=>{if(!ee.APP_QUOTA_NAMES.includes(r))return{};let n;try{n=H.db.getProdAppID(H.context.getAppId())}catch{}if(!n||!e.apps||!e.apps[n])return{app:0};let o=e.apps[n];switch(t){case ee.QuotaUsageType.STATIC:if(o.usageQuota?.[r])return{app:o.usageQuota[r]};break;case ee.QuotaUsageType.MONTHLY:{let i=et(),s=r;if(!o.monthly?.[i]?.[s])break;let c=o.monthly[i],f=c[s],m,g=va(s,a);return g&&a&&c.breakdown?.[g]&&(m=c.breakdown[g]?.values[a]),{app:f,breakdown:m||0}}}return{app:0}},Vb=(e,t,r)=>{t.usageQuota.triggers||(t.usageQuota.triggers={}),r&&(t.usageQuota.triggers[e]=r)},Kb=(e,t,r,a)=>{r.monthly[t].triggers||(r.monthly[t].triggers={}),a&&(r.monthly[t].triggers[e]=a)},eu=(e,t,r,a,n={})=>{if(r===ee.QuotaUsageType.STATIC)t=t,e.usageQuota[t]=a.total,Vb(t,e,a.triggers);else if(r===ee.QuotaUsageType.MONTHLY){t=t;let o=et();e.monthly[o][t]=a.total,Kb(t,o,e,a.triggers)}else throw new Error(`Invalid usage type: ${r}`);return kn(e,t,r,n,a)},Fn=async e=>{let t=Array.isArray(e)?e:[e],r=Mn(),a=await dt();for(let o of t)a=eu(a,o.name,o.type,o.values,o.opts);let n=await r.put(a,0);return a._rev=n.rev,a},tu=async(e,t,r)=>{let a=await dt(),n=0,o={};switch(e){case ee.QuotaUsageType.STATIC:if(a.usageQuota[t]){let i=t;n=a.usageQuota[i],o=zi(a,e,t,r)}break;case ee.QuotaUsageType.MONTHLY:{let i=et(),s=t;a.monthly[i][s]&&(n=a.monthly[i][s],o=zi(a,e,t,r));break}default:throw new Error(`Invalid usage type: ${e}`)}return ee.APP_QUOTA_NAMES.includes(t)&&!(o.app||o.breakdown)&&(o.app=o.app||0,o.breakdown=o.breakdown||0),{total:n,app:o.app,breakdown:o.breakdown}};var he={};S(he,{destroy:()=>zb,get:()=>Qn,save:()=>Hb});var tt=require("@budibase/backend-core"),Yb=()=>({_id:tt.StaticDatabases.GLOBAL.docs.licenseInfo}),Hb=async e=>{let t=await Qn();t={...t,...e};let a=await tt.tenancy.getGlobalDB().put(t);return t._rev=a.rev,t},Qn=async()=>{let e=tt.tenancy.getGlobalDB();try{return await e.get(tt.StaticDatabases.GLOBAL.docs.licenseInfo)}catch(t){if(t.status===404)return Yb();throw t}},zb=async()=>{let e=tt.tenancy.getGlobalDB(),t=await Qn();t&&t._rev&&await e.remove(tt.StaticDatabases.GLOBAL.docs.licenseInfo,t._rev)};var D={};S(D,{bulkSave:()=>uI,destroy:()=>pI,fetch:()=>nI,generateUserGroupID:()=>rI,get:()=>oI,getBulk:()=>sI,getByName:()=>jn,getGroupUsers:()=>Ra,getGroupUsersParams:()=>su,getUserGroupsParams:()=>ou,save:()=>iI});var q=require("@budibase/backend-core");var Re=require("@budibase/types"),qt=require("@budibase/backend-core");async function ru(){let e=qt.sql.designDoc.base("type");e.sql.tables={[Re.AUDIT_LOG_TYPE]:{fields:{appId:Re.SQLiteType.TEXT,event:Re.SQLiteType.TEXT,userId:Re.SQLiteType.TEXT,timestamp:Re.SQLiteType.TEXT,metadata:Re.SQLiteType.TEXT,name:Re.SQLiteType.TEXT,type:Re.SQLiteType.TEXT,fallback:Re.SQLiteType.TEXT}}};let t=qt.context.getAuditLogsDB(),r;try{r=await t.get(qt.SQLITE_DESIGN_DOC_ID),r={...r,...e}}catch(a){if(a.status===404)r=e;else throw a}await t.put(r)}var Ea=require("@budibase/backend-core"),{ViewName:Jb,SEPARATOR:Xb,DocumentType:Zb,createView:eI}=Ea.db,tI=Zb.USER+Xb;async function au(){let e=Ea.tenancy.getGlobalDB(),t=`function(doc) {
4
+ if (doc._id.startsWith("${tI}") && Array.isArray(doc.userGroups)) {
5
5
  for (let groupId of doc.userGroups) {
6
6
  emit("g_" + groupId, { email: doc.email, userId: doc._id })
7
7
  emit("e_" + groupId + doc.email, { email: doc.email, userId: doc._id })
8
8
  }
9
9
  }
10
- }`;await sI(e,t,nI.USER_BY_GROUP)}var gu=`${Q.DocumentType.GROUP}${Q.SEPARATOR}`;function mu(e,t={}){e||(e="");let r=e?.startsWith(Q.DocumentType.GROUP)?"":gu;return{...t,startkey:`${r}${e}`,endkey:`${r}${e}${Q.UNICODE_MAX}`}}function yu(e,t={}){e||(e="");let{emailSearch:r,bookmark:n,...a}=t;return r?{...a,startkey:`e_${e}${n||r}`,endkey:`e_${e}${r}${Q.UNICODE_MAX}`}:{...t,startkey:`g_${e}`,endkey:`g_${e}${Q.UNICODE_MAX}`,startkey_docid:n}}function uI(){return`${gu}${Q.utils.newid()}`}async function Fn(e,t){let r=Q.tenancy.getGlobalDB();return(await Q.db.queryView(Q.db.ViewName.USER_BY_GROUP,yu(e,t),r,fu,{arrayResponse:!0})).map(a=>({_id:a.userId,email:a.email}))||[]}async function Cr(e){return e.users=await Fn(e._id),e}async function pI(e){let r=(await Cr(e)).users?.map(o=>o._id),n=await Q.users.bulkGetGlobalUsersById(r),a=[];for(let o of n){if(!o.userGroups)continue;let i=o.userGroups.length;o.userGroups=o.userGroups.filter(s=>s!==e._id),o.userGroups.length!==i&&a.push(o)}a.length&&await Q.users.bulkUpdateGlobalUsers(a)}async function hu(){return(await Q.tenancy.getGlobalDB().allDocs(mu(null,{include_docs:!0}))).rows.map(t=>t.doc)}async function cI(){let e=await hu(),t=[];for(let r of e)t.push(Cr(r));return await Promise.all(t)}async function lI(e){let r=await Q.tenancy.getGlobalDB().get(e);return await Cr(r)}async function dI(e,t={enriched:!0}){let n=await Q.tenancy.getGlobalDB().getMultiple(e,{allowMissing:!0});if(t?.enriched){let a=[];for(let o of n)a.push(Cr(o));return await Promise.all(a)}else return n}async function fI(e){return await Q.tenancy.getGlobalDB().put(e)}async function gI(e){return await Q.tenancy.getGlobalDB().bulkDocs(e)}async function mI(e,t){let r=Q.tenancy.getGlobalDB(),n=await r.get(e),a=await r.remove(e,t);return await pI(n),a}async function ao(e){let t=e.toLowerCase(),n=(await hu()).find(a=>a.name.toLowerCase()===t);if(n)return await Cr(n)}var De={};x(De,{deleteAppBackupMetadata:()=>TI,fetchAppBackups:()=>_I,generateAppBackupID:()=>Cu,getAppBackupMetadata:()=>OI,oldestBackupDate:()=>Ou,storeAppBackupMetadata:()=>xI,updateAppBackupMetadata:()=>RI});var J=require("@budibase/backend-core"),Tu=require("@budibase/types");function qr(e,t){let r=e.rows.map(a=>a.doc?a.doc:a);if(!t?.paginate)return{data:r,hasNextPage:!1};let n=r.length>t?.pageSize;return{data:r.slice(0,t?.pageSize),hasNextPage:n,nextPage:n?e.rows[t?.pageSize]?.key:void 0}}var Jt=require("@budibase/backend-core"),{ViewName:bu,AutomationViewMode:oo,SEPARATOR:Ze,DocumentType:Iu,createView:Su}=Jt.db,yI=Iu.AUTOMATION_LOG+Ze,Au=Iu.APP_BACKUP+Ze;async function wu(){let e=Jt.context.getProdAppDB(),t=`function(doc) {
11
- if (doc._id.startsWith("${yI}")) {
12
- let autoId = doc.automationId + "${Ze}"
13
- let status = doc.status + "${Ze}"
14
- let autoKey = "${oo.AUTOMATION}${Ze}" + autoId + doc.createdAt
15
- let statusKey = "${oo.STATUS}${Ze}" + status + doc.createdAt
16
- let allKey = "${oo.ALL}${Ze}" + status + autoId + doc.createdAt
10
+ }`;await eI(e,t,Jb.USER_BY_GROUP)}var nu=`${q.DocumentType.GROUP}${q.SEPARATOR}`;function ou(e,t={}){e||(e="");let r=e?.startsWith(q.DocumentType.GROUP)?"":nu;return{...t,startkey:`${r}${e}`,endkey:`${r}${e}${q.UNICODE_MAX}`}}function su(e,t={}){e||(e="");let{emailSearch:r,bookmark:a,...n}=t;return r?{...n,startkey:`e_${e}${a||r}`,endkey:`e_${e}${r}${q.UNICODE_MAX}`}:{...t,startkey:`g_${e}`,endkey:`g_${e}${q.UNICODE_MAX}`,startkey_docid:a}}function rI(){return`${nu}${q.utils.newid()}`}async function Ra(e,t){let r=q.tenancy.getGlobalDB();return(await q.db.queryView(q.db.ViewName.USER_BY_GROUP,su(e,t),r,au,{arrayResponse:!0})).map(n=>({_id:n.userId,email:n.email}))||[]}async function Ar(e){return e.users=await Ra(e._id),e}async function aI(e){let r=(await Ar(e)).users?.map(o=>o._id),a=await q.users.bulkGetGlobalUsersById(r),n=[];for(let o of a){if(!o.userGroups)continue;let i=o.userGroups.length;o.userGroups=o.userGroups.filter(s=>s!==e._id),o.userGroups.length!==i&&n.push(o)}n.length&&await q.users.bulkUpdateGlobalUsers(n)}async function iu(){return(await q.tenancy.getGlobalDB().allDocs(ou(null,{include_docs:!0}))).rows.map(t=>t.doc)}async function nI(){let e=await iu(),t=[];for(let r of e)t.push(Ar(r));return await Promise.all(t)}async function oI(e){let r=await q.tenancy.getGlobalDB().get(e);return await Ar(r)}async function sI(e,t={enriched:!0}){let a=await q.tenancy.getGlobalDB().getMultiple(e,{allowMissing:!0});if(t?.enriched){let n=[];for(let o of a)n.push(Ar(o));return await Promise.all(n)}else return a}async function iI(e){return await q.tenancy.getGlobalDB().put(e)}async function uI(e){return await q.tenancy.getGlobalDB().bulkDocs(e)}async function pI(e,t){let r=q.tenancy.getGlobalDB(),a=await r.get(e),n=await r.remove(e,t);return await aI(a),n}async function jn(e){let t=e.toLowerCase(),a=(await iu()).find(n=>n.name.toLowerCase()===t);if(a)return await Ar(a)}var be={};S(be,{deleteAppBackupMetadata:()=>wI,fetchAppBackups:()=>bI,generateAppBackupID:()=>Su,getAppBackupMetadata:()=>vI,oldestBackupDate:()=>bu,storeAppBackupMetadata:()=>II,updateAppBackupMetadata:()=>SI});var G=require("@budibase/backend-core"),hu=require("@budibase/types");function hr(e,t){let r=e.rows.map(n=>n.doc?n.doc:n);if(!t?.paginate)return{data:r,hasNextPage:!1};let a=r.length>t?.pageSize;return{data:r.slice(0,t?.pageSize),hasNextPage:a,nextPage:a?e.rows[t?.pageSize]?.key:void 0}}var Ut=require("@budibase/backend-core"),{ViewName:pu,AutomationViewMode:Wn,SEPARATOR:De,DocumentType:cu,createView:lu}=Ut.db,cI=cu.AUTOMATION_LOG+De,uu=cu.APP_BACKUP+De;async function du(){let e=Ut.context.getProdAppDB(),t=`function(doc) {
11
+ if (doc._id.startsWith("${cI}")) {
12
+ let autoId = doc.automationId + "${De}"
13
+ let status = doc.status + "${De}"
14
+ let autoKey = "${Wn.AUTOMATION}${De}" + autoId + doc.createdAt
15
+ let statusKey = "${Wn.STATUS}${De}" + status + doc.createdAt
16
+ let allKey = "${Wn.ALL}${De}" + status + autoId + doc.createdAt
17
17
  emit(statusKey)
18
18
  emit(autoKey)
19
19
  emit(allKey)
20
20
  }
21
- }`;await Su(e,t,bu.AUTOMATION_LOGS)}async function vu(){let e=Jt.tenancy.getGlobalDB(),t=`function(doc) {
22
- if (doc._id.startsWith("${Au}") && doc.type && doc.trigger) {
23
- let full = doc.appId + "${Ze}"
24
- full += doc.trigger.toLowerCase() + "${Ze}"
25
- full += doc.type.toLowerCase() + "${Ze}"
26
- emit("${Au}" + full + doc.timestamp)
21
+ }`;await lu(e,t,pu.AUTOMATION_LOGS)}async function fu(){let e=Ut.tenancy.getGlobalDB(),t=`function(doc) {
22
+ if (doc._id.startsWith("${uu}") && doc.type && doc.trigger) {
23
+ let full = doc.appId + "${De}"
24
+ full += doc.trigger.toLowerCase() + "${De}"
25
+ full += doc.type.toLowerCase() + "${De}"
26
+ emit("${uu}" + full + doc.timestamp)
27
27
  }
28
- }`;await Su(e,t,bu.APP_BACKUP_BY_TRIGGER)}var Ru=require("@budibase/types");var Vr={};x(Vr,{GENERIC_PAGE_SIZE:()=>et,auditLogs:()=>zt,licenses:()=>Ee,quotas:()=>pt,versions:()=>Wr});var Ee={};x(Ee,{CLOUD_FREE_LICENSE:()=>AI,SELF_FREE_LICENSE:()=>so,UNLIMITED:()=>te,UNLIMITED_LICENSE:()=>bI});var At=require("@budibase/types");var pt={};x(pt,{UNLIMITED:()=>hI,appBackupRetentionDays:()=>Qr,apps:()=>Lr,automationLogRetentionDays:()=>$r,automations:()=>kr,budibaseAICredits:()=>Fr,creators:()=>Br,customAIConfigurations:()=>jr,plugins:()=>Mr,queries:()=>Gr,rows:()=>Ur,userGroups:()=>Nr,users:()=>Dr});var he=require("@budibase/types"),hI=-1,Ur=e=>({[he.StaticQuotaName.ROWS]:{name:"Rows",value:e,triggers:[90,100]}}),Lr=e=>({[he.StaticQuotaName.APPS]:{name:"Apps",value:e,triggers:[100]}}),Dr=e=>({[he.StaticQuotaName.USERS]:{name:"Users",value:e,triggers:[80,100]}}),Br=e=>({[he.StaticQuotaName.CREATORS]:{name:"Creators",value:e,triggers:[]}}),Nr=e=>({[he.StaticQuotaName.USER_GROUPS]:{name:"User Groups",value:e,triggers:[80,100]}}),Mr=e=>({[he.StaticQuotaName.PLUGINS]:{name:"Plugins",value:e,triggers:[90,100]}}),Gr=e=>({[he.MonthlyQuotaName.QUERIES]:{name:"Queries",value:e,triggers:[]}}),kr=e=>({[he.MonthlyQuotaName.AUTOMATIONS]:{name:"Automations",value:e,triggers:[80,90,100]}}),Fr=e=>({[he.MonthlyQuotaName.BUDIBASE_AI_CREDITS]:{name:"Budibase AI Credits",value:e,triggers:[80,90,100]}}),$r=e=>({[he.ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS]:{name:"Automation Logs",value:e,triggers:[]}}),Qr=e=>({[he.ConstantQuotaName.APP_BACKUPS_RETENTION_DAYS]:{name:"App Backups",value:e,triggers:[]}}),jr=e=>({[he.StaticQuotaName.AI_CUSTOM_CONFIGS]:{name:"Custom AI Configuration",value:e,triggers:[]}});var te=-1,AI={features:[],quotas:{usage:{monthly:{...Gr(te),...kr(200),...Fr(0)},static:{...Lr(te),...Ur(2e3),...Dr(5),...Br(5),...Nr(0),...Mr(10),...jr(0)}},constant:{...$r(1),...Qr(0)}},plan:{type:At.PlanType.FREE,usesInvoicing:!1,model:At.PlanModel.PER_USER}},so={features:[],quotas:{usage:{monthly:{...Gr(te),...kr(te),...Fr(0)},static:{...Ur(te),...Lr(te),...Dr(20),...Br(te),...Nr(0),...Mr(10),...jr(0)}},constant:{...$r(1),...Qr(0)}},plan:{type:At.PlanType.FREE,usesInvoicing:!1,model:At.PlanModel.PER_USER}},bI={features:[],quotas:{usage:{monthly:{...Gr(te),...kr(te),...Fr(te)},static:{...Lr(te),...Ur(te),...Dr(te),...Br(te),...Nr(te),...Mr(te),...jr(te)}},constant:{...$r(te),...Qr(te)}},plan:{type:At.PlanType.FREE,usesInvoicing:!1,model:At.PlanModel.PER_USER}};var Wr={};x(Wr,{getLicenseVersion:()=>II,getProVersion:()=>_u});var Ct=require("@budibase/backend-core"),$n=M(require("fs")),Eu=M(require("path")),II=()=>{if(Ct.env.isDev()){let e="dev-version.txt",t=Eu.default.join(Ct.objectStore.budibaseTempDir(),e);if($n.default.existsSync(t))return $n.default.readFileSync(t,"utf8");{let r=Ct.utils.newid();return $n.default.writeFileSync(t,r),r}}else return _u()},_u=()=>{let e=Ct.env.VERSION;if(!e)throw new Error("No budibase pro version was specified");return e};var zt={};x(zt,{searchTable:()=>SI});var qt=require("@budibase/types"),xu=require("@budibase/backend-core");function SI(){return{type:"table",sourceType:qt.TableSourceType.INTERNAL,name:qt.AUDIT_LOG_TYPE,sourceId:xu.SQS_DATASOURCE_INTERNAL,primary:["_id"],schema:{metadata:{name:"metadata",type:qt.FieldType.JSON},fallback:{name:"fallback",type:qt.FieldType.JSON}}}}var et=9;var wI=new Date(864e13).toISOString(),vI=1e3*60*60*24;async function Qn(e){let r=(await Qe.getCachedLicense()).quotas?.[Ru.QuotaType.CONSTANT]?.[e]?.value||0;return r===Ee.UNLIMITED?new Date(wI).toISOString():new Date(new Date().getTime()-vI*r).toISOString()}async function Ou(){return Qn(Tu.ConstantQuotaName.APP_BACKUPS_RETENTION_DAYS)}var io=`${J.db.DocumentType.APP_BACKUP}${J.db.SEPARATOR}`;async function EI(e,t,r={}){let n=await Ou(),a=J.db.getProdAppID(e),o=a,i=a;if(t.trigger&&t.type){let s=`${J.db.SEPARATOR}${t.trigger}`;s+=`${J.db.SEPARATOR}${t.type}`,o+=s,i+=s}return(!t.startDate||t.startDate<n)&&(t.startDate=n),t.startDate&&(i+=`${J.db.SEPARATOR}${t.startDate}`),t.endDate&&(o+=`${J.db.SEPARATOR}${t.endDate}`),{...r,descending:!0,startkey:`${io}${o}${J.db.UNICODE_MAX}`,endkey:`${io}${i}`}}async function Pu(e,t){try{let r=J.db.getQueryIndex(J.db.ViewName.APP_BACKUP_BY_TRIGGER);return await e.query(r,t)}catch(r){if(r!=null&&r.error==="not_found")return await vu(),Pu(e,t);throw r}}function Cu(e,t){return`${io}${e}${J.db.SEPARATOR}${t}`}async function _I(e,t={}){let r=J.tenancy.getGlobalDB(),n,a=t.limit||9,o=await EI(e,t,{include_docs:!0,limit:a+1});t.page&&(o.startkey=t.page),!t.trigger||!t.type?n=await r.allDocs(o):n=await Pu(r,o);let i=qr(n,{paginate:t.paginate,pageSize:a}),s=[...new Set(i.data.filter(d=>d.createdBy).map(d=>d.createdBy))],c=await J.users.bulkGetGlobalUsersById(s,{cleanup:!0});for(let d of c)for(let m of i.data)d?._id===m.createdBy&&(m.createdBy=d);return i}async function xI(e,t={}){let r=J.tenancy.getGlobalDB(),n=J.db.getProdAppID(e.appId),a=Cu(n,e.timestamp),o={...e,_id:a,appId:n,name:e.name};return o._id=t.docId||o._id,o._rev=t.docRev||o._rev,t.filename&&(o.filename=t.filename),e.createdBy&&(o.createdBy=J.db.getGlobalIDFromUserMetadataID(e.createdBy)),await r.put(o)}async function RI(e,t){let r=J.tenancy.getGlobalDB(),n=await r.get(e);return n.name=t,await r.put(n)}async function TI(e){let t=J.tenancy.getGlobalDB(),r=await t.get(e);await t.remove(r._id,r._rev)}async function OI(e){return await J.tenancy.getGlobalDB().get(e)}var Ut={};x(Ut,{get:()=>CI,getCacheEnvVarID:()=>Lu,getEnvVarID:()=>jn,update:()=>qI});var je=require("@budibase/backend-core"),Uu=M(require("lru-cache")),PI=1e3,qu=new Uu.default({max:PI});function jn(){return je.StaticDatabases.GLOBAL.docs.environmentVariables}function Lu(e){return`${je.tenancy.getTenantId()}/${jn()}/${e||""}`}async function CI(){let e=jn(),t=je.tenancy.getGlobalDB(),r,n=!1;try{r=await t.get(e)}catch(s){if(s.status==404)n=!0;else throw s}let a=Lu(r?._rev),o=qu.get(a);if(o)return o;let i;return!n&&r?i={...r,variables:JSON.parse(je.encryption.decrypt(r.variables,je.encryption.SecretOption.ENCRYPTION))}:i={_id:e,variables:{}},qu.set(a,i),i}async function qI(e){let t=jn();return await je.tenancy.getGlobalDB().put({_id:e._id||t,_rev:e._rev||void 0,variables:je.encryption.encrypt(JSON.stringify(e.variables),je.encryption.SecretOption.ENCRYPTION)})}var Vn=new za(N.env.ACCOUNT_PORTAL_URL),Yn=async e=>{try{let t=await e.json();if(t.message)return t.message}catch{}try{let t=await e.text();if(t)return t}catch{}},Du=async e=>{let t,r;if(N.env.SELF_HOSTED){if(t=await Le.get(),!t.licenseKey)return;r={[N.constants.Header.LICENSE_KEY]:t.licenseKey}}else{let n=N.tenancy.getTenantId();r={[N.constants.Header.API_KEY]:N.env.ACCOUNT_PORTAL_API_KEY,[N.constants.Header.TENANT_ID]:n}}return e(r)},Bu=async()=>Du(async e=>{let t=await Xe.getQuotaUsage();if(t.usageQuota.users==null){let s=await N.users.getUserCount();console.info(`Syncing user count quota to ${s}`),t.usageQuota.users=s,await Xe.setUsage(s,Wn.StaticQuotaName.USERS,Wn.QuotaUsageType.STATIC)}let r=await N.installation.getInstallFromDB(),n=N.tenancy.getTenantId(),a=await N.events.identification.getUniqueTenantId(n),o=Wr.getProVersion(),i={quotaUsage:t,tenantId:n,install:{id:r.installId,tenantId:a,version:o}};try{let s=await Vn.post("/api/license",{headers:{...e},body:i});if(s.status===404||s.status===403)return;if(s.status!==200){let c=await Yn(s);throw new N.HTTPError(`Error getting license: ${c}`,s.status)}return s.json()}catch(s){if(N.env.DISABLE_ACCOUNT_PORTAL)return;throw s}});N.env.isJest()&&(Bu=jest.fn());var Xt=Bu;async function uo(e){let t;try{t=await Vn.get("/api/license",{headers:{[N.constants.Header.LICENSE_KEY]:e}})}catch(r){if(N.env.DISABLE_ACCOUNT_PORTAL)return;throw r}if(!(t.status===404||t.status===403)){if(t.status!==200){let r=await Yn(t);throw new N.HTTPError(`Error getting license: ${r}`,t.status)}return t.json()}}var UI=e=>Du(async t=>{let r=await Vn.post("/api/license/usage/triggered",{headers:{...t},body:e});if(r.status!==200){let n=await Yn(r);N.logging.logAlert(`Error triggering quota usage: ${n}`)}}),po=async e=>{let t=await N.installation.getInstall(),r={installVersion:t.version,installId:t.installId},n=await Vn.post("/api/license/activate",{headers:{[N.constants.Header.LICENSE_KEY]:e},body:r});if(n.status===403)throw new N.HTTPError("Invalid license key",400);if(n.status!==200){let a=await Yn(n);throw new N.HTTPError(`Error activating license key: ${a}`,n.status)}return n.json()};var Vo=require("@budibase/backend-core");var ca={};x(ca,{activateOfflineLicenseToken:()=>hR,deleteOfflineLicenseToken:()=>AR,dev:()=>yn,enrichLicense:()=>Rd,getIdentifier:()=>$o,getIdentifierBase64:()=>bR,getIdentifierFromBase64:()=>IR,getOfflineLicense:()=>Qo,getOfflineLicenseToken:()=>Ed,signing:()=>Hr,verifyExpiry:()=>_d,verifyInstallation:()=>xd});var Hr={};x(Hr,{sign:()=>DI,verifyLicenseToken:()=>Kr});var co=M(require("jsonwebtoken")),LI=`-----BEGIN PUBLIC KEY-----
28
+ }`;await lu(e,t,pu.APP_BACKUP_BY_TRIGGER)}var Au=require("@budibase/types");var qr={};S(qr,{GENERIC_PAGE_SIZE:()=>Be,auditLogs:()=>Lt,licenses:()=>ue,quotas:()=>$e,versions:()=>Cr});var ue={};S(ue,{CLOUD_FREE_LICENSE:()=>dI,SELF_FREE_LICENSE:()=>$n,UNLIMITED:()=>k,UNLIMITED_LICENSE:()=>fI});var rt=require("@budibase/types");var $e={};S($e,{UNLIMITED:()=>lI,appBackupRetentionDays:()=>Pr,apps:()=>Ir,automationLogRetentionDays:()=>Tr,automations:()=>xr,budibaseAICredits:()=>_r,creators:()=>wr,customAIConfigurations:()=>Or,plugins:()=>Er,queries:()=>Rr,rows:()=>br,userGroups:()=>vr,users:()=>Sr});var te=require("@budibase/types"),lI=-1,br=e=>({[te.StaticQuotaName.ROWS]:{name:"Rows",value:e,triggers:[90,100]}}),Ir=e=>({[te.StaticQuotaName.APPS]:{name:"Apps",value:e,triggers:[100]}}),Sr=e=>({[te.StaticQuotaName.USERS]:{name:"Users",value:e,triggers:[80,100]}}),wr=e=>({[te.StaticQuotaName.CREATORS]:{name:"Creators",value:e,triggers:[]}}),vr=e=>({[te.StaticQuotaName.USER_GROUPS]:{name:"User Groups",value:e,triggers:[80,100]}}),Er=e=>({[te.StaticQuotaName.PLUGINS]:{name:"Plugins",value:e,triggers:[90,100]}}),Rr=e=>({[te.MonthlyQuotaName.QUERIES]:{name:"Queries",value:e,triggers:[]}}),xr=e=>({[te.MonthlyQuotaName.AUTOMATIONS]:{name:"Automations",value:e,triggers:[80,90,100]}}),_r=e=>({[te.MonthlyQuotaName.BUDIBASE_AI_CREDITS]:{name:"Budibase AI Credits",value:e,triggers:[80,90,100]}}),Tr=e=>({[te.ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS]:{name:"Automation Logs",value:e,triggers:[]}}),Pr=e=>({[te.ConstantQuotaName.APP_BACKUPS_RETENTION_DAYS]:{name:"App Backups",value:e,triggers:[]}}),Or=e=>({[te.StaticQuotaName.AI_CUSTOM_CONFIGS]:{name:"Custom AI Configuration",value:e,triggers:[]}});var k=-1,dI={features:[],quotas:{usage:{monthly:{...Rr(k),...xr(200),..._r(0)},static:{...Ir(k),...br(2e3),...Sr(5),...wr(5),...vr(0),...Er(10),...Or(0)}},constant:{...Tr(1),...Pr(0)}},plan:{type:rt.PlanType.FREE,usesInvoicing:!1,model:rt.PlanModel.PER_USER}},$n={features:[],quotas:{usage:{monthly:{...Rr(k),...xr(k),..._r(0)},static:{...br(k),...Ir(k),...Sr(20),...wr(k),...vr(0),...Er(10),...Or(0)}},constant:{...Tr(1),...Pr(0)}},plan:{type:rt.PlanType.FREE,usesInvoicing:!1,model:rt.PlanModel.PER_USER}},fI={features:[],quotas:{usage:{monthly:{...Rr(k),...xr(k),..._r(k)},static:{...Ir(k),...br(k),...Sr(k),...wr(k),...vr(k),...Er(k),...Or(k)}},constant:{...Tr(k),...Pr(k)}},plan:{type:rt.PlanType.FREE,usesInvoicing:!1,model:rt.PlanModel.PER_USER}};var Cr={};S(Cr,{getLicenseVersion:()=>gI,getProVersion:()=>mu});var ft=require("@budibase/backend-core"),xa=O(require("fs")),gu=O(require("path")),gI=()=>{if(ft.env.isDev()){let e="dev-version.txt",t=gu.default.join(ft.objectStore.budibaseTempDir(),e);if(xa.default.existsSync(t))return xa.default.readFileSync(t,"utf8");{let r=ft.utils.newid();return xa.default.writeFileSync(t,r),r}}else return mu()},mu=()=>{let e=ft.env.VERSION;if(!e)throw new Error("No budibase pro version was specified");return e};var Lt={};S(Lt,{searchTable:()=>mI});var gt=require("@budibase/types"),yu=require("@budibase/backend-core");function mI(){return{type:"table",sourceType:gt.TableSourceType.INTERNAL,name:gt.AUDIT_LOG_TYPE,sourceId:yu.SQS_DATASOURCE_INTERNAL,primary:["_id"],schema:{metadata:{name:"metadata",type:gt.FieldType.JSON},fallback:{name:"fallback",type:gt.FieldType.JSON}}}}var Be=9;var yI=new Date(864e13).toISOString(),AI=1e3*60*60*24;async function _a(e){let r=(await xe.getCachedLicense()).quotas?.[Au.QuotaType.CONSTANT]?.[e]?.value||0;return r===ue.UNLIMITED?new Date(yI).toISOString():new Date(new Date().getTime()-AI*r).toISOString()}async function bu(){return _a(hu.ConstantQuotaName.APP_BACKUPS_RETENTION_DAYS)}var Vn=`${G.db.DocumentType.APP_BACKUP}${G.db.SEPARATOR}`;async function hI(e,t,r={}){let a=await bu(),n=G.db.getProdAppID(e),o=n,i=n;if(t.trigger&&t.type){let s=`${G.db.SEPARATOR}${t.trigger}`;s+=`${G.db.SEPARATOR}${t.type}`,o+=s,i+=s}return(!t.startDate||t.startDate<a)&&(t.startDate=a),t.startDate&&(i+=`${G.db.SEPARATOR}${t.startDate}`),t.endDate&&(o+=`${G.db.SEPARATOR}${t.endDate}`),{...r,descending:!0,startkey:`${Vn}${o}${G.db.UNICODE_MAX}`,endkey:`${Vn}${i}`}}async function Iu(e,t){try{let r=G.db.getQueryIndex(G.db.ViewName.APP_BACKUP_BY_TRIGGER);return await e.query(r,t)}catch(r){if(r!=null&&r.error==="not_found")return await fu(),Iu(e,t);throw r}}function Su(e,t){return`${Vn}${e}${G.db.SEPARATOR}${t}`}async function bI(e,t={}){let r=G.tenancy.getGlobalDB(),a,n=t.limit||9,o=await hI(e,t,{include_docs:!0,limit:n+1});t.page&&(o.startkey=t.page),!t.trigger||!t.type?a=await r.allDocs(o):a=await Iu(r,o);let i=hr(a,{paginate:t.paginate,pageSize:n}),s=[...new Set(i.data.filter(f=>f.createdBy).map(f=>f.createdBy))],c=await G.users.bulkGetGlobalUsersById(s,{cleanup:!0});for(let f of c)for(let m of i.data)f?._id===m.createdBy&&(m.createdBy=f);return i}async function II(e,t={}){let r=G.tenancy.getGlobalDB(),a=G.db.getProdAppID(e.appId),n=Su(a,e.timestamp),o={...e,_id:n,appId:a,name:e.name};return o._id=t.docId||o._id,o._rev=t.docRev||o._rev,t.filename&&(o.filename=t.filename),e.createdBy&&(o.createdBy=G.db.getGlobalIDFromUserMetadataID(e.createdBy)),await r.put(o)}async function SI(e,t){let r=G.tenancy.getGlobalDB(),a=await r.get(e);return a.name=t,await r.put(a)}async function wI(e){let t=G.tenancy.getGlobalDB(),r=await t.get(e);await t.remove(r._id,r._rev)}async function vI(e){return await G.tenancy.getGlobalDB().get(e)}var mt={};S(mt,{get:()=>RI,getCacheEnvVarID:()=>Eu,getEnvVarID:()=>Ta,update:()=>xI});var _e=require("@budibase/backend-core"),vu=O(require("lru-cache")),EI=1e3,wu=new vu.default({max:EI});function Ta(){return _e.StaticDatabases.GLOBAL.docs.environmentVariables}function Eu(e){return`${_e.tenancy.getTenantId()}/${Ta()}/${e||""}`}async function RI(){let e=Ta(),t=_e.tenancy.getGlobalDB(),r,a=!1;try{r=await t.get(e)}catch(s){if(s.status==404)a=!0;else throw s}let n=Eu(r?._rev),o=wu.get(n);if(o)return o;let i;return!a&&r?i={...r,variables:JSON.parse(_e.encryption.decrypt(r.variables,_e.encryption.SecretOption.ENCRYPTION))}:i={_id:e,variables:{}},wu.set(n,i),i}async function xI(e){let t=Ta();return await _e.tenancy.getGlobalDB().put({_id:e._id||t,_rev:e._rev||void 0,variables:_e.encryption.encrypt(JSON.stringify(e.variables),_e.encryption.SecretOption.ENCRYPTION)})}var Oa=new Bn(P.env.ACCOUNT_PORTAL_URL),Ca=async e=>{try{let t=await e.json();if(t.message)return t.message}catch{}try{let t=await e.text();if(t)return t}catch{}},Ru=async e=>{let t,r;if(P.env.SELF_HOSTED){if(t=await he.get(),!t.licenseKey)return;r={[P.constants.Header.LICENSE_KEY]:t.licenseKey}}else{let a=P.tenancy.getTenantId();r={[P.constants.Header.API_KEY]:P.env.ACCOUNT_PORTAL_API_KEY,[P.constants.Header.TENANT_ID]:a}}return e(r)},xu=async()=>Ru(async e=>{let t=await Le.getQuotaUsage();if(t.usageQuota.users==null){let s=await P.users.getUserCount();console.info(`Syncing user count quota to ${s}`),t.usageQuota.users=s,await Le.setUsage(s,Pa.StaticQuotaName.USERS,Pa.QuotaUsageType.STATIC)}let r=await P.installation.getInstallFromDB(),a=P.tenancy.getTenantId(),n=await P.events.identification.getUniqueTenantId(a),o=Cr.getProVersion(),i={quotaUsage:t,tenantId:a,install:{id:r.installId,tenantId:n,version:o}};try{let s=await Oa.post("/api/license",{headers:{...e},body:i});if(s.status===404||s.status===403)return;if(s.status!==200){let c=await Ca(s);throw new P.HTTPError(`Error getting license: ${c}`,s.status)}return s.json()}catch(s){if(P.env.DISABLE_ACCOUNT_PORTAL)return;throw s}});P.env.isJest()&&(xu=jest.fn());var Dt=xu;async function Kn(e){let t;try{t=await Oa.get("/api/license",{headers:{[P.constants.Header.LICENSE_KEY]:e}})}catch(r){if(P.env.DISABLE_ACCOUNT_PORTAL)return;throw r}if(!(t.status===404||t.status===403)){if(t.status!==200){let r=await Ca(t);throw new P.HTTPError(`Error getting license: ${r}`,t.status)}return t.json()}}var _I=e=>Ru(async t=>{let r=await Oa.post("/api/license/usage/triggered",{headers:{...t},body:e});if(r.status!==200){let a=await Ca(r);P.logging.logAlert(`Error triggering quota usage: ${a}`)}}),Yn=async e=>{let t=await P.installation.getInstall(),r={installVersion:t.version,installId:t.installId},a=await Oa.post("/api/license/activate",{headers:{[P.constants.Header.LICENSE_KEY]:e},body:r});if(a.status===403)throw new P.HTTPError("Invalid license key",400);if(a.status!==200){let n=await Ca(a);throw new P.HTTPError(`Error activating license key: ${n}`,a.status)}return a.json()};var Co=require("@budibase/backend-core");var Ya={};S(Ya,{activateOfflineLicenseToken:()=>l_,deleteOfflineLicenseToken:()=>d_,dev:()=>ta,enrichLicense:()=>Ad,getIdentifier:()=>_o,getIdentifierBase64:()=>f_,getIdentifierFromBase64:()=>g_,getOfflineLicense:()=>To,getOfflineLicenseToken:()=>gd,signing:()=>Dr,verifyExpiry:()=>md,verifyInstallation:()=>yd});var Dr={};S(Dr,{sign:()=>PI,verifyLicenseToken:()=>Lr});var Hn=O(require("jsonwebtoken")),TI=`-----BEGIN PUBLIC KEY-----
29
29
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvz3jePLCFBXZ19c8Dpkv
30
30
  XtSgOhKFOcvQdo/LV0KJRUzQWDPWuO4ILtBtnqhjtIzZH4CH0qCYBet5L6Qr4CM1
31
31
  l2HXiAD1Q2rlHNW9wDaYyKb1F5f+v4RyqCAyzlkwRdksmkLeECTboojNnmRCrE3C
@@ -34,20 +34,17 @@ l2HXiAD1Q2rlHNW9wDaYyKb1F5f+v4RyqCAyzlkwRdksmkLeECTboojNnmRCrE3C
34
34
  d/o3ZWE1TTj1zYwlCLN5qRKr3hU8nC3xEYNEbkB9SfTRaOq9Q7P8WmfLkoCPm3pR
35
35
  mwIDAQAB
36
36
  -----END PUBLIC KEY-----
37
- `;function Kr(e){return co.default.verify(e,LI,{algorithms:["RS256"]})}function DI(e,t){return co.default.sign(t,e,{encoding:"utf-8",algorithm:"RS256"})}var Kn={};x(Kn,{getFeatures:()=>lo});var l=require("@budibase/types");var BI={[l.PlanType.FREE]:[...Ee.SELF_FREE_LICENSE.features],[l.PlanType.PREMIUM]:void 0,[l.PlanType.PREMIUM_PLUS]:[l.Feature.APP_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.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.APP_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.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.APP_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.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS]},NI={[l.PlanType.FREE]:[...Ee.CLOUD_FREE_LICENSE.features],[l.PlanType.PREMIUM]:[l.Feature.APP_BACKUPS,l.Feature.BRANDING,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS],[l.PlanType.PREMIUM_PLUS]:[l.Feature.APP_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.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.APP_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.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS,l.Feature.BRANDING],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS,l.Feature.BRANDING],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.APP_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.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS]};function lo(e,t){let r=[];function n(a){let o=a[t];if(!o)throw new Error(`Features do not exist for planType=${t} and hosting=${e}`);return o}switch(e){case l.Hosting.SELF:r=n(BI);break;case l.Hosting.CLOUD:r=n(NI);break}return r}var Hn={};x(Hn,{UNLIMITED:()=>f,getQuotas:()=>fo});var Y=require("@budibase/types");var p=pt,Nu=Ee,f=-1,Jr=e=>e*1e6,MI={[Y.PlanType.FREE]:{...Nu.CLOUD_FREE_LICENSE.quotas},[Y.PlanType.PREMIUM]:{usage:{monthly:{...p.queries(f),...p.automations(1e3),...p.budibaseAICredits(0)},static:{...p.rows(1e4),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(0),...p.plugins(f),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(7),...p.appBackupRetentionDays(7)}},[Y.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...p.queries(f),...p.automations(5e3),...p.budibaseAICredits(Jr(2))},static:{...p.rows(25e3),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(0),...p.plugins(f),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[Y.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...p.queries(f),...p.automations(5e3),...p.budibaseAICredits(Jr(2))},static:{...p.rows(25e3),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(0),...p.plugins(f),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[Y.PlanType.PRO]:{usage:{monthly:{...p.queries(f),...p.automations(1e3),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(5),...p.plugins(f),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(7),...p.appBackupRetentionDays(7)}},[Y.PlanType.TEAM]:{usage:{monthly:{...p.queries(f),...p.automations(5e3),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(10),...p.plugins(f),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(90)}},[Y.PlanType.BUSINESS]:{usage:{monthly:{...p.queries(f),...p.automations(1e4),...p.budibaseAICredits(0)},static:{...p.rows(5e4),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(50),...p.plugins(f),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(365),...p.appBackupRetentionDays(365)}},[Y.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(Jr(4))},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(f),...p.plugins(f),...p.customAIConfigurations(f)}},constant:{...p.automationLogRetentionDays(f),...p.appBackupRetentionDays(f)}},[Y.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(Jr(4))},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(f),...p.plugins(f),...p.customAIConfigurations(f)}},constant:{...p.automationLogRetentionDays(15),...p.appBackupRetentionDays(15)}},[Y.PlanType.ENTERPRISE]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(Jr(4))},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(f),...p.plugins(f),...p.customAIConfigurations(f)}},constant:{...p.automationLogRetentionDays(f),...p.appBackupRetentionDays(f)}}},GI={[Y.PlanType.FREE]:{...Nu.SELF_FREE_LICENSE.quotas},[Y.PlanType.PREMIUM]:void 0,[Y.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(0),...p.plugins(f),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[Y.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(0),...p.plugins(f),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[Y.PlanType.PRO]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(5),...p.plugins(f),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(7),...p.appBackupRetentionDays(7)}},[Y.PlanType.TEAM]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(10),...p.plugins(f),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(90)}},[Y.PlanType.BUSINESS]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(50),...p.plugins(f),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(90),...p.appBackupRetentionDays(365)}},[Y.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(f),...p.plugins(f),...p.customAIConfigurations(f)}},constant:{...p.automationLogRetentionDays(f),...p.appBackupRetentionDays(f)}},[Y.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(f),...p.plugins(f),...p.customAIConfigurations(f)}},constant:{...p.automationLogRetentionDays(15),...p.appBackupRetentionDays(15)}},[Y.PlanType.ENTERPRISE]:{usage:{monthly:{...p.queries(f),...p.automations(f),...p.budibaseAICredits(0)},static:{...p.rows(f),...p.apps(f),...p.users(f),...p.creators(f),...p.userGroups(f),...p.plugins(f),...p.customAIConfigurations(f)}},constant:{...p.automationLogRetentionDays(f),...p.appBackupRetentionDays(f)}}};function fo(e,t){let r;function n(a){let o=a[t];if(!o)throw new Error(`Quotas do not exist for planType=${t} and hosting=${e}`);return o}switch(e){case Y.Hosting.SELF:r=n(GI);break;case Y.Hosting.CLOUD:r=n(MI);break}return JSON.parse(JSON.stringify(r))}var er={};x(er,{appExists:()=>kI,encoding:()=>Zt});var Mu=require("@budibase/backend-core");async function kI(e){return(await Mu.db.getAllApps({all:!0,idsOnly:!0})).includes(e)}var Zt={};x(Zt,{base64ToObject:()=>$I,objectToBase64:()=>FI});function FI(e){let t=JSON.stringify(e);return Buffer.from(t).toString("base64")}function $I(e){let t=Buffer.from(e,"base64").toString();return JSON.parse(t)}var Sd=require("@budibase/types"),fr=require("@budibase/backend-core"),wd=M(el()),vd=M(Fo());async function hR(e){await Le.save({offlineLicenseToken:e}),await Dt()}async function AR(){await Le.save({offlineLicenseToken:void 0}),await Dt()}async function Ed(){return(await Le.get()).offlineLicenseToken}async function $o(){let t=(await fr.installation.getInstall()).installId,r=fr.context.getTenantId(),n=await fr.events.identification.getUniqueTenantId(r);return{installId:t,tenantId:n}}async function bR(){let e=await $o();return Zt.objectToBase64(e)}function IR(e){return Zt.base64ToObject(e)}function _d(e){let t=Date.now(),r=new Date(e.expireAt).getTime();if(t>r)throw new Error(`Offline license has expired. expireAt=${e.expireAt}`)}async function xd(e){let t=await $o();if(e.identifier.installId!==t.installId||e.identifier.tenantId!==t.tenantId)throw new Error("Invalid offline license")}function Rd(e){let t=e.plan.type,r=Sd.Hosting.SELF,n=lo(r,t),a=fo(r,t);return e.features=(0,wd.default)(e.features,n),e.quotas=(0,vd.default)(e.quotas,a),e}async function Qo(){try{let e=await Ed();if(e){let t=await Kr(e);return _d(t),await xd(t),Rd(t)}}catch(e){console.error("Error retrieving offline license",e)}}var yn={};x(yn,{deleteDevLicense:()=>_R,getOfflineLicense:()=>vR,writeDevLicenseToDisk:()=>ER});var Td=require("@budibase/backend-core"),Wo=require("path"),Od=require("os"),Bt=M(require("fs"));var SR=Td.env.isTest()?".budibase-test":".budibase",jo=(0,Wo.join)((0,Od.tmpdir)(),SR),wR="dev_license.txt",mn=(0,Wo.join)(jo,wR);if(!Bt.default.existsSync(jo))try{Bt.default.mkdirSync(jo)}catch{}function vR(){try{if(Bt.default.existsSync(mn)){let e=Bt.default.readFileSync(mn,{encoding:"utf-8"});return Kr(e)}}catch(e){console.error("Error retrieving offline license from disk",e)}}function ER(e){console.log(`Writing license to: ${mn}`),Bt.default.writeFileSync(mn,e,{encoding:"utf-8"})}function _R(){Bt.default.rmSync(mn,{force:!0})}var Yo=async()=>{if(Vo.env.OFFLINE_MODE)return Qo();let e=await Xt();return e||(e=yn.getOfflineLicense()),e},xR=e=>uo(e),Ko=()=>Vo.env.SELF_HOSTED?Ee.SELF_FREE_LICENSE:Ee.CLOUD_FREE_LICENSE;var Ho={};x(Ho,{activateLicenseKey:()=>RR,deleteLicenseKey:()=>OR,getLicenseKey:()=>TR});async function RR(e){await po(e),await Le.save({licenseKey:e}),await Dt()}async function TR(){return(await Le.get()).licenseKey}async function OR(){await Le.save({licenseKey:void 0}),await Dt()}var hn=require("@budibase/backend-core"),la=M(require("dd-trace")),Pd=3600,Dt=async()=>{await Ud(),await qd()},Cd=async(e,t)=>{let{populateLicense:r=Yo,populateFreeLicense:n=Ko}=t||{};return await la.default.trace("getCachedLicense",async a=>{let o=hn.tenancy.getTenantId(),i=await Ha(),s=await i.get(o);return a.addTags({tenantId:o,foundInCache:!!s}),s||(s=await la.default.trace("populateLicense",async()=>await r(o)),a.addTags({populatedLicense:!!s}),s||(s=la.default.trace("populateFreeLicense",()=>n(e,o)),a.addTags({populatedFreeLicense:!!s})),s.refreshedAt=new Date().toISOString(),a.addTags({refreshedAt:s.refreshedAt,expirySeconds:Pd}),await i.store(o,s,Pd),s)})};hn.env.isJest()&&(Cd=jest.fn());var qd=Cd,Ud=async()=>{let e=hn.tenancy.getTenantId();await(await Ha()).delete(e)};async function ge(e,t){Array.isArray(e)||(e=[e]),t||(t=await Qe.getCachedLicense());for(let r of e)if(!t?.features.includes(r))return!1;return!0}async function da(e,t){if(!await ge(e,t))throw new ct.FeatureDisabledError(`${e} is not currently enabled`,e)}async function Jo(e,t){if(!await ge(e,t)){let r=e.join(", ");throw new ct.FeatureDisabledError(`${r} are not currently enabled`,r)}}function xe(e){return async(...t)=>(await da(fe.Feature.APP_BACKUPS),e(...t))}async function zo(){return ge(fe.Feature.APP_BACKUPS)}async function Xo(){return ge(fe.Feature.BRANDING)}async function Ld(){return ge(fe.Feature.ENFORCEABLE_SSO)}async function CR(){return ge(fe.Feature.SYNC_AUTOMATIONS)}async function qR(){return ge(fe.Feature.TRIGGER_AUTOMATION_RUN)}async function Nt(){return ge(fe.Feature.APP_BUILDERS)}async function fa(){return ge(fe.Feature.AUDIT_LOGS)}async function Zo(){return ge(fe.Feature.USER_GROUPS)}async function lt(){return ge(fe.Feature.EXPANDED_PUBLIC_API)}async function UR(e){if(ct.env.ENABLE_SSO_MAINTENANCE_MODE||!await Ld())return!1;let r;return e?.config?r=e.config:r=await ct.configs.getSettingsConfig(),!!r.isSSOEnforced}var es=async()=>{let e=fe.Feature.SCIM,t=await ge(e),r=await ct.configs.getSCIMConfig();if(!t||!r?.enabled)throw new ct.FeatureDisabledError(`${e} is not currently enabled`,e);return!0};async function LR(){return ge(fe.Feature.VIEW_PERMISSIONS)}async function DR(){return ge(fe.Feature.VIEW_READONLY_COLUMNS)}async function An(){return ge(fe.Feature.BUDIBASE_AI)}async function BR(){return ge(fe.Feature.AI_CUSTOM_CONFIGS)}var NR={faviconUrl:void 0,faviconUrlEtag:void 0,emailBrandingEnabled:!0,testimonialsEnabled:!0,platformTitle:void 0,loginHeading:void 0,loginButton:void 0,metaDescription:void 0,metaImageUrl:void 0,metaTitle:void 0};async function MR(e){return await Xo()?{faviconUrl:e.faviconUrl,faviconUrlEtag:e.faviconUrlEtag,emailBrandingEnabled:e.emailBrandingEnabled,testimonialsEnabled:e.testimonialsEnabled,platformTitle:e.platformTitle,loginHeading:e.loginHeading,loginButton:e.loginButton,metaDescription:e.metaDescription,metaImageUrl:e.metaImageUrl,metaTitle:e.metaTitle}:NR}var ma={};x(ma,{enrichAIConfig:()=>ts});var GR="budibase_ai";async function ts(e){return await An()&&(e.config[GR]={provider:"OpenAI",active:!0,isDefault:Object.keys(e.config).every(t=>!e.config[t].isDefault),isBudibaseAI:!0,defaultModel:process.env.BUDIBASE_AI_DEFAULT_MODEL||"gpt-4o-mini",apiKey:process.env.OPENAI_API_KEY,name:"Budibase AI"}),e}var at={};x(at,{addApp:()=>jR,addAutomation:()=>JR,addCustomAIConfig:()=>zR,addGroup:()=>ns,addPlugin:()=>os,addRow:()=>VR,addRows:()=>KR,addUsers:()=>ha,bustCache:()=>iu,decrement:()=>We,decrementMany:()=>Gt,getCurrentUsageValues:()=>lu,getLicensedQuota:()=>Bd,getQuotaUsage:()=>Pt,increment:()=>Oe,incrementBudibaseAICredits:()=>us,incrementMany:()=>Mt,removeApp:()=>WR,removeCustomAIConfig:()=>XR,removeCustomAIConfigs:()=>ZR,removeGroup:()=>as,removePlugin:()=>ss,removeRow:()=>YR,removeRows:()=>HR,removeUsers:()=>hr,set:()=>rs,setAllUsage:()=>ro,setAppUsageValue:()=>to,setUsage:()=>uu,setUsagePerApp:()=>pu,updatePluginCount:()=>is,updateUsage:()=>gr,usageLimitIsExceeded:()=>QR,utils:()=>Pr});var ce=require("@budibase/types");var Te=require("@budibase/backend-core");var Oe=(e,t,r)=>Dd({change:1,name:e,type:t,opts:r}),Mt=e=>Dd(e),Dd=async e=>{let t=Array.isArray(e)?e:[e];await gr(t.map(n=>({usageChange:n.change,name:n.name,type:n.type,opts:{dryRun:!0,suppressErrorLog:n.opts?.suppressErrorLog,id:n.opts?.id}})));let r=[];for(let n of t){let a=n.opts?.fn;a&&r.push(await a())}return await gr(t.map(n=>({usageChange:n.change,name:n.name,type:n.type,opts:{dryRun:!1,valueFn:n.opts?.valueFn,suppressErrorLog:n.opts?.suppressErrorLog,id:n.opts?.id}}))),r[0]},We=(e,t,r={})=>gr({usageChange:-1,name:e,type:t,opts:r}),Gt=e=>{let t=Array.isArray(e)?e:[e];return gr(t.map(r=>({usageChange:-r.change,name:r.name,type:r.type,opts:r.opts})))},rs=async(e,t,r)=>Xe.setUsage(r,e,t),kR=(e,t,r)=>{if(e==ce.QuotaUsageType.STATIC){let n=r.usageQuota.triggers;return n?n[t]||{}:{}}else{let n=Xe.utils.getCurrentMonthString(),a=r.monthly[n].triggers;return a?a[t]||{}:{}}},FR=async(e,t,r,n)=>{try{await Te.locks.doWithLock({type:ce.LockType.TRY_ONCE,name:ce.LockName.TRIGGER_QUOTA,resource:e,ttl:1e4},async()=>{let a={percentage:r,name:t.name};n&&(a.resetDate=n),await bt.triggerQuota(a)})}catch(a){Te.logging.logAlert("Error triggering quota",a)}},$R=async(e,t,r,n)=>{let a=await Pt(),o=e===ce.QuotaUsageType.MONTHLY?a.quotaReset:void 0,i=await kR(e,t,a),s=n.triggers,c=r/n.value*100;c>100&&(c=100);for(let[d,m]of s.entries())if(c>=m&&n.value!==pt.UNLIMITED){if(!i[m]){i[m]=new Date().toISOString();let y=s[d+1]||100;(!(c>=y)||c===m)&&await FR(t,n,c,o)}}else i[m]=void 0;return i},gr=async e=>{let t=Te.tenancy.getTenantId(),r=Array.isArray(e)?e:[e],n=null,a,o=[],i={},s={},c={},d={};for(let g of r){try{n=Te.context.getAppId()}catch{}if(ce.APP_QUOTA_NAMES.includes(g.name)&&!n)throw new Error("App context required for quota update");try{a=await Bd(ce.QuotaType.USAGE,g.name,g.type),o.push(a);let{total:w,app:C,breakdown:D}=await Xe.getCurrentUsageValues(g.type,g.name,g.opts?.id);w+=g.usageChange,C!=null&&(C+=g.usageChange),D!=null&&(D+=g.usageChange);let L={};if(g.opts?.dryRun||(L=await $R(g.type,g.name,w,a),d={...d,[g.name]:L}),a.value!==pt.UNLIMITED&&w>a.value&&g.usageChange>0)throw new Te.UsageLimitError(`Licensed ${a.name} of ${a.value} has been exceeded`,a.name);if(w=Math.max(0,w),C&&(C=Math.max(0,C)),D&&(D=Math.max(0,D),c={...c,[g.name]:D}),!g.opts?.dryRun){let q=g.opts?.valueFn;q&&(w=await q(),C=w),i={...i,[g.name]:w},s={...s,[g.name]:C}}}catch(w){throw g.opts?.suppressErrorLog||console.error(`Error updating usage quotas for ${g.name}`,w),w}}let m=r.filter(g=>!g.opts?.dryRun).map(g=>({name:g.name,type:g.type,values:{total:i[g.name],app:s[g.name],breakdown:c[g.name],triggers:d[g.name]},opts:{...g.opts,tenantId:t}}));m.length>0&&await Xe.setAllUsage(m)},Bd=async(e,t,r)=>{let n=await Qe.getCachedLicense();if(!n){let a=Te.tenancy.getTenantId();throw new Error("License not found for tenant id "+a)}if(r&&(0,ce.isStaticQuota)(e,r,t))return n.quotas[e][r][t];if(r&&(0,ce.isMonthlyQuota)(e,r,t))return n.quotas[e][r][t];if((0,ce.isConstantQuota)(e,t))return n.quotas[e][t];throw new Error("Invalid quota type")},QR=async(e,t)=>{try{return await gr({usageChange:1,name:e,type:t,opts:{dryRun:!0}}),!1}catch(r){if(r.code===Te.ErrorCode.USAGE_LIMIT_EXCEEDED)return!0;throw r}};var mr=require("@budibase/types"),Nd=require("@budibase/backend-core"),Md=async()=>{let e=await Nd.db.getAllApps({dev:!0});return e?e.length:0},jR=async(e,{appId:t}={})=>Oe(mr.StaticQuotaName.APPS,mr.QuotaUsageType.STATIC,{fn:e,valueFn:Md,id:t}),WR=async({appId:e}={})=>We(mr.StaticQuotaName.APPS,mr.QuotaUsageType.STATIC,{valueFn:Md,id:e});var rt=require("@budibase/types"),VR=async(e,{tableId:t}={})=>Oe(rt.StaticQuotaName.ROWS,rt.QuotaUsageType.STATIC,{fn:e,id:t}),YR=async({tableId:e}={})=>We(rt.StaticQuotaName.ROWS,rt.QuotaUsageType.STATIC,{id:e}),KR=async(e,t,{tableId:r}={})=>Mt({change:e,name:rt.StaticQuotaName.ROWS,type:rt.QuotaUsageType.STATIC,opts:{fn:t,id:r}}),HR=async(e,{tableId:t}={})=>Gt({change:e,name:rt.StaticQuotaName.ROWS,type:rt.QuotaUsageType.STATIC,opts:{id:t}});var ya=require("@budibase/types"),JR=async(e,{automationId:t}={})=>Oe(ya.MonthlyQuotaName.AUTOMATIONS,ya.QuotaUsageType.MONTHLY,{fn:e,id:t});var yr=require("@budibase/types"),ns=async e=>Oe(yr.StaticQuotaName.USER_GROUPS,yr.QuotaUsageType.STATIC,{fn:e}),as=async()=>We(yr.StaticQuotaName.USER_GROUPS,yr.QuotaUsageType.STATIC);var wt=require("@budibase/types"),os=async e=>Oe(wt.StaticQuotaName.PLUGINS,wt.QuotaUsageType.STATIC,{fn:e}),ss=async()=>We(wt.StaticQuotaName.PLUGINS,wt.QuotaUsageType.STATIC),is=async e=>rs(wt.StaticQuotaName.PLUGINS,wt.QuotaUsageType.STATIC,e);var nt=require("@budibase/types"),bn=require("@budibase/backend-core");var ha=async(e,t,r)=>{let n=[{change:e,name:nt.StaticQuotaName.USERS,type:nt.QuotaUsageType.STATIC,opts:{fn:r,valueFn:bn.users.getUserCount}}];t>0&&n.push({change:t,name:nt.StaticQuotaName.CREATORS,type:nt.QuotaUsageType.STATIC,opts:{valueFn:bn.users.getCreatorCount}});let a=await Mt(n);return await Xt(),a},hr=async(e,t)=>{let r=[{change:e,name:nt.StaticQuotaName.USERS,type:nt.QuotaUsageType.STATIC,opts:{valueFn:bn.users.getUserCount}}];t>0&&r.push({change:t,name:nt.StaticQuotaName.CREATORS,type:nt.QuotaUsageType.STATIC,opts:{valueFn:bn.users.getCreatorCount}}),await Gt(r),await Xt()};var Ve=require("@budibase/types"),us=async e=>Mt({change:e,name:Ve.MonthlyQuotaName.BUDIBASE_AI_CREDITS,type:Ve.QuotaUsageType.MONTHLY}),zR=async()=>Oe(Ve.StaticQuotaName.AI_CUSTOM_CONFIGS,Ve.QuotaUsageType.STATIC),XR=async()=>We(Ve.StaticQuotaName.AI_CUSTOM_CONFIGS,Ve.QuotaUsageType.STATIC),ZR=async e=>Gt({change:e,name:Ve.StaticQuotaName.AI_CUSTOM_CONFIGS,type:Ve.QuotaUsageType.STATIC});var dt={};x(dt,{addAppBuilder:()=>aT,db:()=>ot,removeAppBuilder:()=>oT});var Sn=require("@budibase/backend-core");var z={};x(z,{addAppBuilder:()=>fs,addUsers:()=>cs,adjustGroupCreatorsQuotas:()=>nT,cleanupApp:()=>rT,enrichUserRolesFromGroups:()=>tT,fetch:()=>In,get:()=>Ft,getBulk:()=>Wd,getGroupBuilderAppIds:()=>jd,getGroupRoleId:()=>eT,remove:()=>ps,removeAppBuilder:()=>gs,removeUsers:()=>ls,save:()=>Ar,updateGroupApps:()=>ds});var U=require("@budibase/backend-core");var Gd=require("@budibase/backend-core"),Aa=class extends Gd.HTTPError{constructor(t){super(`Group name "${t}" is unavailable`,409)}};async function $d(e,t){try{let r=[];for(let s of e)if(s.roles){let c=s.roles[U.db.getProdAppID(t)];c&&r.push(c)}let n=await Promise.all(r.map(async s=>({[s]:await U.roles.roleToNumber(s)}))),a,o,i={};n.forEach(s=>{let[c,d]=Object.entries(s)[0];i[c]={roleId:c,roleNum:d}});for(let{roleId:s,roleNum:c}of Object.values(i))(o===void 0||c>o)&&(o=c,a=s);return a}catch(r){throw U.logging.logAlert(`Error finding higest role for ${e.length} on app ${t}`,r),r}}async function Qd(e,t){return t?t=t.filter(r=>e.includes(r._id)):t=await V.getBulk(e,{enriched:!1}),t}async function jd(e,t){if(!e.userGroups)return[];let r=await Qd(e.userGroups,t?.groups),n=t?.appId?U.db.getProdAppID(t?.appId):null,a=[];for(let o of r){let i=o.builder?.apps;n&&i?.includes(n)?a.push(n):n||(a=a.concat(i||[]))}return[...new Set(a)]}async function eT(e,t,r){if(!e.userGroups)return null;let n=await Qd(e.userGroups,r?.groups),a=U.db.getProdAppID(t);return e.roles?.[a]?e.roles[a]:(n=n.filter(o=>o?.roles?Object.keys(o.roles).includes(a):!1),await $d(n,t))}async function tT(e){if(!e||!e.userGroups)return e;let t=await Wd(e.userGroups,{enriched:!1}),r=[];for(let a of t)a?.roles&&(r=r.concat(Object.keys(a.roles)));r=[...new Set(r)];for(let a of r)await U.context.doInAppContext(a,async()=>{if(e.roles[a])return;let o=await $d(t,a);o&&(e.roles[a]=o)});let n=await jd(e,{groups:t});if(n.length&&!e.builder?.global){let a=e.builder?.apps||[];e.builder={apps:a.concat(n)}}return e}async function In(){return await V.fetch()}async function Ft(e){return await V.get(e)}async function Wd(e,t={enriched:!0}){return await V.getBulk(e,t)}async function kd(e){if(await V.getByName(e))throw new Aa(e)}async function Fd(e){let t=await V.getGroupUsers(e._id);if(!t.length)return 0;let n=await U.tenancy.getGlobalDB().getMultiple(t.map(o=>o._id));return(await U.userUtils.creatorsInList(n)).filter(o=>o).length}async function Ar(e){let t=[],r=!e._id,n=0;if(delete e.users,!e._id)e._id=V.generateUserGroupID(),await kd(e.name),t.push(U.events.group.created(e));else{let o=await V.get(e._id);if(o.name!==e.name&&await kd(e.name),t.push(U.events.group.updated(e)),JSON.stringify(o.roles)!==JSON.stringify(e.roles)){let i=o.users?.length||0,s=0;i>0&&(s=await Fd(o)),Object.values(e.roles).includes(U.roles.BUILTIN_ROLE_IDS.ADMIN)?n=i-s:n=-i,t.push(U.events.group.permissionsEdited(e))}}await Promise.all(t);let a=()=>V.save(e);if(r)return await ns(a);{let o=await a();if(n>0)await ha(0,n);else if(n<0){let i=await Fd(e),s=Math.abs(n)-i;s>0&&await hr(0,s)}return o}}async function ps(e,t){let r;try{r=await V.get(e)}catch{throw new Error("Group not found")}let n=Object.values(r.roles||{}).includes(U.roles.BUILTIN_ROLE_IDS.ADMIN),a=()=>{};if(n){let i=U.tenancy.getGlobalDB(),s=await V.getGroupUsers(e),d=(await Promise.all(s.map(w=>i.get(w._id)))).map(w=>({...w,userGroups:w.userGroups.filter(C=>C!==e)})),g=(await U.userUtils.creatorsInList(d)).filter(w=>w).length,y=s.length-g;y&&(a=()=>hr(0,y))}let o=await V.destroy(e,t);return await U.events.group.deleted(r),await as(),await a(),o}async function cs(e,t){let r=await V.get(e),n=await U.users.bulkGetGlobalUsersById(t),a=[];for(let c of n)c.userGroups||(c.userGroups=[]),c.userGroups.includes(e)||a.push(c);if(!a.length)return a;let o=a.map(c=>({...c,userGroups:[...c?.userGroups||[],e]}));if(await U.users.bulkUpdateGlobalUsers(o),Object.values(r.roles||{}).includes(U.roles.BUILTIN_ROLE_IDS.ADMIN)){let d=(await U.userUtils.creatorsInList(a)).filter(g=>g).length,m=a.length-d;m&&await ha(0,m)}let s=[];for(let c of t)s.push(U.cache.user.invalidateUser(c));return await Promise.all(s),await U.events.group.usersAdded(o.length,r),o}async function ls(e,t){let r=await V.get(e),n=await U.users.bulkGetGlobalUsersById(t),a=[];for(let s of n){if(!s.userGroups||!s.userGroups.includes(e))continue;let c=s.userGroups.indexOf(e);s.userGroups.splice(c,1),a.push(s)}if(await U.users.bulkUpdateGlobalUsers(a),Object.values(r.roles||{}).includes(U.roles.BUILTIN_ROLE_IDS.ADMIN)){let c=(await U.userUtils.creatorsInList(a)).filter(m=>m).length,d=a.length-c;d&&await hr(0,d)}let i=[];for(let s of t)i.push(U.cache.user.invalidateUser(s));return await Promise.all(i),a.length&&await U.events.group.usersDeleted(a.length,r),a}async function ds(e,t){let r=await Ft(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];return await Ar(r)}async function rT(e){let t=await In(),r=[];for(let n of t)!n.roles||!n.roles[e]||(delete n.roles[e],r.push(n));return await V.bulkSave(r)}async function fs(e,t){if(!await Nt())throw new Error("Feature not enabled, please check license");let r=U.db.getProdAppID(t),n=await Ft(e);n.builder??={apps:[]},n.builder.apps.includes(t)||(n.builder.apps.push(r),await Ar(n))}async function gs(e,t){if(!await Nt())throw new Error("Feature not enabled, please check license");let r=U.db.getProdAppID(t),n=await Ft(e);n.builder?.apps.includes(t)&&(n.builder.apps=n.builder.apps.filter(a=>a!==r),await Ar(n))}async function nT(){if(!await Zo()){let e=U.tenancy.getGlobalDB(),r=(await In()||[]).filter(n=>Object.values(n?.roles||{}).includes(U.roles.BUILTIN_ROLE_IDS.ADMIN));for(let n of r){let a=await V.getGroupUsers(n._id),i=(await Promise.all(a.map(m=>e.get(m._id)))).map(m=>({...m,userGroups:m.userGroups.filter(g=>g!==n._id)})),c=(await U.userUtils.creatorsInList(i)).filter(m=>m).length,d=a.length-c;await V.save({...n,roles:{}}),d&&await hr(0,d)}}}Sn.users.UserDB.init(at,z,Re);var ot=Sn.users.UserDB;async function aT(e,t){if(!await Nt())throw new Error("Feature not enabled, please check license");await Sn.users.addAppBuilder(e,t)}async function oT(e,t){if(!await Nt())throw new Error("Feature not enabled, please check license");await Sn.users.removeAppBuilder(e,t)}var Ia={};x(Ia,{logs:()=>ws});var ws={};x(ws,{logSearch:()=>gT,oldestLogDate:()=>Xd,storeLog:()=>mT});var zd=require("@budibase/types"),ba=require("@budibase/backend-core");var vt=require("@budibase/types");var pe=require("@budibase/backend-core");var Vd=require("@budibase/backend-core");async function Yd(e,t){let r,n=5,a=!1,o,i=!0;for(;n>0;n--)try{i?o=await e():o=await exports.randomDelay(e),a=!0;break}catch(s){r=s}return a||Vd.logging.logWarn(`Failed to backoff: ${t}`,r),o}var{SEPARATOR:ft,UNICODE_MAX:sT,DocumentType:Kd,AutomationViewMode:ms,ViewName:iT,getQueryIndex:uT}=pe.db,pT=new Date(0).toISOString(),cT=100,ys=async()=>Qn(vt.ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS);function Hd(e,t,{status:r,automationId:n}={},a={}){let o=n?`${n}${ft}`:"",i=r?`${r}${ft}`:"",s;return r&&n?s=`${ms.ALL}${ft}${i}${o}`:r?s=`${ms.STATUS}${ft}${i}`:n?s=`${ms.AUTOMATION}${ft}${o}`:s=`${Kd.AUTOMATION_LOG}${ft}`,{...a,descending:!0,startkey:`${s}${t}${sT}`,endkey:`${s}${e}`}}function hs(e){let t=vt.AutomationStatus.SUCCESS,r=!0;for(let n of e.steps){let a=n.outputs?.status?.toLowerCase(),o=a==="stopped_error";if(r&&!o){r=!1;continue}if(o){t=vt.AutomationStatus.STOPPED_ERROR;break}else if(n.outputs?.success){if(a==="stopped"){t=vt.AutomationStatus.STOPPED;break}}else{t=vt.AutomationStatus.ERROR;break}}return t}function lT(e,t,r){return`${Kd.AUTOMATION_LOG}${ft}${e}${ft}${r}${ft}${t}`}async function As(e,t,r={docs:!0}){let n=pe.context.getProdAppDB();await n.exists()||(n=pe.context.getDevAppDB());let a={status:r.status},o=r?.limit?r.limit:r?.paginate?9+1:void 0,i=Hd(e,t,a,{include_docs:r.docs,limit:o});r?.page&&(i.startkey=r.page);let s=await n.allDocs(i);return qr(s,{paginate:r?.paginate,pageSize:9})}async function bs(e,t,r={}){let n=pe.context.getProdAppDB();await n.exists()||(n=pe.context.getDevAppDB());let a;try{let o={automationId:r?.automationId,status:r?.status},i=Hd(e,t,o,{include_docs:!0,limit:9+1});r?.page&&(i.startkey=r.page),a=await n.query(uT(iT.AUTOMATION_LOGS),i)}catch(o){if(o!=null&&(o.name==="not_found"||o.error==="not_found"))return await wu(),bs(e,t,r);throw o}return qr(a,{paginate:!0,pageSize:9})}async function Jd(e,t){let r=pe.context.getProdAppDB(),n=e._id,a=e.name,o=hs(t),i=new Date().toISOString(),s=lT(i,o,n),c={...t,automationId:n,status:o,automationName:a,createdAt:i,_id:s};return await r.put(c),s}async function Is(e,{clearing:t}={clearing:!1}){let r=pe.context.getProdAppDB();await Yd(async()=>{let n=await r.get(pe.db.DocumentType.APP_METADATA);for(let a of e){let o=a.split(pe.db.SEPARATOR),i=`${o[o.length-3]}${pe.db.SEPARATOR}${o[o.length-2]}`,s={};n.automationErrors&&(s=n.automationErrors),Array.isArray(s[i])||(s[i]=[]);let c=s[i].indexOf(a);t&&c!==-1?s[i].splice(c,1):s[i].push(a),s[i].length===0&&delete s[i],n.automationErrors=s}await r.put(n),await pe.cache.app.invalidateAppMetadata(n.appId,n)},"Failed to update app metadata with automation log error")}async function dT(){let e=await ys();try{return await As(pT,e,{docs:!1,paginate:!1,limit:cT})}catch{return{data:[],hasNextPage:!1}}}async function Ss(){let e=pe.context.getProdAppDB();try{let t=await dT();if(!t.data||t.data.length===0)return;let r=t.data.map(a=>({_id:a.id,_rev:a.value.rev,_deleted:!0})),n=t.data.filter(a=>{let o=a.id.split(pe.db.SEPARATOR);return o[o.length-1]===vt.AutomationStatus.ERROR}).map(a=>a.id);await e.bulkDocs(r),n.length&&await Is(n,{clearing:!0})}catch(t){pe.logging.logAlert(`Failed to cleanup automation log history - Database "${e.name}"`,t)}}var Xd=ys;async function fT(e,t,r,n){let a,o=new Date().toISOString(),i=await Xd();return(!e||e<i)&&(e=i),r||t?a=await bs(e,o,{automationId:r,status:t,page:n}):a=await As(e,o,{status:t,page:n,docs:!0,paginate:!0}),a}async function gT(e){return await Ss(),await fT(e.startDate,e.status,e.automationId,e.page)}async function mT(e,t){if(!ba.db.isProdAppID(ba.context.getAppId()))return;let r=hs(t),n=await Jd(e,t);r===zd.AutomationStatus.ERROR&&await Is([n]),await Ss()}var Sa={};x(Sa,{checkPluginQuotas:()=>AT,deletePlugin:()=>hT,storePlugin:()=>yT});var rf=require("@budibase/types"),oe=require("@budibase/backend-core");var Zd=M(require("fs")),ef=require("path");function tf(e,t){return Zd.default.readFileSync((0,ef.join)(e,t),"utf8")}async function yT(metadata,directory,source){let db=oe.tenancy.getGlobalDB(),version=metadata.package.version,name=metadata.package.name,description=metadata.package.description,hash=metadata.schema.hash,bucketPath=oe.objectStore.getPluginS3Dir(name),files=await oe.objectStore.uploadDirectory(oe.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===rf.PluginType.DATASOURCE){let js=tf(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=oe.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=async()=>{let e=await db.put(doc);return await oe.events.plugin.imported(doc),{...doc,_rev:e.rev}};return rev?await write():await os(write)}async function hT(e){let t=oe.tenancy.getGlobalDB();try{let r=await t.get(e),n=oe.objectStore.getPluginS3Dir(r.name);await oe.objectStore.deleteFolder(oe.objectStore.ObjectStoreBuckets.PLUGINS,n),await t.remove(e,r._rev),await oe.events.plugin.deleted(r),await ss()}catch(r){let n=r?.message?r?.message:r;throw new Error(`Failed to delete plugin: ${n}`)}}async function AT(){let e=oe.tenancy.getGlobalDB();try{let r=(await e.allDocs(oe.db.getPluginParams())).rows.length;console.log(`Syncing plugin count: ${r}`),await is(r)}catch(t){oe.logging.logAlert("Unable to retrieve plugins for quota check",t)}}var st={};x(st,{fetch:()=>IT,fetchValues:()=>ST,isEncryptionKeyAvailable:()=>bT,isValid:()=>of,remove:()=>vT,update:()=>wT});var wn=require("@budibase/types"),nf=require("@budibase/backend-core");function bT(){return!!nf.env.ENCRYPTION_KEY}async function IT(){let e=await Ut.get();return Object.keys(e.variables)}async function ST(e){let r=(await Ut.get()).variables,n={};for(let[a,o]of Object.entries(r))switch(e){case wn.AppEnvironment.DEVELOPMENT:n[a]=o.development;break;case wn.AppEnvironment.PRODUCTION:default:n[a]=o.production;break}return n}async function af(e){if(!(await tt.cache.getCachedLicense()).features.includes(wn.Feature.ENVIRONMENT_VARIABLES))throw new Error("User does not have access to environment variables feature.");let r=await Ut.get();r.variables=e(r.variables),await Ut.update(r)}async function wT(e,t){if(of(e))await af(n=>(n[e]=t,n));else throw new Error("Variable name has characters that are not allowed")}async function vT(e){await af(t=>(delete t[e],t))}function of(e){return/^[a-zA-Z0-9-_]+$/.test(e)}var Et={};x(Et,{definitions:()=>LT,download:()=>UT,fetch:()=>qT,write:()=>PT});var va=require("@budibase/types");var re=require("@budibase/backend-core"),Ye=require("@budibase/types");var sf=require("memorystream"),uf=new re.sql.Sql(Ye.SqlClient.SQL_LITE);async function ET(e,t,r){let n={operation:Ye.Operation.READ,table:zt.searchTable(),tables:{},paginate:{limit:r||9,page:t},filters:e,resource:{fields:[]},sort:{timestamp:{direction:Ye.SortOrder.DESCENDING,type:Ye.SortType.STRING}}},a=uf._query(n);if(Array.isArray(a))throw new Error("Cannot execute multiple queries for audit log search");return{sql:a.sql,bindings:a.bindings}}function _T(e){return`${re.DocumentType.AUDIT_LOG}${re.SEPARATOR}${e}${re.SEPARATOR}${re.utils.newid()}`}async function pf(e){e._id||(e._id=_T(e.timestamp)),e.type||(e.type=Ye.AUDIT_LOG_TYPE);try{let r=await re.context.getAuditLogsDB().put(e);return{...e,_rev:r.rev}}catch(t){re.logging.logAlert("Failed to write audit log",t)}}async function vs(e,t,r){t||(t=1);let n=re.context.getAuditLogsDB();try{let a=9+1,o=await ET(e,t,a),i=zt.searchTable(),s=uf.convertJsonStringColumns(i,await n.sql(o.sql,o.bindings)),c;s.length>a&&(c=s.pop());let d={rows:s,hasNextPage:!!c};return d.hasNextPage&&(d.bookmark=t+1),d}catch(a){if(a.status===404&&!r?.isRetry)return await xT(),await du(),await vs(e,t,{isRetry:!0});throw a}}async function xT(){let e=re.context.getAuditLogsDB(),r=(await e.allDocs(re.db.getDocParams(re.DocumentType.AUDIT_LOG,null,{include_docs:!0}))).rows.map(n=>n.doc).filter(n=>n&&!n.type).map(n=>({...n,type:Ye.AUDIT_LOG_TYPE}));await e.bulkDocs(r)}function cf(e){let t=re.context.getAuditLogsDB(),r=new sf,n=t.dump(r,{filter:o=>{let i=o;if(!i._id?.startsWith(re.DocumentType.AUDIT_LOG))return!1;let s=!0,c=(d,m)=>{!d||d.length===0||(s=!!(s&&m&&d.includes(m)))};if(c(e.userIds,i.userId),c(e.appIds,i.appId),c(e.events,i.event),(e.startDate||e.endDate)&&(s=s&&i.timestamp>=e.startDate&&i.timestamp<=e.endDate),e.fullSearch){let d=JSON.stringify(o);s=s&&d.includes(e.fullSearch)}return s}}),a=new sf;return r.on("data",o=>{let i=JSON.parse(Buffer.from(o).toString());if(Array.isArray(i.docs)){let s="";for(let c of i.docs)s+=JSON.stringify(c)+`
38
- `;a.write(s)}}),r.on("end",()=>{a.end()}),{promise:n,stream:a}}var Se=require("@budibase/backend-core");var wa=require("@budibase/types"),vn=require("@budibase/string-templates"),En=require("@budibase/backend-core"),TT=En.constants.MIN_VALID_DATE.toISOString(),OT=En.constants.MAX_VALID_DATE.toISOString();function Es(e){return(e.startDate||e.endDate)&&(e.startDate=e.startDate||TT,e.endDate=e.endDate||OT),e}async function lf(e){Array.isArray(e.appIds)&&(e.appIds=e.appIds.map(n=>En.db.getProdAppID(n)));let t={};function r(n,a){a?.length&&(t.oneOf={...t.oneOf,[n]:a})}return 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=Es(e),t.range={timestamp:{high:e.endDate,low:e.startDate}}),Object.keys(t).length===0&&(t.notEmpty={event:!0}),t}function _s(e,t,r){let n={_id:e,status:wa.AuditLogResourceStatus.DELETED};switch(t){case"app":n.name=r?.appName;break;case"user":n.email=r?.email;break}return n}function xs(e){let t=(0,vn.findHBSBlocks)(e);for(let r of t){let n=` "${r}"`;e=e.replace(e.includes(n)?n:` ${r}`,""),e=(0,vn.processStringSync)(e,{})}return e}function df(e,t){let r=wa.AuditedEventFriendlyName[e];if(!r)throw new Error("No friendly name found.");let n=(0,vn.processStringSync)(r,t);return n.includes('""')&&(n=xs(r)),n}async function PT(e,t,r){if(!await fa()||!Se.utils.isAudited(e))return;let n=df(e,t),a=new Date;r?.timestamp&&(a=new Date(r.timestamp));let o={timestamp:a.toISOString(),event:e,name:n,userId:r?.userId||va.AuditLogSystemUser,metadata:{...t,...r?.hostInfo}},i={};try{if(r?.appId){o.appId=Se.db.getProdAppID(r.appId);let s=await Se.cache.app.getAppMetadata(r.appId);"name"in s&&(i.appName=s.name)}if(r?.userId){let s=await Se.users.getById(r?.userId);i.email=s.email}}catch(s){Se.logging.logAlert("Failed to retrieve fallback information for audit log",s)}return o.fallback=i,await pf(o)}async function CT(e){let t=e.map(s=>s.userId),n=e.filter(s=>s.appId).map(s=>Se.db.getDevAppID(s.appId)),a=await Se.users.bulkGetGlobalUsersById([...new Set(t)],{cleanup:!0}),o=await Se.db.getAppsByIDs([...new Set(n)]),i=[];for(let s of e){let c=a.find(g=>g?._id===s.userId),d=o.find(g=>Se.db.isSameAppID(g?.appId,s.appId)),m={event:s.event,timestamp:s.timestamp,name:s.name,metadata:s.metadata,user:c||_s(s.userId,"user",s.fallback)};s.appId&&(m.app=d||_s(s.appId,"app",s.fallback)),i.push(m)}return i}async function qT(e){if(!await fa())throw new Error("Audit logs not available - license required.");let t=await lf(e);if(typeof e.bookmark=="string")throw new Error("String based bookmark not supported.");let r=await vs(t,e.bookmark);return{hasNextPage:r.hasNextPage,bookmark:r.bookmark,data:await CT(r.rows)}}function UT(e){return e=Es(e),cf(e)}function LT(){let e=Object.entries(va.AuditedEventFriendlyName).filter(r=>r[1]!=null),t={};for(let r of e)t[r[0]]=xs(r[1]);return t}var Ea={};x(Ea,{applications:()=>Ps,roles:()=>Ts,users:()=>Rs});var Rs={};x(Rs,{roleCheck:()=>BT});function DT(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}async function BT(e,t){return await lt()||DT(e,t),e}var Ts={};x(Ts,{assign:()=>NT,unAssign:()=>MT});var _n=require("@budibase/backend-core");async function NT(e,t){if(!await lt())throw new Error("Unable to assign roles - license required.");let r=await ot.bulkGet(e);for(let n of r){if(t.role&&t.role.roleId){let a=_n.db.getProdAppID(t.role.appId);n.roles[a]=t.role.roleId}if(t.appBuilder){let a=_n.db.getProdAppID(t.appBuilder.appId),o=n.builder?.apps||[];n.builder={apps:o.concat([a])}}t.builder&&(n.builder={global:!0}),t.admin&&(n.admin={global:!0}),n.roles}await ot.bulkUpdate(r)}async function MT(e,t){if(!await lt())throw new Error("Unable to un-assign roles - license required.");let r=await ot.bulkGet(e);for(let n of r){if(t.role){let a=_n.db.getProdAppID(t.role?.appId);n.roles[a]===t.role.roleId&&delete n.roles[a]}if(t.appBuilder&&n.builder?.apps){let a=_n.db.getProdAppID(t.appBuilder.appId);n.builder.apps=n.builder.apps.filter(o=>o!==a)}t.builder&&n.builder&&delete n.builder,t.admin&&n.admin&&delete n.admin}}var Ps={};x(Ps,{buildExportFn:()=>kT,buildImportFn:()=>GT});var Os=require("@budibase/backend-core");function GT(e){return async(t,r)=>{await lt()||t.throw(403,"Endpoint unavailable, license required."),t.request.files?.appExport||t.throw(400,"Must provide app export file for import."),await Os.context.doInAppContext(t.params.appId,async()=>{await e(t),t.body=void 0,t.status=204,await r()})}}function kT(e){return async(t,r)=>{await lt()||t.throw(403,"Endpoint unavailable, license required.");let{encryptPassword:n,excludeRows:a}=t.request.body;await Os.context.doInAppContext(t.params.appId,async()=>{t.request.body={encryptPassword:n,excludeRows:a},t.query.appId=t.params.appId,await e(t),await r()})}}var it=require("@budibase/backend-core"),be=require("@budibase/types");var Cs=require("@budibase/backend-core"),ff;function gf(){ff=Cs.queue.createQueue(Cs.queue.JobQueue.APP_BACKUP,{maxStalledCount:3,jobOptions:{attempts:3,removeOnFail:!0,removeOnComplete:!0}})}function $t(){return ff}var mf=require("path"),yf=M(require("fs"));async function qs(e,t={}){return De.storeAppBackupMetadata(e,t)}function hf(e){let t=new Date().toISOString();switch(e){case be.AppBackupStatus.COMPLETE:case be.AppBackupStatus.FAILED:return{timestamp:t,finishedAt:t};case be.AppBackupStatus.STARTED:return{timestamp:t,startedAt:t};case be.AppBackupStatus.PENDING:return{timestamp:t,createdAt:t}}}async function FT(e,t,r,n){let a=await _a(e);return await De.storeAppBackupMetadata({...a,...hf(t),contents:r,status:t,type:be.AppBackupType.BACKUP},{filename:n,docId:e})}async function $T(e,t,r){let n=await _a(e);return await De.storeAppBackupMetadata({...n,...hf(r),status:r,type:be.AppBackupType.RESTORE,trigger:be.AppBackupTrigger.MANUAL},{docId:e,docRev:t})}async function _a(e){return De.getAppBackupMetadata(e)}async function QT(e,t){return De.updateAppBackupMetadata(e,t)}async function jT(e){let t=await De.getAppBackupMetadata(e);return t.filename&&await it.objectStore.deleteFile(it.objectStore.ObjectStoreBuckets.BACKUPS,t.filename),De.deleteAppBackupMetadata(e)}async function WT(e,t){return De.fetchAppBackups(e,t)}async function Af(e){let t=await De.getAppBackupMetadata(e);if(!t.filename)throw new Error("Backup incomplete - cannot download.");let r=await it.objectStore.getReadStream(it.objectStore.ObjectStoreBuckets.BACKUPS,t.filename);return{metadata:t,stream:r}}async function VT(e){let{stream:t}=await Af(e),r=(0,mf.join)(it.objectStore.budibaseTempDir(),it.utils.newid()),n=yf.default.createWriteStream(r);return new Promise((a,o)=>{t.on("error",o),n.on("error",o),t.pipe(n).on("close",()=>a(r))})}async function YT(e,t,r={}){let n;try{n=await qs({appId:e,trigger:t,timestamp:new Date().toISOString(),status:be.AppBackupStatus.PENDING,type:be.AppBackupType.BACKUP,...r})}catch(a){if(a.status===409)return;throw a}return await $t().add({docId:n.id,docRev:n.rev,appId:e,export:{trigger:t,...r}}),await it.events.backup.appBackupTriggered(e,n.id,be.AppBackupType.BACKUP,t,r?.name),n.id}async function KT(e,t,r,n){let a=await _a(t),o;try{o=await qs({appId:e,timestamp:new Date().toISOString(),status:be.AppBackupStatus.PENDING,type:be.AppBackupType.RESTORE,createdBy:n})}catch(i){if(i?.status===409)return;throw i}return await $t().add({appId:e,docId:o.id,docRev:o.rev,import:{nameForBackup:r,backupId:t,createdBy:n}}),{restoreId:o.id,metadata:a}}var HT={isEnabled:zo,triggerAppRestore:xe(KT),triggerAppBackup:xe(YT),getBackupDownloadStream:xe(Af),downloadAppBackup:xe(VT),fetchAppBackups:xe(WT),storeAppBackupMetadata:xe(qs),updateBackupStatus:xe(FT),updateRestoreStatus:xe($T),getAppBackup:xe(_a),updateAppBackup:xe(QT),deleteAppBackup:xe(jT)},gt=HT;var Ls={};x(Ls,{init:()=>Us});var se=require("@budibase/backend-core");var Ke=require("@budibase/types");var br=M(require("fs"));async function Us(e){$t().process(async t=>{let r=t.data;try{if(r.export)return XT(t,e);if(r.import)return zT(t,e)}catch(n){se.logging.logAlert(`Failed to perform backup for app ID: ${r.appId}`,n)}})}async function JT(e){await se.db.getDB(e,{skip_setup:!0}).destroy()}async function bf(e,t,r,n){let a=se.db.getDevAppID(r),o=se.db.getProdAppID(r),i=new Date().toISOString(),s=async(c,d)=>{n?.doc?await gt.updateBackupStatus(n.doc.id,c,d?.contents,d?.filename):await gt.storeAppBackupMetadata({appId:o,timestamp:i,trigger:e,status:c,name:n?.name,type:Ke.AppBackupType.BACKUP,contents:d?.contents,createdBy:n?.createdBy},{filename:d?.filename})};try{let c=await n.processing.exportAppFn(a,{tar:!0}),d=await n.processing.statsFn(a),m=`${o}/backup-${i}.tar.gz`,g=se.objectStore.ObjectStoreBuckets.BACKUPS,y=br.default.createReadStream(c);await se.objectStore.streamUpload({bucket:g,filename:m,stream:y,extra:{type:"application/gzip",metadata:{name:n?.name,trigger:e,timestamp:i,appId:o}}}),await s(Ke.AppBackupStatus.COMPLETE,{filename:m,contents:d}),br.default.existsSync(c)&&br.default.rmSync(c)}catch(c){se.logging.logAlert("App backup error",c),await s(Ke.AppBackupStatus.FAILED)}}async function zT(e,t){let r=e.data,n=r.appId,a=r.import.backupId,o=r.import.nameForBackup,i=r.import.createdBy,s=se.tenancy.getTenantIDFromAppID(n);return se.tenancy.doInTenant(s,async()=>{let c=se.db.getDevAppID(n),{rev:d}=await gt.updateRestoreStatus(r.docId,r.docRev,Ke.AppBackupStatus.STARTED);await bf(Ke.AppBackupTrigger.RESTORING,s,n,{processing:t,createdBy:i,name:o});let m=await gt.downloadAppBackup(a);await JT(c);let g=Ke.AppBackupStatus.COMPLETE;try{await t.importAppFn(c,se.db.getDB(c),{file:{type:"application/gzip",path:m},key:m})}catch(y){se.logging.logAlert("App restore error",y),g=Ke.AppBackupStatus.FAILED}await gt.updateRestoreStatus(r.docId,d,g),br.default.existsSync(m)&&br.default.rmSync(m,{force:!0})})}async function XT(e,t){let r=e.data,n=r.appId,a=r.export.trigger,o=r.export.name,i=se.tenancy.getTenantIDFromAppID(n);await se.tenancy.doInTenant(i,async()=>{try{let{rev:s}=await gt.updateBackupStatus(r.docId,Ke.AppBackupStatus.STARTED);return bf(a,i,n,{processing:t,doc:{id:r.docId,rev:s},name:o})}catch(s){se.logging.logAlert("App backup error",s)}})}var ZT=async e=>{gf(),await Us(e.processing)},Ne={...gt,processing:Ls,init:ZT,getBackupQueue:$t};var If=async e=>{e.backups&&await Ne.init(e.backups)};var ve={};x(ve,{create:()=>VN,find:()=>WN,get:()=>jN,remove:()=>KN,update:()=>YN});var $h=M(Oi()),mt=require("@budibase/backend-core");var Qh=require("@budibase/types");async function jN(e){let t=mt.tenancy.getGlobalDB(),r=new mt.db.QueryBuilder(t.name,Qh.SearchIndex.USER);r.setIndexBuilder(mt.db.searchIndexes.createUserIndex),r.setLimit(e.pageSize),r.addEqual("scimInfo.isSync",!0);for(let[a,o]of Object.entries(e.filters?.equal??{}))r.addEqual(a,o);r.setSort("_id"),r.setSkip(e.skip);let n=await r.run();return{users:n.rows,total:n.totalRows}}async function WN(e){return await mt.users.getById(e)}async function VN(e){let t=await ot.getUserByEmail(e.email);if(t){if(t.scimInfo?.isSync)throw new mt.HTTPError("User is already synched",409);e={...t,scimInfo:(0,$h.default)(t.scimInfo,e.scimInfo),password:void 0,firstName:e.firstName,lastName:e.lastName,updatedAt:e.updatedAt}}return await ot.save(e,{requirePassword:!1})}async function YN(e,t){return await ot.save(e,{requirePassword:!1,allowChangingEmail:t?.allowChangingEmail})}async function KN(e){return await ot.destroy(e)}var _r={};x(_r,{create:()=>HN});var jh=M(Oi());var Wh=require("@budibase/backend-core");async function HN(e){let t=await ao(e.name),r;if(!t)r=(await z.save(e)).id;else{if(t.scimInfo?.isSync)throw new Wh.HTTPError("Group is already synched",409);r=t._id,t.users&&(await z.removeUsers(r,t.users.map(a=>a._id)),delete t.users),t.scimInfo=(0,jh.default)(t.scimInfo,e.scimInfo),await z.save(t)}return await z.get(r)}var jt={};x(jt,{logRequest:()=>XN,logResponse:()=>ZN});var Yh=M(Vh()),_t=require("@budibase/backend-core"),{DocWritethrough:JN}=_t.cache.docWritethrough;function zN(){return`${_t.db.DocumentType.SCIM_LOG}${_t.db.SEPARATOR}${(0,Yh.default)().format("YYYYMMDD")}`}var Kh=async()=>{let e=_t.context.getScimDBName();return new JN(_t.db.getDB(e),zN())};async function XN(e){let t=Date.now().toString();return await(await Kh()).patch({[`${t}_request`]:{ts:new Date().toISOString(),...e}}),t}async function ZN(e,t){await(await Kh()).patch({[`${e}_response`]:{ts:new Date().toISOString(),...t}})}var Bi={};x(Bi,{doInScimContext:()=>Ui,feature:()=>H,internalGroupOnly:()=>ka,licensing:()=>Hh,requireSCIM:()=>Li,scimGroupOnly:()=>On,scimUserOnly:()=>Tn});var xt=require("@budibase/backend-core");var Ma=require("@budibase/types"),eM=(e={checkUsersLimit:!0})=>async(t,r)=>{if((e.licensingCheck?e.licensingCheck:()=>!!t.user)(t)){if(xt.env.SELF_HOSTED&&xt.env.DEFAULT_LICENSE)return t.user.license=so,r();t.user.license=await tt.cache.getCachedLicense(t,{populateLicense:e.populateLicense,populateFreeLicense:e.populateFreeLicense}),e.checkUsersLimit&&(xt.utils.isServingApp(t)||xt.utils.isServingBuilder(t)||xt.utils.isServingBuilderPreview(t)||xt.utils.isPublicApiRequest(t))&&await at.usageLimitIsExceeded(Ma.StaticQuotaName.USERS,Ma.QuotaUsageType.STATIC)}return r()},Hh=eM;var H={};x(H,{requireFeature:()=>tM,requireFeatures:()=>rM});var tM=e=>async(t,r)=>{await da(e),await r()},rM=(...e)=>async(t,r)=>{await Jo(e),await r()};var Ga=require("@budibase/backend-core");var Ui=async(e,t)=>{let r;return Ga.env.DISABLE_SCIM_CALLS||(r=await jt.logRequest({...e.request.toJSON(),body:e.request.body})),await Ga.context.doInScimContext(async()=>{let n=await t();return r&&await jt.logResponse(r,{...e.response.toJSON(),body:e.response.body}),n})};var Li=async(e,t)=>{await es(),await t()};var Jh=require("@budibase/backend-core");var Tn=e=>Di(Jh.users.getById,e,!0),On=e=>Di(V.get,e,!0),ka=e=>Di(V.get,e,!1);function Di(e,t,r){return async(n,a)=>{let o=n.params[t];return typeof o!="string"&&n.throw(404),!!(await e(o)).scimInfo?.isSync!==r&&n.throw(404),a()}}var Xi={};x(Xi,{ai:()=>fA,appBackups:()=>XA,auditLogs:()=>$A,environmentVariables:()=>LA,groups:()=>_A,scim:()=>Ob,users:()=>Lb});var uA=require("@budibase/types");var Fi={};x(Fi,{getLLM:()=>Pn});var sA=require("@budibase/backend-core"),iA=require("@budibase/types");var Gi=M(require("openai"));var Rt=require("@budibase/types");var zh=require("@budibase/string-templates"),Me=class e{constructor(t){this.messages=t}user(t){return this.messages.push({role:"user",content:t}),this}system(t){return this.messages.push({role:"system",content:t}),this}static user(t){return new e([{role:"user",content:t}])}static system(t){return new e([{role:"system",content:t}])}};function Ni(e){return Me.user(`Summarize this text:
37
+ `;function Lr(e){return Hn.default.verify(e,TI,{algorithms:["RS256"]})}function PI(e,t){return Hn.default.sign(t,e,{encoding:"utf-8",algorithm:"RS256"})}var qa={};S(qa,{getFeatures:()=>zn});var l=require("@budibase/types");var OI={[l.PlanType.FREE]:[...ue.SELF_FREE_LICENSE.features],[l.PlanType.PREMIUM]:void 0,[l.PlanType.PREMIUM_PLUS]:[l.Feature.APP_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.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.APP_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.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.APP_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.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS]},CI={[l.PlanType.FREE]:[...ue.CLOUD_FREE_LICENSE.features],[l.PlanType.PREMIUM]:[l.Feature.APP_BACKUPS,l.Feature.BRANDING,l.Feature.APP_BUILDERS,l.Feature.VIEW_PERMISSIONS],[l.PlanType.PREMIUM_PLUS]:[l.Feature.APP_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.PlanType.PREMIUM_PLUS_TRIAL]:[l.Feature.APP_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.PlanType.PRO]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS,l.Feature.BRANDING],[l.PlanType.TEAM]:[l.Feature.USER_GROUPS,l.Feature.APP_BACKUPS,l.Feature.BRANDING],[l.PlanType.BUSINESS]:[l.Feature.USER_GROUPS,l.Feature.APP_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.PlanType.ENTERPRISE_BASIC]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE_BASIC_TRIAL]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS],[l.PlanType.ENTERPRISE]:[l.Feature.USER_GROUPS,l.Feature.APP_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.CUSTOM_APP_SCRIPTS]};function zn(e,t){let r=[];function a(n){let o=n[t];if(!o)throw new Error(`Features do not exist for planType=${t} and hosting=${e}`);return o}switch(e){case l.Hosting.SELF:r=a(OI);break;case l.Hosting.CLOUD:r=a(CI);break}return r}var Ua={};S(Ua,{UNLIMITED:()=>d,getQuotas:()=>Jn});var B=require("@budibase/types");var p=$e,_u=ue,d=-1,Br=e=>e*1e6,qI={[B.PlanType.FREE]:{..._u.CLOUD_FREE_LICENSE.quotas},[B.PlanType.PREMIUM]:{usage:{monthly:{...p.queries(d),...p.automations(1e3),...p.budibaseAICredits(0)},static:{...p.rows(1e4),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(0),...p.plugins(d),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(7),...p.appBackupRetentionDays(7)}},[B.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...p.queries(d),...p.automations(5e3),...p.budibaseAICredits(Br(2))},static:{...p.rows(25e3),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(0),...p.plugins(d),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[B.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...p.queries(d),...p.automations(5e3),...p.budibaseAICredits(Br(2))},static:{...p.rows(25e3),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(0),...p.plugins(d),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[B.PlanType.PRO]:{usage:{monthly:{...p.queries(d),...p.automations(1e3),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(5),...p.plugins(d),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(7),...p.appBackupRetentionDays(7)}},[B.PlanType.TEAM]:{usage:{monthly:{...p.queries(d),...p.automations(5e3),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(10),...p.plugins(d),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(90)}},[B.PlanType.BUSINESS]:{usage:{monthly:{...p.queries(d),...p.automations(1e4),...p.budibaseAICredits(0)},static:{...p.rows(5e4),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(50),...p.plugins(d),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(365),...p.appBackupRetentionDays(365)}},[B.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(Br(4))},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(d),...p.plugins(d),...p.customAIConfigurations(d)}},constant:{...p.automationLogRetentionDays(d),...p.appBackupRetentionDays(d)}},[B.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(Br(4))},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(d),...p.plugins(d),...p.customAIConfigurations(d)}},constant:{...p.automationLogRetentionDays(15),...p.appBackupRetentionDays(15)}},[B.PlanType.ENTERPRISE]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(Br(4))},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(d),...p.plugins(d),...p.customAIConfigurations(d)}},constant:{...p.automationLogRetentionDays(d),...p.appBackupRetentionDays(d)}}},UI={[B.PlanType.FREE]:{..._u.SELF_FREE_LICENSE.quotas},[B.PlanType.PREMIUM]:void 0,[B.PlanType.PREMIUM_PLUS]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(0),...p.plugins(d),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[B.PlanType.PREMIUM_PLUS_TRIAL]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(0),...p.plugins(d),...p.customAIConfigurations(1)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(30)}},[B.PlanType.PRO]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(5),...p.plugins(d),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(7),...p.appBackupRetentionDays(7)}},[B.PlanType.TEAM]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(10),...p.plugins(d),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(30),...p.appBackupRetentionDays(90)}},[B.PlanType.BUSINESS]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(50),...p.plugins(d),...p.customAIConfigurations(0)}},constant:{...p.automationLogRetentionDays(90),...p.appBackupRetentionDays(365)}},[B.PlanType.ENTERPRISE_BASIC]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(d),...p.plugins(d),...p.customAIConfigurations(d)}},constant:{...p.automationLogRetentionDays(d),...p.appBackupRetentionDays(d)}},[B.PlanType.ENTERPRISE_BASIC_TRIAL]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(d),...p.plugins(d),...p.customAIConfigurations(d)}},constant:{...p.automationLogRetentionDays(15),...p.appBackupRetentionDays(15)}},[B.PlanType.ENTERPRISE]:{usage:{monthly:{...p.queries(d),...p.automations(d),...p.budibaseAICredits(0)},static:{...p.rows(d),...p.apps(d),...p.users(d),...p.creators(d),...p.userGroups(d),...p.plugins(d),...p.customAIConfigurations(d)}},constant:{...p.automationLogRetentionDays(d),...p.appBackupRetentionDays(d)}}};function Jn(e,t){let r;function a(n){let o=n[t];if(!o)throw new Error(`Quotas do not exist for planType=${t} and hosting=${e}`);return o}switch(e){case B.Hosting.SELF:r=a(UI);break;case B.Hosting.CLOUD:r=a(qI);break}return JSON.parse(JSON.stringify(r))}var Nt={};S(Nt,{appExists:()=>LI,encoding:()=>Bt});var Tu=require("@budibase/backend-core");async function LI(e){return(await Tu.db.getAllApps({all:!0,idsOnly:!0})).includes(e)}var Bt={};S(Bt,{base64ToObject:()=>BI,objectToBase64:()=>DI});function DI(e){let t=JSON.stringify(e);return Buffer.from(t).toString("base64")}function BI(e){let t=Buffer.from(e,"base64").toString();return JSON.parse(t)}var ld=require("@budibase/types"),zt=require("@budibase/backend-core"),dd=O(Wc()),fd=O(xo());async function l_(e){await he.save({offlineLicenseToken:e}),await At()}async function d_(){await he.save({offlineLicenseToken:void 0}),await At()}async function gd(){return(await he.get()).offlineLicenseToken}async function _o(){let t=(await zt.installation.getInstall()).installId,r=zt.context.getTenantId(),a=await zt.events.identification.getUniqueTenantId(r);return{installId:t,tenantId:a}}async function f_(){let e=await _o();return Bt.objectToBase64(e)}function g_(e){return Bt.base64ToObject(e)}function md(e){let t=Date.now(),r=new Date(e.expireAt).getTime();if(t>r)throw new Error(`Offline license has expired. expireAt=${e.expireAt}`)}async function yd(e){let t=await _o();if(e.identifier.installId!==t.installId||e.identifier.tenantId!==t.tenantId)throw new Error("Invalid offline license")}function Ad(e){let t=e.plan.type,r=ld.Hosting.SELF,a=zn(r,t),n=Jn(r,t);return e.features=(0,dd.default)(e.features,a),e.quotas=(0,fd.default)(e.quotas,n),e}async function To(){try{let e=await gd();if(e){let t=await Lr(e);return md(t),await yd(t),Ad(t)}}catch(e){console.error("Error retrieving offline license",e)}}var ta={};S(ta,{deleteDevLicense:()=>b_,getOfflineLicense:()=>A_,writeDevLicenseToDisk:()=>h_});var hd=require("@budibase/backend-core"),Oo=require("path"),bd=require("os"),ht=O(require("fs"));var m_=hd.env.isTest()?".budibase-test":".budibase",Po=(0,Oo.join)((0,bd.tmpdir)(),m_),y_="dev_license.txt",ea=(0,Oo.join)(Po,y_);if(!ht.default.existsSync(Po))try{ht.default.mkdirSync(Po)}catch{}function A_(){try{if(ht.default.existsSync(ea)){let e=ht.default.readFileSync(ea,{encoding:"utf-8"});return Lr(e)}}catch(e){console.error("Error retrieving offline license from disk",e)}}function h_(e){console.log(`Writing license to: ${ea}`),ht.default.writeFileSync(ea,e,{encoding:"utf-8"})}function b_(){ht.default.rmSync(ea,{force:!0})}var qo=async()=>{if(Co.env.OFFLINE_MODE)return To();let e=await Dt();return e||(e=ta.getOfflineLicense()),e},I_=e=>Kn(e),Uo=()=>Co.env.SELF_HOSTED?ue.SELF_FREE_LICENSE:ue.CLOUD_FREE_LICENSE;var Lo={};S(Lo,{activateLicenseKey:()=>S_,deleteLicenseKey:()=>v_,getLicenseKey:()=>w_});async function S_(e){await Yn(e),await he.save({licenseKey:e}),await At()}async function w_(){return(await he.get()).licenseKey}async function v_(){await he.save({licenseKey:void 0}),await At()}var ra=require("@budibase/backend-core"),Ha=O(require("dd-trace")),Id=3600,At=async()=>{await vd(),await wd()},Sd=async(e,t)=>{let{populateLicense:r=qo,populateFreeLicense:a=Uo}=t||{};return await Ha.default.trace("getCachedLicense",async n=>{let o=ra.tenancy.getTenantId(),i=await Ln(),s=await i.get(o);return n.addTags({tenantId:o,foundInCache:!!s}),s||(s=await Ha.default.trace("populateLicense",async()=>await r(o)),n.addTags({populatedLicense:!!s}),s||(s=Ha.default.trace("populateFreeLicense",()=>a(e,o)),n.addTags({populatedFreeLicense:!!s})),s.refreshedAt=new Date().toISOString(),n.addTags({refreshedAt:s.refreshedAt,expirySeconds:Id}),await i.store(o,s,Id),s)})};ra.env.isJest()&&(Sd=jest.fn());var wd=Sd,vd=async()=>{let e=ra.tenancy.getTenantId();await(await Ln()).delete(e)};async function X(e,t){Array.isArray(e)||(e=[e]),t||(t=await xe.getCachedLicense());for(let r of e)if(!t?.features.includes(r))return!1;return!0}async function za(e,t){if(!await X(e,t))throw new Ve.FeatureDisabledError(`${e} is not currently enabled`,e)}async function Do(e,t){if(!await X(e,t)){let r=e.join(", ");throw new Ve.FeatureDisabledError(`${r} are not currently enabled`,r)}}function ce(e){return async(...t)=>(await za(J.Feature.APP_BACKUPS),e(...t))}async function Bo(){return X(J.Feature.APP_BACKUPS)}async function No(){return X(J.Feature.BRANDING)}async function Ed(){return X(J.Feature.ENFORCEABLE_SSO)}async function R_(){return X(J.Feature.SYNC_AUTOMATIONS)}async function x_(){return X(J.Feature.TRIGGER_AUTOMATION_RUN)}async function bt(){return X(J.Feature.APP_BUILDERS)}async function Ja(){return X(J.Feature.AUDIT_LOGS)}async function Go(){return X(J.Feature.USER_GROUPS)}async function Ke(){return X(J.Feature.EXPANDED_PUBLIC_API)}async function __(e){if(Ve.env.ENABLE_SSO_MAINTENANCE_MODE||!await Ed())return!1;let r;return e?.config?r=e.config:r=await Ve.configs.getSettingsConfig(),!!r.isSSOEnforced}var Mo=async()=>{let e=J.Feature.SCIM,t=await X(e),r=await Ve.configs.getSCIMConfig();if(!t||!r?.enabled)throw new Ve.FeatureDisabledError(`${e} is not currently enabled`,e);return!0};async function T_(){return X(J.Feature.VIEW_PERMISSIONS)}async function P_(){return X(J.Feature.VIEW_READONLY_COLUMNS)}async function aa(){return X(J.Feature.BUDIBASE_AI)}async function O_(){return X(J.Feature.AI_CUSTOM_CONFIGS)}var C_={faviconUrl:void 0,faviconUrlEtag:void 0,emailBrandingEnabled:!0,testimonialsEnabled:!0,platformTitle:void 0,loginHeading:void 0,loginButton:void 0,metaDescription:void 0,metaImageUrl:void 0,metaTitle:void 0};async function q_(e){return await No()?{faviconUrl:e.faviconUrl,faviconUrlEtag:e.faviconUrlEtag,emailBrandingEnabled:e.emailBrandingEnabled,testimonialsEnabled:e.testimonialsEnabled,platformTitle:e.platformTitle,loginHeading:e.loginHeading,loginButton:e.loginButton,metaDescription:e.metaDescription,metaImageUrl:e.metaImageUrl,metaTitle:e.metaTitle}:C_}var Za={};S(Za,{enrichAIConfig:()=>ko});var U_="budibase_ai";async function ko(e){return await aa()&&(e.config[U_]={provider:"OpenAI",active:!0,isDefault:Object.keys(e.config).every(t=>!e.config[t].isDefault),isBudibaseAI:!0,defaultModel:process.env.BUDIBASE_AI_DEFAULT_MODEL||"gpt-4o-mini",apiKey:process.env.OPENAI_API_KEY,name:"Budibase AI"}),e}var ke={};S(ke,{addApp:()=>G_,addAutomation:()=>W_,addCustomAIConfig:()=>$_,addGroup:()=>Qo,addPlugin:()=>Wo,addRow:()=>k_,addRows:()=>Q_,addUsers:()=>tn,bustCache:()=>Ji,decrement:()=>Te,decrementMany:()=>St,getCurrentUsageValues:()=>tu,getLicensedQuota:()=>xd,getQuotaUsage:()=>dt,increment:()=>fe,incrementBudibaseAICredits:()=>Ko,incrementMany:()=>It,removeApp:()=>M_,removeCustomAIConfig:()=>V_,removeCustomAIConfigs:()=>K_,removeGroup:()=>jo,removePlugin:()=>$o,removeRow:()=>F_,removeRows:()=>j_,removeUsers:()=>er,set:()=>Fo,setAllUsage:()=>Fn,setAppUsageValue:()=>kn,setUsage:()=>Xi,setUsagePerApp:()=>Zi,updatePluginCount:()=>Vo,updateUsage:()=>Jt,usageLimitIsExceeded:()=>N_,utils:()=>yr});var Y=require("@budibase/types");var de=require("@budibase/backend-core");var fe=(e,t,r)=>Rd({change:1,name:e,type:t,opts:r}),It=e=>Rd(e),Rd=async e=>{let t=Array.isArray(e)?e:[e];await Jt(t.map(a=>({usageChange:a.change,name:a.name,type:a.type,opts:{dryRun:!0,suppressErrorLog:a.opts?.suppressErrorLog,id:a.opts?.id}})));let r=[];for(let a of t){let n=a.opts?.fn;n&&r.push(await n())}return await Jt(t.map(a=>({usageChange:a.change,name:a.name,type:a.type,opts:{dryRun:!1,valueFn:a.opts?.valueFn,suppressErrorLog:a.opts?.suppressErrorLog,id:a.opts?.id}}))),r[0]},Te=(e,t,r={})=>Jt({usageChange:-1,name:e,type:t,opts:r}),St=e=>{let t=Array.isArray(e)?e:[e];return Jt(t.map(r=>({usageChange:-r.change,name:r.name,type:r.type,opts:r.opts})))},Fo=async(e,t,r)=>Le.setUsage(r,e,t),L_=(e,t,r)=>{if(e==Y.QuotaUsageType.STATIC){let a=r.usageQuota.triggers;return a?a[t]||{}:{}}else{let a=Le.utils.getCurrentMonthString(),n=r.monthly[a].triggers;return n?n[t]||{}:{}}},D_=async(e,t,r,a)=>{try{await de.locks.doWithLock({type:Y.LockType.TRY_ONCE,name:Y.LockName.TRIGGER_QUOTA,resource:e,ttl:1e4},async()=>{let n={percentage:r,name:t.name};a&&(n.resetDate=a),await at.triggerQuota(n)})}catch(n){de.logging.logAlert("Error triggering quota",n)}},B_=async(e,t,r,a)=>{let n=await dt(),o=e===Y.QuotaUsageType.MONTHLY?n.quotaReset:void 0,i=await L_(e,t,n),s=a.triggers,c=r/a.value*100;c>100&&(c=100);for(let[f,m]of s.entries())if(c>=m&&a.value!==$e.UNLIMITED){if(!i[m]){i[m]=new Date().toISOString();let y=s[f+1]||100;(!(c>=y)||c===m)&&await D_(t,a,c,o)}}else i[m]=void 0;return i},Jt=async e=>{let t=de.tenancy.getTenantId(),r=Array.isArray(e)?e:[e],a=null,n,o=[],i={},s={},c={},f={};for(let g of r){try{a=de.context.getAppId()}catch{}if(Y.APP_QUOTA_NAMES.includes(g.name)&&!a)throw new Error("App context required for quota update");try{n=await xd(Y.QuotaType.USAGE,g.name,g.type),o.push(n);let{total:h,app:E,breakdown:T}=await Le.getCurrentUsageValues(g.type,g.name,g.opts?.id);h+=g.usageChange,E!=null&&(E+=g.usageChange),T!=null&&(T+=g.usageChange);let x={};if(g.opts?.dryRun||(x=await B_(g.type,g.name,h,n),f={...f,[g.name]:x}),n.value!==$e.UNLIMITED&&h>n.value&&g.usageChange>0)throw new de.UsageLimitError(`Licensed ${n.name} of ${n.value} has been exceeded`,n.name);if(h=Math.max(0,h),E&&(E=Math.max(0,E)),T&&(T=Math.max(0,T),c={...c,[g.name]:T}),!g.opts?.dryRun){let R=g.opts?.valueFn;R&&(h=await R(),E=h),i={...i,[g.name]:h},s={...s,[g.name]:E}}}catch(h){throw g.opts?.suppressErrorLog||console.error(`Error updating usage quotas for ${g.name}`,h),h}}let m=r.filter(g=>!g.opts?.dryRun).map(g=>({name:g.name,type:g.type,values:{total:i[g.name],app:s[g.name],breakdown:c[g.name],triggers:f[g.name]},opts:{...g.opts,tenantId:t}}));m.length>0&&await Le.setAllUsage(m)},xd=async(e,t,r)=>{let a=await xe.getCachedLicense();if(!a){let n=de.tenancy.getTenantId();throw new Error("License not found for tenant id "+n)}if(r&&(0,Y.isStaticQuota)(e,r,t))return a.quotas[e][r][t];if(r&&(0,Y.isMonthlyQuota)(e,r,t))return a.quotas[e][r][t];if((0,Y.isConstantQuota)(e,t))return a.quotas[e][t];throw new Error("Invalid quota type")},N_=async(e,t)=>{try{return await Jt({usageChange:1,name:e,type:t,opts:{dryRun:!0}}),!1}catch(r){if(r.code===de.ErrorCode.USAGE_LIMIT_EXCEEDED)return!0;throw r}};var Xt=require("@budibase/types"),_d=require("@budibase/backend-core"),Td=async()=>{let e=await _d.db.getAllApps({dev:!0});return e?e.length:0},G_=async(e,{appId:t}={})=>fe(Xt.StaticQuotaName.APPS,Xt.QuotaUsageType.STATIC,{fn:e,valueFn:Td,id:t}),M_=async({appId:e}={})=>Te(Xt.StaticQuotaName.APPS,Xt.QuotaUsageType.STATIC,{valueFn:Td,id:e});var Ge=require("@budibase/types"),k_=async(e,{tableId:t}={})=>fe(Ge.StaticQuotaName.ROWS,Ge.QuotaUsageType.STATIC,{fn:e,id:t}),F_=async({tableId:e}={})=>Te(Ge.StaticQuotaName.ROWS,Ge.QuotaUsageType.STATIC,{id:e}),Q_=async(e,t,{tableId:r}={})=>It({change:e,name:Ge.StaticQuotaName.ROWS,type:Ge.QuotaUsageType.STATIC,opts:{fn:t,id:r}}),j_=async(e,{tableId:t}={})=>St({change:e,name:Ge.StaticQuotaName.ROWS,type:Ge.QuotaUsageType.STATIC,opts:{id:t}});var en=require("@budibase/types"),W_=async(e,{automationId:t}={})=>fe(en.MonthlyQuotaName.AUTOMATIONS,en.QuotaUsageType.MONTHLY,{fn:e,id:t});var Zt=require("@budibase/types"),Qo=async e=>fe(Zt.StaticQuotaName.USER_GROUPS,Zt.QuotaUsageType.STATIC,{fn:e}),jo=async()=>Te(Zt.StaticQuotaName.USER_GROUPS,Zt.QuotaUsageType.STATIC);var st=require("@budibase/types"),Wo=async e=>fe(st.StaticQuotaName.PLUGINS,st.QuotaUsageType.STATIC,{fn:e}),$o=async()=>Te(st.StaticQuotaName.PLUGINS,st.QuotaUsageType.STATIC),Vo=async e=>Fo(st.StaticQuotaName.PLUGINS,st.QuotaUsageType.STATIC,e);var Me=require("@budibase/types"),na=require("@budibase/backend-core");var tn=async(e,t,r)=>{let a=[{change:e,name:Me.StaticQuotaName.USERS,type:Me.QuotaUsageType.STATIC,opts:{fn:r,valueFn:na.users.getUserCount}}];t>0&&a.push({change:t,name:Me.StaticQuotaName.CREATORS,type:Me.QuotaUsageType.STATIC,opts:{valueFn:na.users.getCreatorCount}});let n=await It(a);return await Dt(),n},er=async(e,t)=>{let r=[{change:e,name:Me.StaticQuotaName.USERS,type:Me.QuotaUsageType.STATIC,opts:{valueFn:na.users.getUserCount}}];t>0&&r.push({change:t,name:Me.StaticQuotaName.CREATORS,type:Me.QuotaUsageType.STATIC,opts:{valueFn:na.users.getCreatorCount}}),await St(r),await Dt()};var Pe=require("@budibase/types"),Ko=async e=>It({change:e,name:Pe.MonthlyQuotaName.BUDIBASE_AI_CREDITS,type:Pe.QuotaUsageType.MONTHLY}),$_=async()=>fe(Pe.StaticQuotaName.AI_CUSTOM_CONFIGS,Pe.QuotaUsageType.STATIC),V_=async()=>Te(Pe.StaticQuotaName.AI_CUSTOM_CONFIGS,Pe.QuotaUsageType.STATIC),K_=async e=>St({change:e,name:Pe.StaticQuotaName.AI_CUSTOM_CONFIGS,type:Pe.QuotaUsageType.STATIC});var Ye={};S(Ye,{addAppBuilder:()=>X_,db:()=>Fe,removeAppBuilder:()=>Z_});var sa=require("@budibase/backend-core");var M={};S(M,{addAppBuilder:()=>Xo,addUsers:()=>Ho,adjustGroupCreatorsQuotas:()=>J_,cleanupApp:()=>z_,enrichUserRolesFromGroups:()=>H_,fetch:()=>oa,get:()=>vt,getBulk:()=>Dd,getGroupBuilderAppIds:()=>Ld,getGroupRoleId:()=>Y_,remove:()=>Yo,removeAppBuilder:()=>Zo,removeUsers:()=>zo,save:()=>tr,updateGroupApps:()=>Jo});var v=require("@budibase/backend-core");var Pd=require("@budibase/backend-core"),rn=class extends Pd.HTTPError{constructor(t){super(`Group name "${t}" is unavailable`,409)}};async function qd(e,t){try{let r=[];for(let s of e)if(s.roles){let c=s.roles[v.db.getProdAppID(t)];c&&r.push(c)}let a=await Promise.all(r.map(async s=>({[s]:await v.roles.roleToNumber(s)}))),n,o,i={};a.forEach(s=>{let[c,f]=Object.entries(s)[0];i[c]={roleId:c,roleNum:f}});for(let{roleId:s,roleNum:c}of Object.values(i))(o===void 0||c>o)&&(o=c,n=s);return n}catch(r){throw v.logging.logAlert(`Error finding higest role for ${e.length} on app ${t}`,r),r}}async function Ud(e,t){return t?t=t.filter(r=>e.includes(r._id)):t=await D.getBulk(e,{enriched:!1}),t}async function Ld(e,t){if(!e.userGroups)return[];let r=await Ud(e.userGroups,t?.groups),a=t?.appId?v.db.getProdAppID(t?.appId):null,n=[];for(let o of r){let i=o.builder?.apps;a&&i?.includes(a)?n.push(a):a||(n=n.concat(i||[]))}return[...new Set(n)]}async function Y_(e,t,r){if(!e.userGroups)return null;let a=await Ud(e.userGroups,r?.groups),n=v.db.getProdAppID(t);return e.roles?.[n]?e.roles[n]:(a=a.filter(o=>o?.roles?Object.keys(o.roles).includes(n):!1),await qd(a,t))}async function H_(e){if(!e||!e.userGroups)return e;let t=await Dd(e.userGroups,{enriched:!1}),r=[];for(let n of t)n?.roles&&(r=r.concat(Object.keys(n.roles)));r=[...new Set(r)];for(let n of r)await v.context.doInAppContext(n,async()=>{if(e.roles[n])return;let o=await qd(t,n);o&&(e.roles[n]=o)});let a=await Ld(e,{groups:t});if(a.length&&!e.builder?.global){let n=e.builder?.apps||[];e.builder={apps:n.concat(a)}}return e}async function oa(){return await D.fetch()}async function vt(e){return await D.get(e)}async function Dd(e,t={enriched:!0}){return await D.getBulk(e,t)}async function Od(e){if(await D.getByName(e))throw new rn(e)}async function Cd(e){let t=await D.getGroupUsers(e._id);if(!t.length)return 0;let a=await v.tenancy.getGlobalDB().getMultiple(t.map(o=>o._id));return(await v.userUtils.creatorsInList(a)).filter(o=>o).length}async function tr(e){let t=[],r=!e._id,a=0;if(delete e.users,!e._id)e._id=D.generateUserGroupID(),await Od(e.name),t.push(v.events.group.created(e));else{let o=await D.get(e._id);if(o.name!==e.name&&await Od(e.name),t.push(v.events.group.updated(e)),JSON.stringify(o.roles)!==JSON.stringify(e.roles)){let i=o.users?.length||0,s=0;i>0&&(s=await Cd(o)),Object.values(e.roles).includes(v.roles.BUILTIN_ROLE_IDS.ADMIN)?a=i-s:a=-i,t.push(v.events.group.permissionsEdited(e))}}await Promise.all(t);let n=()=>D.save(e);if(r)return await Qo(n);{let o=await n();if(a>0)await tn(0,a);else if(a<0){let i=await Cd(e),s=Math.abs(a)-i;s>0&&await er(0,s)}return o}}async function Yo(e,t){let r;try{r=await D.get(e)}catch{throw new Error("Group not found")}let a=Object.values(r.roles||{}).includes(v.roles.BUILTIN_ROLE_IDS.ADMIN),n=()=>{};if(a){let i=v.tenancy.getGlobalDB(),s=await D.getGroupUsers(e),f=(await Promise.all(s.map(h=>i.get(h._id)))).map(h=>({...h,userGroups:h.userGroups.filter(E=>E!==e)})),g=(await v.userUtils.creatorsInList(f)).filter(h=>h).length,y=s.length-g;y&&(n=()=>er(0,y))}let o=await D.destroy(e,t);return await v.events.group.deleted(r),await jo(),await n(),o}async function Ho(e,t){let r=await D.get(e),a=await v.users.bulkGetGlobalUsersById(t),n=[];for(let c of a)c.userGroups||(c.userGroups=[]),c.userGroups.includes(e)||n.push(c);if(!n.length)return n;let o=n.map(c=>({...c,userGroups:[...c?.userGroups||[],e]}));if(await v.users.bulkUpdateGlobalUsers(o),Object.values(r.roles||{}).includes(v.roles.BUILTIN_ROLE_IDS.ADMIN)){let f=(await v.userUtils.creatorsInList(n)).filter(g=>g).length,m=n.length-f;m&&await tn(0,m)}let s=[];for(let c of t)s.push(v.cache.user.invalidateUser(c));return await Promise.all(s),await v.events.group.usersAdded(o.length,r),o}async function zo(e,t){let r=await D.get(e),a=await v.users.bulkGetGlobalUsersById(t),n=[];for(let s of a){if(!s.userGroups||!s.userGroups.includes(e))continue;let c=s.userGroups.indexOf(e);s.userGroups.splice(c,1),n.push(s)}if(await v.users.bulkUpdateGlobalUsers(n),Object.values(r.roles||{}).includes(v.roles.BUILTIN_ROLE_IDS.ADMIN)){let c=(await v.userUtils.creatorsInList(n)).filter(m=>m).length,f=n.length-c;f&&await er(0,f)}let i=[];for(let s of t)i.push(v.cache.user.invalidateUser(s));return await Promise.all(i),n.length&&await v.events.group.usersDeleted(n.length,r),n}async function Jo(e,t){let r=await vt(e);if(r.roles||(r.roles={}),t.appsToAdd)for(let a of t.appsToAdd)r.roles[a.appId]=a.roleId;if(t.appsToRemove)for(let a of t.appsToRemove)delete r.roles[a.appId];return await tr(r)}async function z_(e){let t=await oa(),r=[];for(let a of t)!a.roles||!a.roles[e]||(delete a.roles[e],r.push(a));return await D.bulkSave(r)}async function Xo(e,t){if(!await bt())throw new Error("Feature not enabled, please check license");let r=v.db.getProdAppID(t),a=await vt(e);a.builder??={apps:[]},a.builder.apps.includes(t)||(a.builder.apps.push(r),await tr(a))}async function Zo(e,t){if(!await bt())throw new Error("Feature not enabled, please check license");let r=v.db.getProdAppID(t),a=await vt(e);a.builder?.apps.includes(t)&&(a.builder.apps=a.builder.apps.filter(n=>n!==r),await tr(a))}async function J_(){if(!await Go()){let e=v.tenancy.getGlobalDB(),r=(await oa()||[]).filter(a=>Object.values(a?.roles||{}).includes(v.roles.BUILTIN_ROLE_IDS.ADMIN));for(let a of r){let n=await D.getGroupUsers(a._id),i=(await Promise.all(n.map(m=>e.get(m._id)))).map(m=>({...m,userGroups:m.userGroups.filter(g=>g!==a._id)})),c=(await v.userUtils.creatorsInList(i)).filter(m=>m).length,f=n.length-c;await D.save({...a,roles:{}}),f&&await er(0,f)}}}sa.users.UserDB.init(ke,M,le);var Fe=sa.users.UserDB;async function X_(e,t){if(!await bt())throw new Error("Feature not enabled, please check license");await sa.users.addAppBuilder(e,t)}async function Z_(e,t){if(!await bt())throw new Error("Feature not enabled, please check license");await sa.users.removeAppBuilder(e,t)}var nn={};S(nn,{logs:()=>is});var is={};S(is,{logSearch:()=>uT,oldestLogDate:()=>Qd,storeLog:()=>pT});var Fd=require("@budibase/types"),an=require("@budibase/backend-core");var it=require("@budibase/types");var K=require("@budibase/backend-core");var Bd=require("@budibase/backend-core");async function Nd(e,t){let r,a=5,n=!1,o,i=!0;for(;a>0;a--)try{i?o=await e():o=await exports.randomDelay(e),n=!0;break}catch(s){r=s}return n||Bd.logging.logWarn(`Failed to backoff: ${t}`,r),o}var{SEPARATOR:He,UNICODE_MAX:eT,DocumentType:Gd,AutomationViewMode:es,ViewName:tT,getQueryIndex:rT}=K.db,aT=new Date(0).toISOString(),nT=100,ts=async()=>_a(it.ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS);function Md(e,t,{status:r,automationId:a}={},n={}){let o=a?`${a}${He}`:"",i=r?`${r}${He}`:"",s;return r&&a?s=`${es.ALL}${He}${i}${o}`:r?s=`${es.STATUS}${He}${i}`:a?s=`${es.AUTOMATION}${He}${o}`:s=`${Gd.AUTOMATION_LOG}${He}`,{...n,descending:!0,startkey:`${s}${t}${eT}`,endkey:`${s}${e}`}}function rs(e){let t=it.AutomationStatus.SUCCESS,r=!0;for(let a of e.steps){let n=a.outputs?.status?.toLowerCase(),o=n==="stopped_error";if(r&&!o){r=!1;continue}if(o){t=it.AutomationStatus.STOPPED_ERROR;break}else if(a.outputs?.success){if(n==="stopped"){t=it.AutomationStatus.STOPPED;break}}else{t=it.AutomationStatus.ERROR;break}}return t}function oT(e,t,r){return`${Gd.AUTOMATION_LOG}${He}${e}${He}${r}${He}${t}`}async function as(e,t,r={docs:!0}){let a=K.context.getProdAppDB();await a.exists()||(a=K.context.getDevAppDB());let n={status:r.status},o=r?.limit?r.limit:r?.paginate?9+1:void 0,i=Md(e,t,n,{include_docs:r.docs,limit:o});r?.page&&(i.startkey=r.page);let s=await a.allDocs(i);return hr(s,{paginate:r?.paginate,pageSize:9})}async function ns(e,t,r={}){let a=K.context.getProdAppDB();await a.exists()||(a=K.context.getDevAppDB());let n;try{let o={automationId:r?.automationId,status:r?.status},i=Md(e,t,o,{include_docs:!0,limit:9+1});r?.page&&(i.startkey=r.page),n=await a.query(rT(tT.AUTOMATION_LOGS),i)}catch(o){if(o!=null&&(o.name==="not_found"||o.error==="not_found"))return await du(),ns(e,t,r);throw o}return hr(n,{paginate:!0,pageSize:9})}async function kd(e,t){let r=K.context.getProdAppDB(),a=e._id,n=e.name,o=rs(t),i=new Date().toISOString(),s=oT(i,o,a),c={...t,automationId:a,status:o,automationName:n,createdAt:i,_id:s};return await r.put(c),s}async function os(e,{clearing:t}={clearing:!1}){let r=K.context.getProdAppDB();await Nd(async()=>{let a=await r.get(K.db.DocumentType.APP_METADATA);for(let n of e){let o=n.split(K.db.SEPARATOR),i=`${o[o.length-3]}${K.db.SEPARATOR}${o[o.length-2]}`,s={};a.automationErrors&&(s=a.automationErrors),Array.isArray(s[i])||(s[i]=[]);let c=s[i].indexOf(n);t&&c!==-1?s[i].splice(c,1):s[i].push(n),s[i].length===0&&delete s[i],a.automationErrors=s}await r.put(a),await K.cache.app.invalidateAppMetadata(a.appId,a)},"Failed to update app metadata with automation log error")}async function sT(){let e=await ts();try{return await as(aT,e,{docs:!1,paginate:!1,limit:nT})}catch{return{data:[],hasNextPage:!1}}}async function ss(){let e=K.context.getProdAppDB();try{let t=await sT();if(!t.data||t.data.length===0)return;let r=t.data.map(n=>({_id:n.id,_rev:n.value.rev,_deleted:!0})),a=t.data.filter(n=>{let o=n.id.split(K.db.SEPARATOR);return o[o.length-1]===it.AutomationStatus.ERROR}).map(n=>n.id);await e.bulkDocs(r),a.length&&await os(a,{clearing:!0})}catch(t){K.logging.logAlert(`Failed to cleanup automation log history - Database "${e.name}"`,t)}}var Qd=ts;async function iT(e,t,r,a){let n,o=new Date().toISOString(),i=await Qd();return(!e||e<i)&&(e=i),r||t?n=await ns(e,o,{automationId:r,status:t,page:a}):n=await as(e,o,{status:t,page:a,docs:!0,paginate:!0}),n}async function uT(e){return await ss(),await iT(e.startDate,e.status,e.automationId,e.page)}async function pT(e,t){if(!an.db.isProdAppID(an.context.getAppId()))return;let r=rs(t),a=await kd(e,t);r===Fd.AutomationStatus.ERROR&&await os([a]),await ss()}var on={};S(on,{checkPluginQuotas:()=>dT,deletePlugin:()=>lT,storePlugin:()=>cT});var Vd=require("@budibase/types"),j=require("@budibase/backend-core");var jd=O(require("fs")),Wd=require("path");function $d(e,t){return jd.default.readFileSync((0,Wd.join)(e,t),"utf8")}async function cT(metadata,directory,source){let db=j.tenancy.getGlobalDB(),version=metadata.package.version,name=metadata.package.name,description=metadata.package.description,hash=metadata.schema.hash,bucketPath=j.objectStore.getPluginS3Dir(name),files=await j.objectStore.uploadDirectory(j.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===Vd.PluginType.DATASOURCE){let js=$d(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=j.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=async()=>{let e=await db.put(doc);return await j.events.plugin.imported(doc),{...doc,_rev:e.rev}};return rev?await write():await Wo(write)}async function lT(e){let t=j.tenancy.getGlobalDB();try{let r=await t.get(e),a=j.objectStore.getPluginS3Dir(r.name);await j.objectStore.deleteFolder(j.objectStore.ObjectStoreBuckets.PLUGINS,a),await t.remove(e,r._rev),await j.events.plugin.deleted(r),await $o()}catch(r){let a=r?.message?r?.message:r;throw new Error(`Failed to delete plugin: ${a}`)}}async function dT(){let e=j.tenancy.getGlobalDB();try{let r=(await e.allDocs(j.db.getPluginParams())).rows.length;console.log(`Syncing plugin count: ${r}`),await Vo(r)}catch(t){j.logging.logAlert("Unable to retrieve plugins for quota check",t)}}var Qe={};S(Qe,{fetch:()=>gT,fetchValues:()=>mT,isEncryptionKeyAvailable:()=>fT,isValid:()=>Hd,remove:()=>AT,update:()=>yT});var ia=require("@budibase/types"),Kd=require("@budibase/backend-core");function fT(){return!!Kd.env.ENCRYPTION_KEY}async function gT(){let e=await mt.get();return Object.keys(e.variables)}async function mT(e){let r=(await mt.get()).variables,a={};for(let[n,o]of Object.entries(r))switch(e){case ia.AppEnvironment.DEVELOPMENT:a[n]=o.development;break;case ia.AppEnvironment.PRODUCTION:default:a[n]=o.production;break}return a}async function Yd(e){if(!(await Ne.cache.getCachedLicense()).features.includes(ia.Feature.ENVIRONMENT_VARIABLES))throw new Error("User does not have access to environment variables feature.");let r=await mt.get();r.variables=e(r.variables),await mt.update(r)}async function yT(e,t){if(Hd(e))await Yd(a=>(a[e]=t,a));else throw new Error("Variable name has characters that are not allowed")}async function AT(e){await Yd(t=>(delete t[e],t))}function Hd(e){return/^[a-zA-Z0-9-_]+$/.test(e)}var ut={};S(ut,{definitions:()=>TT,download:()=>_T,fetch:()=>xT,write:()=>ET});var un=require("@budibase/types");var F=require("@budibase/backend-core"),Oe=require("@budibase/types");var zd=require("memorystream"),Jd=new F.sql.Sql(Oe.SqlClient.SQL_LITE);async function hT(e,t,r){let a={operation:Oe.Operation.READ,table:Lt.searchTable(),tables:{},paginate:{limit:r||9,page:t},filters:e,resource:{fields:[]},sort:{timestamp:{direction:Oe.SortOrder.DESCENDING,type:Oe.SortType.STRING}}},n=Jd._query(a);if(Array.isArray(n))throw new Error("Cannot execute multiple queries for audit log search");return{sql:n.sql,bindings:n.bindings}}function bT(e){return`${F.DocumentType.AUDIT_LOG}${F.SEPARATOR}${e}${F.SEPARATOR}${F.utils.newid()}`}async function Xd(e){e._id||(e._id=bT(e.timestamp)),e.type||(e.type=Oe.AUDIT_LOG_TYPE);try{let r=await F.context.getAuditLogsDB().put(e);return{...e,_rev:r.rev}}catch(t){F.logging.logAlert("Failed to write audit log",t)}}async function us(e,t,r){t||(t=1);let a=F.context.getAuditLogsDB();try{let n=9+1,o=await hT(e,t,n),i=Lt.searchTable(),s=Jd.convertJsonStringColumns(i,await a.sql(o.sql,o.bindings)),c;s.length>n&&(c=s.pop());let f={rows:s,hasNextPage:!!c};return f.hasNextPage&&(f.bookmark=t+1),f}catch(n){if(n.status===404&&!r?.isRetry)return await IT(),await ru(),await us(e,t,{isRetry:!0});throw n}}async function IT(){let e=F.context.getAuditLogsDB(),r=(await e.allDocs(F.db.getDocParams(F.DocumentType.AUDIT_LOG,null,{include_docs:!0}))).rows.map(a=>a.doc).filter(a=>a&&!a.type).map(a=>({...a,type:Oe.AUDIT_LOG_TYPE}));await e.bulkDocs(r)}function Zd(e){let t=F.context.getAuditLogsDB(),r=new zd,a=t.dump(r,{filter:o=>{let i=o;if(!i._id?.startsWith(F.DocumentType.AUDIT_LOG))return!1;let s=!0,c=(f,m)=>{!f||f.length===0||(s=!!(s&&m&&f.includes(m)))};if(c(e.userIds,i.userId),c(e.appIds,i.appId),c(e.events,i.event),(e.startDate||e.endDate)&&(s=s&&i.timestamp>=e.startDate&&i.timestamp<=e.endDate),e.fullSearch){let f=JSON.stringify(o);s=s&&f.includes(e.fullSearch)}return s}}),n=new zd;return r.on("data",o=>{let i=JSON.parse(Buffer.from(o).toString());if(Array.isArray(i.docs)){let s="";for(let c of i.docs)s+=JSON.stringify(c)+`
38
+ `;n.write(s)}}),r.on("end",()=>{n.end()}),{promise:a,stream:n}}var ne=require("@budibase/backend-core");var sn=require("@budibase/types"),ua=require("@budibase/string-templates"),pa=require("@budibase/backend-core"),wT=pa.constants.MIN_VALID_DATE.toISOString(),vT=pa.constants.MAX_VALID_DATE.toISOString();function ps(e){return(e.startDate||e.endDate)&&(e.startDate=e.startDate||wT,e.endDate=e.endDate||vT),e}async function ef(e){Array.isArray(e.appIds)&&(e.appIds=e.appIds.map(a=>pa.db.getProdAppID(a)));let t={};function r(a,n){n?.length&&(t.oneOf={...t.oneOf,[a]:n})}return 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=ps(e),t.range={timestamp:{high:e.endDate,low:e.startDate}}),Object.keys(t).length===0&&(t.notEmpty={event:!0}),t}function cs(e,t,r){let a={_id:e,status:sn.AuditLogResourceStatus.DELETED};switch(t){case"app":a.name=r?.appName;break;case"user":a.email=r?.email;break}return a}function ls(e){let t=(0,ua.findHBSBlocks)(e);for(let r of t){let a=` "${r}"`;e=e.replace(e.includes(a)?a:` ${r}`,""),e=(0,ua.processStringSync)(e,{})}return e}function tf(e,t){let r=sn.AuditedEventFriendlyName[e];if(!r)throw new Error("No friendly name found.");let a=(0,ua.processStringSync)(r,t);return a.includes('""')&&(a=ls(r)),a}async function ET(e,t,r){if(!await Ja()||!ne.utils.isAudited(e))return;let a=tf(e,t),n=new Date;r?.timestamp&&(n=new Date(r.timestamp));let o={timestamp:n.toISOString(),event:e,name:a,userId:r?.userId||un.AuditLogSystemUser,metadata:{...t,...r?.hostInfo}},i={};try{if(r?.appId){o.appId=ne.db.getProdAppID(r.appId);let s=await ne.cache.app.getAppMetadata(r.appId);"name"in s&&(i.appName=s.name)}if(r?.userId){let s=await ne.users.getById(r?.userId);i.email=s.email}}catch(s){ne.logging.logAlert("Failed to retrieve fallback information for audit log",s)}return o.fallback=i,await Xd(o)}async function RT(e){let t=e.map(s=>s.userId),a=e.filter(s=>s.appId).map(s=>ne.db.getDevAppID(s.appId)),n=await ne.users.bulkGetGlobalUsersById([...new Set(t)],{cleanup:!0}),o=await ne.db.getAppsByIDs([...new Set(a)]),i=[];for(let s of e){let c=n.find(g=>g?._id===s.userId),f=o.find(g=>ne.db.isSameAppID(g?.appId,s.appId)),m={event:s.event,timestamp:s.timestamp,name:s.name,metadata:s.metadata,user:c||cs(s.userId,"user",s.fallback)};s.appId&&(m.app=f||cs(s.appId,"app",s.fallback)),i.push(m)}return i}async function xT(e){if(!await Ja())throw new Error("Audit logs not available - license required.");let t=await ef(e);if(typeof e.bookmark=="string")throw new Error("String based bookmark not supported.");let r=await us(t,e.bookmark);return{hasNextPage:r.hasNextPage,bookmark:r.bookmark,data:await RT(r.rows)}}function _T(e){return e=ps(e),Zd(e)}function TT(){let e=Object.entries(un.AuditedEventFriendlyName).filter(r=>r[1]!=null),t={};for(let r of e)t[r[0]]=ls(r[1]);return t}var pn={};S(pn,{applications:()=>ms,roles:()=>fs,users:()=>ds});var ds={};S(ds,{roleCheck:()=>OT});function PT(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}async function OT(e,t){return await Ke()||PT(e,t),e}var fs={};S(fs,{assign:()=>CT,unAssign:()=>qT});var ca=require("@budibase/backend-core");async function CT(e,t){if(!await Ke())throw new Error("Unable to assign roles - license required.");let r=await Fe.bulkGet(e);for(let a of r){if(t.role&&t.role.roleId){let n=ca.db.getProdAppID(t.role.appId);a.roles[n]=t.role.roleId}if(t.appBuilder){let n=ca.db.getProdAppID(t.appBuilder.appId),o=a.builder?.apps||[];a.builder={apps:o.concat([n])}}t.builder&&(a.builder={global:!0}),t.admin&&(a.admin={global:!0}),a.roles}await Fe.bulkUpdate(r)}async function qT(e,t){if(!await Ke())throw new Error("Unable to un-assign roles - license required.");let r=await Fe.bulkGet(e);for(let a of r){if(t.role){let n=ca.db.getProdAppID(t.role?.appId);a.roles[n]===t.role.roleId&&delete a.roles[n]}if(t.appBuilder&&a.builder?.apps){let n=ca.db.getProdAppID(t.appBuilder.appId);a.builder.apps=a.builder.apps.filter(o=>o!==n)}t.builder&&a.builder&&delete a.builder,t.admin&&a.admin&&delete a.admin}}var ms={};S(ms,{buildExportFn:()=>LT,buildImportFn:()=>UT});var gs=require("@budibase/backend-core");function UT(e){return async(t,r)=>{await Ke()||t.throw(403,"Endpoint unavailable, license required."),t.request.files?.appExport||t.throw(400,"Must provide app export file for import."),await gs.context.doInAppContext(t.params.appId,async()=>{await e(t),t.body=void 0,t.status=204,await r()})}}function LT(e){return async(t,r)=>{await Ke()||t.throw(403,"Endpoint unavailable, license required.");let{encryptPassword:a,excludeRows:n}=t.request.body;await gs.context.doInAppContext(t.params.appId,async()=>{t.request.body={encryptPassword:a,excludeRows:n},t.query.appId=t.params.appId,await e(t),await r()})}}var je=require("@budibase/backend-core"),ae=require("@budibase/types");var ys=require("@budibase/backend-core"),rf;function af(){rf=ys.queue.createQueue(ys.queue.JobQueue.APP_BACKUP,{maxStalledCount:3,jobOptions:{attempts:3,removeOnFail:!0,removeOnComplete:!0}})}function Et(){return rf}var nf=require("path"),of=O(require("fs"));async function As(e,t={}){return be.storeAppBackupMetadata(e,t)}function sf(e){let t=new Date().toISOString();switch(e){case ae.AppBackupStatus.COMPLETE:case ae.AppBackupStatus.FAILED:return{timestamp:t,finishedAt:t};case ae.AppBackupStatus.STARTED:return{timestamp:t,startedAt:t};case ae.AppBackupStatus.PENDING:return{timestamp:t,createdAt:t}}}async function DT(e,t,r,a){let n=await cn(e);return await be.storeAppBackupMetadata({...n,...sf(t),contents:r,status:t,type:ae.AppBackupType.BACKUP},{filename:a,docId:e})}async function BT(e,t,r){let a=await cn(e);return await be.storeAppBackupMetadata({...a,...sf(r),status:r,type:ae.AppBackupType.RESTORE,trigger:ae.AppBackupTrigger.MANUAL},{docId:e,docRev:t})}async function cn(e){return be.getAppBackupMetadata(e)}async function NT(e,t){return be.updateAppBackupMetadata(e,t)}async function GT(e){let t=await be.getAppBackupMetadata(e);return t.filename&&await je.objectStore.deleteFile(je.objectStore.ObjectStoreBuckets.BACKUPS,t.filename),be.deleteAppBackupMetadata(e)}async function MT(e,t){return be.fetchAppBackups(e,t)}async function uf(e){let t=await be.getAppBackupMetadata(e);if(!t.filename)throw new Error("Backup incomplete - cannot download.");let r=await je.objectStore.getReadStream(je.objectStore.ObjectStoreBuckets.BACKUPS,t.filename);return{metadata:t,stream:r}}async function kT(e){let{stream:t}=await uf(e),r=(0,nf.join)(je.objectStore.budibaseTempDir(),je.utils.newid()),a=of.default.createWriteStream(r);return new Promise((n,o)=>{t.on("error",o),a.on("error",o),t.pipe(a).on("close",()=>n(r))})}async function FT(e,t,r={}){let a;try{a=await As({appId:e,trigger:t,timestamp:new Date().toISOString(),status:ae.AppBackupStatus.PENDING,type:ae.AppBackupType.BACKUP,...r})}catch(n){if(n.status===409)return;throw n}return await Et().add({docId:a.id,docRev:a.rev,appId:e,export:{trigger:t,...r}}),await je.events.backup.appBackupTriggered(e,a.id,ae.AppBackupType.BACKUP,t,r?.name),a.id}async function QT(e,t,r,a){let n=await cn(t),o;try{o=await As({appId:e,timestamp:new Date().toISOString(),status:ae.AppBackupStatus.PENDING,type:ae.AppBackupType.RESTORE,createdBy:a})}catch(i){if(i?.status===409)return;throw i}return await Et().add({appId:e,docId:o.id,docRev:o.rev,import:{nameForBackup:r,backupId:t,createdBy:a}}),{restoreId:o.id,metadata:n}}var jT={isEnabled:Bo,triggerAppRestore:ce(QT),triggerAppBackup:ce(FT),getBackupDownloadStream:ce(uf),downloadAppBackup:ce(kT),fetchAppBackups:ce(MT),storeAppBackupMetadata:ce(As),updateBackupStatus:ce(DT),updateRestoreStatus:ce(BT),getAppBackup:ce(cn),updateAppBackup:ce(NT),deleteAppBackup:ce(GT)},ze=jT;var bs={};S(bs,{init:()=>hs});var W=require("@budibase/backend-core");var Ce=require("@budibase/types");var rr=O(require("fs"));async function hs(e){Et().process(async t=>{let r=t.data;try{if(r.export)return VT(t,e);if(r.import)return $T(t,e)}catch(a){W.logging.logAlert(`Failed to perform backup for app ID: ${r.appId}`,a)}})}async function WT(e){await W.db.getDB(e,{skip_setup:!0}).destroy()}async function pf(e,t,r,a){let n=W.db.getDevAppID(r),o=W.db.getProdAppID(r),i=new Date().toISOString(),s=async(c,f)=>{a?.doc?await ze.updateBackupStatus(a.doc.id,c,f?.contents,f?.filename):await ze.storeAppBackupMetadata({appId:o,timestamp:i,trigger:e,status:c,name:a?.name,type:Ce.AppBackupType.BACKUP,contents:f?.contents,createdBy:a?.createdBy},{filename:f?.filename})};try{let c=await a.processing.exportAppFn(n,{tar:!0}),f=await a.processing.statsFn(n),m=`${o}/backup-${i}.tar.gz`,g=W.objectStore.ObjectStoreBuckets.BACKUPS,y=rr.default.createReadStream(c);await W.objectStore.streamUpload({bucket:g,filename:m,stream:y,extra:{type:"application/gzip",metadata:{name:a?.name,trigger:e,timestamp:i,appId:o}}}),await s(Ce.AppBackupStatus.COMPLETE,{filename:m,contents:f}),rr.default.existsSync(c)&&rr.default.rmSync(c)}catch(c){W.logging.logAlert("App backup error",c),await s(Ce.AppBackupStatus.FAILED)}}async function $T(e,t){let r=e.data,a=r.appId,n=r.import.backupId,o=r.import.nameForBackup,i=r.import.createdBy,s=W.tenancy.getTenantIDFromAppID(a);return W.tenancy.doInTenant(s,async()=>{let c=W.db.getDevAppID(a),{rev:f}=await ze.updateRestoreStatus(r.docId,r.docRev,Ce.AppBackupStatus.STARTED);await pf(Ce.AppBackupTrigger.RESTORING,s,a,{processing:t,createdBy:i,name:o});let m=await ze.downloadAppBackup(n);await WT(c);let g=Ce.AppBackupStatus.COMPLETE;try{await t.importAppFn(c,W.db.getDB(c),{file:{type:"application/gzip",path:m},key:m})}catch(y){W.logging.logAlert("App restore error",y),g=Ce.AppBackupStatus.FAILED}await ze.updateRestoreStatus(r.docId,f,g),rr.default.existsSync(m)&&rr.default.rmSync(m,{force:!0})})}async function VT(e,t){let r=e.data,a=r.appId,n=r.export.trigger,o=r.export.name,i=W.tenancy.getTenantIDFromAppID(a);await W.tenancy.doInTenant(i,async()=>{try{let{rev:s}=await ze.updateBackupStatus(r.docId,Ce.AppBackupStatus.STARTED);return pf(n,i,a,{processing:t,doc:{id:r.docId,rev:s},name:o})}catch(s){W.logging.logAlert("App backup error",s)}})}var KT=async e=>{af(),await hs(e.processing)},Se={...ze,processing:bs,init:KT,getBackupQueue:Et};var cf=async e=>{e.backups&&await Se.init(e.backups)};var se={};S(se,{create:()=>kN,find:()=>MN,get:()=>GN,remove:()=>QN,update:()=>FN});var qA=O(gi()),Je=require("@budibase/backend-core");var UA=require("@budibase/types");async function GN(e){let t=Je.tenancy.getGlobalDB(),r=new Je.db.QueryBuilder(t.name,UA.SearchIndex.USER);r.setIndexBuilder(Je.db.searchIndexes.createUserIndex),r.setLimit(e.pageSize),r.addEqual("scimInfo.isSync",!0);for(let[n,o]of Object.entries(e.filters?.equal??{}))r.addEqual(n,o);r.setSort("_id"),r.setSkip(e.skip);let a=await r.run();return{users:a.rows,total:a.totalRows}}async function MN(e){return await Je.users.getById(e)}async function kN(e){let t=await Fe.getUserByEmail(e.email);if(t){if(t.scimInfo?.isSync)throw new Je.HTTPError("User is already synched",409);e={...t,scimInfo:(0,qA.default)(t.scimInfo,e.scimInfo),password:void 0,firstName:e.firstName,lastName:e.lastName,updatedAt:e.updatedAt}}return await Fe.save(e,{requirePassword:!1})}async function FN(e,t){return await Fe.save(e,{requirePassword:!1,allowChangingEmail:t?.allowChangingEmail})}async function QN(e){return await Fe.destroy(e)}var ur={};S(ur,{create:()=>jN});var LA=O(gi());var DA=require("@budibase/backend-core");async function jN(e){let t=await jn(e.name),r;if(!t)r=(await M.save(e)).id;else{if(t.scimInfo?.isSync)throw new DA.HTTPError("Group is already synched",409);r=t._id,t.users&&(await M.removeUsers(r,t.users.map(n=>n._id)),delete t.users),t.scimInfo=(0,LA.default)(t.scimInfo,e.scimInfo),await M.save(t)}return await M.get(r)}var xt={};S(xt,{logRequest:()=>WN,logResponse:()=>$N});var mi=require("@budibase/backend-core");async function WN(e){mi.logging.logWarn("SCIM request log",e)}async function $N(e){mi.logging.logWarn("SCIM response error",e)}var Ii={};S(Ii,{doInScimContext:()=>Ai,feature:()=>N,internalGroupOnly:()=>Rn,licensing:()=>BA,requireSCIM:()=>hi,scimGroupOnly:()=>ga,scimUserOnly:()=>fa});var pt=require("@budibase/backend-core");var vn=require("@budibase/types"),VN=(e={checkUsersLimit:!0})=>async(t,r)=>{if((e.licensingCheck?e.licensingCheck:()=>!!t.user)(t)){if(pt.env.SELF_HOSTED&&pt.env.DEFAULT_LICENSE)return t.user.license=$n,r();t.user.license=await Ne.cache.getCachedLicense(t,{populateLicense:e.populateLicense,populateFreeLicense:e.populateFreeLicense}),e.checkUsersLimit&&(pt.utils.isServingApp(t)||pt.utils.isServingBuilder(t)||pt.utils.isServingBuilderPreview(t)||pt.utils.isPublicApiRequest(t))&&await ke.usageLimitIsExceeded(vn.StaticQuotaName.USERS,vn.QuotaUsageType.STATIC)}return r()},BA=VN;var N={};S(N,{requireFeature:()=>KN,requireFeatures:()=>YN});var KN=e=>async(t,r)=>{await za(e),await r()},YN=(...e)=>async(t,r)=>{await Do(e),await r()};var En=require("@budibase/backend-core");var Ai=async(e,t)=>(En.env.DISABLE_SCIM_CALLS||await xt.logRequest({...e.request.toJSON(),body:e.request.body}),await En.context.doInScimContext(async()=>{let r=await t();return await xt.logResponse({...e.response.toJSON(),body:e.response.body}),r}));var hi=async(e,t)=>{await Mo(),await t()};var NA=require("@budibase/backend-core");var fa=e=>bi(NA.users.getById,e,!0),ga=e=>bi(D.get,e,!0),Rn=e=>bi(D.get,e,!1);function bi(e,t,r){return async(a,n)=>{let o=a.params[t];return typeof o!="string"&&a.throw(404),!!(await e(o)).scimInfo?.isSync!==r&&a.throw(404),n()}}var Bi={};S(Bi,{ai:()=>ZA,appBackups:()=>Gh,auditLogs:()=>Th,environmentVariables:()=>Ih,groups:()=>lh,scim:()=>mb,users:()=>Ib});var YA=require("@budibase/types");var Ri={};S(Ri,{getLLM:()=>ma});var VA=require("@budibase/backend-core"),KA=require("@budibase/types");var vi=O(require("openai"));var ct=require("@budibase/types");var we=class e{constructor(t){this.messages=t}user(t){return this.messages.push({role:"user",content:t}),this}system(t){return this.messages.push({role:"system",content:t}),this}static user(t){return new e([{role:"user",content:t}])}static system(t){return new e([{role:"system",content:t}])}};function Si(e){return we.user(`Summarize this text:
39
39
  ${e}.
40
- Only return the summary.`)}function Xh(e,t){return Me.user(`Return the category of this text: "${e}". Based on these categories: ${t.join(", ")}. Only return the category.`)}function Zh(e){return Me.user(`Clean the following string: "${e}". Remove any spelling mistakes or data issues. Only return the cleaned string itself and nothing else.`)}function eA(e){return Me.user(`Generate a node-cron compatible expression based on the following prompt. Return only the cron expression (without backticks), and if not possible return only 'Error generating cron' with a short explanation:
41
- ${e}`)}function tA(e,t){return Me.user(`Translate the following text: "${e}" into ${t}. Only return the translation.`)}function rA(e){return Me.user(`Return the sentiment of this text: "${e}". Only return the sentiment.`)}function nA(e){return Me.user(`Search the web for the following: "${e}". Only return the top results.`)}function aA(e,t){let r="You do not have access to any bindings in this request.";e&&e.length>0&&(r=`The bindings you have access to are:
40
+ Only return the summary.`)}function GA(e,t){return we.user(`Return the category of this text: "${e}". Based on these categories: ${t.join(", ")}. Only return the category.`)}function MA(e){return we.user(`Clean the following string: "${e}". Remove any spelling mistakes or data issues. Only return the cleaned string itself and nothing else.`)}function kA(e){return we.user(`Generate a node-cron compatible expression based on the following prompt. Return only the cron expression (without backticks), and if not possible return only 'Error generating cron' with a short explanation:
41
+ ${e}`)}function FA(e,t){return we.user(`Translate the following text: "${e}" into ${t}. Only return the translation.`)}function QA(e){return we.user(`Return the sentiment of this text: "${e}". Only return the sentiment.`)}function jA(e){return we.user(`Search the web for the following: "${e}". Only return the top results.`)}function WA(e,t){let r="You do not have access to any bindings in this request.";e&&e.length>0&&(r=`The bindings you have access to are:
42
42
 
43
- ${e.map(({readableBinding:i})=>`- $("${i}")`).join(`
44
- `)}`);let n="You do not have access to any snippets in this request.";t.length>0&&(n=`The snippets you have access to are:
43
+ ${e.map(({readableBinding:n})=>`- $("${n}")`).join(`
44
+ `)}`);let a="You do not have access to any snippets in this request.";return t.length>0&&(a=`The snippets you have access to are:
45
45
 
46
- ${t.map(({name:i,code:s})=>{let c=s.replace(/^\s*return /g,"");return`- snippets.${i} = ${c.trim()}`}).join(`
47
- `)}`);let a=(0,zh.getManifest)(),o=`You have access to the following helpers:
48
-
49
- `;for(let i of Object.values(a))for(let[s,{args:c,description:d}]of Object.entries(i)){let m=`${s}(${c.join(", ")})`;o+=`- helpers.${m}: ${d.trim()}
50
- `}return Me.system(`
46
+ ${t.map(({name:n,code:o})=>{let i=o.replace(/^\s*return /g,"");return`- snippets.${n} = ${i.trim()}`}).join(`
47
+ `)}`),we.system(`
51
48
  You are a helpful expert in writing JavaScript. A user is asking you for help
52
49
  writing some JavaScript for their application.
53
50
 
@@ -82,11 +79,6 @@ variables and functions that are not standard to JavaScript. These are:
82
79
  from the string you pass to it. An example of how to call this function would
83
80
  be \`$("Current User.firstName")\`. There are no other properties on \`$\`,
84
81
  do not try to access them.
85
- - \`helpers\`: An object that contains references to many utility functions.
86
- A full list will be provided later. You should only use a helper if the
87
- equivalent JavaScript would be more than 4 lines of code. If you're unsure,
88
- err on the side of using plan JavaScript. All calls to helper functions look
89
- like \`helpers.myFunctionName(args)\`.
90
82
  - \`snippets\`: An object that contains references to many user-defined utility
91
83
  functions. A full list will be provided later. If a solution is possible
92
84
  using the provided snippets, you should use them. All calls to snippet
@@ -127,12 +119,6 @@ This is incorrect, window is not available in our sandbox.
127
119
  This is incorrect, nothing is returned. It's fine to define functions but the
128
120
  code you produce must return a value.
129
121
 
130
- return helpers.sum(1, 2);
131
-
132
- This is incorrect, helpers.sum exists but is trivially achieved in plain
133
- JavaScript. You should only use helpers if the resulting code would be more
134
- than 4 lines long in plain JavaScript.
135
-
136
122
  return someVar.length;
137
123
 
138
124
  This is incorrect because it references a variable that is not defined. When you
@@ -145,8 +131,6 @@ This is incorrect because it references an undefined variable "amount". It is
145
131
  important that you never reference a variable that is not defined. If you need
146
132
  a variable, it will be provided to you as a binding.
147
133
 
148
- ${o}
149
-
150
- ${n}
134
+ ${a}
151
135
 
152
- ${r}`)}var oA=require("@budibase/shared-core");function Mi(e,t){return t.map(r=>e[r]).join(" ")}var xr=class{constructor({model:t,apiKey:r,measureUsage:n}){this.model=t,this.apiKey=r,this.measureUsage=n,this.maxTokens=parseInt(process.env.BUDIBASE_AI_MAX_PROMPT_TOKENS||"300")}async prompt(t){typeof t=="string"&&(t=Me.user(t));let r=await this.chatCompletion(t);return this.measureUsage&&r.tokensUsed!==void 0&&r.tokensUsed>0&&await us(r.tokensUsed),r}async summarizeText(t){return this.prompt(Ni(t))}async generateCronExpression(t){return this.prompt(eA(t))}async operation(t,r){let n=this.promptForOperation(t,r);return this.prompt(n)}promptForOperation(t,r){let{operation:n,column:a,columns:o,language:i,categories:s,prompt:c}=t;switch(n){case Rt.AIOperationEnum.SUMMARISE_TEXT:return Ni(Mi(r,o));case Rt.AIOperationEnum.CLEAN_DATA:return Zh(r[a]);case Rt.AIOperationEnum.TRANSLATE:return tA(r[a],i);case Rt.AIOperationEnum.CATEGORISE_TEXT:if(!s)throw Error("No categories provided for categorise text operation. Please provide categories.");return Xh(Mi(r,o),s.split(","));case Rt.AIOperationEnum.SENTIMENT_ANALYSIS:return rA(r[a]);case Rt.AIOperationEnum.PROMPT:return c;case Rt.AIOperationEnum.SEARCH_WEB:return nA(Mi(r,o));default:throw oA.utils.unreachable(n)}}async generateJs(t,r){let{bindings:n=[],snippets:a=[]}=r||{};return await this.prompt(aA(n,a).user(t))}};var Wt=class extends xr{constructor({model:r,apiKey:n,measureUsage:a}){super({model:r,apiKey:n,measureUsage:a});this.client=new Gi.default({apiKey:n})}measureTokenUsage(r){if(!r)return 0;let n=r.prompt_tokens;return r.completion_tokens*3+n}async chatCompletion(r){try{let n=await this.client.chat.completions.create({model:this.model,messages:r.messages,max_tokens:this.maxTokens}),a=this.measureTokenUsage(n.usage);return{message:n.choices[0]?.message.content,tokensUsed:a}}catch(n){throw n instanceof Gi.default.APIError&&console.error(`OpenAI Prompt failed with error of type ${n.type} and status: ${n.status}:${n.code} - ${n.message}`),n}}};var ki=M(require("@anthropic-ai/sdk"));var Fa=class extends xr{constructor(r){super(r);this.client=new ki.default({apiKey:r.apiKey})}firstTextBlock(r){for(let n of r.content)if(n.type==="text")return n.text}async chatCompletion(r){try{let n=await this.client.messages.create({model:this.model,messages:r.messages.map(({content:o})=>({role:"user",content:o})),max_tokens:this.maxTokens});return{message:this.firstTextBlock(n)}}catch(n){throw n instanceof ki.default.APIError&&console.error(`Anthropic Prompt failed with error ${n.name} and status: ${n.status}`),n}}};var aM="gpt-4o-mini",oM={OpenAI:Wt,Anthropic:Fa,TogetherAI:Wt,AzureOpenAI:Wt,Custom:Wt};function sM(e){for(let t in e)if(e[t].isDefault)return e[t]}async function Pn(e){let t=await sA.configs.getAIConfig(),r=await An();if(!t&&!r)return;t||(t={type:iA.ConfigType.AI,config:{}});let n=await ts(t),a=sM(n.config);if(!a)return;if(!a.apiKey)throw Error("No API key provided for Budibase AI. Please provide an API key.");let o={model:e||a.defaultModel||aM,apiKey:a.apiKey,measureUsage:a.isBudibaseAI===!0},i=oM[a.provider];if(i)return new i(o)}var Cn=require("@budibase/backend-core"),iM=/```(?:\w+)?\n([\s\S]+?)\n```/;async function pA(e){let{prompt:t}=e.request.body,r=await Pn();r||e.throw(500,"AI config not found");let{message:n}=await r.generateCronExpression(t);n?.startsWith("Error generating cron:")?e.throw(400,n):e.body={message:n}}async function cA(e){await Cn.features.isEnabled(uA.FeatureFlag.AI_JS_GENERATION)||e.throw(500,"AI JS generation is disabled");let t=await Pn();t||e.throw(500,"AI config not found"),await Cn.context.ensureSnippetContext();let n=Cn.context.getCurrentContext()?.snippets||[],{prompt:a,bindings:o=[]}=e.request.body,i=(await t.generateJs(a,{bindings:o,snippets:n})).message||"",s=i.match(iM);s&&(i=s[1]),e.body={code:i}}var lA=require("@budibase/types"),dA=M(require("@koa/router")),$i=require("@budibase/backend-core"),Qi=new dA.default;Qi.post("/api/ai/cron",H.requireFeature(lA.Feature.BUDIBASE_AI),$i.auth.builderOrAdmin,pA);Qi.post("/api/ai/js",$i.auth.builderOrAdmin,cA);var fA=Qi;async function gA(e){let t=e.request.body;if(t.name=t.name.trim(),delete t.roles,t._id){let n=await Ft(t._id);t.roles=n.roles,t.scimInfo=n.scimInfo}let r=await Ar(t);e.body={_id:r.id,_rev:r.rev}}async function mA(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 a,o;r&&(a=await cs(t,r)),n&&(o=await ls(t,n)),e.body={added:a,removed:o}}async function yA(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 ds(t,{appsToAdd:r,appsToRemove:n})}async function hA(e){e.body={data:await In()}}async function AA(e){let{groupId:t,rev:r}=e.params;try{await ps(t,r),e.body={message:"Group deleted successfully"}}catch(n){e.throw(n.status,n)}}async function bA(e){try{e.body=await Ft(e.params.groupId)}catch(t){e.throw(t.status,t)}}async function IA(e){let{pageSize:t=10,bookmark:r,emailSearch:n}=e.request.query,a=e.params.groupId,o={limit:t+1},i=await Fn(a,{...o,emailSearch:n,bookmark:r}),s=n?i[t]?.email:i[t]?._id,c=!!s;e.body={users:i.slice(0,t),bookmark:s,hasNextPage:c}}async function SA(e){let{groupId:t,appId:r}=e.params;await fs(t,r),e.body={message:"Group app builder access updated."}}async function wA(e){let{groupId:t,appId:r}=e.params;await gs(t,r),e.body={message:"group app builder access removed."}}var vA=M(require("@koa/router")),Pe=M(require("joi"));var Ge=require("@budibase/types"),ut=require("@budibase/backend-core"),EA=new vA.default;function cM(){return ut.auth.joiValidator.body(Pe.default.object({_id:Pe.default.string().optional(),_rev:Pe.default.string().optional(),color:Pe.default.string().required(),icon:Pe.default.string().required(),name:Pe.default.string().trim().required().max(50),role:Pe.default.string().optional(),users:Pe.default.array().optional(),apps:Pe.default.array().optional(),roles:Pe.default.object().optional(),createdAt:Pe.default.string().optional(),updatedAt:Pe.default.string().optional()}).required())}EA.post("/api/global/groups",ut.auth.adminOnly,H.requireFeature(Ge.Feature.USER_GROUPS),cM(),gA).get("/api/global/groups",H.requireFeature(Ge.Feature.USER_GROUPS),hA).delete("/api/global/groups/:groupId/:rev",H.requireFeature(Ge.Feature.USER_GROUPS),ut.auth.adminOnly,ka("groupId"),AA).get("/api/global/groups/:groupId",H.requireFeature(Ge.Feature.USER_GROUPS),ut.auth.builderOrAdmin,bA).get("/api/global/groups/:groupId/users",H.requireFeature(Ge.Feature.USER_GROUPS),ut.auth.builderOrAdmin,IA).post("/api/global/groups/:groupId/users",ut.auth.adminOnly,H.requireFeature(Ge.Feature.USER_GROUPS),ka("groupId"),mA).post("/api/global/groups/:groupId/apps",ut.auth.builderOrAdmin,H.requireFeature(Ge.Feature.USER_GROUPS),yA).post("/api/global/groups/:groupId/app/:appId/builder",ut.auth.builderOrAdmin,H.requireFeatures(Ge.Feature.USER_GROUPS,Ge.Feature.APP_BUILDERS),SA).delete("/api/global/groups/:groupId/app/:appId/builder",ut.auth.builderOrAdmin,H.requireFeatures(Ge.Feature.USER_GROUPS,Ge.Feature.APP_BUILDERS),wA);var _A=EA;var ji=require("@budibase/types");var Wi=require("@budibase/backend-core");async function xA(e){e.body={encryptionKeyAvailable:st.isEncryptionKeyAvailable()}}async function RA(e){e.body={variables:await st.fetch()}}async function TA(e){let{name:t,production:r,development:n}=e.request.body;await st.update(t,{production:r,development:n});let a=[ji.AppEnvironment.PRODUCTION];r!==n&&a.push(ji.AppEnvironment.DEVELOPMENT),await Wi.events.environmentVariable.created(t,a),e.body={message:`Environment variable "${t}" created.`}}async function OA(e){let{production:t,development:r}=e.request.body,n=e.params.varName;await st.update(n,{production:t,development:r}),e.body={message:`Environment variable "${n}" updated.`}}async function PA(e){let t=e.params.varName;await st.remove(t),await Wi.events.environmentVariable.deleted(t),e.body={message:`Environment variable "${t}" deleted.`}}var Vt=require("@budibase/backend-core"),qA=M(require("@koa/router")),qn=M(require("joi")),UA=new qA.default;function CA(){return Vt.auth.joiValidator.body(qn.default.object({name:qn.default.string().optional(),production:qn.default.string().required(),development:qn.default.string().required()}))}UA.get("/api/env/variables/status",Vt.auth.builderOrAdmin,xA).get("/api/env/variables",Vt.auth.builderOrAdmin,RA).post("/api/env/variables",Vt.auth.builderOrAdmin,CA(),TA).patch("/api/env/variables/:varName",Vt.auth.builderOrAdmin,CA(),OA).delete("/api/env/variables/:varName",Vt.auth.builderOrAdmin,PA);var LA=UA;var Vi=require("@budibase/backend-core");async function DA(e){let t=e.request.body,r=await Et.fetch(t);await Vi.events.auditLog.filtered(t),e.body=r}async function BA(e){let t=e.request.body,{stream:r}=Et.download(t);await Vi.events.auditLog.downloaded(t),e.attachment(`audit-logs-${Date.now()}.log`),e.body=r}async function NA(e){e.body={events:Et.definitions()}}var GA=require("@budibase/types"),Yt=require("@budibase/backend-core"),kA=M(require("@koa/router")),ke=M(require("joi"));function MA(){return Yt.auth.joiValidator.body(ke.default.object({userIds:ke.default.array().items(ke.default.string()).optional(),appIds:ke.default.array().items(ke.default.string()).optional(),events:ke.default.array().items(ke.default.string().valid(...Object.values(GA.Event))).optional(),startDate:ke.default.string().optional().allow(""),endDate:ke.default.string().optional().allow(""),fullSearch:ke.default.string().optional().allow(""),bookmark:ke.default.number()}))}var FA=new kA.default;FA.post("/api/global/auditlogs/search",Yt.auth.adminOnly,MA(),DA).get("/api/global/auditlogs/download",Yt.auth.adminOnly,Yt.middleware.querystringToBody,MA(),BA).get("/api/global/auditlogs/definitions",Yt.auth.adminOnly,NA);var $A=FA;var Yi=require("@budibase/types");var QA=require("@budibase/backend-core");async function Rr(e,t){await er.appExists(t)||e.throw(400,`Provided app ID: ${t} - is invalid.`)}async function jA(e){let t=e.params.appId;await Rr(e,t);let r=e.request.body,n=e.user?._id,a=await Ne.triggerAppBackup(t,Yi.AppBackupTrigger.MANUAL,{name:r.name,createdBy:n});a||e.throw(500,"Unable to start backup."),e.body={backupId:a,message:"Backup triggered - process starting."}}async function WA(e){let t=e.params.appId;await Rr(e,t);let r=e.params.backupId,n=e.request.body.name,a=await Ne.triggerAppRestore(t,r,n,e.user?._id);a||e.throw(500,"Unable to start restore."),await QA.events.backup.appBackupRestored(a.metadata),e.body={restoredId:a?.restoreId,message:"Restore triggered - process starting."}}async function VA(e){let t=e.params.appId;await Rr(e,t);let r=e.params.backupId;await Ne.deleteAppBackup(r),e.body={message:"Backup deleted successfully."}}async function YA(e){let t=e.params.appId;await Rr(e,t);let r=e.request.body;r?.trigger&&(r.trigger=r.trigger.toLowerCase(),Object.values(Yi.AppBackupTrigger).includes(r.trigger)||e.throw(400,"Provided trigger is not a valid option.")),e.body=await Ne.fetchAppBackups(t,{paginate:!0,...r})}async function KA(e){let t=e.params.appId;await Rr(e,t);let r=e.params.backupId,n=e.request.body;e.body=await Ne.updateAppBackup(r,n.name)}async function HA(e){let t=e.params.appId;await Rr(e,t);let r=e.params.backupId,{metadata:n,stream:a}=await Ne.getBackupDownloadStream(r);e.attachment(`backup-${n.timestamp}.tar.gz`),e.body=a}var JA=M(require("@koa/router")),Kt=M(require("joi")),$a=require("@budibase/types"),Tt=require("@budibase/backend-core"),zA=new JA.default;function gM(){return Tt.auth.joiValidator.body(Kt.default.object({trigger:Kt.default.string().valid(...Object.values($a.AppBackupTrigger)),type:Kt.default.string().valid(...Object.values($a.AppBackupType)),startDate:Kt.default.date(),endDate:Kt.default.date(),page:Kt.default.string()}))}zA.post("/api/apps/:appId/backups",Tt.auth.builderOrAdmin,jA).post("/api/apps/:appId/backups/search",Tt.auth.builderOrAdmin,gM(),YA).get("/api/apps/:appId/backups/:backupId/file",Tt.auth.builderOrAdmin,HA).patch("/api/apps/:appId/backups/:backupId",Tt.auth.builderOrAdmin,KA).delete("/api/apps/:appId/backups/:backupId",Tt.auth.builderOrAdmin,VA).post("/api/apps/:appId/backups/:backupId/import",Tt.auth.builderOrAdmin,WA);var XA=zA;var Tb=M(require("@koa/router"));var Qa=require("scim-patch");var eb=require("@budibase/backend-core");function ZA(e,t){let r=e.request.query[t];if(r!==void 0)return+r}var tb=async e=>{let t=ZA(e,"pageSize")??20,r=ZA(e,"startIndex"),n;e.request.query.filter&&(n=ne.user.userFilters(e.request.query.filter));let a=await ve.get({pageSize:t,skip:r,filters:n});e.body={schemas:["urn:ietf:params:scim:api:messages:2.0:ListResponse"],totalResults:a.total,Resources:a.users.map(ne.user.toScimUserResponse),startIndex:(r||0)+1,itemsPerPage:t}},rb=async e=>{let{id:t}=e.params;typeof t!="string"&&e.throw(404);let r=await ve.find(t);e.body=ne.user.toScimUserResponse(r)},nb=async e=>{let t=ne.user.fromScimUser(e.request.body);try{let r=await ve.create(t);e.body=ne.user.toScimUserResponse(r)}catch(r){throw r instanceof eb.EmailUnavailableError&&e.throw(409,"Email already in use"),r}};function mM(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}var ab=async e=>{let t=await ve.find(e.params.id);t||e.throw(404);let r=ne.user.toScimUserResponse(t),n=e.request.body;try{(0,Qa.patchBodyValidation)(n)}catch{}if(mM(n))return Ki(e);let a;try{a=(0,Qa.scimPatch)(r,n.Operations)}catch{}a||e.throw(500);let o=ne.user.fromScimUser(a);await ve.update(o,{allowChangingEmail:!0}),e.body=ne.user.toScimUserResponse(o)},Ki=async e=>{let{id:t}=e.params;typeof t!="string"&&e.throw(404),await ve.remove(t),e.status=204};var Ib=M(bb()),Sb=require("@budibase/shared-core"),ja=require("scim-patch");var Wa=require("scim2-parse-filter");function wb(e,t){for(let r of t.split(","))delete e[r]}var vb=async e=>{let r=(await z.fetch()).filter(o=>o.scimInfo?.isSync).map(ne.group.toScimGroupResponse),{filter:n,excludedAttributes:a}=e.request.query;if(n){let o=(0,Wa.filter)((0,Wa.parse)(n));r=r.filter(o)}a&&r.forEach(o=>{wb(o,a)}),e.body={schemas:["urn:ietf:params:scim:api:messages:2.0:ListResponse"],totalResults:r.length,Resources:r,startIndex:1,itemsPerPage:r.length}},Eb=async e=>{let t=ne.group.fromScimGroup(e.request.body),r=await _r.create(t);e.body=ne.group.toScimGroupResponse(r)},_b=async e=>{let{id:t}=e.params,r=await z.get(t),n=ne.group.toScimGroupResponse(r),{excludedAttributes:a}=e.request.query;a&&wb(n,a),e.body=n},xb=async e=>{let{id:t}=e.params,r=await z.get(t);await z.remove(t,r._rev),e.status=204},Rb=async e=>{let{id:t}=e.params,r=await z.get(t),n=ne.group.toScimGroupResponse(r),a=e.request.body;try{(0,ja.patchBodyValidation)(a)}catch{e.throw(400)}let{true:o,false:i}=(0,Ib.default)(a.Operations,s=>s.path==="members");if(i?.length){let s=(0,ja.scimPatch)(n,i);s||e.throw(500);let c={...ne.group.fromScimGroup(s),_rev:r._rev};await z.save(c)}if(o?.length){let s=[],c=[];for(let{op:d,value:m}of o)switch(d){case"add":case"Add":for(let g of m)s.push(await ve.find(g.value));break;case"remove":case"Remove":for(let g of m)c.push(await ve.find(g.value));break;case"replace":case"Replace":throw new Error("Replacing members is not allowed");default:Sb.utils.unreachable(d)}s.length&&await z.addUsers(t,s.map(d=>d._id)),c.length&&await z.removeUsers(t,c.map(d=>d._id))}e.body=ne.group.toScimGroupResponse(await z.get(t))};var Un=require("@budibase/types"),Ce=new Tb.default({prefix:"/api/global/scim/v2"});Ce.use(Li);Ce.use(Ui);Ce.get("/users",tb);Ce.get("/users/:id",Tn("id"),rb);Ce.post("/users",nb);Ce.patch("/users/:id",Tn("id"),ab);Ce.delete("/users/:id",Tn("id"),Ki);Ce.get("/groups",vb);Ce.post("/groups",H.requireFeature(Un.Feature.USER_GROUPS),Eb);Ce.get("/groups/:id",H.requireFeature(Un.Feature.USER_GROUPS),On("id"),_b);Ce.delete("/groups/:id",H.requireFeature(Un.Feature.USER_GROUPS),On("id"),xb);Ce.patch("/groups/:id",H.requireFeature(Un.Feature.USER_GROUPS),On("id"),Rb);var Ob=Ce;var qb=M(require("@koa/router"));var Hi=require("@budibase/backend-core");async function Pb(e){let{userId:t,appId:r}=e.params,n=await dt.db.getUser(t);if(Hi.users.isGlobalBuilder(n)){e.body={message:"User already admin - no permissions updated."};return}await dt.addAppBuilder(n,r),e.body={message:`User "${n.email}" app builder access updated.`}}async function Cb(e){let{userId:t,appId:r}=e.params,n=await dt.db.getUser(t);if(Hi.users.isGlobalBuilder(n)){e.body={message:"User already admin - no permissions removed."};return}await dt.removeAppBuilder(n,r),e.body={message:`User "${n.email}" app builder access removed.`}}var Ji=require("@budibase/types"),zi=require("@budibase/backend-core"),Ub=new qb.default;Ub.post("/api/global/users/:userId/app/:appId/builder",zi.auth.builderOrAdmin,H.requireFeatures(Ji.Feature.APP_BUILDERS),Pb).delete("/api/global/users/:userId/app/:appId/builder",zi.auth.builderOrAdmin,H.requireFeatures(Ji.Feature.APP_BUILDERS),Cb);var Lb=Ub;var ne={};x(ne,{group:()=>eu,user:()=>Zi});var Zi={};x(Zi,{fromScimUser:()=>jM,toScimUserResponse:()=>FM,userFilters:()=>WM});var Va=require("@budibase/types"),Db=require("scim2-parse-filter"),Bb=require("@budibase/backend-core"),Nb=require("@budibase/shared-core"),{unreachable:kM}=Nb.utils,FM=e=>{let{isSync:t,roles:r,...n}=e.scimInfo||{},a={...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===Va.UserStatus.ACTIVE};return(e.firstName||e.lastName)&&(a.name={formatted:[e.firstName,e.lastName].filter(o=>o).join(" "),familyName:e.lastName,givenName:e.firstName}),a},$M=e=>!!e?.id;function QM(e){if(Bb.utils.validEmail(e.userName))return e.userName;if(e.emails)return e.emails.find(t=>t.primary)?.value||e.emails[0]?.value}var jM=e=>{let t=$M(e)?e:void 0,r=QM(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:kM(e.active)}let a,o;return e.name?.givenName?(a=e.name?.givenName,o=e.name?.familyName):a=e.displayName,{tenantId:"",_id:t?.id,userId:t?.id,email:r,firstName:a,lastName:o,scimInfo:{...e,isSync:!0},roles:{},status:n?Va.UserStatus.ACTIVE:Va.UserStatus.INACTIVE,createdAt:t?.meta.created.getTime(),updatedAt:t?.meta.lastModified.toISOString()}},WM=e=>{let t={equal:{}},r=(0,Db.parse)(e);function n(a){switch(a.op){case"eq":{let o=a.attrPath,i;switch(o){case"emails.value":i="email";break;default:i=`scimInfo.${o}`}t.equal[i]=a.compValue;break}case"and":for(let o of a.filters)n(o);break;default:console.warn("Filter not handled",{filter:a})}}return n(r),t};var eu={};x(eu,{fromScimGroup:()=>KM,toScimGroupResponse:()=>VM});var VM=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}))}),YM=e=>!!e?.id,KM=e=>{let t=YM(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()}};0&&(module.exports={Method,ai,api,auditLogs,automations,backups,branding,constants,environmentVariables,features,groups,init,licensing,logger,mappers,middleware,plugins,publicApi,quotas,scimGroups,scimUsers,sdk,users,utils});
136
+ ${r}`)}var $A=require("@budibase/shared-core");function wi(e,t){return t.map(r=>e[r]).join(" ")}var pr=class{constructor({model:t,apiKey:r,measureUsage:a}){this.model=t,this.apiKey=r,this.measureUsage=a,this.maxTokens=parseInt(process.env.BUDIBASE_AI_MAX_PROMPT_TOKENS||"300")}async prompt(t){typeof t=="string"&&(t=we.user(t));let r=await this.chatCompletion(t);return this.measureUsage&&r.tokensUsed!==void 0&&r.tokensUsed>0&&await Ko(r.tokensUsed),r}async summarizeText(t){return this.prompt(Si(t))}async generateCronExpression(t){return this.prompt(kA(t))}async operation(t,r){let a=this.promptForOperation(t,r);return this.prompt(a)}promptForOperation(t,r){let{operation:a,column:n,columns:o,language:i,categories:s,prompt:c}=t;switch(a){case ct.AIOperationEnum.SUMMARISE_TEXT:return Si(wi(r,o));case ct.AIOperationEnum.CLEAN_DATA:return MA(r[n]);case ct.AIOperationEnum.TRANSLATE:return FA(r[n],i);case ct.AIOperationEnum.CATEGORISE_TEXT:if(!s)throw Error("No categories provided for categorise text operation. Please provide categories.");return GA(wi(r,o),s.split(","));case ct.AIOperationEnum.SENTIMENT_ANALYSIS:return QA(r[n]);case ct.AIOperationEnum.PROMPT:return c;case ct.AIOperationEnum.SEARCH_WEB:return jA(wi(r,o));default:throw $A.utils.unreachable(a)}}async generateJs(t,r){let{bindings:a=[],snippets:n=[]}=r||{};return await this.prompt(WA(a,n).user(t))}};var _t=class extends pr{constructor({model:r,apiKey:a,measureUsage:n}){super({model:r,apiKey:a,measureUsage:n});this.client=new vi.default({apiKey:a})}measureTokenUsage(r){if(!r)return 0;let a=r.prompt_tokens;return r.completion_tokens*3+a}async chatCompletion(r){try{let a=await this.client.chat.completions.create({model:this.model,messages:r.messages,max_tokens:this.maxTokens}),n=this.measureTokenUsage(a.usage);return{message:a.choices[0]?.message.content,tokensUsed:n}}catch(a){throw a instanceof vi.default.APIError&&console.error(`OpenAI Prompt failed with error of type ${a.type} and status: ${a.status}:${a.code} - ${a.message}`),a}}};var Ei=O(require("@anthropic-ai/sdk"));var xn=class extends pr{constructor(r){super(r);this.client=new Ei.default({apiKey:r.apiKey})}firstTextBlock(r){for(let a of r.content)if(a.type==="text")return a.text}async chatCompletion(r){try{let a=await this.client.messages.create({model:this.model,messages:r.messages.map(({content:o})=>({role:"user",content:o})),max_tokens:this.maxTokens});return{message:this.firstTextBlock(a)}}catch(a){throw a instanceof Ei.default.APIError&&console.error(`Anthropic Prompt failed with error ${a.name} and status: ${a.status}`),a}}};var zN="gpt-4o-mini",JN={OpenAI:_t,Anthropic:xn,TogetherAI:_t,AzureOpenAI:_t,Custom:_t};function XN(e){for(let t in e)if(e[t].isDefault)return e[t]}async function ma(e){let t=await VA.configs.getAIConfig(),r=await aa();if(!t&&!r)return;t||(t={type:KA.ConfigType.AI,config:{}});let a=await ko(t),n=XN(a.config);if(!n)return;if(!n.apiKey)throw Error("No API key provided for Budibase AI. Please provide an API key.");let o={model:e||n.defaultModel||zN,apiKey:n.apiKey,measureUsage:n.isBudibaseAI===!0},i=JN[n.provider];if(i)return new i(o)}var ya=require("@budibase/backend-core"),ZN=/```(?:\w+)?\n([\s\S]+?)\n```/;async function HA(e){let{prompt:t}=e.request.body,r=await ma();r||e.throw(500,"AI config not found");let{message:a}=await r.generateCronExpression(t);a?.startsWith("Error generating cron:")?e.throw(400,a):e.body={message:a}}async function zA(e){await ya.features.isEnabled(YA.FeatureFlag.AI_JS_GENERATION)||e.throw(500,"AI JS generation is disabled");let t=await ma();t||e.throw(500,"AI config not found"),await ya.context.ensureSnippetContext();let a=ya.context.getCurrentContext()?.snippets||[],{prompt:n,bindings:o=[]}=e.request.body,i=(await t.generateJs(n,{bindings:o,snippets:a})).message||"",s=i.match(ZN);s&&(i=s[1]),e.body={code:i}}var JA=require("@budibase/types"),XA=O(require("@koa/router")),xi=require("@budibase/backend-core"),_i=new XA.default;_i.post("/api/ai/cron",N.requireFeature(JA.Feature.BUDIBASE_AI),xi.auth.builderOrAdmin,HA);_i.post("/api/ai/js",xi.auth.builderOrAdmin,zA);var ZA=_i;async function eh(e){let t=e.request.body;if(t.name=t.name.trim(),delete t.roles,t._id){let a=await vt(t._id);t.roles=a.roles,t.scimInfo=a.scimInfo}let r=await tr(t);e.body={_id:r.id,_rev:r.rev}}async function th(e){let t=e.params.groupId,r=e.request.body.add,a=e.request.body.remove;(r&&!Array.isArray(r)||a&&!Array.isArray(a))&&e.throw(400,"Must supply a list of users to add or to remove");let n,o;r&&(n=await Ho(t,r)),a&&(o=await zo(t,a)),e.body={added:n,removed:o}}async function rh(e){let t=e.params.groupId,r=e.request.body.add,a=e.request.body.remove;(r&&!Array.isArray(r)||a&&!Array.isArray(a))&&e.throw(400,"Must supply a list of objects, with appId and roleId to add or remove"),e.body=await Jo(t,{appsToAdd:r,appsToRemove:a})}async function ah(e){e.body={data:await oa()}}async function nh(e){let{groupId:t,rev:r}=e.params;try{await Yo(t,r),e.body={message:"Group deleted successfully"}}catch(a){e.throw(a.status,a)}}async function oh(e){try{e.body=await vt(e.params.groupId)}catch(t){e.throw(t.status,t)}}async function sh(e){let{pageSize:t=10,bookmark:r,emailSearch:a}=e.request.query,n=e.params.groupId,o={limit:t+1},i=await Ra(n,{...o,emailSearch:a,bookmark:r}),s=a?i[t]?.email:i[t]?._id,c=!!s;e.body={users:i.slice(0,t),bookmark:s,hasNextPage:c}}async function ih(e){let{groupId:t,appId:r}=e.params;await Xo(t,r),e.body={message:"Group app builder access updated."}}async function uh(e){let{groupId:t,appId:r}=e.params;await Zo(t,r),e.body={message:"group app builder access removed."}}var ph=O(require("@koa/router")),ge=O(require("joi"));var ve=require("@budibase/types"),We=require("@budibase/backend-core"),ch=new ph.default;function rG(){return We.auth.joiValidator.body(ge.default.object({_id:ge.default.string().optional(),_rev:ge.default.string().optional(),color:ge.default.string().required(),icon:ge.default.string().required(),name:ge.default.string().trim().required().max(50),role:ge.default.string().optional(),users:ge.default.array().optional(),apps:ge.default.array().optional(),roles:ge.default.object().optional(),createdAt:ge.default.string().optional(),updatedAt:ge.default.string().optional()}).required())}ch.post("/api/global/groups",We.auth.adminOnly,N.requireFeature(ve.Feature.USER_GROUPS),rG(),eh).get("/api/global/groups",N.requireFeature(ve.Feature.USER_GROUPS),ah).delete("/api/global/groups/:groupId/:rev",N.requireFeature(ve.Feature.USER_GROUPS),We.auth.adminOnly,Rn("groupId"),nh).get("/api/global/groups/:groupId",N.requireFeature(ve.Feature.USER_GROUPS),We.auth.builderOrAdmin,oh).get("/api/global/groups/:groupId/users",N.requireFeature(ve.Feature.USER_GROUPS),We.auth.builderOrAdmin,sh).post("/api/global/groups/:groupId/users",We.auth.adminOnly,N.requireFeature(ve.Feature.USER_GROUPS),Rn("groupId"),th).post("/api/global/groups/:groupId/apps",We.auth.builderOrAdmin,N.requireFeature(ve.Feature.USER_GROUPS),rh).post("/api/global/groups/:groupId/app/:appId/builder",We.auth.builderOrAdmin,N.requireFeatures(ve.Feature.USER_GROUPS,ve.Feature.APP_BUILDERS),ih).delete("/api/global/groups/:groupId/app/:appId/builder",We.auth.builderOrAdmin,N.requireFeatures(ve.Feature.USER_GROUPS,ve.Feature.APP_BUILDERS),uh);var lh=ch;var Ti=require("@budibase/types");var Pi=require("@budibase/backend-core");async function dh(e){e.body={encryptionKeyAvailable:Qe.isEncryptionKeyAvailable()}}async function fh(e){e.body={variables:await Qe.fetch()}}async function gh(e){let{name:t,production:r,development:a}=e.request.body;await Qe.update(t,{production:r,development:a});let n=[Ti.AppEnvironment.PRODUCTION];r!==a&&n.push(Ti.AppEnvironment.DEVELOPMENT),await Pi.events.environmentVariable.created(t,n),e.body={message:`Environment variable "${t}" created.`}}async function mh(e){let{production:t,development:r}=e.request.body,a=e.params.varName;await Qe.update(a,{production:t,development:r}),e.body={message:`Environment variable "${a}" updated.`}}async function yh(e){let t=e.params.varName;await Qe.remove(t),await Pi.events.environmentVariable.deleted(t),e.body={message:`Environment variable "${t}" deleted.`}}var Tt=require("@budibase/backend-core"),hh=O(require("@koa/router")),Aa=O(require("joi")),bh=new hh.default;function Ah(){return Tt.auth.joiValidator.body(Aa.default.object({name:Aa.default.string().optional(),production:Aa.default.string().required(),development:Aa.default.string().required()}))}bh.get("/api/env/variables/status",Tt.auth.builderOrAdmin,dh).get("/api/env/variables",Tt.auth.builderOrAdmin,fh).post("/api/env/variables",Tt.auth.builderOrAdmin,Ah(),gh).patch("/api/env/variables/:varName",Tt.auth.builderOrAdmin,Ah(),mh).delete("/api/env/variables/:varName",Tt.auth.builderOrAdmin,yh);var Ih=bh;var Oi=require("@budibase/backend-core");async function Sh(e){let t=e.request.body,r=await ut.fetch(t);await Oi.events.auditLog.filtered(t),e.body=r}async function wh(e){let t=e.request.body,{stream:r}=ut.download(t);await Oi.events.auditLog.downloaded(t),e.attachment(`audit-logs-${Date.now()}.log`),e.body=r}async function vh(e){e.body={events:ut.definitions()}}var Rh=require("@budibase/types"),Pt=require("@budibase/backend-core"),xh=O(require("@koa/router")),Ee=O(require("joi"));function Eh(){return Pt.auth.joiValidator.body(Ee.default.object({userIds:Ee.default.array().items(Ee.default.string()).optional(),appIds:Ee.default.array().items(Ee.default.string()).optional(),events:Ee.default.array().items(Ee.default.string().valid(...Object.values(Rh.Event))).optional(),startDate:Ee.default.string().optional().allow(""),endDate:Ee.default.string().optional().allow(""),fullSearch:Ee.default.string().optional().allow(""),bookmark:Ee.default.number()}))}var _h=new xh.default;_h.post("/api/global/auditlogs/search",Pt.auth.adminOnly,Eh(),Sh).get("/api/global/auditlogs/download",Pt.auth.adminOnly,Pt.middleware.querystringToBody,Eh(),wh).get("/api/global/auditlogs/definitions",Pt.auth.adminOnly,vh);var Th=_h;var Ci=require("@budibase/types");var Ph=require("@budibase/backend-core");async function cr(e,t){await Nt.appExists(t)||e.throw(400,`Provided app ID: ${t} - is invalid.`)}async function Oh(e){let t=e.params.appId;await cr(e,t);let r=e.request.body,a=e.user?._id,n=await Se.triggerAppBackup(t,Ci.AppBackupTrigger.MANUAL,{name:r.name,createdBy:a});n||e.throw(500,"Unable to start backup."),e.body={backupId:n,message:"Backup triggered - process starting."}}async function Ch(e){let t=e.params.appId;await cr(e,t);let r=e.params.backupId,a=e.request.body.name,n=await Se.triggerAppRestore(t,r,a,e.user?._id);n||e.throw(500,"Unable to start restore."),await Ph.events.backup.appBackupRestored(n.metadata),e.body={restoredId:n?.restoreId,message:"Restore triggered - process starting."}}async function qh(e){let t=e.params.appId;await cr(e,t);let r=e.params.backupId;await Se.deleteAppBackup(r),e.body={message:"Backup deleted successfully."}}async function Uh(e){let t=e.params.appId;await cr(e,t);let r=e.request.body;r?.trigger&&(r.trigger=r.trigger.toLowerCase(),Object.values(Ci.AppBackupTrigger).includes(r.trigger)||e.throw(400,"Provided trigger is not a valid option.")),e.body=await Se.fetchAppBackups(t,{paginate:!0,...r})}async function Lh(e){let t=e.params.appId;await cr(e,t);let r=e.params.backupId,a=e.request.body;e.body=await Se.updateAppBackup(r,a.name)}async function Dh(e){let t=e.params.appId;await cr(e,t);let r=e.params.backupId,{metadata:a,stream:n}=await Se.getBackupDownloadStream(r);e.attachment(`backup-${a.timestamp}.tar.gz`),e.body=n}var Bh=O(require("@koa/router")),Ot=O(require("joi")),_n=require("@budibase/types"),lt=require("@budibase/backend-core"),Nh=new Bh.default;function sG(){return lt.auth.joiValidator.body(Ot.default.object({trigger:Ot.default.string().valid(...Object.values(_n.AppBackupTrigger)),type:Ot.default.string().valid(...Object.values(_n.AppBackupType)),startDate:Ot.default.date(),endDate:Ot.default.date(),page:Ot.default.string()}))}Nh.post("/api/apps/:appId/backups",lt.auth.builderOrAdmin,Oh).post("/api/apps/:appId/backups/search",lt.auth.builderOrAdmin,sG(),Uh).get("/api/apps/:appId/backups/:backupId/file",lt.auth.builderOrAdmin,Dh).patch("/api/apps/:appId/backups/:backupId",lt.auth.builderOrAdmin,Lh).delete("/api/apps/:appId/backups/:backupId",lt.auth.builderOrAdmin,qh).post("/api/apps/:appId/backups/:backupId/import",lt.auth.builderOrAdmin,Ch);var Gh=Nh;var gb=O(require("@koa/router"));var Tn=require("scim-patch");var kh=require("@budibase/backend-core");function Mh(e,t){let r=e.request.query[t];if(r!==void 0)return+r}var Fh=async e=>{let t=Mh(e,"pageSize")??20,r=Mh(e,"startIndex"),a;e.request.query.filter&&(a=Q.user.userFilters(e.request.query.filter));let n=await se.get({pageSize:t,skip:r,filters:a});e.body={schemas:["urn:ietf:params:scim:api:messages:2.0:ListResponse"],totalResults:n.total,Resources:n.users.map(Q.user.toScimUserResponse),startIndex:(r||0)+1,itemsPerPage:t}},Qh=async e=>{let{id:t}=e.params;typeof t!="string"&&e.throw(404);let r=await se.find(t);e.body=Q.user.toScimUserResponse(r)},jh=async e=>{let t=Q.user.fromScimUser(e.request.body);try{let r=await se.create(t);e.body=Q.user.toScimUserResponse(r)}catch(r){throw r instanceof kh.EmailUnavailableError&&e.throw(409,"Email already in use"),r}};function iG(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}var Wh=async e=>{let t=await se.find(e.params.id);t||e.throw(404);let r=Q.user.toScimUserResponse(t),a=e.request.body;try{(0,Tn.patchBodyValidation)(a)}catch{}if(iG(a))return qi(e);let n;try{n=(0,Tn.scimPatch)(r,a.Operations)}catch{}n||e.throw(500);let o=Q.user.fromScimUser(n);await se.update(o,{allowChangingEmail:!0}),e.body=Q.user.toScimUserResponse(o)},qi=async e=>{let{id:t}=e.params;typeof t!="string"&&e.throw(404),await se.remove(t),e.status=204};var ob=O(nb()),sb=require("@budibase/shared-core"),Pn=require("scim-patch");var On=require("scim2-parse-filter");function ib(e,t){for(let r of t.split(","))delete e[r]}var ub=async e=>{let r=(await M.fetch()).filter(o=>o.scimInfo?.isSync).map(Q.group.toScimGroupResponse),{filter:a,excludedAttributes:n}=e.request.query;if(a){let o=(0,On.filter)((0,On.parse)(a));r=r.filter(o)}n&&r.forEach(o=>{ib(o,n)}),e.body={schemas:["urn:ietf:params:scim:api:messages:2.0:ListResponse"],totalResults:r.length,Resources:r,startIndex:1,itemsPerPage:r.length}},pb=async e=>{let t=Q.group.fromScimGroup(e.request.body),r=await ur.create(t);e.body=Q.group.toScimGroupResponse(r)},cb=async e=>{let{id:t}=e.params,r=await M.get(t),a=Q.group.toScimGroupResponse(r),{excludedAttributes:n}=e.request.query;n&&ib(a,n),e.body=a},lb=async e=>{let{id:t}=e.params,r=await M.get(t);await M.remove(t,r._rev),e.status=204},fb=async e=>{let{id:t}=e.params,r=await M.get(t),a=Q.group.toScimGroupResponse(r),n=e.request.body;try{(0,Pn.patchBodyValidation)(n)}catch{e.throw(400)}let{true:o,false:i}=(0,ob.default)(n.Operations,s=>s.path==="members");if(i?.length){let s=(0,Pn.scimPatch)(a,i);s||e.throw(500);let c={...Q.group.fromScimGroup(s),_rev:r._rev};await M.save(c)}if(o?.length){let s=[],c=[];for(let{op:f,value:m}of o)switch(f){case"add":case"Add":for(let g of m)s.push(await se.find(g.value));break;case"remove":case"Remove":for(let g of m)c.push(await se.find(g.value));break;case"replace":case"Replace":throw new Error("Replacing members is not allowed");default:sb.utils.unreachable(f)}s.length&&await M.addUsers(t,s.map(f=>f._id)),c.length&&await M.removeUsers(t,c.map(f=>f._id))}e.body=Q.group.toScimGroupResponse(await M.get(t))};var ha=require("@budibase/types"),me=new gb.default({prefix:"/api/global/scim/v2"});me.use(hi);me.use(Ai);me.get("/users",Fh);me.get("/users/:id",fa("id"),Qh);me.post("/users",jh);me.patch("/users/:id",fa("id"),Wh);me.delete("/users/:id",fa("id"),qi);me.get("/groups",ub);me.post("/groups",N.requireFeature(ha.Feature.USER_GROUPS),pb);me.get("/groups/:id",N.requireFeature(ha.Feature.USER_GROUPS),ga("id"),cb);me.delete("/groups/:id",N.requireFeature(ha.Feature.USER_GROUPS),ga("id"),lb);me.patch("/groups/:id",N.requireFeature(ha.Feature.USER_GROUPS),ga("id"),fb);var mb=me;var hb=O(require("@koa/router"));var Ui=require("@budibase/backend-core");async function yb(e){let{userId:t,appId:r}=e.params,a=await Ye.db.getUser(t);if(Ui.users.isGlobalBuilder(a)){e.body={message:"User already admin - no permissions updated."};return}await Ye.addAppBuilder(a,r),e.body={message:`User "${a.email}" app builder access updated.`}}async function Ab(e){let{userId:t,appId:r}=e.params,a=await Ye.db.getUser(t);if(Ui.users.isGlobalBuilder(a)){e.body={message:"User already admin - no permissions removed."};return}await Ye.removeAppBuilder(a,r),e.body={message:`User "${a.email}" app builder access removed.`}}var Li=require("@budibase/types"),Di=require("@budibase/backend-core"),bb=new hb.default;bb.post("/api/global/users/:userId/app/:appId/builder",Di.auth.builderOrAdmin,N.requireFeatures(Li.Feature.APP_BUILDERS),yb).delete("/api/global/users/:userId/app/:appId/builder",Di.auth.builderOrAdmin,N.requireFeatures(Li.Feature.APP_BUILDERS),Ab);var Ib=bb;var Q={};S(Q,{group:()=>Gi,user:()=>Ni});var Ni={};S(Ni,{fromScimUser:()=>BG,toScimUserResponse:()=>UG,userFilters:()=>NG});var Cn=require("@budibase/types"),Sb=require("scim2-parse-filter"),wb=require("@budibase/backend-core"),vb=require("@budibase/shared-core"),{unreachable:qG}=vb.utils,UG=e=>{let{isSync:t,roles:r,...a}=e.scimInfo||{},n={...a,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===Cn.UserStatus.ACTIVE};return(e.firstName||e.lastName)&&(n.name={formatted:[e.firstName,e.lastName].filter(o=>o).join(" "),familyName:e.lastName,givenName:e.firstName}),n},LG=e=>!!e?.id;function DG(e){if(wb.utils.validEmail(e.userName))return e.userName;if(e.emails)return e.emails.find(t=>t.primary)?.value||e.emails[0]?.value}var BG=e=>{let t=LG(e)?e:void 0,r=DG(e);if(!r)throw new Error("Email is required");let a;switch(e.active){case"True":case"true":case!0:a=!0;break;case"False":case"false":case!1:a=!1;break;default:qG(e.active)}let n,o;return e.name?.givenName?(n=e.name?.givenName,o=e.name?.familyName):n=e.displayName,{tenantId:"",_id:t?.id,userId:t?.id,email:r,firstName:n,lastName:o,scimInfo:{...e,isSync:!0},roles:{},status:a?Cn.UserStatus.ACTIVE:Cn.UserStatus.INACTIVE,createdAt:t?.meta.created.getTime(),updatedAt:t?.meta.lastModified.toISOString()}},NG=e=>{let t={equal:{}},r=(0,Sb.parse)(e);function a(n){switch(n.op){case"eq":{let o=n.attrPath,i;switch(o){case"emails.value":i="email";break;default:i=`scimInfo.${o}`}t.equal[i]=n.compValue;break}case"and":for(let o of n.filters)a(o);break;default:console.warn("Filter not handled",{filter:n})}}return a(r),t};var Gi={};S(Gi,{fromScimGroup:()=>kG,toScimGroupResponse:()=>GG});var GG=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}))}),MG=e=>!!e?.id,kG=e=>{let t=MG(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()}};0&&(module.exports={Method,ai,api,auditLogs,automations,backups,branding,constants,environmentVariables,features,groups,init,licensing,logger,mappers,middleware,plugins,publicApi,quotas,scimGroups,scimUsers,sdk,users,utils});
@@ -1,3 +1,3 @@
1
1
  import { BBRequest } from "@budibase/types";
2
- export declare function logRequest(request: BBRequest<any>): Promise<string>;
3
- export declare function logResponse(logId: string, response: any): Promise<void>;
2
+ export declare function logRequest(request: BBRequest<any>): Promise<void>;
3
+ export declare function logResponse(response: any): Promise<void>;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "dist"
5
5
  ],
6
6
  "license": "UNLICENSED",
7
- "version": "3.7.0",
7
+ "version": "3.7.1",
8
8
  "description": "Budibase Pro (Backend)",
9
9
  "main": "dist/index.js",
10
10
  "types": "dist/index.d.ts",
@@ -72,5 +72,5 @@
72
72
  }
73
73
  }
74
74
  },
75
- "gitHead": "701aef170adfb9552bb88b97a0231e31e6054f64"
75
+ "gitHead": "7611d1fe05130ef78b8c0e5ba6650454bd1d32d8"
76
76
  }