@budibase/cli 3.41.0 → 3.41.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 +3 -3
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -4412,7 +4412,7 @@ $1`)};aae.parseAttributes=s(function(e){return Object.keys(e).map(function(r){va
|
|
|
4412
4412
|
Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Cras ultricies ligula sed magna dictum porta. Donec sollicitudin molestie malesuada. Pellentesque in ipsum id orci porta dapibus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.`;SKn.exports=nFa});var EPt=y((RKn,CKn)=>{"use strict";var th=Kh(),UQ=oae(),Mi=CKn.exports,iFa=IKn();Mi.append=function(t,e){return typeof t=="string"&&typeof e=="string"?t+e:t};Mi.camelcase=function(t){return typeof t!="string"?"":UQ.changecase(t,function(e){return e.toUpperCase()})};Mi.capitalize=function(t){return typeof t!="string"?"":t.charAt(0).toUpperCase()+t.slice(1)};Mi.capitalizeAll=function(t){if(typeof t!="string")return"";if(th.isString(t))return t.replace(/\w\S*/g,function(e){return Mi.capitalize(e)})};Mi.center=function(t,e){if(typeof t!="string")return"";for(var r="",n=0;n<e;)r+=" ",n++;return r+t+r};Mi.chop=function(t){return typeof t!="string"?"":UQ.chop(t)};Mi.dashcase=function(t){return typeof t!="string"?"":UQ.changecase(t,function(e){return"-"+e})};Mi.dotcase=function(t){return typeof t!="string"?"":UQ.changecase(t,function(e){return"."+e})};Mi.downcase=function(){return Mi.lowercase.apply(this,arguments)};Mi.ellipsis=function(t,e){if(th.isString(t))return t.length<=e?t:Mi.truncate(t,e)+"\u2026"};Mi.hyphenate=function(t){return typeof t!="string"?"":t.split(" ").join("-")};Mi.isString=function(t){return typeof t=="string"};Mi.lowercase=function(t){return th.isObject(t)&&t.fn?t.fn(this).toLowerCase():typeof t!="string"?"":t.toLowerCase()};Mi.occurrences=function(t,e){if(typeof t!="string")return"";for(var r=e.length,n=0,i=0;(n=t.indexOf(e,n))>-1;)i++,n+=r;return i};Mi.pascalcase=function(t){return typeof t!="string"?"":(t=UQ.changecase(t,function(e){return e.toUpperCase()}),t.charAt(0).toUpperCase()+t.slice(1))};Mi.pathcase=function(t){return typeof t!="string"?"":UQ.changecase(t,function(e){return"/"+e})};Mi.plusify=function(t,e){return typeof t!="string"?"":(th.isString(e)||(e=" "),t.split(e).join("+"))};Mi.prepend=function(t,e){return typeof t=="string"&&typeof e=="string"?e+t:t};Mi.raw=function(t){var e=t.fn(),r=th.options(this,t);if(r.escape!==!1)for(var n=0;(n=e.indexOf("{{",n))!==-1;)e[n-1]!=="\\"&&(e=e.slice(0,n)+"\\"+e.slice(n)),n+=3;return e};Mi.remove=function(t,e){return typeof t!="string"?"":th.isString(e)?t.split(e).join(""):t};Mi.removeFirst=function(t,e){return typeof t!="string"?"":th.isString(e)?t.replace(e,""):t};Mi.replace=function(t,e,r){return typeof t!="string"?"":th.isString(e)?(th.isString(r)||(r=""),t.split(e).join(r)):t};Mi.replaceFirst=function(t,e,r){return typeof t!="string"?"":th.isString(e)?(th.isString(r)||(r=""),t.replace(e,r)):t};Mi.reverse=d5().reverse;Mi.sentence=function(t){return typeof t!="string"?"":t.replace(/((?:\S[^\.\?\!]*)[\.\?\!]*)/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})};Mi.snakecase=function(t){return typeof t!="string"?"":UQ.changecase(t,function(e){return"_"+e})};Mi.split=function(t,e){return typeof t!="string"?"":(th.isString(e)||(e=","),t.split(e))};Mi.startsWith=function(t,e,r){var n=[].slice.call(arguments);return r=n.pop(),th.isString(e)&&e.indexOf(t)===0?r.fn(this):typeof r.inverse=="function"?r.inverse(this):""};Mi.titleize=function(t){if(typeof t!="string")return"";for(var e=t.replace(/[- _]+/g," "),r=e.split(" "),n=r.length,i=[],o=0;n--;){var a=r[o++];i.push(RKn.capitalize(a))}return i.join(" ")};Mi.trim=function(t){return typeof t=="string"?t.trim():""};Mi.trimLeft=function(t){if(th.isString(t))return t.replace(/^\s+/,"")};Mi.trimRight=function(t){if(th.isString(t))return t.replace(/\s+$/,"")};Mi.truncate=function(t,e,r){if(th.isString(t))return typeof r!="string"&&(r=""),t.length>e?t.slice(0,e-r.length)+r:t};Mi.truncateWords=function(t,e,r){if(th.isString(t)&&!isNaN(e)){typeof r!="string"&&(r="\u2026");var n=Number(e),i=t.split(/[ \t]/);if(n>=i.length)return t;i=i.slice(0,n);var o=i.join(" ").trim();return o+r}};Mi.upcase=function(){return Mi.uppercase.apply(this,arguments)};Mi.uppercase=function(t){return th.isObject(t)&&t.fn?t.fn(this).toUpperCase():typeof t!="string"?"":t.toUpperCase()};Mi.lorem=function(t){return(isNaN(t)||t<1||!t)&&(t=11),iFa.substring(0,t)}});var TPt=y((KGc,bKn)=>{"use strict";var yPt=require("url"),hae=Kh(),sFa=require("querystring"),FQ=bKn.exports;FQ.encodeURI=function(t){if(hae.isString(t))return encodeURIComponent(t)};FQ.escape=function(t){if(hae.isString(t))return sFa.escape(t)};FQ.decodeURI=function(t){if(hae.isString(t))return decodeURIComponent(t)};FQ.urlResolve=function(t,e){return yPt.resolve(t,e)};FQ.urlParse=function(t){return yPt.parse(t)};FQ.stripQuerystring=function(t){if(hae.isString(t))return t.split("?")[0]};FQ.stripProtocol=function(t){if(hae.isString(t)){var e=yPt.parse(t);return e.protocol="",e.format()}}});function pae(){return wMe>NMe.length-16&&(wKn.default.randomFillSync(NMe),wMe=0),NMe.slice(wMe,wMe+=16)}var wKn,NMe,wMe,SPt=ie(()=>{"use strict";wKn=ge(require("crypto")),NMe=new Uint8Array(256),wMe=NMe.length;s(pae,"rng")});var NKn,OKn=ie(()=>{"use strict";NKn=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function oFa(t){return typeof t=="string"&&NKn.test(t)}var Bk,gae=ie(()=>{"use strict";OKn();s(oFa,"validate");Bk=oFa});function QQ(t,e=0){return Xh[t[e+0]]+Xh[t[e+1]]+Xh[t[e+2]]+Xh[t[e+3]]+"-"+Xh[t[e+4]]+Xh[t[e+5]]+"-"+Xh[t[e+6]]+Xh[t[e+7]]+"-"+Xh[t[e+8]]+Xh[t[e+9]]+"-"+Xh[t[e+10]]+Xh[t[e+11]]+Xh[t[e+12]]+Xh[t[e+13]]+Xh[t[e+14]]+Xh[t[e+15]]}function aFa(t,e=0){let r=QQ(t,e);if(!Bk(r))throw TypeError("Stringified UUID is invalid");return r}var Xh,xKn,mae=ie(()=>{"use strict";gae();Xh=[];for(let t=0;t<256;++t)Xh.push((t+256).toString(16).slice(1));s(QQ,"unsafeStringify");s(aFa,"stringify");xKn=aFa});function uFa(t,e,r){let n=e&&r||0,i=e||new Array(16);t=t||{};let o=t.node||vKn,a=t.clockseq!==void 0?t.clockseq:IPt;if(o==null||a==null){let m=t.random||(t.rng||pae)();o==null&&(o=vKn=[m[0]|1,m[1],m[2],m[3],m[4],m[5]]),a==null&&(a=IPt=(m[6]<<8|m[7])&16383)}let u=t.msecs!==void 0?t.msecs:Date.now(),c=t.nsecs!==void 0?t.nsecs:CPt+1,l=u-RPt+(c-CPt)/1e4;if(l<0&&t.clockseq===void 0&&(a=a+1&16383),(l<0||u>RPt)&&t.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");RPt=u,CPt=c,IPt=a,u+=122192928e5;let f=((u&268435455)*1e4+c)%4294967296;i[n++]=f>>>24&255,i[n++]=f>>>16&255,i[n++]=f>>>8&255,i[n++]=f&255;let d=u/4294967296*1e4&268435455;i[n++]=d>>>8&255,i[n++]=d&255,i[n++]=d>>>24&15|16,i[n++]=d>>>16&255,i[n++]=a>>>8|128,i[n++]=a&255;for(let m=0;m<6;++m)i[n+m]=o[m];return e||QQ(i)}var vKn,IPt,RPt,CPt,DKn,BKn=ie(()=>{"use strict";SPt();mae();RPt=0,CPt=0;s(uFa,"v1");DKn=uFa});function cFa(t){if(!Bk(t))throw TypeError("Invalid UUID");let e,r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}var OMe,bPt=ie(()=>{"use strict";gae();s(cFa,"parse");OMe=cFa});function lFa(t){t=unescape(encodeURIComponent(t));let e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e}function Aae(t,e,r){function n(i,o,a,u){var c;if(typeof i=="string"&&(i=lFa(i)),typeof o=="string"&&(o=OMe(o)),((c=o)===null||c===void 0?void 0:c.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+i.length);if(l.set(o),l.set(i,o.length),l=r(l),l[6]=l[6]&15|e,l[8]=l[8]&63|128,a){u=u||0;for(let f=0;f<16;++f)a[u+f]=l[f];return a}return QQ(l)}s(n,"generateUUID");try{n.name=t}catch{}return n.DNS=fFa,n.URL=dFa,n}var fFa,dFa,wPt=ie(()=>{"use strict";mae();bPt();s(lFa,"stringToBytes");fFa="6ba7b810-9dad-11d1-80b4-00c04fd430c8",dFa="6ba7b811-9dad-11d1-80b4-00c04fd430c8";s(Aae,"v35")});function hFa(t){return Array.isArray(t)?t=Buffer.from(t):typeof t=="string"&&(t=Buffer.from(t,"utf8")),kKn.default.createHash("md5").update(t).digest()}var kKn,PKn,LKn=ie(()=>{"use strict";kKn=ge(require("crypto"));s(hFa,"md5");PKn=hFa});var pFa,MKn,UKn=ie(()=>{"use strict";wPt();LKn();pFa=Aae("v3",48,PKn),MKn=pFa});var FKn,NPt,QKn=ie(()=>{"use strict";FKn=ge(require("crypto")),NPt={randomUUID:FKn.default.randomUUID}});function gFa(t,e,r){if(NPt.randomUUID&&!e&&!t)return NPt.randomUUID();t=t||{};let n=t.random||(t.rng||pae)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){r=r||0;for(let i=0;i<16;++i)e[r+i]=n[i];return e}return QQ(n)}var qKn,GKn=ie(()=>{"use strict";QKn();SPt();mae();s(gFa,"v4");qKn=gFa});function mFa(t){return Array.isArray(t)?t=Buffer.from(t):typeof t=="string"&&(t=Buffer.from(t,"utf8")),jKn.default.createHash("sha1").update(t).digest()}var jKn,VKn,HKn=ie(()=>{"use strict";jKn=ge(require("crypto"));s(mFa,"sha1");VKn=mFa});var AFa,YKn,WKn=ie(()=>{"use strict";wPt();HKn();AFa=Aae("v5",80,VKn),YKn=AFa});var zKn,$Kn=ie(()=>{"use strict";zKn="00000000-0000-0000-0000-000000000000"});function _Fa(t){if(!Bk(t))throw TypeError("Invalid UUID");return parseInt(t.slice(14,15),16)}var KKn,JKn=ie(()=>{"use strict";gae();s(_Fa,"version");KKn=_Fa});var XKn={};Ui(XKn,{NIL:()=>zKn,parse:()=>OMe,stringify:()=>xKn,v1:()=>DKn,v3:()=>MKn,v4:()=>qKn,v5:()=>YKn,validate:()=>Bk,version:()=>KKn});var ZKn=ie(()=>{"use strict";BKn();UKn();GKn();WKn();$Kn();JKn();gae();mae();bPt()});var OPt=y((Y4c,e7n)=>{"use strict";var EFa=(ZKn(),on(XKn)),yFa=e7n.exports;yFa.uuid=function(){return EFa.v4()}});var r7n=y((W4c,t7n)=>{"use strict";t7n.exports={array:d5(),code:ozn(),collection:Tzn(),comparison:Kkt(),html:Qzn(),i18n:Gzn(),inflection:Hzn(),match:nKn(),math:mPt(),misc:oKn(),number:APt(),object:gMe(),path:EKn(),regex:_Pt(),string:EPt(),url:TPt(),uuid:OPt()}});var n7n=y((z4c,m5)=>{"use strict";var _ae=r7n();m5.exports=s(function(e,r){typeof e=="string"?e=[e]:Array.isArray(e)||(r=e,e=null),r=r||{};var n=r.handlebars||r.hbs||rae();if(m5.exports.handlebars=n,e)e.forEach(function(i){n.registerHelper(_ae[i])});else for(let i in _ae){let o=_ae[i];n.registerHelper(o)}return n.helpers},"helpers");for(let t in _ae){let e=_ae[t];m5.exports[t]=function(r){r=r||{};var n=r.handlebars||r.hbs||rae();return m5.exports.handlebars=n,n.registerHelper(e),e}}m5.exports.utils=oae()});var i7n=y((xPt,vPt)=>{"use strict";(function(t,e){typeof xPt=="object"&&typeof vPt<"u"?vPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_duration=e()})(xPt,(function(){"use strict";var t,e,r=1e3,n=6e4,i=36e5,o=864e5,a=/\[([^\]]+)]|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,u=31536e6,c=2628e6,l=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,f={years:u,months:c,days:o,hours:i,minutes:n,seconds:r,milliseconds:1,weeks:6048e5},d=s(function(L){return L instanceof B},"c"),m=s(function(L,x,V){return new B(L,V,x.$l)},"f"),A=s(function(L){return e.p(L)+"s"},"m"),T=s(function(L){return L<0},"l"),S=s(function(L){return T(L)?Math.ceil(L):Math.floor(L)},"$"),b=s(function(L){return Math.abs(L)},"y"),C=s(function(L,x){return L?T(L)?{negative:!0,format:""+b(L)+x}:{negative:!1,format:""+L+x}:{negative:!1,format:""}},"v"),B=(function(){function L(V,Y,j){var $=this;if(this.$d={},this.$l=j,V===void 0&&(this.$ms=0,this.parseFromMilliseconds()),Y)return m(V*f[A(Y)],this);if(typeof V=="number")return this.$ms=V,this.parseFromMilliseconds(),this;if(typeof V=="object")return Object.keys(V).forEach((function(Re){$.$d[A(Re)]=V[Re]})),this.calMilliseconds(),this;if(typeof V=="string"){var ne=V.match(l);if(ne){var ee=ne.slice(2).map((function(Re){return Re!=null?Number(Re):0}));return this.$d.years=ee[0],this.$d.months=ee[1],this.$d.weeks=ee[2],this.$d.days=ee[3],this.$d.hours=ee[4],this.$d.minutes=ee[5],this.$d.seconds=ee[6],this.calMilliseconds(),this}}return this}s(L,"l");var x=L.prototype;return x.calMilliseconds=function(){var V=this;this.$ms=Object.keys(this.$d).reduce((function(Y,j){return Y+(V.$d[j]||0)*f[j]}),0)},x.parseFromMilliseconds=function(){var V=this.$ms;this.$d.years=S(V/u),V%=u,this.$d.months=S(V/c),V%=c,this.$d.days=S(V/o),V%=o,this.$d.hours=S(V/i),V%=i,this.$d.minutes=S(V/n),V%=n,this.$d.seconds=S(V/r),V%=r,this.$d.milliseconds=V},x.toISOString=function(){var V=C(this.$d.years,"Y"),Y=C(this.$d.months,"M"),j=+this.$d.days||0;this.$d.weeks&&(j+=7*this.$d.weeks);var $=C(j,"D"),ne=C(this.$d.hours,"H"),ee=C(this.$d.minutes,"M"),Re=this.$d.seconds||0;this.$d.milliseconds&&(Re+=this.$d.milliseconds/1e3,Re=Math.round(1e3*Re)/1e3);var M=C(Re,"S"),H=V.negative||Y.negative||$.negative||ne.negative||ee.negative||M.negative,K=ne.format||ee.format||M.format?"T":"",Q=(H?"-":"")+"P"+V.format+Y.format+$.format+K+ne.format+ee.format+M.format;return Q==="P"||Q==="-P"?"P0D":Q},x.toJSON=function(){return this.toISOString()},x.format=function(V){var Y=V||"YYYY-MM-DDTHH:mm:ss",j={Y:this.$d.years,YY:e.s(this.$d.years,2,"0"),YYYY:e.s(this.$d.years,4,"0"),M:this.$d.months,MM:e.s(this.$d.months,2,"0"),D:this.$d.days,DD:e.s(this.$d.days,2,"0"),H:this.$d.hours,HH:e.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:e.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:e.s(this.$d.seconds,2,"0"),SSS:e.s(this.$d.milliseconds,3,"0")};return Y.replace(a,(function($,ne){return ne||String(j[$])}))},x.as=function(V){return this.$ms/f[A(V)]},x.get=function(V){var Y=this.$ms,j=A(V);return j==="milliseconds"?Y%=1e3:Y=j==="weeks"?S(Y/f[j]):this.$d[j],Y||0},x.add=function(V,Y,j){var $;return $=Y?V*f[A(Y)]:d(V)?V.$ms:m(V,this).$ms,m(this.$ms+$*(j?-1:1),this)},x.subtract=function(V,Y){return this.add(V,Y,!0)},x.locale=function(V){var Y=this.clone();return Y.$l=V,Y},x.clone=function(){return m(this.$ms,this)},x.humanize=function(V){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!V)},x.valueOf=function(){return this.asMilliseconds()},x.milliseconds=function(){return this.get("milliseconds")},x.asMilliseconds=function(){return this.as("milliseconds")},x.seconds=function(){return this.get("seconds")},x.asSeconds=function(){return this.as("seconds")},x.minutes=function(){return this.get("minutes")},x.asMinutes=function(){return this.as("minutes")},x.hours=function(){return this.get("hours")},x.asHours=function(){return this.as("hours")},x.days=function(){return this.get("days")},x.asDays=function(){return this.as("days")},x.weeks=function(){return this.get("weeks")},x.asWeeks=function(){return this.as("weeks")},x.months=function(){return this.get("months")},x.asMonths=function(){return this.as("months")},x.years=function(){return this.get("years")},x.asYears=function(){return this.as("years")},L})(),k=s(function(L,x,V){return L.add(x.years()*V,"y").add(x.months()*V,"M").add(x.days()*V,"d").add(x.hours()*V,"h").add(x.minutes()*V,"m").add(x.seconds()*V,"s").add(x.milliseconds()*V,"ms")},"p");return function(L,x,V){t=V,e=V().$utils(),V.duration=function($,ne){var ee=V.locale();return m($,{$l:ee},ne)},V.isDuration=d;var Y=x.prototype.add,j=x.prototype.subtract;x.prototype.add=function($,ne){return d($)?k(this,$,1):Y.bind(this)($,ne)},x.prototype.subtract=function($,ne){return d($)?k(this,$,-1):j.bind(this)($,ne)}}}))});var s7n=y((DPt,BPt)=>{"use strict";(function(t,e){typeof DPt=="object"&&typeof BPt<"u"?BPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(DPt,(function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var o=this,a=this.$locale();if(!this.isValid())return n.bind(this)(i);var u=this.$utils(),c=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(l){switch(l){case"Q":return Math.ceil((o.$M+1)/3);case"Do":return a.ordinal(o.$D);case"gggg":return o.weekYear();case"GGGG":return o.isoWeekYear();case"wo":return a.ordinal(o.week(),"W");case"w":case"ww":return u.s(o.week(),l==="w"?1:2,"0");case"W":case"WW":return u.s(o.isoWeek(),l==="W"?1:2,"0");case"k":case"kk":return u.s(String(o.$H===0?24:o.$H),l==="k"?1:2,"0");case"X":return Math.floor(o.$d.getTime()/1e3);case"x":return o.$d.getTime();case"z":return"["+o.offsetName()+"]";case"zzz":return"["+o.offsetName("long")+"]";default:return l}}));return n.bind(this)(c)}}}))});var o7n=y((kPt,PPt)=>{"use strict";(function(t,e){typeof kPt=="object"&&typeof PPt<"u"?PPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(kPt,(function(){"use strict";var t="day";return function(e,r,n){var i=s(function(u){return u.add(4-u.isoWeekday(),t)},"a"),o=r.prototype;o.isoWeekYear=function(){return i(this).year()},o.isoWeek=function(u){if(!this.$utils().u(u))return this.add(7*(u-this.isoWeek()),t);var c,l,f,d,m=i(this),A=(c=this.isoWeekYear(),l=this.$u,f=(l?n.utc:n)().year(c).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return m.diff(A,"week")+1},o.isoWeekday=function(u){return this.$utils().u(u)?this.day()||7:this.day(this.day()%7?u:u-7)};var a=o.startOf;o.startOf=function(u,c){var l=this.$utils(),f=!!l.u(c)||c;return l.p(u)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(u,c)}}}))});var a7n=y((LPt,MPt)=>{"use strict";(function(t,e){typeof LPt=="object"&&typeof MPt<"u"?MPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_weekYear=e()})(LPt,(function(){"use strict";return function(t,e){e.prototype.weekYear=function(){var r=this.month(),n=this.week(),i=this.year();return n===1&&r===11?i+1:r===0&&n>=52?i-1:i}}}))});var u7n=y((UPt,FPt)=>{"use strict";(function(t,e){typeof UPt=="object"&&typeof FPt<"u"?FPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_weekOfYear=e()})(UPt,(function(){"use strict";var t="week",e="year";return function(r,n,i){var o=n.prototype;o.week=function(a){if(a===void 0&&(a=null),a!==null)return this.add(7*(a-this.week()),"day");var u=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=i(this).startOf(e).add(1,e).date(u),l=i(this).endOf(t);if(c.isBefore(l))return 1}var f=i(this).startOf(e).date(u).startOf(t).subtract(1,"millisecond"),d=this.diff(f,t,!0);return d<0?i(this).startOf("week").week():Math.ceil(d)},o.weeks=function(a){return a===void 0&&(a=null),this.week(a)}}}))});var c7n=y((QPt,qPt)=>{"use strict";(function(t,e){typeof QPt=="object"&&typeof qPt<"u"?qPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_relativeTime=e()})(QPt,(function(){"use strict";return function(t,e,r){t=t||{};var n=e.prototype,i={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function o(u,c,l,f){return n.fromToBase(u,c,l,f)}s(o,"i"),r.en.relativeTime=i,n.fromToBase=function(u,c,l,f,d){for(var m,A,T,S=l.$locale().relativeTime||i,b=t.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],C=b.length,B=0;B<C;B+=1){var k=b[B];k.d&&(m=f?r(u).diff(l,k.d,!0):l.diff(u,k.d,!0));var L=(t.rounding||Math.round)(Math.abs(m));if(T=m>0,L<=k.r||!k.r){L<=1&&B>0&&(k=b[B-1]);var x=S[k.l];d&&(L=d(""+L)),A=typeof x=="string"?x.replace("%d",L):x(L,c,k.l,T);break}}if(c)return A;var V=T?S.future:S.past;return typeof V=="function"?V(A):V.replace("%s",A)},n.to=function(u,c){return o(u,c,this,!0)},n.from=function(u,c){return o(u,c,this)};var a=s(function(u){return u.$u?r.utc():r()},"d");n.toNow=function(u){return this.to(a(this),u)},n.fromNow=function(u){return this.from(a(this),u)}}}))});var l7n=y((GPt,jPt)=>{"use strict";(function(t,e){typeof GPt=="object"&&typeof jPt<"u"?jPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_utc=e()})(GPt,(function(){"use strict";var t="minute",e=/[+-]\d\d(?::?\d\d)?/g,r=/([+-]|\d\d)/g;return function(n,i,o){var a=i.prototype;o.utc=function(A){var T={date:A,utc:!0,args:arguments};return new i(T)},a.utc=function(A){var T=o(this.toDate(),{locale:this.$L,utc:!0});return A?T.add(this.utcOffset(),t):T},a.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var u=a.parse;a.parse=function(A){A.utc&&(this.$u=!0),this.$utils().u(A.$offset)||(this.$offset=A.$offset),u.call(this,A)};var c=a.init;a.init=function(){if(this.$u){var A=this.$d;this.$y=A.getUTCFullYear(),this.$M=A.getUTCMonth(),this.$D=A.getUTCDate(),this.$W=A.getUTCDay(),this.$H=A.getUTCHours(),this.$m=A.getUTCMinutes(),this.$s=A.getUTCSeconds(),this.$ms=A.getUTCMilliseconds()}else c.call(this)};var l=a.utcOffset;a.utcOffset=function(A,T){var S=this.$utils().u;if(S(A))return this.$u?0:S(this.$offset)?l.call(this):this.$offset;if(typeof A=="string"&&(A=(function(k){k===void 0&&(k="");var L=k.match(e);if(!L)return null;var x=(""+L[0]).match(r)||["-",0,0],V=x[0],Y=60*+x[1]+ +x[2];return Y===0?0:V==="+"?Y:-Y})(A),A===null))return this;var b=Math.abs(A)<=16?60*A:A;if(b===0)return this.utc(T);var C=this.clone();if(T)return C.$offset=b,C.$u=!1,C;var B=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(C=this.local().add(b+B,t)).$offset=b,C.$x.$localOffset=B,C};var f=a.format;a.format=function(A){var T=A||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return f.call(this,T)},a.valueOf=function(){var A=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*A},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var d=a.toDate;a.toDate=function(A){return A==="s"&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():d.call(this)};var m=a.diff;a.diff=function(A,T,S){if(A&&this.$u===A.$u)return m.call(this,A,T,S);var b=this.local(),C=o(A).local();return m.call(b,C,T,S)}}}))});var f7n=y((VPt,HPt)=>{"use strict";(function(t,e){typeof VPt=="object"&&typeof HPt<"u"?HPt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_timezone=e()})(VPt,(function(){"use strict";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(r,n,i){var o,a=s(function(f,d,m){m===void 0&&(m={});var A=new Date(f),T=(function(S,b){b===void 0&&(b={});var C=b.timeZoneName||"short",B=S+"|"+C,k=e[B];return k||(k=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:S,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:C}),e[B]=k),k})(d,m);return T.formatToParts(A)},"a"),u=s(function(f,d){for(var m=a(f,d),A=[],T=0;T<m.length;T+=1){var S=m[T],b=S.type,C=S.value,B=t[b];B>=0&&(A[B]=parseInt(C,10))}var k=A[3],L=k===24?0:k,x=A[0]+"-"+A[1]+"-"+A[2]+" "+L+":"+A[4]+":"+A[5]+":000",V=+f;return(i.utc(x).valueOf()-(V-=V%1e3))/6e4},"u"),c=n.prototype;c.tz=function(f,d){f===void 0&&(f=o);var m,A=this.utcOffset(),T=this.toDate(),S=T.toLocaleString("en-US",{timeZone:f}),b=Math.round((T-new Date(S))/1e3/60),C=15*-Math.round(T.getTimezoneOffset()/15)-b;if(!Number(C))m=this.utcOffset(0,d);else if(m=i(S,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(C,!0),d){var B=m.utcOffset();m=m.add(A-B,"minute")}return m.$x.$timezone=f,m},c.offsetName=function(f){var d=this.$x.$timezone||i.tz.guess(),m=a(this.valueOf(),d,{timeZoneName:f}).find((function(A){return A.type.toLowerCase()==="timezonename"}));return m&&m.value};var l=c.startOf;c.startOf=function(f,d){if(!this.$x||!this.$x.$timezone)return l.call(this,f,d);var m=i(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return l.call(m,f,d).tz(this.$x.$timezone,!0)},i.tz=function(f,d,m){var A=m&&d,T=m||d||o,S=u(+i(),T);if(typeof f!="string")return i(f).tz(T);var b=(function(L,x,V){var Y=L-60*x*1e3,j=u(Y,V);if(x===j)return[Y,x];var $=u(Y-=60*(j-x)*1e3,V);return j===$?[Y,j]:[L-60*Math.min(j,$)*1e3,Math.max(j,$)]})(i.utc(f,A).valueOf(),S,T),C=b[0],B=b[1],k=i(C).utcOffset(B);return k.$x.$timezone=T,k},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(f){o=f}}}))});var Q7n=y(o_=>{"use strict";o_.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"};o_.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"]};o_.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]};o_.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};o_.iterateeRearg={mapKeys:[1],reduceRight:[1,0]};o_.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]};o_.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}};o_.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}};o_.realToAlias=(function(){var t=Object.prototype.hasOwnProperty,e=o_.aliasToReal,r={};for(var n in e){var i=e[n];t.call(r,i)?r[i].push(n):r[i]=[n]}return r})();o_.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"};o_.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0};o_.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 eLt=y((yjc,q7n)=>{"use strict";q7n.exports={}});var H7n=y((Tjc,V7n)=>{"use strict";var sd=Q7n(),wFa=eLt(),G7n=Array.prototype.push;function NFa(t,e){return e==2?function(r,n){return t.apply(void 0,arguments)}:function(r){return t.apply(void 0,arguments)}}s(NFa,"baseArity");function tLt(t,e){return e==2?function(r,n){return t(r,n)}:function(r){return t(r)}}s(tLt,"baseAry");function j7n(t){for(var e=t?t.length:0,r=Array(e);e--;)r[e]=t[e];return r}s(j7n,"cloneArray");function OFa(t){return function(e){return t({},e)}}s(OFa,"createCloner");function xFa(t,e){return function(){for(var r=arguments.length,n=r-1,i=Array(r);r--;)i[r]=arguments[r];var o=i[e],a=i.slice(0,e);return o&&G7n.apply(a,o),e!=n&&G7n.apply(a,i.slice(e+1)),t.apply(this,a)}}s(xFa,"flatSpread");function rLt(t,e){return function(){var r=arguments.length;if(r){for(var n=Array(r);r--;)n[r]=arguments[r];var i=n[0]=e.apply(void 0,n);return t.apply(void 0,n),i}}}s(rLt,"wrapImmutable");function nLt(t,e,r,n){var i=typeof e=="function",o=e===Object(e);if(o&&(n=r,r=e,e=void 0),r==null)throw new TypeError;n||(n={});var a={cap:"cap"in n?n.cap:!0,curry:"curry"in n?n.curry:!0,fixed:"fixed"in n?n.fixed:!0,immutable:"immutable"in n?n.immutable:!0,rearg:"rearg"in n?n.rearg:!0},u=i?r:wFa,c="curry"in n&&n.curry,l="fixed"in n&&n.fixed,f="rearg"in n&&n.rearg,d=i?r.runInContext():void 0,m=i?r:{ary:t.ary,assign:t.assign,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,isError:t.isError,isFunction:t.isFunction,isWeakMap:t.isWeakMap,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,toInteger:t.toInteger,toPath:t.toPath},A=m.ary,T=m.assign,S=m.clone,b=m.curry,C=m.forEach,B=m.isArray,k=m.isError,L=m.isFunction,x=m.isWeakMap,V=m.keys,Y=m.rearg,j=m.toInteger,$=m.toPath,ne=V(sd.aryMethod),ee={castArray:s(function(Te){return function(){var de=arguments[0];return B(de)?Te(j7n(de)):Te.apply(void 0,arguments)}},"castArray"),iteratee:s(function(Te){return function(){var de=arguments[0],ke=arguments[1],Le=Te(de,ke),qe=Le.length;return a.cap&&typeof ke=="number"?(ke=ke>2?ke-2:1,qe&&qe<=ke?Le:tLt(Le,ke)):Le}},"iteratee"),mixin:s(function(Te){return function(de){var ke=this;if(!L(ke))return Te(ke,Object(de));var Le=[];return C(V(de),function(qe){L(de[qe])&&Le.push([qe,ke.prototype[qe]])}),Te(ke,Object(de)),C(Le,function(qe){var wt=qe[1];L(wt)?ke.prototype[qe[0]]=wt:delete ke.prototype[qe[0]]}),ke}},"mixin"),nthArg:s(function(Te){return function(de){var ke=de<0?1:j(de)+1;return b(Te(de),ke)}},"nthArg"),rearg:s(function(Te){return function(de,ke){var Le=ke?ke.length:0;return b(Te(de,ke),Le)}},"rearg"),runInContext:s(function(Te){return function(de){return nLt(t,Te(de),n)}},"runInContext")};function Re(Te,de){if(a.cap){var ke=sd.iterateeRearg[Te];if(ke)return Ee(de,ke);var Le=!i&&sd.iterateeAry[Te];if(Le)return Z(de,Le)}return de}s(Re,"castCap");function M(Te,de,ke){return c||a.curry&&ke>1?b(de,ke):de}s(M,"castCurry");function H(Te,de,ke){if(a.fixed&&(l||!sd.skipFixed[Te])){var Le=sd.methodSpread[Te],qe=Le&&Le.start;return qe===void 0?A(de,ke):xFa(de,qe)}return de}s(H,"castFixed");function K(Te,de,ke){return a.rearg&&ke>1&&(f||!sd.skipRearg[Te])?Y(de,sd.methodRearg[Te]||sd.aryRearg[ke]):de}s(K,"castRearg");function Q(Te,de){de=$(de);for(var ke=-1,Le=de.length,qe=Le-1,wt=S(Object(Te)),ct=wt;ct!=null&&++ke<Le;){var Ct=de[ke],rr=ct[Ct];rr!=null&&!(L(rr)||k(rr)||x(rr))&&(ct[Ct]=S(ke==qe?rr:Object(rr))),ct=ct[Ct]}return wt}s(Q,"cloneByPath");function U(Te){return ue.runInContext.convert(Te)(void 0)}s(U,"convertLib");function Se(Te,de){var ke=sd.aliasToReal[Te]||Te,Le=sd.remap[ke]||ke,qe=n;return function(wt){var ct=i?d:m,Ct=i?d[Le]:de,rr=T(T({},qe),wt);return nLt(ct,ke,Ct,rr)}}s(Se,"createConverter");function Z(Te,de){return Fe(Te,function(ke){return typeof ke=="function"?tLt(ke,de):ke})}s(Z,"iterateeAry");function Ee(Te,de){return Fe(Te,function(ke){var Le=de.length;return NFa(Y(tLt(ke,Le),de),Le)})}s(Ee,"iterateeRearg");function Fe(Te,de){return function(){var ke=arguments.length;if(!ke)return Te();for(var Le=Array(ke);ke--;)Le[ke]=arguments[ke];var qe=a.rearg?0:ke-1;return Le[qe]=de(Le[qe]),Te.apply(void 0,Le)}}s(Fe,"overArg");function Be(Te,de,ke){var Le,qe=sd.aliasToReal[Te]||Te,wt=de,ct=ee[qe];return ct?wt=ct(de):a.immutable&&(sd.mutate.array[qe]?wt=rLt(de,j7n):sd.mutate.object[qe]?wt=rLt(de,OFa(de)):sd.mutate.set[qe]&&(wt=rLt(de,Q))),C(ne,function(Ct){return C(sd.aryMethod[Ct],function(rr){if(qe==rr){var $t=sd.methodSpread[qe],Nr=$t&&$t.afterRearg;return Le=Nr?H(qe,K(qe,wt,Ct),Ct):K(qe,H(qe,wt,Ct),Ct),Le=Re(qe,Le),Le=M(qe,Le,Ct),!1}}),!Le}),Le||(Le=wt),Le==de&&(Le=c?b(Le,1):function(){return de.apply(this,arguments)}),Le.convert=Se(qe,de),Le.placeholder=de.placeholder=ke,Le}if(s(Be,"wrap"),!o)return Be(e,r,u);var ue=r,xe=[];return C(ne,function(Te){C(sd.aryMethod[Te],function(de){var ke=ue[sd.remap[de]||de];ke&&xe.push([de,Be(de,ke,ue)])})}),C(V(ue),function(Te){var de=ue[Te];if(typeof de=="function"){for(var ke=xe.length;ke--;)if(xe[ke][0]==Te)return;de.convert=Se(Te,de),xe.push([Te,de])}}),C(xe,function(Te){ue[Te[0]]=Te[1]}),ue.convert=U,ue.placeholder=ue,C(V(ue),function(Te){C(sd.realToAlias[Te]||[],function(de){ue[de]=ue[Te]})}),ue}s(nLt,"baseConvert");V7n.exports=nLt});var iLt=y((Ijc,W7n)=>{"use strict";var Y7n=H3e(),vFa=Y7n&&new Y7n;W7n.exports=vFa});var sLt=y((Rjc,$7n)=>{"use strict";var DFa=cp(),z7n=iLt(),BFa=z7n?function(t,e){return z7n.set(t,e),t}:DFa;$7n.exports=BFa});var Iae=y((Cjc,K7n)=>{"use strict";var kFa=YH(),PFa=Xm();function LFa(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var r=kFa(t.prototype),n=t.apply(r,e);return PFa(n)?n:r}}s(LFa,"createCtor");K7n.exports=LFa});var X7n=y((wjc,J7n)=>{"use strict";var MFa=Iae(),UFa=Cg(),FFa=1;function QFa(t,e,r){var n=e&FFa,i=MFa(t);function o(){var a=this&&this!==UFa&&this instanceof o?i:t;return a.apply(n?r:this,arguments)}return s(o,"wrapper"),o}s(QFa,"createBind");J7n.exports=QFa});var oLt=y((Ojc,Z7n)=>{"use strict";var qFa=Math.max;function GFa(t,e,r,n){for(var i=-1,o=t.length,a=r.length,u=-1,c=e.length,l=qFa(o-a,0),f=Array(c+l),d=!n;++u<c;)f[u]=e[u];for(;++i<a;)(d||i<o)&&(f[r[i]]=t[i]);for(;l--;)f[u++]=t[i++];return f}s(GFa,"composeArgs");Z7n.exports=GFa});var aLt=y((vjc,eJn)=>{"use strict";var jFa=Math.max;function VFa(t,e,r,n){for(var i=-1,o=t.length,a=-1,u=r.length,c=-1,l=e.length,f=jFa(o-u,0),d=Array(f+l),m=!n;++i<f;)d[i]=t[i];for(var A=i;++c<l;)d[A+c]=e[c];for(;++a<u;)(m||i<o)&&(d[A+r[a]]=t[i++]);return d}s(VFa,"composeArgsRight");eJn.exports=VFa});var rJn=y((Bjc,tJn)=>{"use strict";function HFa(t,e){for(var r=t.length,n=0;r--;)t[r]===e&&++n;return n}s(HFa,"countHolders");tJn.exports=HFa});var LMe=y((Pjc,nJn)=>{"use strict";function YFa(){}s(YFa,"baseLodash");nJn.exports=YFa});var UMe=y((Mjc,iJn)=>{"use strict";var WFa=YH(),zFa=LMe(),$Fa=4294967295;function MMe(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=$Fa,this.__views__=[]}s(MMe,"LazyWrapper");MMe.prototype=WFa(zFa.prototype);MMe.prototype.constructor=MMe;iJn.exports=MMe});var uLt=y((Fjc,oJn)=>{"use strict";var sJn=iLt(),KFa=evt(),JFa=sJn?function(t){return sJn.get(t)}:KFa;oJn.exports=JFa});var uJn=y((Qjc,aJn)=>{"use strict";var XFa={};aJn.exports=XFa});var fJn=y((qjc,lJn)=>{"use strict";var cJn=uJn(),ZFa=Object.prototype,e2a=ZFa.hasOwnProperty;function t2a(t){for(var e=t.name+"",r=cJn[e],n=e2a.call(cJn,e)?r.length:0;n--;){var i=r[n],o=i.func;if(o==null||o==t)return i.name}return e}s(t2a,"getFuncName");lJn.exports=t2a});var cLt=y((jjc,dJn)=>{"use strict";var r2a=YH(),n2a=LMe();function FMe(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}s(FMe,"LodashWrapper");FMe.prototype=r2a(n2a.prototype);FMe.prototype.constructor=FMe;dJn.exports=FMe});var pJn=y((Hjc,hJn)=>{"use strict";var i2a=UMe(),s2a=cLt(),o2a=e2();function a2a(t){if(t instanceof i2a)return t.clone();var e=new s2a(t.__wrapped__,t.__chain__);return e.__actions__=o2a(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}s(a2a,"wrapperClone");hJn.exports=a2a});var AJn=y((Wjc,mJn)=>{"use strict";var u2a=UMe(),gJn=cLt(),c2a=LMe(),l2a=Qa(),f2a=Km(),d2a=pJn(),h2a=Object.prototype,p2a=h2a.hasOwnProperty;function QMe(t){if(f2a(t)&&!l2a(t)&&!(t instanceof u2a)){if(t instanceof gJn)return t;if(p2a.call(t,"__wrapped__"))return d2a(t)}return new gJn(t)}s(QMe,"lodash");QMe.prototype=c2a.prototype;QMe.prototype.constructor=QMe;mJn.exports=QMe});var EJn=y(($jc,_Jn)=>{"use strict";var g2a=UMe(),m2a=uLt(),A2a=fJn(),_2a=AJn();function E2a(t){var e=A2a(t),r=_2a[e];if(typeof r!="function"||!(e in g2a.prototype))return!1;if(t===r)return!0;var n=m2a(r);return!!n&&t===n[0]}s(E2a,"isLaziable");_Jn.exports=E2a});var lLt=y((Jjc,yJn)=>{"use strict";var y2a=sLt(),T2a=A3e(),S2a=T2a(y2a);yJn.exports=S2a});var SJn=y((Xjc,TJn)=>{"use strict";var I2a=/\{\n\/\* \[wrapped with (.+)\] \*/,R2a=/,? & /;function C2a(t){var e=t.match(I2a);return e?e[1].split(R2a):[]}s(C2a,"getWrapDetails");TJn.exports=C2a});var RJn=y((eVc,IJn)=>{"use strict";var b2a=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function w2a(t,e){var r=e.length;if(!r)return t;var n=r-1;return e[n]=(r>1?"& ":"")+e[n],e=e.join(r>2?", ":" "),t.replace(b2a,`{
|
|
4413
4413
|
/* [wrapped with `+e+`] */
|
|
4414
4414
|
`)}s(w2a,"insertWrapDetails");IJn.exports=w2a});var bJn=y((rVc,CJn)=>{"use strict";var N2a=VH(),O2a=WNe(),x2a=1,v2a=2,D2a=8,B2a=16,k2a=32,P2a=64,L2a=128,M2a=256,U2a=512,F2a=[["ary",L2a],["bind",x2a],["bindKey",v2a],["curry",D2a],["curryRight",B2a],["flip",U2a],["partial",k2a],["partialRight",P2a],["rearg",M2a]];function Q2a(t,e){return N2a(F2a,function(r){var n="_."+r[0];e&r[1]&&!O2a(t,n)&&t.push(n)}),t.sort()}s(Q2a,"updateWrapDetails");CJn.exports=Q2a});var fLt=y((iVc,wJn)=>{"use strict";var q2a=SJn(),G2a=RJn(),j2a=fce(),V2a=bJn();function H2a(t,e,r){var n=e+"";return j2a(t,G2a(n,V2a(q2a(n),r)))}s(H2a,"setWrapToString");wJn.exports=H2a});var dLt=y((oVc,xJn)=>{"use strict";var Y2a=EJn(),W2a=lLt(),z2a=fLt(),$2a=1,K2a=2,J2a=4,X2a=8,NJn=32,OJn=64;function Z2a(t,e,r,n,i,o,a,u,c,l){var f=e&X2a,d=f?a:void 0,m=f?void 0:a,A=f?o:void 0,T=f?void 0:o;e|=f?NJn:OJn,e&=~(f?OJn:NJn),e&J2a||(e&=~($2a|K2a));var S=[t,e,i,A,d,T,m,u,c,l],b=r.apply(void 0,S);return Y2a(t)&&W2a(b,S),b.placeholder=n,z2a(b,t,e)}s(Z2a,"createRecurry");xJn.exports=Z2a});var hLt=y((uVc,vJn)=>{"use strict";function eQa(t){var e=t;return e.placeholder}s(eQa,"getHolder");vJn.exports=eQa});var BJn=y((lVc,DJn)=>{"use strict";var tQa=e2(),rQa=zq(),nQa=Math.min;function iQa(t,e){for(var r=t.length,n=nQa(e.length,r),i=tQa(t);n--;){var o=e[n];t[n]=rQa(o,r)?i[o]:void 0}return t}s(iQa,"reorder");DJn.exports=iQa});var qMe=y((dVc,PJn)=>{"use strict";var kJn="__lodash_placeholder__";function sQa(t,e){for(var r=-1,n=t.length,i=0,o=[];++r<n;){var a=t[r];(a===e||a===kJn)&&(t[r]=kJn,o[i++]=r)}return o}s(sQa,"replaceHolders");PJn.exports=sQa});var pLt=y((pVc,UJn)=>{"use strict";var oQa=oLt(),aQa=aLt(),uQa=rJn(),LJn=Iae(),cQa=dLt(),lQa=hLt(),fQa=BJn(),dQa=qMe(),hQa=Cg(),pQa=1,gQa=2,mQa=8,AQa=16,_Qa=128,EQa=512;function MJn(t,e,r,n,i,o,a,u,c,l){var f=e&_Qa,d=e&pQa,m=e&gQa,A=e&(mQa|AQa),T=e&EQa,S=m?void 0:LJn(t);function b(){for(var C=arguments.length,B=Array(C),k=C;k--;)B[k]=arguments[k];if(A)var L=lQa(b),x=uQa(B,L);if(n&&(B=oQa(B,n,i,A)),o&&(B=aQa(B,o,a,A)),C-=x,A&&C<l){var V=dQa(B,L);return cQa(t,e,MJn,b.placeholder,r,B,V,u,c,l-C)}var Y=d?r:this,j=m?Y[t]:t;return C=B.length,u?B=fQa(B,u):T&&C>1&&B.reverse(),f&&c<C&&(B.length=c),this&&this!==hQa&&this instanceof b&&(j=S||LJn(j)),j.apply(Y,B)}return s(b,"wrapper"),b}s(MJn,"createHybrid");UJn.exports=MJn});var QJn=y((mVc,FJn)=>{"use strict";var yQa=sz(),TQa=Iae(),SQa=pLt(),IQa=dLt(),RQa=hLt(),CQa=qMe(),bQa=Cg();function wQa(t,e,r){var n=TQa(t);function i(){for(var o=arguments.length,a=Array(o),u=o,c=RQa(i);u--;)a[u]=arguments[u];var l=o<3&&a[0]!==c&&a[o-1]!==c?[]:CQa(a,c);if(o-=l.length,o<r)return IQa(t,e,SQa,i.placeholder,void 0,a,l,void 0,void 0,r-o);var f=this&&this!==bQa&&this instanceof i?n:t;return yQa(f,this,a)}return s(i,"wrapper"),i}s(wQa,"createCurry");FJn.exports=wQa});var GJn=y((_Vc,qJn)=>{"use strict";var NQa=sz(),OQa=Iae(),xQa=Cg(),vQa=1;function DQa(t,e,r,n){var i=e&vQa,o=OQa(t);function a(){for(var u=-1,c=arguments.length,l=-1,f=n.length,d=Array(f+c),m=this&&this!==xQa&&this instanceof a?o:t;++l<f;)d[l]=n[l];for(;c--;)d[l++]=arguments[++u];return NQa(m,i?r:this,d)}return s(a,"wrapper"),a}s(DQa,"createPartial");qJn.exports=DQa});var zJn=y((yVc,WJn)=>{"use strict";var BQa=oLt(),kQa=aLt(),jJn=qMe(),VJn="__lodash_placeholder__",gLt=1,PQa=2,LQa=4,HJn=8,Rae=128,YJn=256,MQa=Math.min;function UQa(t,e){var r=t[1],n=e[1],i=r|n,o=i<(gLt|PQa|Rae),a=n==Rae&&r==HJn||n==Rae&&r==YJn&&t[7].length<=e[8]||n==(Rae|YJn)&&e[7].length<=e[8]&&r==HJn;if(!(o||a))return t;n&gLt&&(t[2]=e[2],i|=r&gLt?0:LQa);var u=e[3];if(u){var c=t[3];t[3]=c?BQa(c,u,e[4]):u,t[4]=c?jJn(t[3],VJn):e[4]}return u=e[5],u&&(c=t[5],t[5]=c?kQa(c,u,e[6]):u,t[6]=c?jJn(t[5],VJn):e[6]),u=e[7],u&&(t[7]=u),n&Rae&&(t[8]=t[8]==null?e[8]:MQa(t[8],e[8])),t[9]==null&&(t[9]=e[9]),t[0]=e[0],t[1]=i,t}s(UQa,"mergeData");WJn.exports=UQa});var GMe=y((SVc,ZJn)=>{"use strict";var FQa=sLt(),QQa=X7n(),qQa=QJn(),GQa=pLt(),jQa=GJn(),VQa=uLt(),HQa=zJn(),YQa=lLt(),WQa=fLt(),$Jn=XH(),zQa="Expected a function",KJn=1,$Qa=2,mLt=8,ALt=16,_Lt=32,JJn=64,XJn=Math.max;function KQa(t,e,r,n,i,o,a,u){var c=e&$Qa;if(!c&&typeof t!="function")throw new TypeError(zQa);var l=n?n.length:0;if(l||(e&=~(_Lt|JJn),n=i=void 0),a=a===void 0?a:XJn($Jn(a),0),u=u===void 0?u:$Jn(u),l-=i?i.length:0,e&JJn){var f=n,d=i;n=i=void 0}var m=c?void 0:VQa(t),A=[t,e,r,n,i,f,d,o,a,u];if(m&&HQa(A,m),t=A[0],e=A[1],r=A[2],n=A[3],i=A[4],u=A[9]=A[9]===void 0?c?0:t.length:XJn(A[9]-l,0),!u&&e&(mLt|ALt)&&(e&=~(mLt|ALt)),!e||e==KJn)var T=QQa(t,e,r);else e==mLt||e==ALt?T=qQa(t,e,u):(e==_Lt||e==(KJn|_Lt))&&!i.length?T=jQa(t,e,r,n):T=GQa.apply(void 0,A);var S=m?FQa:YQa;return WQa(S(T,A),t,e)}s(KQa,"createWrap");ZJn.exports=KQa});var tXn=y((RVc,eXn)=>{"use strict";var JQa=GMe(),XQa=128;function ZQa(t,e,r){return e=r?void 0:e,e=t&&e==null?t.length:e,JQa(t,XQa,void 0,void 0,void 0,void 0,e)}s(ZQa,"ary");eXn.exports=ZQa});var nXn=y((bVc,rXn)=>{"use strict";var eqa=GMe(),tqa=8;function ELt(t,e,r){e=r?void 0:e;var n=eqa(t,tqa,void 0,void 0,void 0,void 0,void 0,e);return n.placeholder=ELt.placeholder,n}s(ELt,"curry");ELt.placeholder={};rXn.exports=ELt});var sXn=y((NVc,iXn)=>{"use strict";var rqa=Mx(),nqa=Km(),iqa="[object WeakMap]";function sqa(t){return nqa(t)&&rqa(t)==iqa}s(sqa,"isWeakMap");iXn.exports=sqa});var aXn=y((xVc,oXn)=>{"use strict";var oqa=QNe(),aqa=eA(),uqa=1;function cqa(t){return aqa(typeof t=="function"?t:oqa(t,uqa))}s(cqa,"iteratee");oXn.exports=cqa});var cXn=y((DVc,uXn)=>{"use strict";var lqa=GMe(),fqa=_3e(),dqa=256,hqa=fqa(function(t,e){return lqa(t,dqa,void 0,void 0,void 0,e)});uXn.exports=hqa});var fXn=y((BVc,lXn)=>{"use strict";var pqa=Bx(),gqa=e2(),mqa=Qa(),Aqa=xx(),_qa=c3e(),Eqa=mP(),yqa=DI();function Tqa(t){return mqa(t)?pqa(t,Eqa):Aqa(t)?[t]:gqa(_qa(yqa(t)))}s(Tqa,"toPath");lXn.exports=Tqa});var hXn=y((PVc,dXn)=>{"use strict";dXn.exports={ary:tXn(),assign:$_t(),clone:$re(),curry:nXn(),forEach:VH(),isArray:Qa(),isError:$Ne(),isFunction:Vq(),isWeakMap:sXn(),iteratee:aXn(),keys:Tce(),rearg:cXn(),toInteger:XH(),toPath:fXn()}});var gXn=y((LVc,pXn)=>{"use strict";var Sqa=H7n(),Iqa=hXn();function Rqa(t,e,r){return Sqa(Iqa,t,e,r)}s(Rqa,"convert");pXn.exports=Rqa});var AXn=y((UVc,mXn)=>{"use strict";mXn.exports={cap:!1,curry:!1,fixed:!1,immutable:!1,rearg:!1}});var yXn=y((FVc,EXn)=>{"use strict";var Cqa=gXn(),_Xn=Cqa("cloneDeep",Z_t(),AXn());_Xn.placeholder=eLt();EXn.exports=_Xn});process.env.DISABLE_PINO_LOGGER="1";process.env.NO_JS="1";process.env.DISABLE_JWT_WARNING="1";hd();var OI=class{static{s(this,"Command")}constructor(e,r){this.command=e,this.opts=[],this.func=r}convertToCommander(e){let r=e.toLowerCase().split("-");return[r.shift()].concat(r.map(i=>vqe(i))).join("")}addHelp(e){return this.help=e,this}addSubOption(e,r,n,i=[]){return this.opts.push({command:e,help:r,func:n,extras:i}),this}configure(e){let r=this,n=e.command(r.command);this.help&&(n=n.description(F9(r.help)));let i=new Set;for(let o of r.opts){n=n.option(o.command,Q9(o.help));for(let a of o.extras)!a?.command||i.has(a.command)||(i.add(a.command),n=n.option(a.command,Q9(a.help)))}n.helpOption("-h, --help",Q9(`Get help with ${this.command} options`)),n.action(async o=>{try{let a=!1,u=!1;for(let c of r.opts){let l=c.command.split(" ")[0].replace("--","");if(l=this.convertToCommander(l),u=!a&&!!o[l],u&&c.func){let f=Object.keys(o).length>1?o:o[l];await c.func(f),a=!0}}u&&!a?console.log(Fa(`${Object.keys(o)[0]} is an option, not an operation.`)):a||(console.log(Fa(`Unknown ${this.command} option.`)),n.help())}catch(a){console.log(Fa(a))}})}};Ox();hd();var tqt=require("posthog-node");Ox();var zue=require("fs"),GZn=require("path"),jZn=require("os"),{error:VZn}=(hd(),on(Dqe)),$ue=class{static{s(this,"ConfigManager")}constructor(){this.path=GZn.join(jZn.homedir(),".budibase.json"),zue.existsSync(this.path)||zue.writeFileSync(this.path,"{}")}get config(){try{return JSON.parse(zue.readFileSync(this.path,"utf8"))}catch{return console.log(VZn("Error parsing configuration file. Please check your .budibase.json is valid.")),{}}}set config(e){zue.writeFileSync(this.path,JSON.stringify(e))}getValue(e){return this.config[e]}setValue(e,r){this.config={...this.config,[e]:r}}removeKey(e){let r={...this.config};delete r[e],this.config=r}};var Fq=class{static{s(this,"AnalyticsClient")}constructor(){this.client=new tqt.PostHog(Hqe,{}),this.configManager=new $ue}capture(e){this.configManager.config.analyticsDisabled||this.client.capture(e)}enable(){this.configManager.removeKey("analyticsDisabled"),this.client.capture({event:Pb.OptIn,distinctId:"cli"})}disable(){this.client.capture({event:Pb.OptOut,distinctId:"cli"}),this.configManager.setValue("analyticsDisabled",!0)}status(){return this.configManager.config.analyticsDisabled?"disabled":"enabled"}};var Wqe=new Fq;async function HZn(){try{Wqe.disable(),console.log(gu("Successfully opted out of Budibase analytics. You can opt in at any time by running 'budi analytics opt-in'"))}catch(t){console.log(Fa(`Error opting out of Budibase analytics. Please try again later - ${t}`))}}s(HZn,"optOut");async function YZn(){try{Wqe.enable(),console.log(gu("Successfully opted in to Budibase analytics. Thank you for helping us make Budibase better!"))}catch{console.log(Fa("Error opting in to Budibase analytics. Please try again later."))}}s(YZn,"optIn");async function WZn(){try{console.log(gu(`Budibase analytics ${Wqe.status()}`))}catch{console.log(Fa("Error fetching analytics status. Please try again later."))}}s(WZn,"status");var rqt=new OI("analytics").addHelp("Control the analytics you send to Budibase.").addSubOption("--optin","Opt in to sending analytics to Budibase",YZn).addSubOption("--optout","Opt out of sending analytics to Budibase.",HZn).addSubOption("--status","Check whether you are currently opted in to Budibase analytics.",WZn);Ox();Ox();gP();var $Zn=new Fq;function Kue(t,e){$Zn.capture({distinctId:"cli",event:t,properties:e})}s(Kue,"captureEvent");K9();hd();Ub();var Eqt=require("path"),yqt=ge(require("fs"));hd();Ub();async function Zue(t,e){let r="/plugins";if(t=(0,Eqt.resolve)(t),!yqt.default.existsSync(t)){console.log(Fa(`The directory "${t}" does not exist, please create and then try again.`));return}Jqe(n=>{n.environment.PLUGINS_DIR=r,n.volumes||(n.volumes=[]);let i=n.volumes.find(o=>o.includes(r));i&&n.volumes.splice(n.volumes.indexOf(i),1),n.volumes.push(`${t}:${r}`)}),e||console.log(gu(`Docker compose configured to watch directory: ${t}`))}s(Zue,"watchPlugins");var{success:eei}=(hd(),on(Dqe)),{updateDockerComposeService:tei}=(Ub(),on(cqt)),rei=require("randomstring"),{GENERATED_USER_EMAIL:nei}=(Ox(),on(eqt));async function ece(t,e){let r=nei;t||(t=rei.generate({length:6})),tei(n=>{n.environment.BB_ADMIN_USER_EMAIL=r,n.environment.BB_ADMIN_USER_PASSWORD=t}),e||console.log(eei(`User admin credentials configured, access with email: ${r} - password: ${t}`))}s(ece,"generateUser");var Tqt=ge(require("node-fetch"));var iei="http://169.254.169.254/metadata/v1/user-data";async function sei(t,e,r){let n=e?hqt:{};if(t==="do")try{let o=await(await(0,Tqt.default)(iei)).text(),a=Nqe(o);for(let[u,c]of Object.entries(r3e))a[u]&&(n[c]=a[u])}catch{}return r&&(n[r3e.MAIN_PORT]=r),n}s(sei,"getInitConfig");async function tce(t){let e,r,n,i,o,a;typeof t=="string"?(e=t,r=e==="single"):(e=t.init,r=t.single||e==="single",n=t.watchPluginDir,i=t.genUser,o=t.port,a=t.silent);let u=e==="quick"||e==="do";if(await x0(),!u&&!await xI(r?"This will create a single-image docker-compose.yaml in current directory, should continue?":"This will create multiple files in current directory, should continue?")){console.log("Stopping.");return}Kue(Pb.SelfHostInit,{type:e});let c=await sei(e,u,o);r?await mqt(c,a):(await z9(),await gqt(c,a)),n&&await Zue(n,a),i&&await ece(typeof i=="string"?i:null,a)}s(tce,"init");Ub();hd();K9();var Sqt=ge(require("docker-compose")),Iqt=ge(require("fs"));gP();var oei=require("open");async function Gq(){await x0(),Lb(),console.log(Fi("Starting services, this may take a moment - first time this may take a few minutes to download images."));let t;Iqt.default.existsSync(qq)?t=Aqt("MAIN_PORT"):t=_qt("port"),await Mb(async()=>{await Sqt.default.upAll({cwd:"./",log:!0})}),await xI(`Do you wish to open http://localhost:${t} ?`)&&await oei(`http://localhost:${t}`),console.log(gu(`Services started, please go to http://localhost:${t} for next steps.`))}s(Gq,"start");Ub();hd();var Rqt=ge(require("docker-compose"));async function Cqt(){await x0(),Lb(),console.log(Fi("Stopping services, this may take a moment.")),await Mb(async()=>{await Rqt.default.stop()}),console.log(gu("Services have been stopped successfully."))}s(Cqt,"stop");Ub();hd();var bqt=ge(require("docker-compose"));async function wqt(){await x0(),Lb(),console.log(Fi("Budibase status")),await Mb(async()=>{let t=await bqt.default.ps();console.log(t.out)})}s(wqt,"status");Ub();gP();var rce=ge(require("docker-compose"));K9();hd();var aei=["app-service","worker-service","proxy-service","couchdb-service","litellm-service"],uei=["budibase"];function cei(t){return Object.prototype.hasOwnProperty.call(t,"budibase")}s(cei,"isSingleComposeServiceList");async function Nqt(t){let{services:e}=$9(Qq),r=typeof t=="object"&&t!=null&&"single"in t&&!!t.single,n=r||cei(e);if(r&&!Object.prototype.hasOwnProperty.call(e,"budibase"))throw"Unable to run single-image update: no 'budibase' service found in docker-compose.yaml.";if(await x0(),Lb(),!n&&await xI("Do you wish to update you docker-compose.yaml?")){let i=await Jue("minio");await z9(),Kqe("minio",i)}await Mb(async()=>{let o=(await rce.default.ps()).out.split(`
|
|
4415
|
-
`),a=o[2]&&o[2].indexOf("Up")!==-1;a&&(console.log(Fi("Stopping services, this may take a moment.")),await rce.default.stop()),console.log(Fi("Beginning update, this may take a few minutes."));let u;n?u=uei:u=aei,await rce.default.pullMany(u,{log:!0}),a&&(console.log(gu("Update complete, restarting services...")),await Gq())})}s(Nqt,"update");var Oqt=new OI("hosting").addHelp("Controls self hosting on the Budibase platform.").addSubOption("--init [type]","Configure a self hosted platform in current directory, type can be unspecified, 'quick' or 'do'. Use --single for a single-image deployment.",tce).addSubOption("--start","Start the configured platform in current directory.",Gq).addSubOption("--status","Check the status of currently running services.",wqt).addSubOption("--stop","Stop the configured platform in the current directory.",Cqt).addSubOption("--update","Update the Budibase images to the latest version.",Nqt).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",Zue).addSubOption("--gen-user","Create an admin user automatically as part of first start.",ece).addSubOption("--single","Specify this with init or update to target a single-image deployment (also supports --init single).");Ox();var i0=ge(require("fs")),bQ=require("path");var nce=ge(require("pouchdb"));hd();var xqt=ge(require("node-fetch"));function ice(t){let e;t?e={prefix:t}:e={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return nce.default.plugin(r.plugin),nce.default.adapter("writableStream",r.adapters.writableStream),nce.default.defaults(e)}s(ice,"getPouch");async function vqt(t){let e=await(0,xqt.default)(Oqe(encodeURI(`${t}/_all_dbs`)),{method:"GET"});if(e.status===200)return await e.json();throw"Cannot connect to CouchDB instance"}s(vqt,"getAllDbs");hd();var IWn=ge(require("dotenv")),WBt=ge(require("fs"));gP();ur();ur();var jq={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},J9={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var Jm={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},NotIn:{value:"notOneOf",label:"Is not in"},ContainsAny:{value:"containsAny",label:"Has any"}},Dqt={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var T3={};Ui(T3,{ColumnSplitter:()=>U4e,NoEmptyFilterStrings:()=>B6t,buildQuery:()=>k6t,cleanupQuery:()=>q4e,fixupFilterArrays:()=>j4e,getKeyNumbering:()=>G4e,getValidOperatorsForType:()=>ymi,hasFilters:()=>F4e,limit:()=>L6t,recurseLogicalOperators:()=>Q4e,removeKeyNumbering:()=>dce,runQuery:()=>cle,search:()=>Imi,sort:()=>P6t,splitFiltersArray:()=>hce});ur();var y3=ge(s3e());var kx={};Ui(kx,{filterValueToLabel:()=>tii,hasSchema:()=>rii,isSupportedUserSearch:()=>VGt,nameToUrl:()=>aii,parallelForeach:()=>eii,processSearchFilters:()=>E3e,toMap:()=>iii,trimOtherProps:()=>nii,unreachable:()=>Zni});ur();var jGt=ge(qGt());var Xni=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function Zni(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(Zni,"unreachable");async function eii(t,e,r){let n=[],i=Symbol.asyncIterator in t,o=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),a=s(async()=>{let u=await(i?o.next():Promise.resolve(o.next()));for(;!u.done;)await e(u.value),u=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}s(eii,"parallelForeach");function tii(){return Object.keys(Jm).reduce((t,e)=>{let n=Jm[e];return t[n.value]=n.label,t},{})}s(tii,"filterValueToLabel");function rii(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(rii,"hasSchema");function nii(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(nii,"trimOtherProps");function VGt(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(Yue(o)){for(let l of t[o].conditions)if(!VGt(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s(VGt,"isSupportedUserSearch");function E3e(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=hce(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,jGt.default)(i,Xni);return o.field=dce(o.field),o})}]}}s(E3e,"processSearchFilters");function iii(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(iii,"toMap");var sii=s(t=>t?t.trim():null,"resolveWorkspaceName"),oii=s(t=>{let e,r=sii(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),aii=s(t=>{let e=oii(t);return uii(e)},"nameToUrl"),uii=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var $b={};Ui($b,{accountPortalAccountUrl:()=>N4e,accountPortalBillingUrl:()=>O4e,accountPortalUpgradeUrl:()=>x4e,agentChatUrl:()=>L4e,appAgentUrl:()=>ale,appChatUrl:()=>ole,applyBaseUrl:()=>C6t,builderAppsUrl:()=>P4e,builderSettingsAuthUrl:()=>B4e,builderSettingsEmailUrl:()=>D4e,builderSettingsPeopleUsersUrl:()=>k4e,builderWorkspacesUrl:()=>v4e,cancelableTimeout:()=>HGt,cron:()=>nmi,deepGet:()=>y3e,duplicateName:()=>Jgi,escapeHtml:()=>hii,formatBytes:()=>rmi,getNextPreviewDevice:()=>zgi,getPreviewDeviceIcon:()=>$gi,getPreviewModalDevice:()=>Kgi,getSequentialName:()=>Xgi,getUserColor:()=>lii,getUserInitials:()=>cii,getUserLabel:()=>fii,isEnvironmentVariableKey:()=>O6t,isGoogleSheets:()=>mii,isSQL:()=>Aii,lists:()=>b4e,normaliseSafeCssColor:()=>Eii,normalizeForComparison:()=>pii,retry:()=>_ii,roles:()=>C4e,schema:()=>Zz,structuredOutput:()=>E4e,urlHelpers:()=>N6t,views:()=>R4e,wait:()=>T3e,withTimeout:()=>dii});var y3e=s((t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},"deepGet"),cii=s(t=>{if(!t)return"?";let e="";return e+=t.firstName?t.firstName[0]:"",e+=t.lastName?t.lastName[0]:"",e!==""?e:t.email?.[0]||"U"},"getUserInitials"),lii=s(t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),fii=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function HGt(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(HGt,"cancelableTimeout");async function dii(t,e){let[r,n]=HGt(t),i=await Promise.race([e(),r]);return n(),i}s(dii,"withTimeout");var hii=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml"),pii=s(t=>t.toLowerCase().trim(),"normalizeForComparison");ur();function mii(t){return t==="GOOGLE_SHEETS"}s(mii,"isGoogleSheets");function Aii(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(Aii,"isSQL");async function T3e(t){return new Promise(e=>setTimeout(e,t))}s(T3e,"wait");async function _ii(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await T3e(o);try{return await t()}catch(a){n=a}}throw n}s(_ii,"retry");var Eii=s(t=>{if(t==null||t.trim()==="")return;let e=t.trim();if(e.includes(";")||/\burl\s*\(/i.test(e))throw new Error("Color is invalid.");return e},"normaliseSafeCssColor");var d6t=ge(BI()),h6t=ge(A4e());var f6t="(Input cron: ",sgi={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function ogi(t,e){return new Intl.DateTimeFormat("en-GB",{weekday:"short",day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:e}).format(t)}s(ogi,"formatExecutionDate");function agi(t){let e=[];for(let r of t){r.includes(f6t)&&(r=r.split(f6t)[0].trim());for(let[n,i]of Object.entries(sgi))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(agi,"improveErrors");function p6t(t,e=4,r){let n=h6t.default.parseExpression(t,r?{tz:r}:void 0),i=[];for(let o=0;o<e;o++)i.push(ogi(n.next().toDate(),r));return i}s(p6t,"getNextExecutionDates");function g6t(t){let e=(0,d6t.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:agi(e.getError())}}s(g6t,"validate");var Zz={};Ui(Zz,{decodeNonAscii:()=>_4e,encodeNonAscii:()=>lgi,isDeprecatedSingleUserColumn:()=>ugi,isNumeric:()=>fgi,isRequired:()=>cgi});ur();function ugi(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(ugi,"isDeprecatedSingleUserColumn");function cgi(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(cgi,"isRequired");function lgi(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(lgi,"encodeNonAscii");function _4e(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(_4e,"decodeNonAscii");function fgi(t){return t.type==="number"||t.type==="bigint"}s(fgi,"isNumeric");var E4e={};Ui(E4e,{normalizeSchemaForStructuredOutput:()=>dgi});function dgi(t){function e(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let o=i.properties,a=[],u={};for(let[f,d]of Object.entries(o))if(typeof d=="object"&&d!==null){let m=d;if(m.required===!0){a.push(f);let{required:A,...T}=m;u[f]=e(T)}else u[f]=e(m)}else u[f]=d;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(dgi,"normalizeSchemaForStructuredOutput");var R4e={};Ui(R4e,{basicFields:()=>jgi,calculationFields:()=>Ggi,hasCalculationFields:()=>qgi,isBasicViewField:()=>Fgi,isCalculationField:()=>e$,isCalculationView:()=>Qgi,isV2:()=>Vgi,isVisible:()=>R6t});ur();var I4e=ge(S4e());function e$(t){return"calculationType"in t}s(e$,"isCalculationField");function Fgi(t){return!e$(t)}s(Fgi,"isBasicViewField");function Qgi(t){return t.type==="calculation"}s(Qgi,"isCalculationView");function qgi(t){return Object.values(t.schema||{}).some(e$)}s(qgi,"hasCalculationFields");function Ggi(t){return(0,I4e.default)(t.schema||{},e$)}s(Ggi,"calculationFields");function R6t(t){return t.visible!==!1}s(R6t,"isVisible");function jgi(t,e){let{visible:r=!0}=e||{};return(0,I4e.default)(t.schema||{},n=>!e$(n)&&(!r||R6t(n)))}s(jgi,"basicFields");function Vgi(t){return t.version===2}s(Vgi,"isV2");var C4e={};Ui(C4e,{checkForRoleInheritanceLoops:()=>Ygi});ur();function Hgi(t){return`role${"_"}${t}`}s(Hgi,"prefixForCheck");function Ygi(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=Hgi(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s(Ygi,"checkForRoleInheritanceLoops");var b4e={};Ui(b4e,{punctuateList:()=>Wgi});function Wgi(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}s(Wgi,"punctuateList");var w4e=["desktop","tablet","mobile"],zgi=s(t=>{let e=w4e.indexOf(t||"desktop"),n=((e===-1?0:e)+1)%w4e.length;return w4e[n]},"getNextPreviewDevice"),$gi=s(t=>t==="mobile"?"device-mobile-camera":t==="tablet"?"device-tablet-camera":"monitor","getPreviewDeviceIcon"),Kgi=s(t=>t&&t!=="desktop"?t:null,"getPreviewModalDevice");var Jgi=s((t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];e.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(o.push(parseInt(c[1])),!0):!1}),o.sort((u,c)=>u-c);let a;if(o.length===0)a=1;else{for(let u=0;u<o.length;u++)if(o[u]!==u+1){a=u+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),Xgi=s((t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let o=e.trim(),a=n?`${e}1`:o;if(!t?.length)return a;let u=0;return t.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(o))return;let f=l.split(o);if(f.length!==2)return;f[1].trim()===""&&(f[1]="1");let d=parseInt(f[1]);d>u&&(u=d)}),u===0?a:`${e}${i}${u+1}`},"getSequentialName");var Zgi=/{?{{([^{].*?)}}}?/g;function C6t(t,e){if(!e)return t;let r=t.match(Zgi)??[],n=[],i=t;for(let l of r){let f=`:${l}`;i.includes(f)&&(n.push(l),i=i.replace(f,":0"))}let o=s(l=>`__hbs${l}__`,"placeholder"),a=r.filter(l=>!n.includes(l));i=a.reduce((l,f,d)=>l.replace(f,o(d)),i);let u=s(l=>a.reduce((f,d,m)=>f.replace(o(m),d),l),"restore"),c=e.replace(/\/$/,"");try{let l=new URL(i),f=l.pathname==="/"?"":l.pathname;return c+u(f+l.search+l.hash)}catch{let l=u(i);return l.startsWith("/")?c+l:c}}s(C6t,"applyBaseUrl");var b6t=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),emi=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),zb=s((t,e)=>{let r=b6t(e);if(!t)return r;let n=emi(t);return r?`${n}${r}`:n},"joinBaseAndPath"),tmi=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),w6t=s(t=>tmi(b6t(t)),"normalizeAppUrl"),N4e=s(t=>zb(t,J9.ACCOUNT),"accountPortalAccountUrl"),O4e=s((t,e)=>{let r=typeof e=="string"||e==null?{tenantId:e}:e,n=zb(t,J9.BILLING),i=new URLSearchParams;r?.tenantId&&i.set("tenantId",r.tenantId),r?.purchasePrepaidAiCredits&&i.set("purchasePrepaidAiCredits","1");let o=i.toString();return o?`${n}?${o}`:n},"accountPortalBillingUrl"),x4e=s((t,e)=>{if(e){let r=zb(t,J9.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return zb(t,J9.UPGRADE)},"accountPortalUpgradeUrl"),v4e=s(t=>zb(t,jq.WORKSPACES),"builderWorkspacesUrl"),D4e=s(t=>zb(t,jq.SETTINGS_EMAIL),"builderSettingsEmailUrl"),B4e=s(t=>zb(t,jq.SETTINGS_AUTH),"builderSettingsAuthUrl"),k4e=s(t=>zb(t,jq.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),P4e=s(t=>zb(t,jq.APPS),"builderAppsUrl"),ole=s(t=>`/app-chat${w6t(t)}`,"appChatUrl"),ale=s((t,e)=>`${w6t(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),L4e=s((t,e)=>ole(ale(t,e)),"agentChatUrl"),N6t={accountPortalAccountUrl:N4e,accountPortalBillingUrl:O4e,accountPortalUpgradeUrl:x4e,builderWorkspacesUrl:v4e,builderSettingsEmailUrl:D4e,builderSettingsAuthUrl:B4e,builderSettingsPeopleUsersUrl:k4e,builderAppsUrl:P4e,appChatUrl:ole,appAgentUrl:ale,agentChatUrl:L4e};function rmi(t,e=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,o=typeof t=="string"?parseInt(t,10):t||0;for(;o>=1024&&i<r.length-1&&++i;)o/=1024;return`${o.toFixed(o<10&&i>0?1:0)}${e}${r[i]}`}s(rmi,"formatBytes");function O6t(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(O6t,"isEnvironmentVariableKey");var nmi={getNextExecutionDates:p6t,validate:g6t};var ule=ge(hy()),M4e=ge(tA());var _mi=/{{([^{].*?)}}/g,D6t=Object.values(H9),Emi=[...Object.values(Uq),...Object.values(dP),...Object.values(V9)],ymi=s((t,e,r)=>{let n=Jm,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In,n.NotIn],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:f}=t;c==="string"?f==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||Zz.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let d=r?.tableId?.includes("datasource_plus");return e==="_id"&&d&&(u=[n.Equals,n.NotEquals,n.In,n.NotIn]),u},"getValidOperatorsForType"),B6t=[Jm.StartsWith.value,Jm.Like.value,Jm.Equals.value,Jm.NotEquals.value,Jm.Contains.value,Jm.NotContains.value,Jm.ContainsAny.value,Jm.In.value,Jm.NotIn.value];function Q4e(t,e){for(let r of D6t)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Q4e,"recurseLogicalOperators");var q4e=s(t=>{for(let e of B6t)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||Tmi(o))&&delete t[e][i]}return t=Q4e(t,q4e),t},"cleanupQuery");function Tmi(t){return Array.isArray(t)&&t.length===0}s(Tmi,"isEmptyArray");var dce=s(t=>G4e(t).key,"removeKeyNumbering"),G4e=s(t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},"getKeyNumbering"),U4e=class{static{s(this,"ColumnSplitter")}constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=G4e(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=_4e(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function Smi(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:o}=t,{value:a}=t;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(_mi)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Wue(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"||r==="notOneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Wue(r)){let l=Dqt[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(cFt(r)||lFt(r)||Wue(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(Smi,"buildCondition");function hce(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(hce,"splitFiltersArray");function k6t(t){if(!t)return{};if(Array.isArray(t)&&(t=E3e(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=v6t(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=k6t(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=hce(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=v6t(n.logicalOperator)),{[u]:{conditions:a.map(Smi).filter(c=>c)}}})},e}s(k6t,"buildQuery");function v6t(t){return t==="all"?"$and":"$or"}s(v6t,"logicalOperatorFromUI");function j4e(t){if(!t)return t;for(let e of Object.values(dP)){let r=t[e];if(!(r==null||!(0,ule.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(o=>o.trim()):r[n]=[i]}}return Q4e(t,j4e),t}s(j4e,"fixupFilterArrays");function Imi(t,e){let r=cle(t,e.query);e.sort&&(r=P6t(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=L6t(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(Imi,"search");function cle(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=q4e(e),e=j4e(e),!F4e(e)&&e.onEmptyFilter==="none")return[];let r=s((Y,j)=>$=>{for(let[ne,ee]of Object.entries(e[Y]||{})){let Re=Yue(Y)?$:y3e($,dce(ne)),M=j(Re,ee);if(e.allOr&&M)return!0;if(!e.allOr&&!M)return!1}return!e.allOr},"match"),n=r("string",(Y,j)=>typeof Y!="string"||typeof j!="string"?!1:Y.toLowerCase().startsWith(j.toLowerCase())),i=r("fuzzy",(Y,j)=>typeof Y!="string"||typeof j!="string"?!1:Y.toLowerCase().includes(j.toLowerCase())),o=r("range",(Y,j)=>{if(Y==null||Y===""||((0,ule.default)(j.low)&&(0,M4e.default)(j.low)&&(j.low=void 0),(0,ule.default)(j.high)&&(0,M4e.default)(j.high)&&(j.high=void 0),j.low==null&&j.high==null))return!1;let $=+Y;if(!isNaN($)){let ee=+j.low,Re=+j.high;if(!isNaN(ee)&&!isNaN(Re))return $>=ee&&$<=Re;if(isNaN(ee)){if(!isNaN(Re))return $<=Re}else return $>=ee}let ne=(0,y3.default)(Y);if(ne.isValid()){let ee=(0,y3.default)(j.low||"0000-00-00T00:00:00.000Z"),Re=(0,y3.default)(j.high||"9999-00-00T00:00:00.000Z");if(ee.isValid()&&Re.isValid())return ne.isAfter(ee)&&ne.isBefore(Re)||ne.isSame(ee)||ne.isSame(Re);if(ee.isValid())return ne.isAfter(ee)||ne.isSame(ee);if(Re.isValid())return ne.isBefore(Re)||ne.isSame(Re)}return j.low!=null&&j.high!=null?Y>=j.low&&Y<=j.high:j.low!=null?Y>=j.low:j.high!=null?Y<=j.high:!1}),a=s((Y,j)=>{if(Array.isArray(Y)){for(let ne of Y)if(a(ne,j))return!0;return!1}if(Y&&typeof Y=="object"&&typeof j=="string")return Y._id===j;if(Y===j)return!0;if(Y==null&&j!=null||Y!=null&&j==null)return!1;let $=(0,y3.default)(Y);if($.isValid()){let ne=(0,y3.default)(j);if(ne.isValid())return $.isSame(ne)}return!1},"_valueMatches"),u=s(Y=>(...j)=>!Y(...j),"not"),c=r("equal",a),l=r("notEqual",u(a)),f=s(Y=>typeof Y=="string"?Y==="":Array.isArray(Y)?Y.length===0:Y&&typeof Y=="object"?Object.keys(Y).length===0:Y==null,"_empty"),d=r("empty",f),m=r("notEmpty",u(f)),A=s((Y,j)=>(typeof j=="string"&&(j=j.split(",")),typeof Y=="number"&&(j=j.map($=>parseFloat($))),Array.isArray(j)?j.some($=>a(Y,$)):!1),"_oneOf"),T=r("oneOf",A),S=r("notOneOf",u(A)),b=s(Y=>(j,$)=>!Array.isArray(j)||(typeof $=="string"&&($=$.split(","),typeof j[0]=="number"&&($=$.map(ne=>parseFloat(ne)))),!Array.isArray($))?!1:$.length===0?!0:$[Y](ne=>a(j,ne)),"_contains"),C=r("contains",(Y,j)=>Array.isArray(j)&&j.length===0?!0:b("every")(Y,j)),B=r("notContains",(Y,j)=>Array.isArray(j)&&j.length===0?!0:u(b("every"))(Y,j)),k=r("containsAny",b("some")),L=r("$and",(Y,j)=>{if(!j.length)return!1;for(let $ of j)if(!cle([Y],$).length)return!1;return!0}),x=r("$or",(Y,j)=>{if(!j.length)return!1;for(let $ of j)if(cle([Y],{...$,allOr:!0}).length)return!0;return!1}),V=s(Y=>{let j={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:d,notEmpty:m,oneOf:T,notOneOf:S,contains:C,containsAny:k,notContains:B,$and:L,$or:x},$=Object.entries(e||{}).filter(([ne,ee])=>!["allOr","onEmptyFilter"].includes(ne)&&ee&&Object.keys(ee).length>0).map(([ne])=>j[ne]?.(Y)??!1);return F4e(e)?e.allOr?$.some(ne=>ne===!0):$.every(ne=>ne===!0):!0},"docMatch");return t.filter(V)}s(cle,"runQuery");function P6t(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(P6t,"sort");function L6t(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(L6t,"limit");var F4e=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of D6t)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of Emi){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var _y={};Ui(_y,{applications:()=>H4e,automations:()=>Y4e,screens:()=>K4e,users:()=>$4e});var H4e={};Ui(H4e,{getDevAppID:()=>Rmi,getProdAppID:()=>r$});ur();var V4e=Nx("app"),t$=Nx("app_dev");function Rmi(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(t$))return t;let e=t.split(V4e);e.shift();let r=e.join(V4e);return`${t$}${r}`}s(Rmi,"getDevAppID");function r$(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(t$))return t;let e=t.split(t$);e.shift();let r=e.join(t$);return`${V4e}${r}`}s(r$,"getProdAppID");var Y4e={};Ui(Y4e,{checkForCollectStep:()=>Nmi,isAppAction:()=>wmi,isRowAction:()=>Cmi,isWebhookAction:()=>bmi});ur();function Cmi(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Cmi,"isRowAction");function bmi(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(bmi,"isWebhookAction");function wmi(t){return t.definition.trigger?.stepId==="APP"}s(wmi,"isAppAction");function M6t(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(x2t(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(M6t(r))return!0}}return!1}s(M6t,"hasCollectBlockRecursive");function Nmi(t){return M6t(t.definition.steps)}s(Nmi,"checkForCollectStep");var $4e={};Ui($4e,{canCreateApps:()=>Omi,containsUserID:()=>Mmi,getGlobalUserID:()=>Lmi,getUserAppGroups:()=>Umi,hasAdminPermissions:()=>z4e,hasAppBuilderPermissions:()=>fle,hasBuilderPermissions:()=>kmi,hasCreatorPermissions:()=>dle,isAdmin:()=>i$,isAdminOrBuilder:()=>vmi,isAdminOrGlobalBuilder:()=>Dmi,isAdminOrWorkspaceBuilder:()=>xmi,isBuilder:()=>W4e,isCreator:()=>Pmi,isGlobalBuilder:()=>lle,userAppAccessList:()=>Fmi});ur();function W4e(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(r$(e))):!1}s(W4e,"isBuilder");function lle(t){return W4e(t)&&!fle(t)||i$(t)}s(lle,"isGlobalBuilder");function Omi(t){return lle(t)||dle(t)}s(Omi,"canCreateApps");function i$(t){return t?z4e(t):!1}s(i$,"isAdmin");function xmi(t,e){return t?!!(i$(t)||e&&t.builder?.apps?.includes(r$(e))):!1}s(xmi,"isAdminOrWorkspaceBuilder");function vmi(t,e){return W4e(t,e)||i$(t)}s(vmi,"isAdminOrBuilder");function Dmi(t){return lle(t)||i$(t)}s(Dmi,"isAdminOrGlobalBuilder");function fle(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(fle,"hasAppBuilderPermissions");function Bmi(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(Bmi,"hasAppCreatorPermissions");function kmi(t){return t?t.builder?.global||fle(t)||dle(t):!1}s(kmi,"hasBuilderPermissions");function z4e(t){return t?!!t.admin?.global:!1}s(z4e,"hasAdminPermissions");function dle(t){return t?!!t.builder?.creator:!1}s(dle,"hasCreatorPermissions");function Pmi(t){return t?lle(t)||z4e(t)||dle(t)||fle(t)||Bmi(t):!1}s(Pmi,"isCreator");function Lmi(t){if(typeof t!="string")return t;let e=`ro${"_"}ta_users${"_"}`;return t.startsWith(e)?t.split(e)[1]:t}s(Lmi,"getGlobalUserID");function Mmi(t){return typeof t!="string"?!1:t.includes(`us${"_"}`)}s(Mmi,"containsUserID");function U6t(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(U6t,"getUserGroups");function Umi(t,e,r){let n=r$(t);return U6t(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(Umi,"getUserAppGroups");function Fmi(t,e){let n=U6t(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Fmi,"userAppAccessList");var K4e={};Ui(K4e,{findInSettings:()=>Qmi});function Qmi(t,e){let r=[];function n(i,o=""){if(!(!i||typeof i!="object"))for(let[a,u]of Object.entries(i)){let c=o?`${o}.${a}`:a;u&&(typeof u=="string"&&u.includes(e)?r.push({setting:c,value:u}):typeof u=="object"&&n(u,c))}}return s(n,"recurse"),n(t.props),n(t.onLoad||[],"onLoad"),r}s(Qmi,"findInSettings");ur();var J4e={by_email2:["by_email"],agent_requests_by_updated_at_2:["agent_requests_by_updated_at"]},U0={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},UP=Nx("app"),Gmi=Nx("app_dev"),Kb=Gmi;var s$="_design/sqlite";var jmi=`ro${"_"}ta_users${"_"}`;var uh="default";ur();ur();var X4e=require("crypto"),ple=require("fs"),Hmi=ge(I3()),a$=require("path");var Ymi=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,a$.resolve)((0,a$.join)(__dirname,"..","..","..")),Q6t=!1;!Q6t&&hle()&&!Z4e()&&(require("dotenv").config({path:(0,a$.join)(Ymi,".env")}),Q6t=!0);function Z4e(){return G6t()}s(Z4e,"isTest");function G6t(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(G6t,"isJest");function hle(){return process.env.NODE_ENV!=="production"}s(hle,"isDev");function Wmi(t){if(t)return parseInt(t)}s(Wmi,"parseIntSafe");var R3={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},q6t=!!parseInt(process.env.SELF_HOSTED||"");function zmi(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(zmi,"getAPIEncryptionKey");function $mi(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s($mi,"httpLogging");function Kmi(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,ple.existsSync)(l))return l;let f=`${c}/..`;return f===c?null:n(u,f)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,ple.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(hle()&&!Z4e())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(Kmi,"getPackageJsonFields");function Jmi(){return Vx.SERVICE_TYPE==="worker"}s(Jmi,"isWorker");function Xmi(){return Vx.SERVICE_TYPE==="apps"}s(Xmi,"isApps");function Zmi(){return Vx.BUDIBASE_ENVIRONMENT==="QA"}s(Zmi,"isQA");function eAi(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}s(eAi,"getServiceName");var Vx={isTest:Z4e,isJest:G6t,isDev:hle,isWorker:Jmi,isApps:Xmi,isQA:Zmi,isProd:s(()=>!hle(),"isProd"),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,X4e.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,X4e.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:zmi(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,MICROSOFT_CLIENT_ID:process.env.MICROSOFT_CLIENT_ID,MICROSOFT_CLIENT_SECRET:process.env.MICROSOFT_CLIENT_SECRET,MICROSOFT_TENANT_ID:process.env.MICROSOFT_TENANT_ID,RAG_SHAREPOINT_DEFAULT_SCOPE:process.env.RAG_SHAREPOINT_DEFAULT_SCOPE||"offline_access User.Read https://graph.microsoft.com/Sites.Read.All",SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:q6t,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS:process.env.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||R3.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||R3.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||R3.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||R3.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||R3.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||R3.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:eAi(),LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:$mi(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:q6t?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING:process.env.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING,...Kmi(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Vx[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Wmi(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1",COUCH_DB_SQS_PORT:process.env.COUCH_DB_SQS_PORT||"4984"};for(let[t,e]of Object.entries(Vx))e==="0"&&(Vx[t]=0),e==="false"&&(Vx[t]=0);var dt=Vx;var u$="-";function eje(){let t=dt.REDIS_PASSWORD,e=dt.REDIS_USERNAME,r=dt.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(eje,"getRedisConnectionDetails");function j6t(){return{slotsRefreshTimeout:2e3,dnsLookup:s((t,e)=>e(null,t),"dnsLookup"),redisOptions:{...C3()}}}s(j6t,"getRedisClusterOptions");function C3(){let{host:t,password:e,port:r,username:n}=eje(),i=dt.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(C3,"getRedisOptions");function V6t(t){let e=t.split(u$);return e.length>=2?(e.shift(),e.join(u$)):e[0]}s(V6t,"removeDbPrefix");var OIr=ge(require("events"));Wx();function UI(){return Jb().replace(/-/g,"")}s(UI,"newid");var pAi=require("bcrypt"),Leu=dt.SALT_ROUNDS||10;async function hWt(t,e){return pAi.compare(t,e)}s(hWt,"compare");ur();var Ves=ge(sVe());var El={};Ui(El,{DEFAULT_TENANT_ID:()=>uh,baseGlobalDBName:()=>zfe,doInAutomationContext:()=>rvi,doInContext:()=>SHe,doInEnvironmentContext:()=>hvi,doInFeatureFlagOverrideContext:()=>LZt,doInIPContext:()=>kZt,doInIdentityContext:()=>zle,doInLicenseContext:()=>ivi,doInScimContext:()=>pvi,doInSelfHostTenantUsingCloud:()=>nvi,doInTenant:()=>iw,doInWorkspaceContext:()=>avi,doInWorkspaceMigrationContext:()=>cvi,ensureSnippetContext:()=>PZt,getAuditLogDBName:()=>DZt,getAuditLogsDB:()=>mvi,getAutomationId:()=>IHe,getCurrentContext:()=>tL,getDevWorkspaceDB:()=>_vi,getDevWorkspaceId:()=>fvi,getEnvironmentVariables:()=>gvi,getFeatureFlagOverrides:()=>OHe,getFeatureFlags:()=>wHe,getGlobalDB:()=>lp,getGlobalDBName:()=>rK,getIP:()=>RHe,getIdentity:()=>Jx,getLicense:()=>svi,getOrThrowWorkspaceId:()=>lvi,getPlatformURL:()=>THe,getProdWorkspaceDB:()=>Avi,getProdWorkspaceId:()=>dvi,getScimDBName:()=>Xxi,getSelfHostCloudDB:()=>ovi,getTableForView:()=>Evi,getTenantIDFromWorkspaceID:()=>$3,getTenantId:()=>Hs,getWorkspaceDB:()=>CHe,getWorkspaceId:()=>uA,identity:()=>I$,isDevWorkspace:()=>MZt,isMultiTenant:()=>eL,isProdWorkspace:()=>Tvi,isScim:()=>bHe,isSelfHostUsingCloud:()=>$fe,isTenancyEnabled:()=>evi,isTenantIdSet:()=>Zxi,setFeatureFlags:()=>NHe,setTableForView:()=>yvi});var I$={};Ui(I$,{doInAccountContext:()=>vSi,doInIdentityContext:()=>aVe,doInUserContext:()=>Lzt,getAccountUserId:()=>Mzt,getIdentity:()=>Pzt});ur();function Pzt(){return Jx()}s(Pzt,"getIdentity");function aVe(t,e){return zle(t,e)}s(aVe,"doInIdentityContext");function Lzt(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return aVe(n,r)}s(Lzt,"doInUserContext");function vSi(t,e){let r=Mzt(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return aVe(i,e)}s(vSi,"doInAccountContext");function Mzt(t){let e;return Uqe(t)?e=t.budibaseUserId:e=t.accountId,e}s(Mzt,"getAccountUserId");var qP=s(()=>uVe(dt.COUCH_DB_URL,{user:dt.COUCH_DB_USERNAME||"",password:dt.COUCH_DB_PASSWORD||""}),"getCouchInfo"),uVe=s((t,e)=>{let r=Uzt(t),n,i;if(r.auth?.username)n=r.auth.username;else if(e?.user)n=e?.user;else throw new Error("CouchDB username not set");if(r.auth?.password)i=r.auth.password;else if(e?.password)i=e?.password;else throw new Error("CouchDB password not set");let o=Buffer.from(`${n}:${i}`).toString("base64"),a=dt.COUCH_DB_SQL_URL;if(!a&&r.url){let u=new URL(r.url);u.port=dt.COUCH_DB_SQS_PORT,a=u.toString().replace(/\/$/,"")}return{url:r.url,sqlUrl:Uzt(a).url,auth:{username:n,password:i},cookie:`Basic ${o}`}},"parseCouchConnection"),Uzt=s((t=dt.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let f=l.slice(0,-1).join("@");if(f.includes(":")){let d=f.split(":");r=d[0],n=d.slice(1).join(":")}else r=f}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var OZt=ge(IZt());ur();var RZt=ge(require("node-fetch"));function Yfe(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(Yfe,"checkSlashesInUrl");async function AHe({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,RZt.default)(Yfe(encodeURI(t)),i)}s(AHe,"directCouchUrlCall");var jxi=ge(require("pouchdb"));var Vxi,Hxi=!1;var Yxi=s(()=>{if(!Hxi)throw new Error("init has not been called")},"checkInitialised");function ov(t,e){Yxi();let r=new Vxi(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(ov,"getPouchDB");var qc=ge(require("dd-trace"));var tK=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return qc.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return qc.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return qc.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return qc.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return qc.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return qc.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return qc.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return qc.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return qc.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return qc.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return qc.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return qc.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return qc.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return qc.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return qc.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return qc.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return qc.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return qc.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return qc.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return qc.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return qc.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};ur();var eau=`${"_"}${"_"}`;var tau=encodeURIComponent(" ");function _He(t,e,r){if(!dt.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(_He,"sqlLog");var bZt="Database does not exist.";function wZt(t){return(0,OZt.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(wZt,"buildNano");var av=class extends Error{static{s(this,"CouchDBError")}constructor(e,r){super(e);let n=r.status||r.statusCode||500;this.status=n,this.statusCode=n,this.reason=r.reason||"Unknown",this.name=r.name,this.errid=r.errid||"Unknown",this.description=r.description||"Unknown",this.error=r.error||"Not found"}};var Wfe=class t{constructor(e,r,n){this.couchInfo=qP();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=uVe(n),this.instanceNano=wZt(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=qP();t.nano=wZt(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await AHe({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new av(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===bZt)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new av(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new av(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(f=>o(f)).map(f=>f.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(gFt(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new av(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=UI()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===bZt)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Yfe(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await AHe(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new av("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${s$}`;return _He("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(s$)){let e=await this.get(s$);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new av(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return ov(this.name).dump(e,r)}async load(e){return ov(this.name).load(e)}async createIndex(e){return ov(this.name).createIndex(e)}async deleteIndex(e){return ov(this.name).deleteIndex(e)}async getIndexes(){return ov(this.name).getIndexes()}};function G0(t,e){return new tK(new Wfe(t,e))}s(G0,"getDB");var Kxi="No app provided";function EHe(t){if(!t)throw Kxi;return t.startsWith(Kb)}s(EHe,"isDevWorkspaceID");function yHe(t){if(!t||t.startsWith(Kb))return t;let e=t.split(UP);e.shift();let r=e.join(UP);return`${Kb}${r}`}s(yHe,"getDevWorkspaceID");function z3(t){if(!t||!t.startsWith(Kb))return t;let e=t.split(Kb);e.shift();let r=e.join(Kb);return`${UP}${r}`}s(z3,"getProdWorkspaceID");var xZt=require("async_hooks");var Vl=class t{static{s(this,"Context")}static{this.storage=new xZt.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var vZt=null;function rK(t){return t||(t=Hs()),zfe(t)}s(rK,"getGlobalDBName");function DZt(t){return t||(t=Hs()),t===uh?U0.AUDIT_LOGS.name:`${t}${"_"}${U0.AUDIT_LOGS.name}`}s(DZt,"getAuditLogDBName");function Xxi(t){return t||(t=Hs()),t===uh?U0.SCIM_LOGS.name:`${t}${"_"}${U0.SCIM_LOGS.name}`}s(Xxi,"getScimDBName");function zfe(t){return!t||t===uh?U0.GLOBAL.name:`${t}${"_"}${U0.GLOBAL.name}`}s(zfe,"baseGlobalDBName");function THe(){return dt.PLATFORM_URL}s(THe,"getPlatformURL");function eL(){return!!dt.MULTI_TENANCY}s(eL,"isMultiTenant");function Zxi(){return!!Vl.get()?.tenantId}s(Zxi,"isTenantIdSet");function evi(){return dt.MULTI_TENANCY}s(evi,"isTenancyEnabled");function $3(t){if(!t)return;if(!eL())return uh;let e=t.split("_"),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s($3,"getTenantIDFromWorkspaceID");function tvi(t){let e;try{e=Vl.get()}catch{e={}}return e={...e,...t},e}s(tvi,"updateContext");async function j0(t,e){uvi();let r=tvi(t);return Vl.run(r,e)}s(j0,"newContext");async function rvi(t){return await PZt(),await j0({tenantId:$3(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(rvi,"doInAutomationContext");async function SHe(t,e){let r=$3(t);return j0({tenantId:r,appId:t},e)}s(SHe,"doInContext");async function iw(t,e){return dt.MULTI_TENANCY||(t=t||uh),j0(t?{tenantId:t}:{},e)}s(iw,"doInTenant");async function nvi(t,e){return j0({tenantId:t,isSelfHostUsingCloud:!0},e)}s(nvi,"doInSelfHostTenantUsingCloud");async function ivi(t,e){return j0({license:t},e)}s(ivi,"doInLicenseContext");function svi(){return Vl.get()?.license}s(svi,"getLicense");function $fe(){return!!Vl.get()?.isSelfHostUsingCloud}s($fe,"isSelfHostUsingCloud");function ovi(){let t=Vl.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return G0(U0.SELF_HOST_CLOUD.name)}s(ovi,"getSelfHostCloudDB");async function avi(t,e){return BZt(t,e)}s(avi,"doInWorkspaceContext");async function BZt(t,e,r){if(!t)throw new Error("workspaceId is required");let n=$3(t),i={appId:t,...r};return n&&(i.tenantId=n),j0(i,e)}s(BZt,"_doInWorkspaceContext");async function zle(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),j0(r,e)}s(zle,"doInIdentityContext");function uvi(){if(Vl.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(uvi,"guardMigration");async function cvi(t,e){return BZt(t,e,{isMigrating:!0})}s(cvi,"doInWorkspaceMigrationContext");function Jx(){try{return Vl.get()?.identity}catch{}}s(Jx,"getIdentity");function Hs(){if(!eL())return uh;let e=Vl.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(Hs,"getTenantId");function IHe(){return Vl.get()?.automationId}s(IHe,"getAutomationId");function uA(){let e=Vl.get()?.appId;return!e&&dt.isTest()&&vZt?vZt:e}s(uA,"getWorkspaceId");function lvi(){let t=uA();if(!t)throw new Error("Workspace id not set");return t}s(lvi,"getOrThrowWorkspaceId");function RHe(){return Vl.get()?.ip}s(RHe,"getIP");var fvi=s(()=>{let t=uA();if(!t)throw new Error("Could not get workspaceId");return yHe(t)},"getDevWorkspaceId"),dvi=s(()=>{let t=uA();if(!t)throw new Error("Could not get workspaceId");return z3(t)},"getProdWorkspaceId");function hvi(t,e){if(!t)throw new Error("Must supply environment variables.");return j0({environmentVariables:t},e)}s(hvi,"doInEnvironmentContext");function pvi(t){return j0({isScim:!0},t)}s(pvi,"doInScimContext");function kZt(t,e){return j0({ip:t},e)}s(kZt,"doInIPContext");async function PZt(){let t=tL();if(!t||t.snippets)return;let e,r=CHe();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(PZt,"ensureSnippetContext");function gvi(){let t=Vl.get();return t.environmentVariables?t.environmentVariables:null}s(gvi,"getEnvironmentVariables");function lp(){let t=Vl.get();if(!t||dt.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return G0(zfe(t?.tenantId))}s(lp,"getGlobalDB");function mvi(){if(!Hs())throw new Error("No tenant ID found - cannot open audit log DB");return G0(DZt())}s(mvi,"getAuditLogsDB");function CHe(t){let e=uA();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if($fe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return G0(e,t)}s(CHe,"getWorkspaceDB");function Avi(t){let e=uA();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return G0(z3(e),t)}s(Avi,"getProdWorkspaceDB");function _vi(t){let e=uA();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return G0(yHe(e),t)}s(_vi,"getDevWorkspaceDB");function bHe(){return!!Vl.get()?.isScim}s(bHe,"isScim");function tL(){try{return Vl.get()}catch{return}}s(tL,"getCurrentContext");function wHe(t){let e=tL();if(e)return e.featureFlagCache?.[t]}s(wHe,"getFeatureFlags");function NHe(t,e){let r=tL();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(NHe,"setFeatureFlags");function OHe(){return tL()?.featureFlagOverrides||{}}s(OHe,"getFeatureFlagOverrides");async function LZt(t,e){return await j0({featureFlagOverrides:t},e)}s(LZt,"doInFeatureFlagOverrideContext");function Evi(t){let e=tL();if(e)return e.viewToTableCache?.[t]}s(Evi,"getTableForView");function yvi(t,e){let r=tL();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(yvi,"setTableForView");function MZt(){let t=uA();return EHe(t)}s(MZt,"isDevWorkspace");function Tvi(){return!MZt()}s(Tvi,"isProdWorkspace");var $pe=ge(ytr());var zpe=require("dd-trace"),spr=ge(I3());var ipr;if(dt.MOCK_REDIS)try{ipr=npr()}catch{console.log("Mock redis unavailable")}async function Res(t=0){return await zpe.tracer.trace("Redis.init",async e=>{if(dt.MOCK_REDIS)return e.addTags({mock:!0}),new ipr(C3());let r;if(dt.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=eje();r=new $pe.Cluster([{host:n,port:i}],j6t())}else r=new $pe.default(C3());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(Res,"init");function Ces(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:V6t(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(Ces,"promisifyStream");function bes(t){return t.isCluster}s(bes,"isCluster");var v$e=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await zpe.tracer.trace("RedisWrapper.init",async n=>{let i=await Res(r);return r&&!dt.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return zpe.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${u$}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${u$}${e}`;let n;bes(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await Ces(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(e){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:e}),this.client.keys(this.prefixed(e))))}async exists(e){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:e}),await this.client.exists(this.prefixed(e))))}async get(e){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:e});let n=await this.client.get(this.prefixed(e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}})}async bulkGet(e){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:e.length}),e.length===0)return{};let n=await this.client.mget(e.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,spr.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e}),await this.client.eval(`
|
|
4415
|
+
`),a=o[2]&&o[2].indexOf("Up")!==-1;a&&(console.log(Fi("Stopping services, this may take a moment.")),await rce.default.stop()),console.log(Fi("Beginning update, this may take a few minutes."));let u;n?u=uei:u=aei,await rce.default.pullMany(u,{log:!0}),a&&(console.log(gu("Update complete, restarting services...")),await Gq())})}s(Nqt,"update");var Oqt=new OI("hosting").addHelp("Controls self hosting on the Budibase platform.").addSubOption("--init [type]","Configure a self hosted platform in current directory, type can be unspecified, 'quick' or 'do'. Use --single for a single-image deployment.",tce).addSubOption("--start","Start the configured platform in current directory.",Gq).addSubOption("--status","Check the status of currently running services.",wqt).addSubOption("--stop","Stop the configured platform in the current directory.",Cqt).addSubOption("--update","Update the Budibase images to the latest version.",Nqt).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",Zue).addSubOption("--gen-user","Create an admin user automatically as part of first start.",ece).addSubOption("--single","Specify this with init or update to target a single-image deployment (also supports --init single).");Ox();var i0=ge(require("fs")),bQ=require("path");var nce=ge(require("pouchdb"));hd();var xqt=ge(require("node-fetch"));function ice(t){let e;t?e={prefix:t}:e={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return nce.default.plugin(r.plugin),nce.default.adapter("writableStream",r.adapters.writableStream),nce.default.defaults(e)}s(ice,"getPouch");async function vqt(t){let e=await(0,xqt.default)(Oqe(encodeURI(`${t}/_all_dbs`)),{method:"GET"});if(e.status===200)return await e.json();throw"Cannot connect to CouchDB instance"}s(vqt,"getAllDbs");hd();var IWn=ge(require("dotenv")),WBt=ge(require("fs"));gP();ur();ur();var jq={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},J9={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var Jm={Equals:{value:"equal",label:"Equals"},NotEquals:{value:"notEqual",label:"Not equals"},Empty:{value:"empty",label:"Is empty"},NotEmpty:{value:"notEmpty",label:"Is not empty"},StartsWith:{value:"string",label:"Starts with"},Like:{value:"fuzzy",label:"Like"},MoreThan:{value:"rangeLow",label:"More than or equal to"},LessThan:{value:"rangeHigh",label:"Less than or equal to"},Contains:{value:"contains",label:"Contains"},NotContains:{value:"notContains",label:"Does not contain"},In:{value:"oneOf",label:"Is in"},NotIn:{value:"notOneOf",label:"Is not in"},ContainsAny:{value:"containsAny",label:"Has any"}},Dqt={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var T3={};Ui(T3,{ColumnSplitter:()=>U4e,NoEmptyFilterStrings:()=>B6t,buildQuery:()=>k6t,cleanupQuery:()=>q4e,fixupFilterArrays:()=>j4e,getKeyNumbering:()=>G4e,getValidOperatorsForType:()=>ymi,hasFilters:()=>F4e,limit:()=>L6t,recurseLogicalOperators:()=>Q4e,removeKeyNumbering:()=>dce,runQuery:()=>cle,search:()=>Imi,sort:()=>P6t,splitFiltersArray:()=>hce});ur();var y3=ge(s3e());var kx={};Ui(kx,{filterValueToLabel:()=>tii,hasSchema:()=>rii,isSupportedUserSearch:()=>VGt,nameToUrl:()=>aii,parallelForeach:()=>eii,processSearchFilters:()=>E3e,toMap:()=>iii,trimOtherProps:()=>nii,unreachable:()=>Zni});ur();var jGt=ge(qGt());var Xni=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function Zni(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(Zni,"unreachable");async function eii(t,e,r){let n=[],i=Symbol.asyncIterator in t,o=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),a=s(async()=>{let u=await(i?o.next():Promise.resolve(o.next()));for(;!u.done;)await e(u.value),u=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}s(eii,"parallelForeach");function tii(){return Object.keys(Jm).reduce((t,e)=>{let n=Jm[e];return t[n.value]=n.label,t},{})}s(tii,"filterValueToLabel");function rii(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(rii,"hasSchema");function nii(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(nii,"trimOtherProps");function VGt(t){let e=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(Yue(o)){for(let l of t[o].conditions)if(!VGt(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s(VGt,"isSupportedUserSearch");function E3e(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=hce(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,jGt.default)(i,Xni);return o.field=dce(o.field),o})}]}}s(E3e,"processSearchFilters");function iii(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(iii,"toMap");var sii=s(t=>t?t.trim():null,"resolveWorkspaceName"),oii=s(t=>{let e,r=sii(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),aii=s(t=>{let e=oii(t);return uii(e)},"nameToUrl"),uii=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var $b={};Ui($b,{accountPortalAccountUrl:()=>N4e,accountPortalBillingUrl:()=>O4e,accountPortalUpgradeUrl:()=>x4e,agentChatUrl:()=>L4e,appAgentUrl:()=>ale,appChatUrl:()=>ole,applyBaseUrl:()=>C6t,builderAppsUrl:()=>P4e,builderSettingsAuthUrl:()=>B4e,builderSettingsEmailUrl:()=>D4e,builderSettingsPeopleUsersUrl:()=>k4e,builderWorkspacesUrl:()=>v4e,cancelableTimeout:()=>HGt,cron:()=>nmi,deepGet:()=>y3e,duplicateName:()=>Jgi,escapeHtml:()=>hii,formatBytes:()=>rmi,getNextPreviewDevice:()=>zgi,getPreviewDeviceIcon:()=>$gi,getPreviewModalDevice:()=>Kgi,getSequentialName:()=>Xgi,getUserColor:()=>lii,getUserInitials:()=>cii,getUserLabel:()=>fii,isEnvironmentVariableKey:()=>O6t,isGoogleSheets:()=>mii,isSQL:()=>Aii,lists:()=>b4e,normaliseSafeCssColor:()=>Eii,normalizeForComparison:()=>pii,retry:()=>_ii,roles:()=>C4e,schema:()=>Zz,structuredOutput:()=>E4e,urlHelpers:()=>N6t,views:()=>R4e,wait:()=>T3e,withTimeout:()=>dii});var y3e=s((t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},"deepGet"),cii=s(t=>{if(!t)return"?";let e="";return e+=t.firstName?t.firstName[0]:"",e+=t.lastName?t.lastName[0]:"",e!==""?e:t.email?.[0]||"U"},"getUserInitials"),lii=s(t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),fii=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function HGt(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(HGt,"cancelableTimeout");async function dii(t,e){let[r,n]=HGt(t),i=await Promise.race([e(),r]);return n(),i}s(dii,"withTimeout");var hii=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml"),pii=s(t=>t.toLowerCase().trim(),"normalizeForComparison");ur();function mii(t){return t==="GOOGLE_SHEETS"}s(mii,"isGoogleSheets");function Aii(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(Aii,"isSQL");async function T3e(t){return new Promise(e=>setTimeout(e,t))}s(T3e,"wait");async function _ii(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await T3e(o);try{return await t()}catch(a){n=a}}throw n}s(_ii,"retry");var Eii=s(t=>{if(t==null||t.trim()==="")return;let e=t.trim();if(e.includes(";")||/\burl\s*\(/i.test(e))throw new Error("Color is invalid.");return e},"normaliseSafeCssColor");var d6t=ge(BI()),h6t=ge(A4e());var f6t="(Input cron: ",sgi={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function ogi(t,e){return new Intl.DateTimeFormat("en-GB",{weekday:"short",day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:e}).format(t)}s(ogi,"formatExecutionDate");function agi(t){let e=[];for(let r of t){r.includes(f6t)&&(r=r.split(f6t)[0].trim());for(let[n,i]of Object.entries(sgi))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(agi,"improveErrors");function p6t(t,e=4,r){let n=h6t.default.parseExpression(t,r?{tz:r}:void 0),i=[];for(let o=0;o<e;o++)i.push(ogi(n.next().toDate(),r));return i}s(p6t,"getNextExecutionDates");function g6t(t){let e=(0,d6t.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:agi(e.getError())}}s(g6t,"validate");var Zz={};Ui(Zz,{decodeNonAscii:()=>_4e,encodeNonAscii:()=>lgi,isDeprecatedSingleUserColumn:()=>ugi,isNumeric:()=>fgi,isRequired:()=>cgi});ur();function ugi(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(ugi,"isDeprecatedSingleUserColumn");function cgi(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(cgi,"isRequired");function lgi(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(lgi,"encodeNonAscii");function _4e(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(_4e,"decodeNonAscii");function fgi(t){return t.type==="number"||t.type==="bigint"}s(fgi,"isNumeric");var E4e={};Ui(E4e,{normalizeSchemaForStructuredOutput:()=>dgi});function dgi(t){function e(n){if(typeof n!="object"||n===null)return n;let i={...n};if(i.type==="object"&&(i.additionalProperties=!1,i.properties&&typeof i.properties=="object"&&i.properties!==null)){let o=i.properties,a=[],u={};for(let[f,d]of Object.entries(o))if(typeof d=="object"&&d!==null){let m=d;if(m.required===!0){a.push(f);let{required:A,...T}=m;u[f]=e(T)}else u[f]=e(m)}else u[f]=d;i.properties=u;let c=Array.isArray(i.required)?i.required:[],l=[...new Set([...c,...a])];l.length>0?i.required=l:i.required=Object.keys(u)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=e(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>e(a)));return i}s(e,"processSchema");let r=e(t);return r.type==="array"?r={type:"object",properties:{items:r},required:["items"],additionalProperties:!1}:r.type!=="object"&&(r={type:"object",properties:{value:r},required:["value"],additionalProperties:!1}),r}s(dgi,"normalizeSchemaForStructuredOutput");var R4e={};Ui(R4e,{basicFields:()=>jgi,calculationFields:()=>Ggi,hasCalculationFields:()=>qgi,isBasicViewField:()=>Fgi,isCalculationField:()=>e$,isCalculationView:()=>Qgi,isV2:()=>Vgi,isVisible:()=>R6t});ur();var I4e=ge(S4e());function e$(t){return"calculationType"in t}s(e$,"isCalculationField");function Fgi(t){return!e$(t)}s(Fgi,"isBasicViewField");function Qgi(t){return t.type==="calculation"}s(Qgi,"isCalculationView");function qgi(t){return Object.values(t.schema||{}).some(e$)}s(qgi,"hasCalculationFields");function Ggi(t){return(0,I4e.default)(t.schema||{},e$)}s(Ggi,"calculationFields");function R6t(t){return t.visible!==!1}s(R6t,"isVisible");function jgi(t,e){let{visible:r=!0}=e||{};return(0,I4e.default)(t.schema||{},n=>!e$(n)&&(!r||R6t(n)))}s(jgi,"basicFields");function Vgi(t){return t.version===2}s(Vgi,"isV2");var C4e={};Ui(C4e,{checkForRoleInheritanceLoops:()=>Ygi});ur();function Hgi(t){return`role${"_"}${t}`}s(Hgi,"prefixForCheck");function Ygi(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=Hgi(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s(Ygi,"checkForRoleInheritanceLoops");var b4e={};Ui(b4e,{punctuateList:()=>Wgi});function Wgi(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}s(Wgi,"punctuateList");var w4e=["desktop","tablet","mobile"],zgi=s(t=>{let e=w4e.indexOf(t||"desktop"),n=((e===-1?0:e)+1)%w4e.length;return w4e[n]},"getNextPreviewDevice"),$gi=s(t=>t==="mobile"?"device-mobile-camera":t==="tablet"?"device-tablet-camera":"monitor","getPreviewDeviceIcon"),Kgi=s(t=>t&&t!=="desktop"?t:null,"getPreviewModalDevice");var Jgi=s((t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];e.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(o.push(parseInt(c[1])),!0):!1}),o.sort((u,c)=>u-c);let a;if(o.length===0)a=1;else{for(let u=0;u<o.length;u++)if(o[u]!==u+1){a=u+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),Xgi=s((t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let o=e.trim(),a=n?`${e}1`:o;if(!t?.length)return a;let u=0;return t.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(o))return;let f=l.split(o);if(f.length!==2)return;f[1].trim()===""&&(f[1]="1");let d=parseInt(f[1]);d>u&&(u=d)}),u===0?a:`${e}${i}${u+1}`},"getSequentialName");var Zgi=/{?{{([^{].*?)}}}?/g;function C6t(t,e){if(!e)return t;let r=t.match(Zgi)??[],n=[],i=t;for(let l of r){let f=`:${l}`;i.includes(f)&&(n.push(l),i=i.replace(f,":0"))}let o=s(l=>`__hbs${l}__`,"placeholder"),a=r.filter(l=>!n.includes(l));i=a.reduce((l,f,d)=>l.replace(f,o(d)),i);let u=s(l=>a.reduce((f,d,m)=>f.replace(o(m),d),l),"restore"),c=e.replace(/\/$/,"");try{let l=new URL(i),f=l.pathname==="/"?"":l.pathname;return c+u(f+l.search+l.hash)}catch{let l=u(i);return l.startsWith("/")?c+l:c}}s(C6t,"applyBaseUrl");var b6t=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),emi=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),zb=s((t,e)=>{let r=b6t(e);if(!t)return r;let n=emi(t);return r?`${n}${r}`:n},"joinBaseAndPath"),tmi=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),w6t=s(t=>tmi(b6t(t)),"normalizeAppUrl"),N4e=s(t=>zb(t,J9.ACCOUNT),"accountPortalAccountUrl"),O4e=s((t,e)=>{let r=typeof e=="string"||e==null?{tenantId:e}:e,n=zb(t,J9.BILLING),i=new URLSearchParams;r?.tenantId&&i.set("tenantId",r.tenantId),r?.purchasePrepaidAiCredits&&i.set("purchasePrepaidAiCredits","1");let o=i.toString();return o?`${n}?${o}`:n},"accountPortalBillingUrl"),x4e=s((t,e)=>{if(e){let r=zb(t,J9.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return zb(t,J9.UPGRADE)},"accountPortalUpgradeUrl"),v4e=s(t=>zb(t,jq.WORKSPACES),"builderWorkspacesUrl"),D4e=s(t=>zb(t,jq.SETTINGS_EMAIL),"builderSettingsEmailUrl"),B4e=s(t=>zb(t,jq.SETTINGS_AUTH),"builderSettingsAuthUrl"),k4e=s(t=>zb(t,jq.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),P4e=s(t=>zb(t,jq.APPS),"builderAppsUrl"),ole=s(t=>`/app-chat${w6t(t)}`,"appChatUrl"),ale=s((t,e)=>`${w6t(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),L4e=s((t,e)=>ole(ale(t,e)),"agentChatUrl"),N6t={accountPortalAccountUrl:N4e,accountPortalBillingUrl:O4e,accountPortalUpgradeUrl:x4e,builderWorkspacesUrl:v4e,builderSettingsEmailUrl:D4e,builderSettingsAuthUrl:B4e,builderSettingsPeopleUsersUrl:k4e,builderAppsUrl:P4e,appChatUrl:ole,appAgentUrl:ale,agentChatUrl:L4e};function rmi(t,e=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,o=typeof t=="string"?parseInt(t,10):t||0;for(;o>=1024&&i<r.length-1&&++i;)o/=1024;return`${o.toFixed(o<10&&i>0?1:0)}${e}${r[i]}`}s(rmi,"formatBytes");function O6t(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(O6t,"isEnvironmentVariableKey");var nmi={getNextExecutionDates:p6t,validate:g6t};var ule=ge(hy()),M4e=ge(tA());var _mi=/{{([^{].*?)}}/g,D6t=Object.values(H9),Emi=[...Object.values(Uq),...Object.values(dP),...Object.values(V9)],ymi=s((t,e,r)=>{let n=Jm,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In,n.NotIn],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:f}=t;c==="string"?f==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||Zz.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In,n.NotIn]:c==="bb_reference"?u=a:c==="barcodeqr"?u=i:c==="link"&&(u=[n.Empty,n.NotEmpty]);let d=r?.tableId?.includes("datasource_plus");return e==="_id"&&d&&(u=[n.Equals,n.NotEquals,n.In,n.NotIn]),u},"getValidOperatorsForType"),B6t=[Jm.StartsWith.value,Jm.Like.value,Jm.Equals.value,Jm.NotEquals.value,Jm.Contains.value,Jm.NotContains.value,Jm.ContainsAny.value,Jm.In.value,Jm.NotIn.value];function Q4e(t,e){for(let r of D6t)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(Q4e,"recurseLogicalOperators");var q4e=s(t=>{for(let e of B6t)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||Tmi(o))&&delete t[e][i]}return t=Q4e(t,q4e),t},"cleanupQuery");function Tmi(t){return Array.isArray(t)&&t.length===0}s(Tmi,"isEmptyArray");var dce=s(t=>G4e(t).key,"removeKeyNumbering"),G4e=s(t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},"getKeyNumbering"),U4e=class{static{s(this,"ColumnSplitter")}constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=G4e(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=_4e(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function Smi(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:o}=t,{value:a}=t;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(_mi)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Wue(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"||r==="notOneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Wue(r)){let l=Dqt[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(cFt(r)||lFt(r)||Wue(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(Smi,"buildCondition");function hce(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(hce,"splitFiltersArray");function k6t(t){if(!t)return{};if(Array.isArray(t)&&(t=E3e(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=v6t(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=k6t(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=hce(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=v6t(n.logicalOperator)),{[u]:{conditions:a.map(Smi).filter(c=>c)}}})},e}s(k6t,"buildQuery");function v6t(t){return t==="all"?"$and":"$or"}s(v6t,"logicalOperatorFromUI");function j4e(t){if(!t)return t;for(let e of Object.values(dP)){let r=t[e];if(!(r==null||!(0,ule.default)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(o=>o.trim()):r[n]=[i]}}return Q4e(t,j4e),t}s(j4e,"fixupFilterArrays");function Imi(t,e){let r=cle(t,e.query);e.sort&&(r=P6t(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=L6t(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(Imi,"search");function cle(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=q4e(e),e=j4e(e),!F4e(e)&&e.onEmptyFilter==="none")return[];let r=s((Y,j)=>$=>{for(let[ne,ee]of Object.entries(e[Y]||{})){let Re=Yue(Y)?$:y3e($,dce(ne)),M=j(Re,ee);if(e.allOr&&M)return!0;if(!e.allOr&&!M)return!1}return!e.allOr},"match"),n=r("string",(Y,j)=>typeof Y!="string"||typeof j!="string"?!1:Y.toLowerCase().startsWith(j.toLowerCase())),i=r("fuzzy",(Y,j)=>typeof Y!="string"||typeof j!="string"?!1:Y.toLowerCase().includes(j.toLowerCase())),o=r("range",(Y,j)=>{if(Y==null||Y===""||((0,ule.default)(j.low)&&(0,M4e.default)(j.low)&&(j.low=void 0),(0,ule.default)(j.high)&&(0,M4e.default)(j.high)&&(j.high=void 0),j.low==null&&j.high==null))return!1;let $=+Y;if(!isNaN($)){let ee=+j.low,Re=+j.high;if(!isNaN(ee)&&!isNaN(Re))return $>=ee&&$<=Re;if(isNaN(ee)){if(!isNaN(Re))return $<=Re}else return $>=ee}let ne=(0,y3.default)(Y);if(ne.isValid()){let ee=(0,y3.default)(j.low||"0000-00-00T00:00:00.000Z"),Re=(0,y3.default)(j.high||"9999-00-00T00:00:00.000Z");if(ee.isValid()&&Re.isValid())return ne.isAfter(ee)&&ne.isBefore(Re)||ne.isSame(ee)||ne.isSame(Re);if(ee.isValid())return ne.isAfter(ee)||ne.isSame(ee);if(Re.isValid())return ne.isBefore(Re)||ne.isSame(Re)}return j.low!=null&&j.high!=null?Y>=j.low&&Y<=j.high:j.low!=null?Y>=j.low:j.high!=null?Y<=j.high:!1}),a=s((Y,j)=>{if(Array.isArray(Y)){for(let ne of Y)if(a(ne,j))return!0;return!1}if(Y&&typeof Y=="object"&&typeof j=="string")return Y._id===j;if(Y===j)return!0;if(Y==null&&j!=null||Y!=null&&j==null)return!1;let $=(0,y3.default)(Y);if($.isValid()){let ne=(0,y3.default)(j);if(ne.isValid())return $.isSame(ne)}return!1},"_valueMatches"),u=s(Y=>(...j)=>!Y(...j),"not"),c=r("equal",a),l=r("notEqual",u(a)),f=s(Y=>typeof Y=="string"?Y==="":Array.isArray(Y)?Y.length===0:Y&&typeof Y=="object"?Object.keys(Y).length===0:Y==null,"_empty"),d=r("empty",f),m=r("notEmpty",u(f)),A=s((Y,j)=>(typeof j=="string"&&(j=j.split(",")),typeof Y=="number"&&(j=j.map($=>parseFloat($))),Array.isArray(j)?j.some($=>a(Y,$)):!1),"_oneOf"),T=r("oneOf",A),S=r("notOneOf",u(A)),b=s(Y=>(j,$)=>!Array.isArray(j)||(typeof $=="string"&&($=$.split(","),typeof j[0]=="number"&&($=$.map(ne=>parseFloat(ne)))),!Array.isArray($))?!1:$.length===0?!0:$[Y](ne=>a(j,ne)),"_contains"),C=r("contains",(Y,j)=>Array.isArray(j)&&j.length===0?!0:b("every")(Y,j)),B=r("notContains",(Y,j)=>Array.isArray(j)&&j.length===0?!0:u(b("every"))(Y,j)),k=r("containsAny",b("some")),L=r("$and",(Y,j)=>{if(!j.length)return!1;for(let $ of j)if(!cle([Y],$).length)return!1;return!0}),x=r("$or",(Y,j)=>{if(!j.length)return!1;for(let $ of j)if(cle([Y],{...$,allOr:!0}).length)return!0;return!1}),V=s(Y=>{let j={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:d,notEmpty:m,oneOf:T,notOneOf:S,contains:C,containsAny:k,notContains:B,$and:L,$or:x},$=Object.entries(e||{}).filter(([ne,ee])=>!["allOr","onEmptyFilter"].includes(ne)&&ee&&Object.keys(ee).length>0).map(([ne])=>j[ne]?.(Y)??!1);return F4e(e)?e.allOr?$.some(ne=>ne===!0):$.every(ne=>ne===!0):!0},"docMatch");return t.filter(V)}s(cle,"runQuery");function P6t(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(P6t,"sort");function L6t(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(L6t,"limit");var F4e=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of D6t)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of Emi){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var _y={};Ui(_y,{automations:()=>Y4e,screens:()=>K4e,users:()=>$4e,workspaces:()=>H4e});var H4e={};Ui(H4e,{getDevWorkspaceID:()=>Rmi,getProdWorkspaceID:()=>r$});ur();var V4e=Nx("app"),t$=Nx("app_dev");function Rmi(t){if(!t)throw new Error("No workspace ID provided");if(t.startsWith(t$))return t;let e=t.split(V4e);e.shift();let r=e.join(V4e);return`${t$}${r}`}s(Rmi,"getDevWorkspaceID");function r$(t){if(!t)throw new Error("No workspace ID provided");if(!t.startsWith(t$))return t;let e=t.split(t$);e.shift();let r=e.join(t$);return`${V4e}${r}`}s(r$,"getProdWorkspaceID");var Y4e={};Ui(Y4e,{checkForCollectStep:()=>Nmi,isAppAction:()=>wmi,isRowAction:()=>Cmi,isWebhookAction:()=>bmi});ur();function Cmi(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Cmi,"isRowAction");function bmi(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(bmi,"isWebhookAction");function wmi(t){return t.definition.trigger?.stepId==="APP"}s(wmi,"isAppAction");function M6t(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(x2t(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(M6t(r))return!0}}return!1}s(M6t,"hasCollectBlockRecursive");function Nmi(t){return M6t(t.definition.steps)}s(Nmi,"checkForCollectStep");var $4e={};Ui($4e,{canCreateApps:()=>Omi,containsUserID:()=>Mmi,getGlobalUserID:()=>Lmi,getUserAppGroups:()=>Umi,hasAdminPermissions:()=>z4e,hasAppBuilderPermissions:()=>fle,hasBuilderPermissions:()=>kmi,hasCreatorPermissions:()=>dle,isAdmin:()=>i$,isAdminOrBuilder:()=>vmi,isAdminOrGlobalBuilder:()=>Dmi,isAdminOrWorkspaceBuilder:()=>xmi,isBuilder:()=>W4e,isCreator:()=>Pmi,isGlobalBuilder:()=>lle,userAppAccessList:()=>Fmi});ur();function W4e(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(r$(e))):!1}s(W4e,"isBuilder");function lle(t){return W4e(t)&&!fle(t)||i$(t)}s(lle,"isGlobalBuilder");function Omi(t){return lle(t)||dle(t)}s(Omi,"canCreateApps");function i$(t){return t?z4e(t):!1}s(i$,"isAdmin");function xmi(t,e){return t?!!(i$(t)||e&&t.builder?.apps?.includes(r$(e))):!1}s(xmi,"isAdminOrWorkspaceBuilder");function vmi(t,e){return W4e(t,e)||i$(t)}s(vmi,"isAdminOrBuilder");function Dmi(t){return lle(t)||i$(t)}s(Dmi,"isAdminOrGlobalBuilder");function fle(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(fle,"hasAppBuilderPermissions");function Bmi(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(Bmi,"hasAppCreatorPermissions");function kmi(t){return t?t.builder?.global||fle(t)||dle(t):!1}s(kmi,"hasBuilderPermissions");function z4e(t){return t?!!t.admin?.global:!1}s(z4e,"hasAdminPermissions");function dle(t){return t?!!t.builder?.creator:!1}s(dle,"hasCreatorPermissions");function Pmi(t){return t?lle(t)||z4e(t)||dle(t)||fle(t)||Bmi(t):!1}s(Pmi,"isCreator");function Lmi(t){if(typeof t!="string")return t;let e=`ro${"_"}ta_users${"_"}`;return t.startsWith(e)?t.split(e)[1]:t}s(Lmi,"getGlobalUserID");function Mmi(t){return typeof t!="string"?!1:t.includes(`us${"_"}`)}s(Mmi,"containsUserID");function U6t(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(U6t,"getUserGroups");function Umi(t,e,r){let n=r$(t);return U6t(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(Umi,"getUserAppGroups");function Fmi(t,e){let n=U6t(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Fmi,"userAppAccessList");var K4e={};Ui(K4e,{findInSettings:()=>Qmi});function Qmi(t,e){let r=[];function n(i,o=""){if(!(!i||typeof i!="object"))for(let[a,u]of Object.entries(i)){let c=o?`${o}.${a}`:a;u&&(typeof u=="string"&&u.includes(e)?r.push({setting:c,value:u}):typeof u=="object"&&n(u,c))}}return s(n,"recurse"),n(t.props),n(t.onLoad||[],"onLoad"),r}s(Qmi,"findInSettings");ur();var J4e={by_email2:["by_email"],agent_requests_by_updated_at_2:["agent_requests_by_updated_at"]},U0={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},UP=Nx("app"),Gmi=Nx("app_dev"),Kb=Gmi;var s$="_design/sqlite";var jmi=`ro${"_"}ta_users${"_"}`;var uh="default";ur();ur();var X4e=require("crypto"),ple=require("fs"),Hmi=ge(I3()),a$=require("path");var Ymi=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,a$.resolve)((0,a$.join)(__dirname,"..","..","..")),Q6t=!1;!Q6t&&hle()&&!Z4e()&&(require("dotenv").config({path:(0,a$.join)(Ymi,".env")}),Q6t=!0);function Z4e(){return G6t()}s(Z4e,"isTest");function G6t(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(G6t,"isJest");function hle(){return process.env.NODE_ENV!=="production"}s(hle,"isDev");function Wmi(t){if(t)return parseInt(t)}s(Wmi,"parseIntSafe");var R3={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},q6t=!!parseInt(process.env.SELF_HOSTED||"");function zmi(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(zmi,"getAPIEncryptionKey");function $mi(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s($mi,"httpLogging");function Kmi(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,ple.existsSync)(l))return l;let f=`${c}/..`;return f===c?null:n(u,f)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,ple.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(hle()&&!Z4e())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(Kmi,"getPackageJsonFields");function Jmi(){return Vx.SERVICE_TYPE==="worker"}s(Jmi,"isWorker");function Xmi(){return Vx.SERVICE_TYPE==="apps"}s(Xmi,"isApps");function Zmi(){return Vx.BUDIBASE_ENVIRONMENT==="QA"}s(Zmi,"isQA");function eAi(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}s(eAi,"getServiceName");var Vx={isTest:Z4e,isJest:G6t,isDev:hle,isWorker:Jmi,isApps:Xmi,isQA:Zmi,isProd:s(()=>!hle(),"isProd"),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,X4e.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,X4e.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:zmi(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,MICROSOFT_CLIENT_ID:process.env.MICROSOFT_CLIENT_ID,MICROSOFT_CLIENT_SECRET:process.env.MICROSOFT_CLIENT_SECRET,MICROSOFT_TENANT_ID:process.env.MICROSOFT_TENANT_ID,RAG_SHAREPOINT_DEFAULT_SCOPE:process.env.RAG_SHAREPOINT_DEFAULT_SCOPE||"offline_access User.Read https://graph.microsoft.com/Sites.Read.All",SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,S3_IGNORE_SELF_SIGNED:process.env.S3_IGNORE_SELF_SIGNED,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_ACCOUNT_PORTAL_URL||process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:q6t,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS:process.env.POSTHOG_FEATURE_FLAGS_POLLING_INTERVAL_MS,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||R3.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||R3.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||R3.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||R3.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||R3.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||R3.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:eAi(),LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:$mi(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:q6t?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING:process.env.OIDC_ALLOW_UNVERIFIED_EMAIL_LINKING,...Kmi(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Vx[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",ENABLE_SCIM_LOGGER:process.env.ENABLE_SCIM_LOGGER,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Wmi(process.env.BSON_BUFFER_SIZE),CUSTOM_CSP_MEDIA_SRC:process.env.CUSTOM_CSP_MEDIA_SRC,CUSTOM_CSP_SCRIPT_SRC:process.env.CUSTOM_CSP_SCRIPT_SRC,CUSTOM_CSP_CONNECT_SRC:process.env.CUSTOM_CSP_CONNECT_SRC,CUSTOM_CSP_IMG_SRC:process.env.CUSTOM_CSP_IMG_SRC,CUSTOM_CSP_FONT_SRC:process.env.CUSTOM_CSP_FONT_SRC,CUSTOM_CSP_FRAME_SRC:process.env.CUSTOM_CSP_FRAME_SRC,OPENROUTER_BASE_URL:process.env.OPENROUTER_BASE_URL||"https://openrouter.ai/api/v1",COUCH_DB_SQS_PORT:process.env.COUCH_DB_SQS_PORT||"4984"};for(let[t,e]of Object.entries(Vx))e==="0"&&(Vx[t]=0),e==="false"&&(Vx[t]=0);var dt=Vx;var u$="-";function eje(){let t=dt.REDIS_PASSWORD,e=dt.REDIS_USERNAME,r=dt.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");e=e||a[0]||void 0,t=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:t,username:e,port:isNaN(o)?6379:o}}s(eje,"getRedisConnectionDetails");function j6t(){return{slotsRefreshTimeout:2e3,dnsLookup:s((t,e)=>e(null,t),"dnsLookup"),redisOptions:{...C3()}}}s(j6t,"getRedisClusterOptions");function C3(){let{host:t,password:e,port:r,username:n}=eje(),i=dt.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(C3,"getRedisOptions");function V6t(t){let e=t.split(u$);return e.length>=2?(e.shift(),e.join(u$)):e[0]}s(V6t,"removeDbPrefix");var OIr=ge(require("events"));Wx();function UI(){return Jb().replace(/-/g,"")}s(UI,"newid");var pAi=require("bcrypt"),Leu=dt.SALT_ROUNDS||10;async function hWt(t,e){return pAi.compare(t,e)}s(hWt,"compare");ur();var Ves=ge(sVe());var El={};Ui(El,{DEFAULT_TENANT_ID:()=>uh,baseGlobalDBName:()=>zfe,doInAutomationContext:()=>rvi,doInContext:()=>SHe,doInEnvironmentContext:()=>hvi,doInFeatureFlagOverrideContext:()=>LZt,doInIPContext:()=>kZt,doInIdentityContext:()=>zle,doInLicenseContext:()=>ivi,doInScimContext:()=>pvi,doInSelfHostTenantUsingCloud:()=>nvi,doInTenant:()=>iw,doInWorkspaceContext:()=>avi,doInWorkspaceMigrationContext:()=>cvi,ensureSnippetContext:()=>PZt,getAuditLogDBName:()=>DZt,getAuditLogsDB:()=>mvi,getAutomationId:()=>IHe,getCurrentContext:()=>tL,getDevWorkspaceDB:()=>_vi,getDevWorkspaceId:()=>fvi,getEnvironmentVariables:()=>gvi,getFeatureFlagOverrides:()=>OHe,getFeatureFlags:()=>wHe,getGlobalDB:()=>lp,getGlobalDBName:()=>rK,getIP:()=>RHe,getIdentity:()=>Jx,getLicense:()=>svi,getOrThrowWorkspaceId:()=>lvi,getPlatformURL:()=>THe,getProdWorkspaceDB:()=>Avi,getProdWorkspaceId:()=>dvi,getScimDBName:()=>Xxi,getSelfHostCloudDB:()=>ovi,getTableForView:()=>Evi,getTenantIDFromWorkspaceID:()=>$3,getTenantId:()=>Hs,getWorkspaceDB:()=>CHe,getWorkspaceId:()=>uA,identity:()=>I$,isDevWorkspace:()=>MZt,isMultiTenant:()=>eL,isProdWorkspace:()=>Tvi,isScim:()=>bHe,isSelfHostUsingCloud:()=>$fe,isTenancyEnabled:()=>evi,isTenantIdSet:()=>Zxi,setFeatureFlags:()=>NHe,setTableForView:()=>yvi});var I$={};Ui(I$,{doInAccountContext:()=>vSi,doInIdentityContext:()=>aVe,doInUserContext:()=>Lzt,getAccountUserId:()=>Mzt,getIdentity:()=>Pzt});ur();function Pzt(){return Jx()}s(Pzt,"getIdentity");function aVe(t,e){return zle(t,e)}s(aVe,"doInIdentityContext");function Lzt(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return aVe(n,r)}s(Lzt,"doInUserContext");function vSi(t,e){let r=Mzt(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return aVe(i,e)}s(vSi,"doInAccountContext");function Mzt(t){let e;return Uqe(t)?e=t.budibaseUserId:e=t.accountId,e}s(Mzt,"getAccountUserId");var qP=s(()=>uVe(dt.COUCH_DB_URL,{user:dt.COUCH_DB_USERNAME||"",password:dt.COUCH_DB_PASSWORD||""}),"getCouchInfo"),uVe=s((t,e)=>{let r=Uzt(t),n,i;if(r.auth?.username)n=r.auth.username;else if(e?.user)n=e?.user;else throw new Error("CouchDB username not set");if(r.auth?.password)i=r.auth.password;else if(e?.password)i=e?.password;else throw new Error("CouchDB password not set");let o=Buffer.from(`${n}:${i}`).toString("base64"),a=dt.COUCH_DB_SQL_URL;if(!a&&r.url){let u=new URL(r.url);u.port=dt.COUCH_DB_SQS_PORT,a=u.toString().replace(/\/$/,"")}return{url:r.url,sqlUrl:Uzt(a).url,auth:{username:n,password:i},cookie:`Basic ${o}`}},"parseCouchConnection"),Uzt=s((t=dt.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let f=l.slice(0,-1).join("@");if(f.includes(":")){let d=f.split(":");r=d[0],n=d.slice(1).join(":")}else r=f}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var OZt=ge(IZt());ur();var RZt=ge(require("node-fetch"));function Yfe(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(Yfe,"checkSlashesInUrl");async function AHe({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,RZt.default)(Yfe(encodeURI(t)),i)}s(AHe,"directCouchUrlCall");var jxi=ge(require("pouchdb"));var Vxi,Hxi=!1;var Yxi=s(()=>{if(!Hxi)throw new Error("init has not been called")},"checkInitialised");function ov(t,e){Yxi();let r=new Vxi(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(ov,"getPouchDB");var qc=ge(require("dd-trace"));var tK=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return qc.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return qc.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return qc.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return qc.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return qc.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return qc.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return qc.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return qc.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return qc.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return qc.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return qc.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return qc.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return qc.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return qc.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return qc.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return qc.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return qc.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return qc.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return qc.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return qc.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return qc.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};ur();var eau=`${"_"}${"_"}`;var tau=encodeURIComponent(" ");function _He(t,e,r){if(!dt.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(_He,"sqlLog");var bZt="Database does not exist.";function wZt(t){return(0,OZt.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(wZt,"buildNano");var av=class extends Error{static{s(this,"CouchDBError")}constructor(e,r){super(e);let n=r.status||r.statusCode||500;this.status=n,this.statusCode=n,this.reason=r.reason||"Unknown",this.name=r.name,this.errid=r.errid||"Unknown",this.description=r.description||"Unknown",this.error=r.error||"Not found"}};var Wfe=class t{constructor(e,r,n){this.couchInfo=qP();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=uVe(n),this.instanceNano=wZt(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=qP();t.nano=wZt(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await AHe({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new av(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===bZt)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new av(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new av(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(f=>o(f)).map(f=>f.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(gFt(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new av(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=UI()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===bZt)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Yfe(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await AHe(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new av("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${s$}`;return _He("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(s$)){let e=await this.get(s$);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new av(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return ov(this.name).dump(e,r)}async load(e){return ov(this.name).load(e)}async createIndex(e){return ov(this.name).createIndex(e)}async deleteIndex(e){return ov(this.name).deleteIndex(e)}async getIndexes(){return ov(this.name).getIndexes()}};function G0(t,e){return new tK(new Wfe(t,e))}s(G0,"getDB");var Kxi="No app provided";function EHe(t){if(!t)throw Kxi;return t.startsWith(Kb)}s(EHe,"isDevWorkspaceID");function yHe(t){if(!t||t.startsWith(Kb))return t;let e=t.split(UP);e.shift();let r=e.join(UP);return`${Kb}${r}`}s(yHe,"getDevWorkspaceID");function z3(t){if(!t||!t.startsWith(Kb))return t;let e=t.split(Kb);e.shift();let r=e.join(Kb);return`${UP}${r}`}s(z3,"getProdWorkspaceID");var xZt=require("async_hooks");var Vl=class t{static{s(this,"Context")}static{this.storage=new xZt.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var vZt=null;function rK(t){return t||(t=Hs()),zfe(t)}s(rK,"getGlobalDBName");function DZt(t){return t||(t=Hs()),t===uh?U0.AUDIT_LOGS.name:`${t}${"_"}${U0.AUDIT_LOGS.name}`}s(DZt,"getAuditLogDBName");function Xxi(t){return t||(t=Hs()),t===uh?U0.SCIM_LOGS.name:`${t}${"_"}${U0.SCIM_LOGS.name}`}s(Xxi,"getScimDBName");function zfe(t){return!t||t===uh?U0.GLOBAL.name:`${t}${"_"}${U0.GLOBAL.name}`}s(zfe,"baseGlobalDBName");function THe(){return dt.PLATFORM_URL}s(THe,"getPlatformURL");function eL(){return!!dt.MULTI_TENANCY}s(eL,"isMultiTenant");function Zxi(){return!!Vl.get()?.tenantId}s(Zxi,"isTenantIdSet");function evi(){return dt.MULTI_TENANCY}s(evi,"isTenancyEnabled");function $3(t){if(!t)return;if(!eL())return uh;let e=t.split("_"),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s($3,"getTenantIDFromWorkspaceID");function tvi(t){let e;try{e=Vl.get()}catch{e={}}return e={...e,...t},e}s(tvi,"updateContext");async function j0(t,e){uvi();let r=tvi(t);return Vl.run(r,e)}s(j0,"newContext");async function rvi(t){return await PZt(),await j0({tenantId:$3(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(rvi,"doInAutomationContext");async function SHe(t,e){let r=$3(t);return j0({tenantId:r,appId:t},e)}s(SHe,"doInContext");async function iw(t,e){return dt.MULTI_TENANCY||(t=t||uh),j0(t?{tenantId:t}:{},e)}s(iw,"doInTenant");async function nvi(t,e){return j0({tenantId:t,isSelfHostUsingCloud:!0},e)}s(nvi,"doInSelfHostTenantUsingCloud");async function ivi(t,e){return j0({license:t},e)}s(ivi,"doInLicenseContext");function svi(){return Vl.get()?.license}s(svi,"getLicense");function $fe(){return!!Vl.get()?.isSelfHostUsingCloud}s($fe,"isSelfHostUsingCloud");function ovi(){let t=Vl.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return G0(U0.SELF_HOST_CLOUD.name)}s(ovi,"getSelfHostCloudDB");async function avi(t,e){return BZt(t,e)}s(avi,"doInWorkspaceContext");async function BZt(t,e,r){if(!t)throw new Error("workspaceId is required");let n=$3(t),i={appId:t,...r};return n&&(i.tenantId=n),j0(i,e)}s(BZt,"_doInWorkspaceContext");async function zle(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),j0(r,e)}s(zle,"doInIdentityContext");function uvi(){if(Vl.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(uvi,"guardMigration");async function cvi(t,e){return BZt(t,e,{isMigrating:!0})}s(cvi,"doInWorkspaceMigrationContext");function Jx(){try{return Vl.get()?.identity}catch{}}s(Jx,"getIdentity");function Hs(){if(!eL())return uh;let e=Vl.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(Hs,"getTenantId");function IHe(){return Vl.get()?.automationId}s(IHe,"getAutomationId");function uA(){let e=Vl.get()?.appId;return!e&&dt.isTest()&&vZt?vZt:e}s(uA,"getWorkspaceId");function lvi(){let t=uA();if(!t)throw new Error("Workspace id not set");return t}s(lvi,"getOrThrowWorkspaceId");function RHe(){return Vl.get()?.ip}s(RHe,"getIP");var fvi=s(()=>{let t=uA();if(!t)throw new Error("Could not get workspaceId");return yHe(t)},"getDevWorkspaceId"),dvi=s(()=>{let t=uA();if(!t)throw new Error("Could not get workspaceId");return z3(t)},"getProdWorkspaceId");function hvi(t,e){if(!t)throw new Error("Must supply environment variables.");return j0({environmentVariables:t},e)}s(hvi,"doInEnvironmentContext");function pvi(t){return j0({isScim:!0},t)}s(pvi,"doInScimContext");function kZt(t,e){return j0({ip:t},e)}s(kZt,"doInIPContext");async function PZt(){let t=tL();if(!t||t.snippets)return;let e,r=CHe();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(PZt,"ensureSnippetContext");function gvi(){let t=Vl.get();return t.environmentVariables?t.environmentVariables:null}s(gvi,"getEnvironmentVariables");function lp(){let t=Vl.get();if(!t||dt.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return G0(zfe(t?.tenantId))}s(lp,"getGlobalDB");function mvi(){if(!Hs())throw new Error("No tenant ID found - cannot open audit log DB");return G0(DZt())}s(mvi,"getAuditLogsDB");function CHe(t){let e=uA();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if($fe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return G0(e,t)}s(CHe,"getWorkspaceDB");function Avi(t){let e=uA();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return G0(z3(e),t)}s(Avi,"getProdWorkspaceDB");function _vi(t){let e=uA();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return G0(yHe(e),t)}s(_vi,"getDevWorkspaceDB");function bHe(){return!!Vl.get()?.isScim}s(bHe,"isScim");function tL(){try{return Vl.get()}catch{return}}s(tL,"getCurrentContext");function wHe(t){let e=tL();if(e)return e.featureFlagCache?.[t]}s(wHe,"getFeatureFlags");function NHe(t,e){let r=tL();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(NHe,"setFeatureFlags");function OHe(){return tL()?.featureFlagOverrides||{}}s(OHe,"getFeatureFlagOverrides");async function LZt(t,e){return await j0({featureFlagOverrides:t},e)}s(LZt,"doInFeatureFlagOverrideContext");function Evi(t){let e=tL();if(e)return e.viewToTableCache?.[t]}s(Evi,"getTableForView");function yvi(t,e){let r=tL();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(yvi,"setTableForView");function MZt(){let t=uA();return EHe(t)}s(MZt,"isDevWorkspace");function Tvi(){return!MZt()}s(Tvi,"isProdWorkspace");var $pe=ge(ytr());var zpe=require("dd-trace"),spr=ge(I3());var ipr;if(dt.MOCK_REDIS)try{ipr=npr()}catch{console.log("Mock redis unavailable")}async function Res(t=0){return await zpe.tracer.trace("Redis.init",async e=>{if(dt.MOCK_REDIS)return e.addTags({mock:!0}),new ipr(C3());let r;if(dt.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=eje();r=new $pe.Cluster([{host:n,port:i}],j6t())}else r=new $pe.default(C3());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(Res,"init");function Ces(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:V6t(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(Ces,"promisifyStream");function bes(t){return t.isCluster}s(bes,"isCluster");var v$e=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await zpe.tracer.trace("RedisWrapper.init",async n=>{let i=await Res(r);return r&&!dt.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return zpe.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${u$}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${u$}${e}`;let n;bes(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await Ces(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(e){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:e}),this.client.keys(this.prefixed(e))))}async exists(e){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:e}),await this.client.exists(this.prefixed(e))))}async get(e){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:e});let n=await this.client.get(this.prefixed(e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}})}async bulkGet(e){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:e.length}),e.length===0)return{};let n=await this.client.mget(e.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,spr.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e}),await this.client.eval(`
|
|
4416
4416
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
4417
4417
|
redis.call('DEL', KEYS[1])
|
|
4418
4418
|
end
|
|
@@ -4431,7 +4431,7 @@ $1`)};aae.parseAttributes=s(function(e){return Object.keys(e).map(function(r){va
|
|
|
4431
4431
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
4432
4432
|
emit(doc.apiKey, doc.userId)
|
|
4433
4433
|
}
|
|
4434
|
-
}`;await Zpe(t,e,"by_api_key")},"createApiKeyView");async function D$e(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Des(r,t),await n(),D$e(t,e,r,n,i);if(o.status===409)return D$e(t,e,r,n,i);throw o}}s(D$e,"queryViewRaw");var Les=s(async(t,e,r,n,i)=>{let u=(await D$e(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");var Mes={by_email2:Bes,by_api_key:Pes,by_app:kes},ege=s(async(t,e,r,n)=>{r||(r=lp());let i=Mes[t];return Les(t,e,r,i,n)},"queryGlobalView");ur();var Ues=ge(require("pouchdb"));var Fes=require("dd-trace");var Tpr=ge(require("node-fetch"));ur();var k$e=T3.removeKeyNumbering;function t1(t){return t==null||t===""}s(t1,"isEmpty");var Epr=class t{static{s(this,"QueryBuilder")}#e;#r;#t;#i;#s;#n;#c;#o;#a;#u;#l;#f=!1;#d;static{this.maxLimit=200}constructor(e,r,n){this.#e=e,this.#r=r,this.#t={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},notOneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#i=50,this.#c="ascending",this.#o="string",this.#a=!0}disableEscaping(){return this.#f=!0,this}setIndexBuilder(e){return this.#l=e,this}setVersion(e){return e!=null&&(this.#u=e),this}setTable(e){return this.#t.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#i=e),this}setSort(e){return e!=null&&(this.#s=e),this}setSortOrder(e){return e!=null&&(this.#c=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#n=e),this}setSkip(e){return this.#d=e,this}excludeDocs(){return this.#a=!1,this}includeDocs(){return this.#a=!0,this}addString(e,r){return this.#t.string[e]=r,this}addFuzzy(e,r){return this.#t.fuzzy[e]=r,this}addRange(e,r,n){return this.#t.range[e]={low:r,high:n},this}addEqual(e,r){return this.#t.equal[e]=r,this}addNotEqual(e,r){return this.#t.notEqual[e]=r,this}addEmpty(e,r){return this.#t.empty[e]=r,this}addNotEmpty(e,r){return this.#t.notEmpty[e]=r,this}addOneOf(e,r){return this.#t.oneOf[e]=r,this}addNotOneOf(e,r){return this.#t.notOneOf[e]=r,this}addContains(e,r){return this.#t.contains[e]=r,this}addNotContains(e,r){return this.#t.notContains[e]=r,this}addContainsAny(e,r){return this.#t.containsAny[e]=r,this}setAllOr(){this.#t.allOr=!0}setOnEmptyFilter(e){this.#t.onEmptyFilter=e}handleSpaces(e){return this.#f?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#u,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#f&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#t))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=k$e(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#t&&this.#t.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#t.equal.tableId&&(a=this.#t.equal.tableId,delete this.#t.equal.tableId);let u=s((S,b)=>t1(b)?null:`${S}:${e.preprocess(b,o)}`,"equal"),c=s((S,b,C="AND")=>{if(t1(b))return null;if(!Array.isArray(b))return`${S}:${b}`;let B=`${e.preprocess(b[0],{escape:!0})}`;for(let k=1;k<b.length;k++)B+=` ${C} ${e.preprocess(b[k],{escape:!0})}`;return`${S}:(${B})`},"contains"),l=s((S,b)=>t1(b)?null:(b=e.preprocess(b,{escape:!0,lowercase:!0,type:"fuzzy"}),`${S}:/.*${b}.*/`),"fuzzy"),f=s((S,b)=>{let C=r?"*:* AND ":"",B=r?"AND":void 0;return C+"NOT "+c(S,b,B)},"notContains"),d=s((S,b)=>c(S,b,"OR"),"containsAny"),m=s((S,b)=>{if(t1(b))return"*:*";if(!Array.isArray(b))if(typeof b=="string")b=b.split(",");else return"";let C=`${e.preprocess(b[0],o)}`;for(let B=1;B<b.length;B++)C+=` OR ${e.preprocess(b[B],o)}`;return`${S}:(${C})`},"oneOf"),A=s((S,b)=>{if(t1(b))return null;if(!Array.isArray(b))if(typeof b=="string")b=b.split(",");else return"";let C=`${e.preprocess(b[0],o)}`;for(let B=1;B<b.length;B++)C+=` OR ${e.preprocess(b[B],o)}`;return`(*:* -${S}:(${C}))`},"notOneOf");function T(S,b,C){let B="";for(let[k,L]of Object.entries(S)){k=k$e(k),k=e.preprocess(e.handleSpaces(k),{escape:!0});let x=b(k,L);if(x!=null){if(B.length>0||n.length>0){let V=C?.mode?C.mode:r?"OR":"AND";B+=` ${V} `}B+=x,(typeof L!="string"&&L!=null||typeof L=="string"&&L!==a&&L!=="")&&(i=!1)}}if(C?.returnBuilt)return B;n+=B}if(s(T,"build"),this.#t.string&&T(this.#t.string,(S,b)=>t1(b)?null:(b=e.preprocess(b,{escape:!0,lowercase:!0,type:"string"}),`${S}:${b}*`)),this.#t.range&&T(this.#t.range,(S,b)=>{if(t1(b)||b.low==null||b.low===""||b.high==null||b.high==="")return null;let C=e.preprocess(b.low,o),B=e.preprocess(b.high,o);return`${S}:[${C} TO ${B}]`}),this.#t.fuzzy&&T(this.#t.fuzzy,l),this.#t.equal&&T(this.#t.equal,u),this.#t.notEqual&&T(this.#t.notEqual,(S,b)=>t1(b)?null:typeof b=="boolean"?`(*:* AND !${S}:${b})`:`!${S}:${e.preprocess(b,o)}`),this.#t.empty&&T(this.#t.empty,S=>(i=!1,`(*:* -${S}:["" TO *])`)),this.#t.notEmpty&&T(this.#t.notEmpty,S=>(i=!1,`${S}:["" TO *]`)),this.#t.oneOf&&T(this.#t.oneOf,m),this.#t.notOneOf&&T(this.#t.notOneOf,A),this.#t.contains&&T(this.#t.contains,c),this.#t.notContains&&T(this.compressFilters(this.#t.notContains),f),this.#t.containsAny&&T(this.#t.containsAny,d),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,T({tableId:a},u)),i){if(this.#t.onEmptyFilter==="none")return"";if(this.#t?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#i,t.maxLimit),include_docs:this.#a};if(this.#n&&(e.bookmark=this.#n),this.#s){let r=this.#c==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#s)}${n}`}return e}async run(){return this.#d&&await this.#p(this.#d),await this.#m()}async#p(e){let r=this.#a,n=this.#i;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#m();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#a=r,this.#i=n}async#m(){let{url:e,cookie:r}=qP(),n=`${e}/${this.#e}/_design/database/_search/${this.#r}`,i=this.buildSearchBody();try{return await ypr(n,i,r)}catch(o){if(o.status===404&&this.#l)return await this.#l(),await ypr(n,i,r);throw o}}};async function ypr(t,e,r){let n=await(0,Tpr.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(ypr,"runQuery");ur();var M7={};Ui(M7,{addTenantToUrl:()=>qes,getTenantDB:()=>Spr,getTenantIDFromCtx:()=>P$e,isUserInWorkspaceTenant:()=>Ges});function Spr(t){return G0(rK(t))}s(Spr,"getTenantDB");ur();function qes(t){let e=Hs();if(eL()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(qes,"addTenantToUrl");var Ges=s((t,e)=>{let r;return e?r=e.tenantId||uh:r=Hs(),($3(t)||uh)===r},"isUserInWorkspaceTenant"),jes=Object.values(Y9),P$e=s((t,e)=>{if(!eL())return uh;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=jes),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(THe()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");ur();var tge={milliseconds:1,seconds:1e3,minutes:60*1e3,hours:3600*1e3,days:1440*60*1e3},_h=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/tge[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*tge[e]/tge[r]}static from(e,r){return new t(r*tge[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};function Ipr(){let t=_h.fromDays(7).toSeconds();if(!dt.SESSION_EXPIRY_SECONDS)return t;let e=parseInt(dt.SESSION_EXPIRY_SECONDS);return Number.isFinite(e)&&e>0?e:t}s(Ipr,"getSessionExpirySeconds");var Nhu="app_";function Rpr(t){return new Promise(e=>setTimeout(e,t))}s(Rpr,"timeout");function Cpr(t){return!!pUt[t]}s(Cpr,"isAudited");var yIr=ge(EIr());var TZe=require("util"),SZe=ge(require("zlib"));var UAu=(0,TZe.promisify)(SZe.default.gzip),FAu=(0,TZe.promisify)(SZe.default.gunzip);var wIr=ge(require("http")),NIr=ge(require("https"));var TIr=ge(require("dns")),D1=ge(require("net"));var SIr=require("util");var NAs=["127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","100.64.0.0/10","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10"],RZe,OAs=(0,SIr.promisify)(TIr.default.lookup);function IIr(){return!(dt.SELF_HOSTED&&dt.BLACKLIST_IPS!==void 0)}s(IIr,"shouldApplyDefaultBlacklist");function CZe(t){return D1.default.isIP(t)===6?"ipv6":"ipv4"}s(CZe,"getIpVersion");function xAs(t){let e=D1.default.isIP(t);return e===4?32:e===6?128:null}s(xAs,"getMaxPrefixLength");function vAs(t,e){if(!/^\d+$/.test(e))return null;let r=Number.parseInt(e,10),n=xAs(t);return n==null||r>n?null:r}s(vAs,"getValidSubnetPrefix");function DAs(t){return D1.default.isIP(t)?t:(/^https?:\/\//.test(t)||(t=`https://${t}`),new URL(t).hostname.replace(/^\[|\]$/g,""))}s(DAs,"parseAddress");async function RIr(t){return t=DAs(t),(await OAs(t,{all:!0})).map(r=>r.address)}s(RIr,"lookup");async function bZe(t){return D1.default.isIP(t)?[t]:RIr(t)}s(bZe,"resolveAddress");function IZe(t,e){let r=e.trim();if(!r)return;let n=r.split("/");if(n.length>2){console.log(`Ignoring invalid blacklist entry: ${r}`);return}let[i,o]=n,a=D1.default.isIP(i);if(n.length===2){let u=vAs(i,o);if(a&&u!==null){t.addSubnet(i,u,CZe(i));return}console.log(`Ignoring invalid blacklist entry: ${r}`);return}a&&t.addAddress(i,CZe(i))}s(IZe,"addEntryToBlacklist");async function BAs(){let t=new D1.default.BlockList;if(IIr())for(let r of NAs)IZe(t,r);let e=dt.BLACKLIST_IPS?.split(",")||[];for(let r of e){let n=r.trim();if(!n)continue;let[i]=n.split("/");if(D1.default.isIP(i)){IZe(t,n);continue}let o=await RIr(n);for(let a of o)IZe(t,a)}RZe=t}s(BAs,"refreshBlacklist");async function CIr(t){RZe||await BAs();let e;try{e=await bZe(t)}catch(r){return r instanceof TypeError?(console.error("Black list error: could not parse address: ",t),!0):IIr()}return e.some(r=>RZe.check(r,CZe(r)))}s(CIr,"isBlacklisted");var oAe=ge(require("node-fetch"));var bIr=5,PAs=new Set(["http:","https:"]),LAs=["authorization","cookie","cookie2","proxy-authorization"];function wZe(t){let e;try{e=new URL(t)}catch{throw new Error("Invalid URL.")}if(!PAs.has(e.protocol))throw new Error("Only HTTP(S) URLs are allowed.");if(e.username||e.password)throw new Error("URL must not include credentials.");return e}s(wZe,"parseUrl");function MAs(t){return[301,302,303,307,308].includes(t)}s(MAs,"isRedirect");async function UAs(t){let e=wZe(t),r=await bZe(e.hostname);if(r.length===0)throw new Error("URL is blocked or could not be resolved safely.");for(let n of r)if(await CIr(n))throw new Error("URL is blocked or could not be resolved safely.");return r[0]}s(UAs,"resolveSafePinnedIp");function FAs(t){let e=t.includes(":")?6:4;return(r,n,i)=>{if(typeof n=="object"&&n?.all){i(null,[{address:t,family:e}]);return}i(null,t,e)}}s(FAs,"createPinnedLookup");function QAs(t,e){let r=new URL(t).protocol,n=FAs(e);return r==="https:"?new NIr.default.Agent({lookup:n}):new wIr.default.Agent({lookup:n})}s(QAs,"makePinnedAgent");function qAs(t,e){let r=t.method?.toUpperCase()||"GET";return e===303||(e===301||e===302)&&r==="POST"?{...t,body:void 0,method:"GET",redirect:"manual"}:t}s(qAs,"nextRequestForRedirect");function GAs(t,e){return new URL(t).origin!==new URL(e).origin}s(GAs,"shouldStripSensitiveHeadersForRedirect");function jAs(t){if(!t.headers)return t;let e=new oAe.Headers(t.headers);return LAs.forEach(r=>e.delete(r)),{...t,headers:e}}s(jAs,"stripSensitiveHeadersForRedirect");function VAs(t){return!t||typeof t!="object"||!("resume"in t)?!1:typeof t.resume=="function"}s(VAs,"isResumableBody");function HAs(t){let e=t.body;VAs(e)&&e.resume()}s(HAs,"releaseResponseBody");async function jJ(t,e={},{followRedirects:r=!0,returnRedirectWithoutLocation:n=!1,rejectCrossOriginRedirects:i=!1,fetchFn:o=oAe.default}={}){let a=t,u={...e,redirect:"manual"};for(let c=0;c<=bIr;c++){let l=await UAs(a),f;try{f=await o(a,{...u,agent:QAs(a,l)},l)}catch(A){let T=wZe(a).hostname;throw A instanceof Error?(A.message=`Failed to connect to resolved IP for ${T}: ${A.message}`,A):new Error(`Failed to connect to resolved IP for ${T}: unknown network error`)}if(!MAs(f.status))return f;if(HAs(f),!r)throw new Error("Redirects are not permitted.");if(c===bIr)break;let d=f.headers.get("location");if(!d){if(n)return f;throw new Error("Maximum redirect reached.")}let m=wZe(new URL(d,a).toString()).toString();if(u=qAs(u,f.status),GAs(a,m)){if(i)throw new Error("Redirect to a different origin is not permitted.");u=jAs(u)}a=m}throw new Error("Maximum redirect reached.")}s(jJ,"fetchWithBlacklist");function YAs(t){let e="",r=-1,n,i,o=t.opts?.repeat;return o&&(i=o.endDate?new Date(o.endDate).getTime():Date.now(),n=o.tz,"cron"in o?e=o.cron:r=o.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}s(YAs,"jobToJobInformation");var NZe=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new OIr.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((d,m)=>{d?l(d):c(m)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(f){if(l++,l<o&&!n._isDiscarded)return await $b.wait(100*l),await a(i(),l);throw f}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=UI(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:s(async()=>{c._isDiscarded=!0},"discard")};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:s(()=>new Promise((c,l)=>{let f=s((m,A)=>{m.id===o&&(this._emitter.off("error",f),this._emitter.off("completed",d),l(A))},"errorHandler"),d=s((m,A)=>{m.id===o&&(this._emitter.off("error",f),this._emitter.off("completed",d),c(A))},"completedHandler");this._emitter.on("error",f),this._emitter.on("completed",d)}),"finished")}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}async getJobs(){return this._messages}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>YAs(e))}async whenCurrentJobsFinished(){do await Rpr(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},xIr=NZe;var Ltt=ge(vNr());function DNr(t,e,r){gRs(t,e),r&&hRs(t,r)}s(DNr,"addListeners");function hRs(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let o of i)o.id===n&&await t.removeRepeatableByKey(o.key);console.log(`jobId=${n} disabled`)}})}s(hRs,"handleStalled");function Vy(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(Vy,"getLogParams");var pRs={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event",batchUserSyncProcessorQueue:"batch-user-sync-processor",ragIngestionQueue:"rag-ingestion-processor",agentLogIndexingQueue:"agent-log-indexing-processor",escalationQueue:"escalation-processor",agentRequestTrackingQueue:"agent-request-tracking-processor",agentTestRunQueue:"agent-test-run-processor",knowledgeSourceSyncQueue:"knowledge-source-sync-processor"};function gRs(t,e){let r=pRs[e];function n(i,o){let a=i.data.event?.appId;if(a)return SHe(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...Vy(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...Vy(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...Vy(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...Vy(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...Vy(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...Vy(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...Vy(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...Vy(r,"paused"))}).on("resumed",()=>{console.info(...Vy(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...Vy(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...Vy(r,"drained"))}).on("removed",i=>{console.info(...Vy(r,"removed",{job:i}))})}s(gRs,"logging");var mRs=[];function BNr(t,e){let r=setInterval(t,e);return mRs.push(r),r}s(BNr,"set");var nN=ge(require("dd-trace")),gX=ge(oOr());var ZRs=_h.fromMinutes(5).toMs(),eCs=_h.fromSeconds(30).toMs(),Mtt=_h.fromSeconds(60).toMs(),cOr=[],aOr;async function uOr(){for(let t of cOr)await t.clean(Mtt,"completed"),await t.clean(Mtt,"failed")}s(uOr,"cleanup");async function tCs(t,e,r){let n=performance.now();try{let i=await e();return nN.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw nN.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;nN.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),nN.default.dogstatsd.increment(t,1,r)}}s(tCs,"withMetrics");function lOr(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}s(lOr,"jobOptsTags");function rCs(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,gX.default)(t.data),...lOr(t.opts||{})}}s(rCs,"jobTags");var nU=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:C3(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:ZRs,lockRenewTime:eCs}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return dt.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new Ltt.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new xIr(this.jobQueue,r):n=new Ltt.default(this.jobQueue,r),DNr(n,this.jobQueue,this.opts.removeStalledCb),cOr.push(n),!aOr&&!dt.isTest()&&(aOr=BNr(uOr,Mtt),uOr().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await nN.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,f={traceId:l.traceId,spanId:l.spanId,toTraceId:s(()=>l.traceId,"toTraceId"),toSpanId:s(()=>l.spanId,"toSpanId"),toTraceparent:s(()=>"","toTraceparent")};c.addLink(f)}c.addTags({"queue.name":this.jobQueue,...rCs(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),nN.default.dogstatsd.distribution("queue.process.sizeBytes",(0,gX.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await nN.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,gX.default)(e),...lOr(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},nN.default.dogstatsd.distribution("queue.add.sizeBytes",(0,gX.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return tCs(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};var n_e={};Ui(n_e,{getId:()=>Ftt,setHeader:()=>cCs});var hOr=r_e(),cCs=s(t=>{let e=hOr.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Ftt(){return hOr.getId()}s(Ftt,"getId");var Rbe=ge(_vr()),ZJr=ge(kst()),Cpt=ge(require("dd-trace")),eXr=require("dd-trace/ext");var KJr=ge(require("path")),JJr=ge(PMr());var Ibe={};Ui(Ibe,{ObjectStore:()=>hT,ObjectStoreBuckets:()=>lpo,SIGNED_FILE_PREFIX:()=>mpt,bucketTTLConfig:()=>mbe,budibaseTempDir:()=>NF,client3rdPartyLibrary:()=>ngo,clientLibraryPath:()=>rgo,clientLibraryUrl:()=>igo,createBucketIfNotExists:()=>$te,deleteFile:()=>Npo,deleteFiles:()=>Opo,deleteFolder:()=>LJr,downloadTarball:()=>vpo,downloadTarballDirect:()=>xpo,enrichPWAImages:()=>sgo,enrichPluginURLs:()=>ago,extractBucketAndPath:()=>dpt,getAllFiles:()=>Cpo,getAppFileUrl:()=>jJr,getClientCacheKey:()=>GJr,getGlobalFileS3Key:()=>VJr,getGlobalFileUrl:()=>ogo,getObjectMetadata:()=>Dpo,getPluginIconKey:()=>WJr,getPluginJSKey:()=>YJr,getPluginS3Dir:()=>$Jr,getPresignedUrl:()=>OF,getReadStream:()=>Abe,getSafeRetrieveDirectoryPath:()=>PJr,listAllObjects:()=>Apt,objectExists:()=>Bpo,processAutomationAttachment:()=>dpo,processObjectStoreAttachment:()=>TJr,retrieve:()=>kJr,retrieveDirectory:()=>wpo,retrieveToTmp:()=>bpo,sanitizeBucket:()=>gm,sanitizeKey:()=>nf,streamUpload:()=>BJr,streamUploadMany:()=>Rpo,upload:()=>Ipo,uploadDirectory:()=>_pt});var Ebe=ge(cht()),hpt=ge(cKr()),NJr=ge(dKr()),OJr=ge(bKr());var KN=ge(require("dd-trace")),oH=ge(require("fs")),Wte=ge(require("fs/promises")),xJr=ge(require("https")),EE=require("path"),ybe=ge(require("stream")),zte=require("stream/promises"),ppt=ge(mJr());Wx();var gpt=ge(require("zlib"));var AJr=ge(require("fs")),_Jr=require("os"),Yte=ge(require("path")),EJr=ge(require("stream"));var lpo={BACKUPS:dt.BACKUPS_BUCKET_NAME,APPS:dt.APPS_BUCKET_NAME,TEMPLATES:dt.TEMPLATES_BUCKET_NAME,GLOBAL:dt.GLOBAL_BUCKET_NAME,PLUGINS:dt.PLUGIN_BUCKET_NAME,TEMP:dt.TEMP_BUCKET_NAME},yJr=(0,Yte.join)((0,_Jr.tmpdir)(),".budibase");try{AJr.default.mkdirSync(yJr)}catch(t){if(t.code!=="EEXIST")throw t}function NF(){return yJr}s(NF,"budibaseTempDir");var mbe=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function fpo(t){let e=await jJ(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Yte.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");if(!(e.body instanceof EJr.default.Readable))throw new Error("Unexpected response body stream type");return{filename:t.filename||r,content:e.body}}s(fpo,"processUrlAttachment");async function TJr(t){let e=dpt(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await Abe(r,n),o=Yte.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(TJr,"processObjectStoreAttachment");async function dpo(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await fpo(t):await TJr(t)}s(dpo,"processAutomationAttachment");var Epo=wJr(),ypo={bucketCreationPromises:{}},mpt="/files/signed",tB={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},Tpo=[tB.html,tB.css,tB.js,tB.json];function nf(t){let e=Epo(gm(t)).replace(/\\/g,"/");if(e.split("/").some(r=>r==="."||r===".."))throw new Error("Invalid object store key: path traversal is not allowed.");return e}s(nf,"sanitizeKey");function gm(t){return t.replace(new RegExp(Kb,"g"),UP)}s(gm,"sanitizeBucket");function hT(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:dt.MINIO_ACCESS_KEY,secretAccessKey:dt.MINIO_SECRET_KEY},region:dt.AWS_REGION};if(!dt.MINIO_ENABLED&&dt.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:dt.MINIO_ACCESS_KEY,secretAccessKey:dt.MINIO_SECRET_KEY,sessionToken:dt.AWS_SESSION_TOKEN}),dt.MINIO_URL&&(t.presigning&&dt.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=dt.MINIO_URL),dt.S3_IGNORE_SELF_SIGNED==="true"){let r=new xJr.default.Agent({rejectUnauthorized:!1});e.requestHandler=new OJr.NodeHttpHandler({httpsAgent:r})}return new Ebe.S3(e)}s(hT,"ObjectStore");async function $te(t,e){e=gm(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode||r.$metadata?.httpStatusCode,i=ypo.bucketCreationPromises;if(n===403)throw new Error("Access denied to object store bucket."+r);if(i[e])return await i[e],{created:!1,exists:!0};i[e]=t.createBucket({Bucket:e}).catch(o=>{if(o.Code!=="BucketAlreadyOwnedByYou"&&o.name!=="BucketAlreadyOwnedByYou")throw o});try{return await i[e],{created:!0,exists:!1}}finally{delete i[e]}}}s($te,"createBucketIfNotExists");var Spo=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?tB[r.toLowerCase()]:tB.txt},"resolveContentType"),vJr=s(async(t,e,r)=>{let n=gm(t),i=hT(),o=await $te(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=mbe(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),DJr=s(async({client:t,bucket:e,filename:r,stream:n,type:i,extra:o})=>{if(!n)throw new Error("Stream to upload is invalid/undefined");let a=Spo(r,i),u=nf(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new hpt.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function Ipo({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await Wte.default.open(r)).createReadStream():o,l=hT(),f=await $te(l,t);if(a&&f.created){let S=mbe(t,a);await l.putBucketLifecycleConfiguration(S)}let d=n,m=d||(u?tB[u.toLowerCase()]:tB.txt),A={Bucket:gm(t),Key:nf(e),Body:c,ContentType:m};if(i&&typeof i=="object"){for(let S of Object.keys(i))(!i[S]||typeof i[S]!="string")&&delete i[S];A.Metadata=i}return new hpt.Upload({client:l,params:A}).done()}s(Ipo,"upload");async function BJr({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await KN.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await vJr(t,o,a),{details:f,contentType:d}=await DJr({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),m=await l.headObject({Bucket:c,Key:nf(r)});return a.addTags({contentType:d,contentLength:m.ContentLength}),{...f,ContentLength:m.ContentLength}})}s(BJr,"streamUpload");async function Rpo({bucket:t,files:e,ttl:r}){return await KN.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await vJr(t,r,i),u=e.map((l,f)=>({...l,index:f})),c=new Array(e.length);return await kx.parallelForeach(u,async l=>{let{details:f}=await DJr({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=f},10),c})}s(Rpo,"streamUploadMany");async function kJr(t,e){return await KN.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=hT(),i={Bucket:gm(t),Key:nf(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),Tpo.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return ybe.default.Readable.fromWeb(a)}})}s(kJr,"retrieve");async function*Apt(t,e){let r=hT(),n=s((a={})=>r.listObjectsV2({...a,Bucket:gm(t),Prefix:nf(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s(Apt,"listAllObjects");async function Cpo(t,e){let r={};return await kx.parallelForeach(Apt(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(Cpo,"getAllFiles");async function OF(t,e,r=3600){let n=hT({presigning:!0}),i={Bucket:gm(t),Key:nf(e)},o=await(0,NJr.getSignedUrl)(n,new Ebe.GetObjectCommand(i),{expiresIn:r});if(dt.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${mpt}${u}${c}`}else return o}s(OF,"getPresignedUrl");async function bpo(t,e){return await KN.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=gm(t),e=nf(e);let n=await kJr(t,e),i=(0,EE.join)(NF(),Jb());return r.addTags({outputPath:i}),n instanceof ybe.default.Readable?(r.addTags({stream:!0}),await(0,zte.pipeline)(n,oH.default.createWriteStream(i))):(r.addTags({stream:!1}),oH.default.writeFileSync(i,n)),i})}s(bpo,"retrieveToTmp");async function wpo(t,e,r){return await KN.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,EE.join)(NF(),Jb());await Wte.default.mkdir(i,{recursive:!0});let o=0;return await kx.parallelForeach(Apt(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await KN.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let f=PJr(i,l);if(!f){c.addTags({skippedUnsafePath:!0});return}let{stream:d}=await Abe(t,l);oH.default.existsSync(f.dir)||await Wte.default.mkdir(f.dir,{recursive:!0}),await(0,zte.pipeline)(d,oH.default.createWriteStream(f.path,{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(wpo,"retrieveDirectory");function PJr(t,e){let r=(0,EE.resolve)(t),n=(0,EE.resolve)(r,...e.split("/"));if(n===r||n.startsWith(`${r}${EE.sep}`))return{dir:(0,EE.dirname)(n),path:n}}s(PJr,"getSafeRetrieveDirectoryPath");async function Npo(t,e){let r=hT();await $te(r,t);let n={Bucket:t,Key:nf(e)};return r.deleteObject(n)}s(Npo,"deleteFile");async function Opo(t,e){let r=hT();await $te(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:nf(i)}))}};return r.deleteObjects(n)}s(Opo,"deleteFiles");async function LJr(t,e){t=gm(t),e=nf(e);let r=hT(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return LJr(t,e)}s(LJr,"deleteFolder");async function _pt(t,e,r){return await KN.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=gm(t);let i=await Wte.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=nf((0,EE.join)(r,o.name)),u=(0,EE.join)(e,o.name);o.isDirectory()?await _pt(t,u,a):await BJr({bucket:t,filename:a,stream:oH.default.createReadStream(u)})}return i})}s(_pt,"uploadDirectory");async function xpo(t,e,r={},{followRedirects:n=!0}={}){e=nf(e);let i=await jJ(t,{headers:r},{followRedirects:n});if(!i.ok)throw new Error(`unexpected response ${i.statusText}`);await(0,zte.pipeline)(i.body,gpt.default.createUnzip(),ppt.default.extract(e))}s(xpo,"downloadTarballDirect");async function vpo(t,e,r){e=gm(e),r=nf(r);let n=await jJ(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,EE.join)(NF(),r);return await(0,zte.pipeline)(n.body,gpt.default.createUnzip(),ppt.default.extract(i)),!dt.isTest()&&dt.SELF_HOSTED&&await _pt(e,i,r),i}s(vpo,"downloadTarball");async function Abe(t,e){return await KN.default.trace("getReadStream",async r=>{t=gm(t),e=nf(e),r.addTags({bucketName:t,path:e});let n=hT(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof ybe.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(Abe,"getReadStream");async function Dpo(t,e){t=gm(t),e=nf(e);let r=hT(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(Dpo,"getObjectMetadata");async function Bpo(t,e){t=gm(t),e=nf(e);let r=hT(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode||i.$metadata?.httpStatusCode)===404)return!1;throw i}}s(Bpo,"objectExists");function dpt(t){let e=t.split("?")[0],r=new RegExp(`^${mpt}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(dpt,"extractBucketAndPath");var qJr=ge(require("querystring"));var QJr=ge(FJr());var Sbe;function Zpo(){if(!dt.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Sbe||(Sbe=Buffer.from(dt.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Sbe)}s(Zpo,"getPrivateKey");var ego=s(()=>({keypairId:dt.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Zpo(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),aH=s(t=>{let e=tgo(t);return QJr.getSignedUrl(e,ego())},"getPresignedUrl"),tgo=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${dt.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function rgo(t){return`${nf(t)}/budibase-client.js`}s(rgo,"clientLibraryPath");function ngo(t,e){return`${nf(t)}/${e}`}s(ngo,"client3rdPartyLibrary");async function igo(t,e){return`/api/assets/${t}/client?${await GJr(e)}`}s(igo,"clientLibraryUrl");async function GJr(t){let e,r;try{e=Hs()}finally{r={version:t}}return e&&e!==uh&&(r.tenantId=e),qJr.default.encode(r)}s(GJr,"getClientCacheKey");async function jJr(t){return dt.CLOUDFRONT_CDN?aH(t):await OF(dt.APPS_BUCKET_NAME,t)}s(jJr,"getAppFileUrl");async function sgo(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await jJr(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(sgo,"enrichPWAImages");var ogo=s(async(t,e,r)=>{let n=VJr(t,e);return dt.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),aH(n)):await OF(dt.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),VJr=s((t,e)=>{let r=`${t}/${e}`;return dt.MULTI_TENANCY&&(r=`${Hs()}/${r}`),r},"getGlobalFileS3Key");async function ago(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await ugo(e),n=await cgo(e);return{...e,jsUrl:r,iconUrl:n}}))}s(ago,"enrichPluginURLs");async function ugo(t){let e=YJr(t);return HJr(e)}s(ugo,"getPluginJSUrl");async function cgo(t){let e=WJr(t);if(e)return HJr(e)}s(cgo,"getPluginIconUrl");async function HJr(t){return dt.CLOUDFRONT_CDN?aH(t):await OF(dt.PLUGIN_BUCKET_NAME,t)}s(HJr,"getPluginUrl");function YJr(t){return zJr(t,"plugin.min.js")}s(YJr,"getPluginJSKey");function WJr(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return zJr(t,e)}s(WJr,"getPluginIconKey");function zJr(t,e){return`${$Jr(t.name)}/${e}`}s(zJr,"getPluginS3Key");function $Jr(t){let e=`${t}`;return dt.MULTI_TENANCY&&(e=`${Hs()}/${e}`),dt.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s($Jr,"getPluginS3Dir");var lgo="budibase.log",fgo="budibase-logs-history.txt",dgo=KJr.default.join(NF(),"systemlogs");function hgo(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}s(hgo,"getSingleFileMaxSizeInfo");function XJr(){let t=hgo(dt.ROLLING_LOG_MAX_SIZE);return JJr.createStream(lgo,{size:t?.size,path:dgo,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:fgo,initialRotation:!1})}s(XJr,"localFileDestination");function ggo(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(ggo,"isPlainObject");function mgo(t){return t instanceof Error}s(mgo,"isError");function Ago(t){return typeof t=="string"}s(Ago,"isMessage");var nB;if(!dt.DISABLE_PINO_LOGGER){let t=dt.LOG_LEVEL,e={level:t,formatters:{level:s(c=>({level:c.toUpperCase()}),"level"),bindings:s(()=>dt.SELF_HOSTED?{service:dt.SERVICE_NAME}:{},"bindings")},timestamp:s(()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`,"timestamp")},r=[];r.push(dt.isDev()?{stream:(0,ZJr.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),dt.SELF_HOSTED&&r.push({stream:XJr(),level:t}),nB=r.length?(0,Rbe.default)(e,Rbe.default.multistream(r)):(0,Rbe.default)(e);let n=s(c=>{let l,f=[],d="";c.forEach(b=>{Ago(b)&&(d=`${d} ${b}`.trimStart()),ggo(b)&&f.push(b),mgo(b)&&(l=b)});let m=u(),A={};A={tenantId:i(),appId:o(),automationId:a(),identityId:m?._id,identityType:m?.type,correlationId:Ftt()};let T=Cpt.default.scope().active();T&&Cpt.default.inject(T.context(),eXr.formats.LOG,A);let S={err:l,pid:process.pid,...A};if(f.length){let b={},C=0;for(let B=0;B<f.length;B++){let k=f[B],L=k._logKey;L?(delete k._logKey,S[L]=k):(b[C]=k,C++)}Object.keys(b).length&&(S.data=b)}return[S,d]},"getLogParams");console.log=(...c)=>{let[l,f]=n(c);nB?.info(l,f)},console.info=(...c)=>{let[l,f]=n(c);nB?.info(l,f)},console.warn=(...c)=>{let[l,f]=n(c);nB?.warn(l,f)},console.error=(...c)=>{let[l,f]=n(c);nB?.error(l,f)},console.trace=(...c)=>{let[l,f]=n(c);l.err||(l.err=new Error),nB?.trace(l,f)},console.debug=(...c)=>{let[l,f]=n(c);nB?.debug(l,f)};let i=s(()=>{let c;try{c=Hs()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=uA()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=IHe()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Jx()}catch{}return c},"getIdentity")}var bpt=nB;function FS(t){let e=Hs();return`${t}:${e}`}s(FS,"generateTenantKey");var uH=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await mpr()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>FS(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?FS(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[FS(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>FS(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(FS(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async increment(e,r,n={useTenancy:!0}){e=n.useTenancy?FS(e):e;let i=await this.getClient(),o=await i.increment(e);return r&&await i.setExpiry(e,r),o}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?FS(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Tgo=new uH,cH={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:s(t=>`oauth2Token_${t}`,"OAUTH2_TOKEN")};var Cbe=s((...t)=>Tgo.withCache(...t),"withCache");ur();var Ggo=ge(LZr());var Eju=_h.fromSeconds(10).toMs();ur();var wju=_h.fromDays(7).toSeconds(),Nju=_h.fromSeconds(10).toMs();var Dju=_h.fromHours(1).toSeconds();var QZr=ge(require("node-fetch"));var DF=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";n_e.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,QZr.default)(`${this.host}${r}`,o)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var zju=new DF(dt.INTERNAL_ACCOUNT_PORTAL_URL),$ju=dt.SELF_HOSTED||dt.DISABLE_ACCOUNT_PORTAL;ur();ur();var sVu=+(dt.PASSWORD_MIN_LENGTH||12),oVu=+(dt.PASSWORD_MAX_LENGTH||512);var mVu=Ipr();ur();ur();var e8u={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`};var Ypt=dt.SELF_HOSTED&&!dt.isDev(),tre=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){Ypt||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Ypt||console.log("[audit] identified",e)}async identifyGroup(e){Ypt||console.log("[audit] group identified",e)}async shutdown(){}};ur();var rre=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new nU("auditLogQueue",{jobTags:s(n=>({"event.name":n.event}),"jobTags")}),t.auditLogQueue.process(async n=>{await iw(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};dt.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Cpr(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:uA(),hostInfo:r.hostInfo},tenantId:Hs()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};Wx();var Kgo=new DF(dt.INTERNAL_ACCOUNT_PORTAL_URL),nre=class t{static{s(this,"EventBrokerProcessor")}static init(e){t.getLicenseKeyFn=e}async processEvent(e,r,n,i){if(dt.DISABLE_ACCOUNT_PORTAL)return;let o;if(dt.SELF_HOSTED){if(!t.getLicenseKeyFn)return;let c=await t.getLicenseKeyFn();if(!c)return;o={"x-budibase-license-key":c}}else o={"x-budibase-api-key":dt.ACCOUNT_PORTAL_API_KEY},r.tenantId&&(o["x-budibase-tenant-id"]=r.tenantId);let a=uA(),u={id:Jb(),type:e,identity:r,properties:{...n,version:dt.VERSION,service:dt.SERVICE,environment:r.environment,hosting:r.hosting,...a&&{appId:a},...r.installationId&&{installationId:r.installationId},...r.tenantId&&{tenantId:r.tenantId}},timestamp:i===void 0?Date.now():new Date(i).getTime()};try{let c=await Kgo.post("/api/v2/analytics/event",{headers:o,body:u});c.ok||console.warn(`[EventBrokerProcessor] unexpected response status: ${c.status}`)}catch(c){console.error(`[EventBrokerProcessor] failed to send event: ${c}`)}}};var ire=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var Jgo=new tre,Xgo=new rre,Zgo=new nre;var Wpt=new ire([Jgo,Xgo,Zgo]);ur();ur();var rmo=ge(k3());ur();ur();ur();ur();ur();ur();ur();ur();var e6u=!dt.SELF_HOSTED&&!dt.isDev();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();var XZr=_y.users.isBuilder,kbe=_y.users.isAdmin,e$u=_y.users.isGlobalBuilder,t$u=_y.users.isAdminOrBuilder,$Zr=_y.users.hasAdminPermissions,ore=_y.users.hasBuilderPermissions,r$u=_y.users.hasAppBuilderPermissions,lmo=_y.users.isAdminOrWorkspaceBuilder;function Imo(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Imo,"removeUserPassword");async function are(t,e){if(t==null)throw"Must supply an email address to view";let r=await ege("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Imo(n)),n}s(are,"getGlobalUserByEmail");ur();function een(t){return`config${"_"}${t}`}s(een,"generateConfigID");async function Mbe(t){let e=lp();try{return await e.get(een(t))}catch(r){if(r.status===404)return;throw r}}s(Mbe,"getConfig");async function zpt(){let t=await Mbe("settings");return t||(t={_id:een("settings"),type:"settings",config:{}}),t.config.platformUrl=await ten({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await jZr({config:t.config}),t}s(zpt,"getSettingsConfigDoc");async function ten(t={tenantAware:!0}){let e=dt.PLATFORM_URL||"http://localhost:10000";if(!dt.SELF_HOSTED&&dt.MULTI_TENANCY&&t.tenantAware){let r=Hs();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(dt.SELF_HOSTED){let r=t?.config?t.config:(await Mbe("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(ten,"getPlatformUrl");var jZr=s(async t=>{if(!dt.SELF_HOSTED)return!!dt.ENABLE_ANALYTICS;let e=await Cbe(cH.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Mbe("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=dt.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");ur();var MOo=ge(I3()),UOo=ge(rmt()),FOo=ge(k3());var Yan={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},yE={...Yan,BUILDER:"BUILDER"},QOo={UUID:void 0,NAME:"name"};var LF=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=QOo.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=Van(e):e&&Array.isArray(e)&&(e=e.map(Van)),this.inherits=e,this}};var anc={ADMIN:new LF(yE.ADMIN,yE.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(yE.POWER),POWER:new LF(yE.POWER,yE.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(yE.BASIC),BASIC:new LF(yE.BASIC,yE.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(yE.PUBLIC),PUBLIC:new LF(yE.PUBLIC,yE.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new LF(yE.BUILDER,yE.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function qOo(t){return Object.values(Yan).includes(t)}s(qOo,"isBuiltin");function Van(t){return qOo(t)?t:_pr(t)}s(Van,"prefixRoleIDNoBuiltin");ur();var VOo=ge(tmt()),HOo=ge(rmt());ur();var nc=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};var dnc={PUBLIC:{_id:"public",name:"Public",permissions:[new nc("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new nc("query","read"),new nc("table","read"),new nc("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new nc("query","write"),new nc("table","write"),new nc("automation","execute"),new nc("legacy_view","read"),new nc("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new nc("table","write"),new nc("user","read"),new nc("automation","execute"),new nc("webhook","read"),new nc("legacy_view","read"),new nc("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new nc("table","admin"),new nc("user","admin"),new nc("automation","admin"),new nc("webhook","read"),new nc("query","admin"),new nc("legacy_view","read"),new nc("app","read")]}};var hnc="builder",pnc="creator",gnc="globalBuilder";ur();var mwe=ge(require("crypto")),zan=ge(require("dd-trace")),$an=ge(I3()),WOo=require("posthog-node");var Wan;function Kan(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(Kan,"parseEnvFlags");function zOo(){return Kan(dt.TENANT_FEATURE_FLAGS||"")}s(zOo,"getEnvFlags");var nmt=class{constructor(e){this.flagSchema=e;this.setId=mwe.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,$an.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await zan.default.trace("features.fetch",async e=>{let r=wHe(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=Hs(),a=new Set;if($fe())return i;for(let{tenantId:d,key:m,value:A}of zOo())if(!(!d||d!=="*"&&d!==o)&&(n.readFromEnvironmentVars=!0,A===!1&&a.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=A,n[`flags.${m}.source`]="environment"}let u=Jx(),c=u?._id;if(!c){let d=RHe();d&&(c=mwe.createHash("sha512").update(d).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,Wan&&c){n.readFromPostHog=!0;let d=await zpt(),m={tenantId:l},A={tenant:{id:l}};d.config.createdVersion&&(A.tenant.createdVersion=d.config.createdVersion),d.createdAt&&(A.tenant.createdAt=`${d.createdAt}`);let T=await Wan.getAllFlags(c,{personProperties:m,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:A});for(let[S,b]of Object.entries(T))if(this.isFlagName(S)){if(typeof b!="boolean"){console.warn(`Invalid value for posthog flag "${S}": ${b}`);continue}if(!(i[S]===!0||a.has(S)))try{i[S]=b,n[`flags.${S}.source`]="posthog"}catch(C){console.warn(`Error parsing posthog flag "${S}": ${b}`,C)}}}let f=OHe();for(let[d,m]of Object.entries(f))this.isFlagName(d)&&typeof m=="boolean"&&(i[d]=m,n[`flags.${d}.source`]="override");NHe(this.setId,i);for(let[d,m]of Object.entries(i))n[`flags.${d}.value`]=m;return e?.addTags(n),i})}},$Oo={USE_ZOD_VALIDATOR:!1,AI_TESTS:!1,ESCALATION:!1,FRONT_COMPANION:!1,PROJECTS:!1,DEBUG_UI:dt.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,AI_AGENT_ACTIVITY:!1},Inc=new nmt($Oo);ur();var vnc=r_e();var UDo=sln(),FDo=r_e();function QDo(){return{logger:bpt,genReqId:FDo.getId,autoLogging:{ignore:s(t=>!!t.url?.includes("/health"),"ignore")},serializers:{req:s(t=>({method:t.method,url:t.url,correlationId:t.id}),"req"),res:s(t=>({status:t.statusCode}),"res")}}}s(QDo,"pinoSettings");function qDo(){return dt.HTTP_LOGGING?UDo(QDo()):(t,e)=>e()}s(qDo,"getMiddleware");var GDo=qDo();var WDo=ge(sVe());ur();ur();var zDo=ge(require("dd-trace"));var bsc=dt.SESSION_UPDATE_PERIOD?parseInt(dt.SESSION_UPDATE_PERIOD):60*1e3;ur();var Xko=ge(qwe());var Mre={};Ui(Mre,{authenticate:()=>tPo,options:()=>ePo});function xC(t,e,r){return t(r,null,{message:e})}s(xC,"authError");var MAt="Invalid credentials",Zko="This account has expired. Please reset your password",ePo={passReqToCallback:!0};async function tPo(t,e,r,n){if(!e)return xC(n,"Email Required");if(!r)return xC(n,"Password Required");let i=await are(e);return i==null?(console.info(`user=${e} could not be found`),xC(n,MAt)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),xC(n,MAt)):i.password?await hWt(r,i.password)?(delete i.password,n(null,i)):xC(n,MAt):(console.info(`user=${e} has no password set`,i),xC(n,Zko))}s(tPo,"authenticate");ur();ur();var dlc=m_t().OAuth2Strategy;var SLo=ge(require("node-fetch"));ur();var ILo=ge(jpn());ur();ur();var pfc=m_t().OAuth2Strategy;var XLo=Sgn(),ZLo=xgn().Strategy,Odc=vgn();XLo.use(new ZLo(Mre.options,Mre.authenticate));var vNe={};Ui(vNe,{validate:()=>sMo});ur();var _r=ge(qwe());var tMo=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function P_t(t,e){let{error:r}=t.validate(e);if(r)throw r}s(P_t,"runJoi");function rMo(t){let e=_r.default.object({type:_r.default.string().allow("component").required(),metadata:_r.default.object().unknown(!0).required(),hash:_r.default.string().optional(),version:_r.default.string().optional(),schema:_r.default.object({name:_r.default.string().required(),settings:_r.default.array().items(_r.default.object().unknown(!0)).required()}).unknown(!0)});P_t(e,t)}s(rMo,"validateComponent");function nMo(t){let e=_r.default.object({type:_r.default.string().allow(...Object.values(kqe)).required(),required:_r.default.boolean().required(),default:_r.default.any(),display:_r.default.string()}),r=_r.default.object({type:_r.default.string().allow(...Object.values(Bqe)),readable:_r.default.boolean(),displayName:_r.default.string(),fields:_r.default.object().pattern(_r.default.string(),e)}).required(),n=_r.default.object({type:_r.default.string().allow("datasource").required(),metadata:_r.default.object().unknown(!0).required(),hash:_r.default.string().optional(),version:_r.default.string().optional(),schema:_r.default.object({docs:_r.default.string(),plus:_r.default.boolean().optional(),isSQL:_r.default.boolean().optional(),auth:_r.default.object({type:_r.default.string().required()}).optional(),features:_r.default.object(Object.fromEntries(Object.values(Pqe).map(i=>[i,_r.default.boolean().optional()]))).optional(),relationships:_r.default.boolean().optional(),description:_r.default.string().required(),friendlyName:_r.default.string().required(),type:_r.default.string().allow(...tMo),datasource:_r.default.object().pattern(_r.default.string(),e).required(),query:_r.default.object().pattern(_r.default.string(),r).unknown(!0).required(),extra:_r.default.object().pattern(_r.default.string(),_r.default.object({type:_r.default.string().required(),displayName:_r.default.string().required(),required:_r.default.boolean(),data:_r.default.object()}))})});P_t(n,t)}s(nMo,"validateDatasource");function iMo(t){let e=_r.default.object().pattern(_r.default.string(),{type:_r.default.string().allow(...Object.values(qqe)).required(),customType:_r.default.string().allow(...Object.values(Gqe)),title:_r.default.string(),description:_r.default.string(),enum:_r.default.array().items(_r.default.string()),pretty:_r.default.array().items(_r.default.string())}),r=_r.default.object({properties:e,required:_r.default.array().items(_r.default.string())}).concat(e).required(),n=_r.default.object({type:_r.default.string().allow("automation").required(),metadata:_r.default.object().unknown(!0).required(),hash:_r.default.string().optional(),version:_r.default.string().optional(),schema:_r.default.object({name:_r.default.string().required(),tagline:_r.default.string().required(),icon:_r.default.string().required(),description:_r.default.string().required(),type:_r.default.string().allow("ACTION","LOGIC").required(),stepId:_r.default.string().disallow(...N2t).required(),inputs:_r.default.object().optional(),schema:_r.default.object({inputs:r,outputs:r}).required()})});P_t(n,t)}s(iMo,"validateAutomation");function sMo(t){switch(t?.type){case"component":rMo(t);break;case"datasource":nMo(t);break;case"automation":iMo(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(sMo,"validate");ur();var ihc={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};var I1a=ge(bBt());var T6n=ge(bBt());ur();ur();var R1a=ge(I3());var s2c={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,notOneOf:!0,$and:!1,$or:!1};var wDa=ge(G6n());var mWn=ge(PBt(),1),pBa=ge(FBt(),1),_Wn=ge(PBt(),1),YBt=ge(FBt(),1),OLe=require("url"),ZW=ge(dWn(),1),EWn=ge(require("http"),1),TWn=ge(ew(),1);var AWn={NotFound:"not-found"};function dBa(t){return typeof t=="function"?t(AWn):t}s(dBa,"resolveEvent");var hBa=class{static{s(this,"RouterEventEmitter")}_handlers=new Map;register(t,e){let r=this._handlers.get(t)??[];r.push(e),this._handlers.set(t,r)}emit(t,e,r){let n=this._handlers.get(t);return n&&n.length>0?(0,mWn.default)(n)(e,r):r()}};function NLe(t,e={}){let r={...e};"strict"in r&&!("trailing"in r)&&(r.trailing=r.strict!==!0,delete r.strict),delete r.pathAsRegExp,delete r.ignoreCaptures,delete r.prefix;let{regexp:n,keys:i}=(0,ZW.pathToRegexp)(t,r);return{regexp:n,keys:i}}s(NLe,"compilePathToRegexp");function gBa(t,e={}){return(0,ZW.compile)(t,e)}s(gBa,"compilePath");function mBa(t,e){return(0,ZW.parse)(t,e)}s(mBa,"parsePath");function VBt(t={}){let e={sensitive:t.sensitive,end:t.end,strict:t.strict,trailing:t.trailing};"strict"in e&&!("trailing"in e)&&(e.trailing=e.strict!==!0,delete e.strict);for(let r of Object.keys(e))e[r]===void 0&&delete e[r];return e}s(VBt,"normalizeLayerOptionsToPathToRegexp");function ABa(t){try{return decodeURIComponent(t)}catch{return t}}s(ABa,"safeDecodeURIComponent");var hWn=class{static{s(this,"Layer")}opts;name;methods;paramNames;stack;path;regexp;constructor(t,e,r,n={}){this.opts=n,this.name=this.opts.name||void 0,this.methods=this._normalizeHttpMethods(e),this.stack=this._normalizeAndValidateMiddleware(r,e,t),this.path=t,this.paramNames=[],this._configurePathMatching()}_normalizeHttpMethods(t){let e=[];for(let r of t){let n=r.toUpperCase();e.push(n),n==="GET"&&e.unshift("HEAD")}return e}_normalizeAndValidateMiddleware(t,e,r){let n=Array.isArray(t)?t:[t];for(let i of n){let o=typeof i;if(o!=="function"){let a=this.opts.name||r;throw new Error(`${e.toString()} \`${a}\`: \`middleware\` must be a function, not \`${o}\``)}}return n}_configurePathMatching(){this.opts.pathAsRegExp===!0?this.regexp=this.path instanceof RegExp?this.path:new RegExp(this.path):this.path&&this._configurePathToRegexp()}_configurePathToRegexp(){let t=VBt(this.opts),{regexp:e,keys:r}=NLe(this.path,t);this.regexp=e,this.paramNames=r}match(t){return this.regexp.test(t)}params(t,e,r={}){let n={...r};for(let[i,o]of e.entries()){let a=this.paramNames[i];if(a&&o&&o.length>0){let u=a.name;if(this.opts.ignoreWildcardParameter===u&&a.type==="wildcard")continue;n[u]=ABa(o)}}return n}captures(t){if(this.opts.ignoreCaptures)return[];let e=t.match(this.regexp);return e?e.slice(1):[]}url(...t){if(this.path instanceof RegExp)throw new TypeError("Cannot generate URL for routes defined with RegExp paths. Use string paths with named parameters instead.");let{params:e,options:r}=this._parseUrlArguments(t),n=this.path.replaceAll("(.*)",""),i=gBa(n,{encode:encodeURIComponent,...r}),o=this._buildParamReplacements(e,n),a=i(o);return r&&r.query?this._addQueryString(a,r.query):a}_parseUrlArguments(t){let e=t[0]??{},r=t[1];if(typeof e!="object"||e===null){let n=[...t],i=n.at(-1);typeof i=="object"&&i!==null?(r=i,e=n.slice(0,-1)):e=n}else if(e&&!r){let n=Object.keys(e);if(n.length===1&&n[0]==="query")r=e,e={};else if("query"in e&&e.query){let{query:o,...a}=e;r={query:o},e=a}}return{params:e,options:r}}_buildParamReplacements(t,e){let{tokens:r}=mBa(e),n=r.some(o=>"name"in o&&o.name),i={};if(Array.isArray(t)){let o=0;for(let a of r)"name"in a&&a.name&&(i[a.name]=String(t[o++]))}else if(n&&typeof t=="object"&&!("query"in t))for(let[o,a]of Object.entries(t))i[o]=String(a);return i}_addQueryString(t,e){let r=(0,OLe.parse)(t),n={...r,query:r.query??void 0};return typeof e=="string"?(n.search=e,n.query=void 0):(n.search=void 0,n.query=e),(0,OLe.format)(n)}param(t,e){let r=this.stack,n=this.paramNames,i=this._createParamMiddleware(t,e),o=n.map(u=>u.name),a=o.indexOf(t);return a!==-1&&this._insertParamMiddleware(r,i,o,a),this}_createParamMiddleware(t,e){let r=s(((n,i)=>(n._matchedParams||(n._matchedParams=new WeakMap),n._matchedParams.has(e)?i():(n._matchedParams.set(e,!0),e(n.params[t],n,i)))),"middleware");return r.param=t,r._originalFn=e,r}_insertParamMiddleware(t,e,r,n){let i=!1;for(let o=0;o<t.length;o++){let a=t[o];if(!a.param){t.splice(o,0,e),i=!0;break}if(r.indexOf(a.param)>n){t.splice(o,0,e),i=!0;break}}i||t.push(e)}setPrefix(t){return this.path?this.path instanceof RegExp?this:(this.path=this._applyPrefix(t),this._reconfigurePathMatching(t),this):this}_applyPrefix(t){let e=this.path==="/",r=this.opts.strict===!0,n=t.includes(":"),i=this.opts.pathAsRegExp===!0&&typeof this.path=="string";if(n&&i){let o=this.path;(o===String.raw`(?:\/|$)`||o===String.raw`(?:\\\/|$)`)&&(this.path="{/*rest}",this.opts.pathAsRegExp=!1)}return e&&!r?t:`${t}${this.path}`}_reconfigurePathMatching(t){let e=this.opts.pathAsRegExp===!0;if(t&&t.includes(":")&&e){let n=VBt(this.opts),{regexp:i,keys:o}=NLe(this.path,n);this.regexp=i,this.paramNames=o,this.opts.pathAsRegExp=!1}else if(e){let n=this.path,i=n.startsWith("^")?n:`^${n}`;this.regexp=this.path instanceof RegExp?this.path:new RegExp(i)}else{let n=VBt(this.opts),{regexp:i,keys:o}=NLe(this.path,n);this.regexp=i,this.paramNames=o}}};function _Ba(){return EWn.default.METHODS.map(t=>t.toLowerCase())}s(_Ba,"getAllHttpMethods");var EBa=["get","post","put","patch","delete","del","head","options"];function yBa(t){return t?Array.isArray(t)?t:[t]:[]}s(yBa,"normalizeParameterMiddleware");function yWn(t,e,r){let n=yBa(r);for(let i of n)t.param(e,i)}s(yWn,"applyParameterMiddlewareToRoute");function TBa(t,e){let r=Object.keys(e);for(let n of r){let i=e[n];yWn(t,n,i)}}s(TBa,"applyAllParameterMiddleware");function pWn(t,e={}){if(!t)return!1;let{keys:r}=NLe(t,e);return r.length>0}s(pWn,"hasPathParameters");function SBa(t,e){return t!==void 0?typeof t=="string"?t===""?{path:"{/*rest}",pathAsRegExp:!1}:t==="/"?{path:"/",pathAsRegExp:!1}:{path:t,pathAsRegExp:!1}:{path:t,pathAsRegExp:!0}:e?{path:"{/*rest}",pathAsRegExp:!1}:{path:String.raw`(?:\/|$)`,pathAsRegExp:!0}}s(SBa,"determineMiddlewarePath");var HBt=(0,TWn.default)("koa-router"),SWn=_Ba(),gWn=class{static{s(this,"RouterImplementation")}opts;methods;exclusive;params;stack;host;_events=new hBa;constructor(t={}){this.opts=t,this.methods=this.opts.methods||["HEAD","OPTIONS","GET","PUT","PATCH","POST","DELETE"],this.exclusive=!!this.opts.exclusive,this.params={},this.stack=[],this.host=this.opts.host}static url(t,...e){return new hWn(t,[],()=>{}).url(...e)}use(...t){let e;if(this._isPathArray(t[0]))return this._useWithPathArray(t);let r=this._hasExplicitPath(t[0]);if(r&&(e=t.shift()),t.length===0)throw new Error("You must provide at least one middleware function to router.use()");for(let n of t)this._isNestedRouter(n)?this._mountNestedRouter(n,e):this._registerMiddleware(n,e,r);return this}_isPathArray(t){return Array.isArray(t)&&t.length>0&&t.every(e=>typeof e=="string")}_hasExplicitPath(t){return typeof t=="string"||t instanceof RegExp}_isNestedRouter(t){return typeof t=="function"&&"router"in t&&t.router!==void 0}_useWithPathArray(t){let e=t[0],r=t.slice(1);for(let n of e)Reflect.apply(this.use,this,[n,...r]);return this}_mountNestedRouter(t,e){let r=t.router,n=this._cloneRouter(r),i=e&&typeof e=="string"&&pWn(e,this.opts);for(let o=0;o<n.stack.length;o++){let a=n.stack[o],u=this._cloneLayer(a);e&&typeof e=="string"&&u.setPrefix(e),this.opts.prefix&&u.setPrefix(this.opts.prefix),u.methods.length===0&&i&&(u.opts.ignoreCaptures=!1),this.stack.push(u),n.stack[o]=u}this.params&&this._applyParamMiddlewareToRouter(n)}_cloneRouter(t){return Object.assign(Object.create(Object.getPrototypeOf(t)),t,{stack:[...t.stack]})}_cloneLayer(t){return Object.assign(Object.create(Object.getPrototypeOf(t)),t,{stack:[...t.stack],methods:[...t.methods],paramNames:[...t.paramNames],opts:{...t.opts}})}_applyParamMiddlewareToRouter(t){let e=Object.keys(this.params);for(let r of e){let n=this.params[r];yWn(t,r,n)}}_registerMiddleware(t,e,r){let n=pWn(this.opts.prefix||"",this.opts),i=(()=>{if(e!==void 0)return e;if(n)return""})(),o=r||e===void 0&&n,{path:a,pathAsRegExp:u}=SBa(i,n),c=a,l=u,f=o&&a==="/";o&&typeof a=="string"&&(c=a,l=!1);let d=i===""&&a==="{/*rest}"?"rest":void 0;this.register(c,[],t,{end:f,ignoreCaptures:!o&&!n,ignoreWildcardParameter:d,pathAsRegExp:l})}prefix(t){let e=t.replace(/\/$/,""),r=this.opts.prefix||"";this.opts.prefix=e;for(let n of this.stack){if(typeof n.path=="string"&&r){let i=r+"/";(n.path===r||n.path.startsWith(i))&&(n.path=n.path.slice(r.length)||"/")}n.setPrefix(e)}return this}middleware(){let t=function(e,r){if(HBt("%s %s",e.method,e.path),!this.matchHost(e.host))return r();let n=this._getRequestPath(e),i=this.match(n,e.method);if(this._storeMatchedRoutes(e,i),e.router=this,e.routeMatched=i.route,!i.route)return this._events.emit(AWn.NotFound,e,r);let o=i.pathAndMethod;this._setMatchedRouteInfo(e,o);let a=this._buildMiddlewareChain(o,n);return(0,_Wn.default)(a)(e,r)}.bind(this);return t.router=this,t}_getRequestPath(t){let e=t;return this.opts.routerPath||e.newRouterPath||e.path||e.routerPath||""}_storeMatchedRoutes(t,e){let r=t;r.matched?r.matched.push(...e.path):r.matched=e.path}_setMatchedRouteInfo(t,e){let r=t,n=e.toReversed().find(i=>i.methods.length>0);n&&(r._matchedRoute=n.path,n.name&&(r._matchedRouteName=n.name))}_buildMiddlewareChain(t,e){let r;if(this.exclusive){let i;if(this.opts.exclusive==="specificity")for(let o of t)(!i||o.paramNames.length<i.paramNames.length)&&(i=o);else i=t.at(-1);r=i?[i]:[]}else r=t;let n=[];for(let i of r)n.push((o,a)=>{let u=o;return u.captures=i.captures(e),u.request.params=i.params(e,u.captures||[],u.params),u.params=u.request.params,u.routerPath=i.path,u.routerName=i.name||void 0,u._matchedRoute=i.path,i.name&&(u._matchedRouteName=i.name),a()},...i.stack);return n}routes(){return this.middleware()}on(t,e){return this._events.register(dBa(t),e),this}allowedMethods(t={}){let e=this.methods;return(r,n)=>{let i=r;return n().then(()=>{if(!this._shouldProcessAllowedMethods(i))return;let o=i.matched||[],a=this._collectAllowedMethods(o),u=Object.keys(a),c=r.method.toUpperCase();if(!e.includes(c)){this._handleNotImplemented(i,u,t);return}if(c==="OPTIONS"&&u.length>0){this._handleOptionsRequest(i,u);return}u.length>0&&!a[c]&&this._handleMethodNotAllowed(i,u,t)})}}_shouldProcessAllowedMethods(t){return!!(t.matched&&(!t.status||t.status===404))}_collectAllowedMethods(t){let e={};for(let r of t)for(let n of r.methods)e[n]=n;return e}_handleNotImplemented(t,e,r){if(r.throw)throw typeof r.notImplemented=="function"?r.notImplemented():new YBt.default.NotImplemented;t.status=501,t.set("Allow",e.join(", "))}_handleOptionsRequest(t,e){t.status=200,t.body="",t.set("Allow",e.join(", "))}_handleMethodNotAllowed(t,e,r){if(r.throw)throw typeof r.methodNotAllowed=="function"?r.methodNotAllowed():new YBt.default.MethodNotAllowed;t.status=405,t.set("Allow",e.join(", "))}all(...t){let e,r,n;if(t.length>=2&&(typeof t[1]=="string"||t[1]instanceof RegExp)?(e=t[0],r=t[1],n=t.slice(2)):(e=void 0,r=t[0],n=t.slice(1)),typeof r!="string"&&!(r instanceof RegExp)&&(!Array.isArray(r)||r.length===0))throw new Error("You have to provide a path when adding an all handler");let i={name:e,pathAsRegExp:r instanceof RegExp};return this.register(r,SWn,n,{...this.opts,...i}),this}redirect(t,e,r){let n=t,i=e;if(typeof t=="symbol"||typeof t=="string"&&t[0]!=="/"){let a=this.url(t);if(a instanceof Error)throw a;n=a}if(typeof e=="symbol"||typeof e=="string"&&e[0]!=="/"&&!e.includes("://")){let a=this.url(e);if(a instanceof Error)throw a;i=a}return this.all(n,a=>{a.redirect(i),a.status=r||301})}register(t,e,r,n={}){let i={...this.opts,...n};if(Array.isArray(t))return this._registerMultiplePaths(t,e,r,i);let o=this._createRouteLayer(t,e,r,i);return this.opts.prefix&&o.setPrefix(this.opts.prefix),TBa(o,this.params),this.stack.push(o),HBt("defined route %s %s",o.methods,o.path),o}_registerMultiplePaths(t,e,r,n){for(let i of t)this.register.call(this,i,e,r,n);return this}_createRouteLayer(t,e,r,n){return new hWn(t,e,r,{end:n.end===!1?n.end:!0,name:n.name,sensitive:n.sensitive||!1,strict:n.strict||!1,prefix:n.prefix||"",ignoreCaptures:n.ignoreCaptures,ignoreWildcardParameter:n.ignoreWildcardParameter,pathAsRegExp:n.pathAsRegExp})}route(t){return this.stack.find(r=>r.name===t)||!1}url(t,...e){let r=this.route(t);return r?r.url(...e):new Error(`No route found for name: ${String(t)}`)}match(t,e){let r={path:[],pathAndMethod:[],route:!1},n=e.toUpperCase();for(let i of this.stack)if(HBt("test %s %s",i.path,i.regexp),i.match(t)){r.path.push(i);let o=i.methods.length===0,a=i.methods.includes(n);(o||a)&&(r.pathAndMethod.push(i),i.methods.length>0&&(r.route=!0))}return r}matchHost(t){let{host:e}=this;return e?t?typeof e=="string"?t===e:Array.isArray(e)?e.includes(t):e instanceof RegExp?e.test(t):!1:!1:!0}param(t,e){this.params[t]||(this.params[t]=[]),Array.isArray(this.params[t])||(this.params[t]=[this.params[t]]),this.params[t].push(e);for(let r of this.stack)r.param(t,e);return this}_registerMethod(t,...e){let r,n,i;if(e.length>=2&&(typeof e[1]=="string"||e[1]instanceof RegExp)?(r=e[0],n=e[1],i=e.slice(2)):(r=void 0,n=e[0],i=e.slice(1)),typeof n!="string"&&!(n instanceof RegExp)&&(!Array.isArray(n)||n.length===0))throw new Error(`You have to provide a path when adding a ${t} handler`);let o={name:r,pathAsRegExp:n instanceof RegExp};return this.register(n,[t],i,{...this.opts,...o}),this}get(...t){return this._registerMethod("get",...t)}post(...t){return this._registerMethod("post",...t)}put(...t){return this._registerMethod("put",...t)}patch(...t){return this._registerMethod("patch",...t)}delete(...t){return this._registerMethod("delete",...t)}del(...t){return this.delete.apply(this,t)}head(...t){return this._registerMethod("head",...t)}options(...t){return this._registerMethod("options",...t)}};for(let t of SWn)EBa.includes(t)||t in gWn.prototype||Object.defineProperty(gWn.prototype,t,{value:s(function(...r){return this._registerMethod(t,...r)},"value"),writable:!0,configurable:!0,enumerable:!1});var xQc={...M7,...El};var eh=".temp",e5="couchdb",qoe="minio",RWn=[{value:"MAIN_PORT",default:"10000"},{value:"COUCH_DB_URL",default:"http://budibase:budibase@localhost:10000/db/"},{value:"MINIO_URL",default:"http://localhost:10000"},{value:"MINIO_ACCESS_KEY"},{value:"MINIO_SECRET_KEY"}];function CBa(t){let e=t.MAIN_PORT,r=t.COUCH_DB_USER,n=t.COUCH_DB_PASSWORD;return!t.COUCH_DB_URL&&e&&r&&n&&(t.COUCH_DB_URL=`http://${r}:${n}@localhost:${e}/db/`),t.MINIO_URL||(t.MINIO_URL=`http://localhost:${e}/`),t}s(CBa,"checkURLs");async function bBa(){console.log("*** NOTE: use a .env file to load these parameters repeatedly ***");let t={};for(let e of RWn)t[e.value]=await pP(e.value,e.default);return t}s(bBa,"askQuestions");function wBa(t){if(!WBt.default.existsSync(t))throw"Unable to file specified .env file";let e=WBt.default.readFileSync(t,"utf8"),r=CBa(IWn.default.parse(e));for(let n of RWn)if(!r[n.value])throw`Cannot find "${n.value}" property in .env file`;return r}s(wBa,"loadEnvironment");async function zBt(t=!0){let e;t!==!0?e=wBa(t):e=await bBa();for(let r of Object.keys(e))dt._set(r,e[r]);return e}s(zBt,"getConfig");async function $Bt(t,e){let r=ice();try{await r.replicate(t,e,{batch_size:1e3,batches_limit:5,style:"main_only"})}catch(n){throw new Error(`Replication failed - ${JSON.stringify(n)}`)}}s($Bt,"replication");function KBt(t){let e=ice(t.COUCH_DB_URL),r=ice();return{Remote:e,Local:r}}s(KBt,"getPouches");var CQ=ge(require("fs")),Ok=require("path");hd();var bWn=ge(require("node:stream")),wWn=require("stream/promises");var{ObjectStoreBuckets:NBa,ObjectStore:NWn,retrieve:OBa,uploadDirectory:xBa,createBucketIfNotExists:vBa}=Ibe,CWn=Object.values(NBa);async function DBa(t,e){let r=[],n;do{let i=await t.listObjectsV2({Bucket:e,ContinuationToken:n});r.push(...i.Contents?.filter(o=>!!o.Key).map(o=>({...o,bucket:e,Key:o.Key}))||[]),n=i.NextContinuationToken}while(n);return r}s(DBa,"listBucketObjects");async function OWn(){let t=(0,Ok.join)(eh,qoe);CQ.default.mkdirSync(t,{recursive:!0});let e=[],r=0;for(let o of CWn){let a=NWn();try{await a.headBucket({Bucket:o})}catch{r++;continue}e=e.concat(await DBa(a,o))}if(r===CWn.length)throw new Error("Unable to access MinIO/S3 - check environment config.");let n=fP(e.length),i=0;for(let o of e){let a=o.Key,u=await OBa(o.bucket,a),c=a.split("/"),l=(0,Ok.join)(t,o.bucket,...c);CQ.default.mkdirSync((0,Ok.dirname)(l),{recursive:!0}),u instanceof bWn.Readable?await(0,wWn.pipeline)(u,CQ.default.createWriteStream(l)):CQ.default.writeFileSync(l,u),n.update(++i)}n.stop()}s(OWn,"exportObjects");async function xWn(){let t=(0,Ok.join)(eh,qoe),e=CQ.default.readdirSync(t),r=0;e.forEach(o=>{let a=CQ.default.readdirSync((0,Ok.join)(t,o));r+=a.length});let n=fP(r),i=0;for(let o of e){let a=NWn();await vBa(a,o);let u=await xBa(o,(0,Ok.join)(t,o),"/");i+=u.length,n.update(i)}n.stop()}s(xWn,"importObjects");var vWn=require("tar");async function DWn(t){let e=t.env||void 0,r=t.export||t;typeof r!="string"&&(r=`backup-${new Date().toISOString()}.tar.gz`);let n=await zBt(e),i=await vqt(n.COUCH_DB_URL),{Remote:o,Local:a}=KBt(n);i0.default.existsSync(eh)&&i0.default.rmSync(eh,{recursive:!0});let u=(0,bQ.join)(eh,e5);i0.default.mkdirSync(eh),i0.default.mkdirSync(u),console.log("CouchDB Export");let c=fP(i.length),l=0;for(let f of i){c.update(++l);let d=new o(f),m=new a((0,bQ.join)(eh,e5,f));await $Bt(d,m),await d.close(),await m.close()}c.stop(),console.log("S3 Export"),await OWn(),vWn.create({sync:!0,gzip:!0,file:r,cwd:(0,bQ.join)(eh)},[e5,qoe]),i0.default.rmSync(eh,{recursive:!0}),console.log(`Generated export file - ${r}`)}s(DWn,"exportBackup");async function BWn(t){let e=t.env||void 0,r=t.import||t,n=await zBt(e);(!r||!i0.default.existsSync(r))&&(console.error("Cannot import without specifying a valid file to import"),process.exit(-1)),i0.default.existsSync(eh)&&i0.default.rmSync(eh,{recursive:!0}),i0.default.mkdirSync(eh),vWn.extract({sync:!0,cwd:(0,bQ.join)(eh),file:r});let{Remote:i,Local:o}=KBt(n),a=i0.default.readdirSync((0,bQ.join)(eh,e5));console.log("CouchDB Import");let u=fP(a.length),c=0;for(let l of a){u.update(++c);let f=new i(l),d=new o((0,bQ.join)(eh,e5,l));await $Bt(d,f),await f.close(),await d.close()}u.stop(),console.log("MinIO Import"),await xWn();try{await bqe(`http://localhost:${n.MAIN_PORT}/api/system/restored`,"POST")}catch{}console.log("Import complete"),i0.default.rmSync(eh,{recursive:!0})}s(BWn,"importBackup");async function BBa(t){if(t.import)return BWn(t);if(t.export)return DWn(t)}s(BBa,"pickOne");var kWn=new OI("backups").addHelp("Allows building backups of Budibase, as well as importing a backup to a new instance.").addSubOption("--export [filename]","Export a backup from an existing Budibase installation.",DWn).addSubOption("--import [filename]","Import a backup to a new Budibase installation.",BWn).addSubOption("--env [envFile]","Provide an environment variable file to configure the CLI.",BBa);Ox();var LXn=ge(require("node-fetch")),HQ=ge(require("fs")),MXn=ge(require("os")),HMe=require("path");var vXn=ge(MWn()),DXn=ge(require("vm")),wLt=ge(rae());var $O=class{static{s(this,"Helper")}constructor(e,r,n=!0){this.name=e,this.fn=r,this.useValueFallback=n}register(e){e.registerHelper(this.name,(r,n)=>{let i={};n&&n.data&&n.data.root&&(i=n.data.root);let o=this.fn(r,i);return o??(this.useValueFallback?r:null)})}unregister(e){e.unregisterHelper(this.name)}};var VMe=ge(rae());var $Pt=ge(n7n());var Zh=ge(s3e()),d7n=ge(i7n()),h7n=ge(s7n()),p7n=ge(o7n()),g7n=ge(a7n()),m7n=ge(u7n()),A7n=ge(c7n()),_7n=ge(l7n()),E7n=ge(f7n());Zh.default.extend(d7n.default);Zh.default.extend(h7n.default);Zh.default.extend(p7n.default);Zh.default.extend(g7n.default);Zh.default.extend(m7n.default);Zh.default.extend(A7n.default);Zh.default.extend(_7n.default);Zh.default.extend(E7n.default);function qQ(t){return typeof t=="object"&&typeof t.hash=="object"}s(qQ,"isOptions");function YPt(t){return typeof t=="object"&&typeof t.options=="object"&&typeof t.app=="object"}s(YPt,"isApp");function WPt(t,e,r){if(qQ(t))return WPt({},e,t);if(qQ(e))return WPt(t,r,e);let n=YPt(t)?t.context:{};r=r||{},qQ(r)||(e=Object.assign({},e,r)),qQ(r)&&r.hash.root===!0&&(e=Object.assign({},r.data.root,e));let i=Object.assign({},n,e,r.hash);return YPt(t)||(i=Object.assign({},t,i)),YPt(t)&&t.view&&t.view.data&&(i=Object.assign({},i,t.view.data)),i}s(WPt,"getContext");function zPt(t,e,r){return qQ(e)&&(r=e,e=T7n),qQ(t)&&(r=t,e=null,t=null),{str:t,pattern:e,options:r}}s(zPt,"initialConfig");function y7n(t,e,r){let n=zPt(t,e,r),i={lang:"en",date:new Date(n.str)},o=WPt(this,i,{});Zh.default.locale(o.lang||o.language)}s(y7n,"setLocale");var T7n="MMMM DD, YYYY",xMe=s((t,e,r)=>{let n=zPt(t,e,r);if(n.str==null&&n.pattern==null)return Zh.default.locale("en"),(0,Zh.default)().format(T7n);y7n(n.str,n.pattern,n.options);let i=(0,Zh.default)(new Date(n.str));return typeof n.options=="string"?i=n.options.toLowerCase()==="utc"?i.utc():i.tz(n.options):i=i.tz(Zh.default.tz.guess()),n.pattern===""?i.toISOString():i.format(n.pattern)},"date"),Eae=s((t,e,r)=>{let n=zPt(t,e);y7n(n.str,n.pattern);let i=Zh.default.duration(n.str,n.pattern);return r&&!qQ(r)?i.format(r):i.humanize()},"duration"),yae=s((t,e,r)=>(0,Zh.default)(new Date(t)).diff((0,Zh.default)(new Date(e)),r),"difference"),vMe=s(t=>{let e=yae(t,new Date().toISOString(),"ms");return Eae(e,"ms")},"durationFromNow");var DMe=["#if","#unless","#each","#with","lookup","log","blockHelperMissing","each","helperMissing","if","unless","log","lookup","with"],S7n=["math","array","number","url","string","comparison","object","regex","uuid"],GQ={OBJECT:"object",ALL:"all",LITERAL:"literal",JS:"js",DECODE_ID:"decodeId"},A5="%LITERAL%";var I7n={date:xMe,duration:Eae,difference:yae,durationFromNow:vMe};function R7n(t){for(let[r,n]of Object.entries(I7n))t.registerHelper(r,n);let e=[];for(let r of S7n){let n=$Pt.default[r]();for(let i of Object.entries(n)){let o=i[0];DMe.indexOf(o)!==-1||e.indexOf(o)!==-1||e.push(o)}$Pt.default[r]({handlebars:t})}KPt=e.concat(Object.keys(I7n))}s(R7n,"registerAll");var KPt=[];function SFa(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(SFa,"isJest");function jQ(){return SFa()}s(jQ,"isTest");var C7n=s(()=>process&&process.env.BACKEND_JS,"isTestingBackendJS");var IFa=/^[A-Za-z0-9]+$/g,BMe=/{{([^{].*?)}}/g,JPt=/{?{{([^{].*?)}}}?/g,RFa=/{{{([^{].*?)}}}/g,Tae=s(()=>jQ()&&C7n()?!0:jQ()?!1:typeof window>"u","isBackendService"),b7n=s(()=>process&&!process.env.NO_JS,"isJSAllowed"),w7n=s(t=>{let e=t,r=new RegExp(BMe),n=new RegExp(RFa),i=e.match(n);i&&i.forEach(a=>{e=e.replace(a,"")});let o=e.match(r);return o||[]},"findDoubleHbsInstances"),N7n=s(t=>t.match(IFa),"isAlphaNumeric"),XPt=s((t,e,r,n)=>t.slice(0,e)+n+t.slice(e+r),"swapStrings");var ZPt=s(t=>Buffer.from(t,"base64").toString("utf-8"),"atob"),O7n=s((t,e,r)=>{let n=e.map(o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),i=new RegExp(`\\b(${n.join("|")})\\b`,"g");return t.replace(i,`${r}$1`)},"prefixStrings");function kMe(t){return`
|
|
4434
|
+
}`;await Zpe(t,e,"by_api_key")},"createApiKeyView");async function D$e(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Des(r,t),await n(),D$e(t,e,r,n,i);if(o.status===409)return D$e(t,e,r,n,i);throw o}}s(D$e,"queryViewRaw");var Les=s(async(t,e,r,n,i)=>{let u=(await D$e(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");var Mes={by_email2:Bes,by_api_key:Pes,by_app:kes},ege=s(async(t,e,r,n)=>{r||(r=lp());let i=Mes[t];return Les(t,e,r,i,n)},"queryGlobalView");ur();var Ues=ge(require("pouchdb"));var Fes=require("dd-trace");var Tpr=ge(require("node-fetch"));ur();var k$e=T3.removeKeyNumbering;function t1(t){return t==null||t===""}s(t1,"isEmpty");var Epr=class t{static{s(this,"QueryBuilder")}#e;#r;#t;#i;#s;#n;#c;#o;#a;#u;#l;#f=!1;#d;static{this.maxLimit=200}constructor(e,r,n){this.#e=e,this.#r=r,this.#t={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},notOneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#i=50,this.#c="ascending",this.#o="string",this.#a=!0}disableEscaping(){return this.#f=!0,this}setIndexBuilder(e){return this.#l=e,this}setVersion(e){return e!=null&&(this.#u=e),this}setTable(e){return this.#t.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#i=e),this}setSort(e){return e!=null&&(this.#s=e),this}setSortOrder(e){return e!=null&&(this.#c=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#n=e),this}setSkip(e){return this.#d=e,this}excludeDocs(){return this.#a=!1,this}includeDocs(){return this.#a=!0,this}addString(e,r){return this.#t.string[e]=r,this}addFuzzy(e,r){return this.#t.fuzzy[e]=r,this}addRange(e,r,n){return this.#t.range[e]={low:r,high:n},this}addEqual(e,r){return this.#t.equal[e]=r,this}addNotEqual(e,r){return this.#t.notEqual[e]=r,this}addEmpty(e,r){return this.#t.empty[e]=r,this}addNotEmpty(e,r){return this.#t.notEmpty[e]=r,this}addOneOf(e,r){return this.#t.oneOf[e]=r,this}addNotOneOf(e,r){return this.#t.notOneOf[e]=r,this}addContains(e,r){return this.#t.contains[e]=r,this}addNotContains(e,r){return this.#t.notContains[e]=r,this}addContainsAny(e,r){return this.#t.containsAny[e]=r,this}setAllOr(){this.#t.allOr=!0}setOnEmptyFilter(e){this.#t.onEmptyFilter=e}handleSpaces(e){return this.#f?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#u,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#f&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#t))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=k$e(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#t&&this.#t.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#t.equal.tableId&&(a=this.#t.equal.tableId,delete this.#t.equal.tableId);let u=s((S,b)=>t1(b)?null:`${S}:${e.preprocess(b,o)}`,"equal"),c=s((S,b,C="AND")=>{if(t1(b))return null;if(!Array.isArray(b))return`${S}:${b}`;let B=`${e.preprocess(b[0],{escape:!0})}`;for(let k=1;k<b.length;k++)B+=` ${C} ${e.preprocess(b[k],{escape:!0})}`;return`${S}:(${B})`},"contains"),l=s((S,b)=>t1(b)?null:(b=e.preprocess(b,{escape:!0,lowercase:!0,type:"fuzzy"}),`${S}:/.*${b}.*/`),"fuzzy"),f=s((S,b)=>{let C=r?"*:* AND ":"",B=r?"AND":void 0;return C+"NOT "+c(S,b,B)},"notContains"),d=s((S,b)=>c(S,b,"OR"),"containsAny"),m=s((S,b)=>{if(t1(b))return"*:*";if(!Array.isArray(b))if(typeof b=="string")b=b.split(",");else return"";let C=`${e.preprocess(b[0],o)}`;for(let B=1;B<b.length;B++)C+=` OR ${e.preprocess(b[B],o)}`;return`${S}:(${C})`},"oneOf"),A=s((S,b)=>{if(t1(b))return null;if(!Array.isArray(b))if(typeof b=="string")b=b.split(",");else return"";let C=`${e.preprocess(b[0],o)}`;for(let B=1;B<b.length;B++)C+=` OR ${e.preprocess(b[B],o)}`;return`(*:* -${S}:(${C}))`},"notOneOf");function T(S,b,C){let B="";for(let[k,L]of Object.entries(S)){k=k$e(k),k=e.preprocess(e.handleSpaces(k),{escape:!0});let x=b(k,L);if(x!=null){if(B.length>0||n.length>0){let V=C?.mode?C.mode:r?"OR":"AND";B+=` ${V} `}B+=x,(typeof L!="string"&&L!=null||typeof L=="string"&&L!==a&&L!=="")&&(i=!1)}}if(C?.returnBuilt)return B;n+=B}if(s(T,"build"),this.#t.string&&T(this.#t.string,(S,b)=>t1(b)?null:(b=e.preprocess(b,{escape:!0,lowercase:!0,type:"string"}),`${S}:${b}*`)),this.#t.range&&T(this.#t.range,(S,b)=>{if(t1(b)||b.low==null||b.low===""||b.high==null||b.high==="")return null;let C=e.preprocess(b.low,o),B=e.preprocess(b.high,o);return`${S}:[${C} TO ${B}]`}),this.#t.fuzzy&&T(this.#t.fuzzy,l),this.#t.equal&&T(this.#t.equal,u),this.#t.notEqual&&T(this.#t.notEqual,(S,b)=>t1(b)?null:typeof b=="boolean"?`(*:* AND !${S}:${b})`:`!${S}:${e.preprocess(b,o)}`),this.#t.empty&&T(this.#t.empty,S=>(i=!1,`(*:* -${S}:["" TO *])`)),this.#t.notEmpty&&T(this.#t.notEmpty,S=>(i=!1,`${S}:["" TO *]`)),this.#t.oneOf&&T(this.#t.oneOf,m),this.#t.notOneOf&&T(this.#t.notOneOf,A),this.#t.contains&&T(this.#t.contains,c),this.#t.notContains&&T(this.compressFilters(this.#t.notContains),f),this.#t.containsAny&&T(this.#t.containsAny,d),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,T({tableId:a},u)),i){if(this.#t.onEmptyFilter==="none")return"";if(this.#t?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#i,t.maxLimit),include_docs:this.#a};if(this.#n&&(e.bookmark=this.#n),this.#s){let r=this.#c==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#s)}${n}`}return e}async run(){return this.#d&&await this.#p(this.#d),await this.#m()}async#p(e){let r=this.#a,n=this.#i;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#m();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#a=r,this.#i=n}async#m(){let{url:e,cookie:r}=qP(),n=`${e}/${this.#e}/_design/database/_search/${this.#r}`,i=this.buildSearchBody();try{return await ypr(n,i,r)}catch(o){if(o.status===404&&this.#l)return await this.#l(),await ypr(n,i,r);throw o}}};async function ypr(t,e,r){let n=await(0,Tpr.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(ypr,"runQuery");ur();var M7={};Ui(M7,{addTenantToUrl:()=>qes,getTenantDB:()=>Spr,getTenantIDFromCtx:()=>P$e,isUserInWorkspaceTenant:()=>Ges});function Spr(t){return G0(rK(t))}s(Spr,"getTenantDB");ur();function qes(t){let e=Hs();if(eL()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(qes,"addTenantToUrl");var Ges=s((t,e)=>{let r;return e?r=e.tenantId||uh:r=Hs(),($3(t)||uh)===r},"isUserInWorkspaceTenant"),jes=Object.values(Y9),P$e=s((t,e)=>{if(!eL())return uh;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=jes),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(THe()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");ur();var tge={milliseconds:1,seconds:1e3,minutes:60*1e3,hours:3600*1e3,days:1440*60*1e3},_h=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/tge[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*tge[e]/tge[r]}static from(e,r){return new t(r*tge[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};function Ipr(){let t=_h.fromDays(7).toSeconds();if(!dt.SESSION_EXPIRY_SECONDS)return t;let e=parseInt(dt.SESSION_EXPIRY_SECONDS);return Number.isFinite(e)&&e>0?e:t}s(Ipr,"getSessionExpirySeconds");var Nhu="app_";function Rpr(t){return new Promise(e=>setTimeout(e,t))}s(Rpr,"timeout");function Cpr(t){return!!pUt[t]}s(Cpr,"isAudited");var yIr=ge(EIr());var TZe=require("util"),SZe=ge(require("zlib"));var UAu=(0,TZe.promisify)(SZe.default.gzip),FAu=(0,TZe.promisify)(SZe.default.gunzip);var wIr=ge(require("http")),NIr=ge(require("https"));var TIr=ge(require("dns")),D1=ge(require("net"));var SIr=require("util");var NAs=["127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","100.64.0.0/10","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10"],RZe,OAs=(0,SIr.promisify)(TIr.default.lookup);function IIr(){return!(dt.SELF_HOSTED&&dt.BLACKLIST_IPS!==void 0)}s(IIr,"shouldApplyDefaultBlacklist");function CZe(t){return D1.default.isIP(t)===6?"ipv6":"ipv4"}s(CZe,"getIpVersion");function xAs(t){let e=D1.default.isIP(t);return e===4?32:e===6?128:null}s(xAs,"getMaxPrefixLength");function vAs(t,e){if(!/^\d+$/.test(e))return null;let r=Number.parseInt(e,10),n=xAs(t);return n==null||r>n?null:r}s(vAs,"getValidSubnetPrefix");function DAs(t){return D1.default.isIP(t)?t:(/^https?:\/\//.test(t)||(t=`https://${t}`),new URL(t).hostname.replace(/^\[|\]$/g,""))}s(DAs,"parseAddress");async function RIr(t){return t=DAs(t),(await OAs(t,{all:!0})).map(r=>r.address)}s(RIr,"lookup");async function bZe(t){return D1.default.isIP(t)?[t]:RIr(t)}s(bZe,"resolveAddress");function IZe(t,e){let r=e.trim();if(!r)return;let n=r.split("/");if(n.length>2){console.log(`Ignoring invalid blacklist entry: ${r}`);return}let[i,o]=n,a=D1.default.isIP(i);if(n.length===2){let u=vAs(i,o);if(a&&u!==null){t.addSubnet(i,u,CZe(i));return}console.log(`Ignoring invalid blacklist entry: ${r}`);return}a&&t.addAddress(i,CZe(i))}s(IZe,"addEntryToBlacklist");async function BAs(){let t=new D1.default.BlockList;if(IIr())for(let r of NAs)IZe(t,r);let e=dt.BLACKLIST_IPS?.split(",")||[];for(let r of e){let n=r.trim();if(!n)continue;let[i]=n.split("/");if(D1.default.isIP(i)){IZe(t,n);continue}let o=await RIr(n);for(let a of o)IZe(t,a)}RZe=t}s(BAs,"refreshBlacklist");async function CIr(t){RZe||await BAs();let e;try{e=await bZe(t)}catch(r){return r instanceof TypeError?(console.error("Black list error: could not parse address: ",t),!0):IIr()}return e.some(r=>RZe.check(r,CZe(r)))}s(CIr,"isBlacklisted");var oAe=ge(require("node-fetch"));var bIr=5,PAs=new Set(["http:","https:"]),LAs=["authorization","cookie","cookie2","proxy-authorization"];function wZe(t){let e;try{e=new URL(t)}catch{throw new Error("Invalid URL.")}if(!PAs.has(e.protocol))throw new Error("Only HTTP(S) URLs are allowed.");if(e.username||e.password)throw new Error("URL must not include credentials.");return e}s(wZe,"parseUrl");function MAs(t){return[301,302,303,307,308].includes(t)}s(MAs,"isRedirect");async function UAs(t){let e=wZe(t),r=await bZe(e.hostname);if(r.length===0)throw new Error("URL is blocked or could not be resolved safely.");for(let n of r)if(await CIr(n))throw new Error("URL is blocked or could not be resolved safely.");return r[0]}s(UAs,"resolveSafePinnedIp");function FAs(t){let e=t.includes(":")?6:4;return(r,n,i)=>{if(typeof n=="object"&&n?.all){i(null,[{address:t,family:e}]);return}i(null,t,e)}}s(FAs,"createPinnedLookup");function QAs(t,e){let r=new URL(t).protocol,n=FAs(e);return r==="https:"?new NIr.default.Agent({lookup:n}):new wIr.default.Agent({lookup:n})}s(QAs,"makePinnedAgent");function qAs(t,e){let r=t.method?.toUpperCase()||"GET";return e===303||(e===301||e===302)&&r==="POST"?{...t,body:void 0,method:"GET",redirect:"manual"}:t}s(qAs,"nextRequestForRedirect");function GAs(t,e){return new URL(t).origin!==new URL(e).origin}s(GAs,"shouldStripSensitiveHeadersForRedirect");function jAs(t){if(!t.headers)return t;let e=new oAe.Headers(t.headers);return LAs.forEach(r=>e.delete(r)),{...t,headers:e}}s(jAs,"stripSensitiveHeadersForRedirect");function VAs(t){return!t||typeof t!="object"||!("resume"in t)?!1:typeof t.resume=="function"}s(VAs,"isResumableBody");function HAs(t){let e=t.body;VAs(e)&&e.resume()}s(HAs,"releaseResponseBody");async function jJ(t,e={},{followRedirects:r=!0,returnRedirectWithoutLocation:n=!1,rejectCrossOriginRedirects:i=!1,fetchFn:o=oAe.default}={}){let a=t,u={...e,redirect:"manual"};for(let c=0;c<=bIr;c++){let l=await UAs(a),f;try{f=await o(a,{...u,agent:QAs(a,l)},l)}catch(A){let T=wZe(a).hostname;throw A instanceof Error?(A.message=`Failed to connect to resolved IP for ${T}: ${A.message}`,A):new Error(`Failed to connect to resolved IP for ${T}: unknown network error`)}if(!MAs(f.status))return f;if(HAs(f),!r)throw new Error("Redirects are not permitted.");if(c===bIr)break;let d=f.headers.get("location");if(!d){if(n)return f;throw new Error("Maximum redirect reached.")}let m=wZe(new URL(d,a).toString()).toString();if(u=qAs(u,f.status),GAs(a,m)){if(i)throw new Error("Redirect to a different origin is not permitted.");u=jAs(u)}a=m}throw new Error("Maximum redirect reached.")}s(jJ,"fetchWithBlacklist");function YAs(t){let e="",r=-1,n,i,o=t.opts?.repeat;return o&&(i=o.endDate?new Date(o.endDate).getTime():Date.now(),n=o.tz,"cron"in o?e=o.cron:r=o.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}s(YAs,"jobToJobInformation");var NZe=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new OIr.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((d,m)=>{d?l(d):c(m)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(f){if(l++,l<o&&!n._isDiscarded)return await $b.wait(100*l),await a(i(),l);throw f}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=UI(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:s(async()=>{c._isDiscarded=!0},"discard")};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:s(()=>new Promise((c,l)=>{let f=s((m,A)=>{m.id===o&&(this._emitter.off("error",f),this._emitter.off("completed",d),l(A))},"errorHandler"),d=s((m,A)=>{m.id===o&&(this._emitter.off("error",f),this._emitter.off("completed",d),c(A))},"completedHandler");this._emitter.on("error",f),this._emitter.on("completed",d)}),"finished")}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}async getJobs(){return this._messages}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>YAs(e))}async whenCurrentJobsFinished(){do await Rpr(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},xIr=NZe;var Ltt=ge(vNr());function DNr(t,e,r){gRs(t,e),r&&hRs(t,r)}s(DNr,"addListeners");function hRs(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let o of i)o.id===n&&await t.removeRepeatableByKey(o.key);console.log(`jobId=${n} disabled`)}})}s(hRs,"handleStalled");function Vy(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(Vy,"getLogParams");var pRs={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event",batchUserSyncProcessorQueue:"batch-user-sync-processor",ragIngestionQueue:"rag-ingestion-processor",agentLogIndexingQueue:"agent-log-indexing-processor",escalationQueue:"escalation-processor",agentRequestTrackingQueue:"agent-request-tracking-processor",agentTestRunQueue:"agent-test-run-processor",knowledgeSourceSyncQueue:"knowledge-source-sync-processor"};function gRs(t,e){let r=pRs[e];function n(i,o){let a=i.data.event?.appId;if(a)return SHe(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...Vy(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...Vy(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...Vy(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...Vy(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...Vy(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...Vy(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...Vy(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...Vy(r,"paused"))}).on("resumed",()=>{console.info(...Vy(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...Vy(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...Vy(r,"drained"))}).on("removed",i=>{console.info(...Vy(r,"removed",{job:i}))})}s(gRs,"logging");var mRs=[];function BNr(t,e){let r=setInterval(t,e);return mRs.push(r),r}s(BNr,"set");var nN=ge(require("dd-trace")),gX=ge(oOr());var ZRs=_h.fromMinutes(5).toMs(),eCs=_h.fromSeconds(30).toMs(),Mtt=_h.fromSeconds(60).toMs(),cOr=[],aOr;async function uOr(){for(let t of cOr)await t.clean(Mtt,"completed"),await t.clean(Mtt,"failed")}s(uOr,"cleanup");async function tCs(t,e,r){let n=performance.now();try{let i=await e();return nN.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw nN.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;nN.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),nN.default.dogstatsd.increment(t,1,r)}}s(tCs,"withMetrics");function lOr(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}s(lOr,"jobOptsTags");function rCs(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,gX.default)(t.data),...lOr(t.opts||{})}}s(rCs,"jobTags");var nU=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:C3(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:ZRs,lockRenewTime:eCs}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return dt.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new Ltt.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new xIr(this.jobQueue,r):n=new Ltt.default(this.jobQueue,r),DNr(n,this.jobQueue,this.opts.removeStalledCb),cOr.push(n),!aOr&&!dt.isTest()&&(aOr=BNr(uOr,Mtt),uOr().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await nN.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,f={traceId:l.traceId,spanId:l.spanId,toTraceId:s(()=>l.traceId,"toTraceId"),toSpanId:s(()=>l.spanId,"toSpanId"),toTraceparent:s(()=>"","toTraceparent")};c.addLink({context:f})}c.addTags({"queue.name":this.jobQueue,...rCs(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),nN.default.dogstatsd.distribution("queue.process.sizeBytes",(0,gX.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await nN.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,gX.default)(e),...lOr(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},nN.default.dogstatsd.distribution("queue.add.sizeBytes",(0,gX.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return tCs(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};var n_e={};Ui(n_e,{getId:()=>Ftt,setHeader:()=>cCs});var hOr=r_e(),cCs=s(t=>{let e=hOr.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Ftt(){return hOr.getId()}s(Ftt,"getId");var Rbe=ge(_vr()),ZJr=ge(kst()),Cpt=ge(require("dd-trace")),eXr=require("dd-trace/ext");var KJr=ge(require("path")),JJr=ge(PMr());var Ibe={};Ui(Ibe,{ObjectStore:()=>hT,ObjectStoreBuckets:()=>lpo,SIGNED_FILE_PREFIX:()=>mpt,bucketTTLConfig:()=>mbe,budibaseTempDir:()=>NF,client3rdPartyLibrary:()=>ngo,clientLibraryPath:()=>rgo,clientLibraryUrl:()=>igo,createBucketIfNotExists:()=>$te,deleteFile:()=>Npo,deleteFiles:()=>Opo,deleteFolder:()=>LJr,downloadTarball:()=>vpo,downloadTarballDirect:()=>xpo,enrichPWAImages:()=>sgo,enrichPluginURLs:()=>ago,extractBucketAndPath:()=>dpt,getAllFiles:()=>Cpo,getAppFileUrl:()=>jJr,getClientCacheKey:()=>GJr,getGlobalFileS3Key:()=>VJr,getGlobalFileUrl:()=>ogo,getObjectMetadata:()=>Dpo,getPluginIconKey:()=>WJr,getPluginJSKey:()=>YJr,getPluginS3Dir:()=>$Jr,getPresignedUrl:()=>OF,getReadStream:()=>Abe,getSafeRetrieveDirectoryPath:()=>PJr,listAllObjects:()=>Apt,objectExists:()=>Bpo,processAutomationAttachment:()=>dpo,processObjectStoreAttachment:()=>TJr,retrieve:()=>kJr,retrieveDirectory:()=>wpo,retrieveToTmp:()=>bpo,sanitizeBucket:()=>gm,sanitizeKey:()=>nf,streamUpload:()=>BJr,streamUploadMany:()=>Rpo,upload:()=>Ipo,uploadDirectory:()=>_pt});var Ebe=ge(cht()),hpt=ge(cKr()),NJr=ge(dKr()),OJr=ge(bKr());var KN=ge(require("dd-trace")),oH=ge(require("fs")),Wte=ge(require("fs/promises")),xJr=ge(require("https")),EE=require("path"),ybe=ge(require("stream")),zte=require("stream/promises"),ppt=ge(mJr());Wx();var gpt=ge(require("zlib"));var AJr=ge(require("fs")),_Jr=require("os"),Yte=ge(require("path")),EJr=ge(require("stream"));var lpo={BACKUPS:dt.BACKUPS_BUCKET_NAME,APPS:dt.APPS_BUCKET_NAME,TEMPLATES:dt.TEMPLATES_BUCKET_NAME,GLOBAL:dt.GLOBAL_BUCKET_NAME,PLUGINS:dt.PLUGIN_BUCKET_NAME,TEMP:dt.TEMP_BUCKET_NAME},yJr=(0,Yte.join)((0,_Jr.tmpdir)(),".budibase");try{AJr.default.mkdirSync(yJr)}catch(t){if(t.code!=="EEXIST")throw t}function NF(){return yJr}s(NF,"budibaseTempDir");var mbe=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function fpo(t){let e=await jJ(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Yte.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");if(!(e.body instanceof EJr.default.Readable))throw new Error("Unexpected response body stream type");return{filename:t.filename||r,content:e.body}}s(fpo,"processUrlAttachment");async function TJr(t){let e=dpt(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await Abe(r,n),o=Yte.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(TJr,"processObjectStoreAttachment");async function dpo(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await fpo(t):await TJr(t)}s(dpo,"processAutomationAttachment");var Epo=wJr(),ypo={bucketCreationPromises:{}},mpt="/files/signed",tB={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},Tpo=[tB.html,tB.css,tB.js,tB.json];function nf(t){let e=Epo(gm(t)).replace(/\\/g,"/");if(e.split("/").some(r=>r==="."||r===".."))throw new Error("Invalid object store key: path traversal is not allowed.");return e}s(nf,"sanitizeKey");function gm(t){return t.replace(new RegExp(Kb,"g"),UP)}s(gm,"sanitizeBucket");function hT(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:dt.MINIO_ACCESS_KEY,secretAccessKey:dt.MINIO_SECRET_KEY},region:dt.AWS_REGION};if(!dt.MINIO_ENABLED&&dt.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:dt.MINIO_ACCESS_KEY,secretAccessKey:dt.MINIO_SECRET_KEY,sessionToken:dt.AWS_SESSION_TOKEN}),dt.MINIO_URL&&(t.presigning&&dt.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=dt.MINIO_URL),dt.S3_IGNORE_SELF_SIGNED==="true"){let r=new xJr.default.Agent({rejectUnauthorized:!1});e.requestHandler=new OJr.NodeHttpHandler({httpsAgent:r})}return new Ebe.S3(e)}s(hT,"ObjectStore");async function $te(t,e){e=gm(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode||r.$metadata?.httpStatusCode,i=ypo.bucketCreationPromises;if(n===403)throw new Error("Access denied to object store bucket."+r);if(i[e])return await i[e],{created:!1,exists:!0};i[e]=t.createBucket({Bucket:e}).catch(o=>{if(o.Code!=="BucketAlreadyOwnedByYou"&&o.name!=="BucketAlreadyOwnedByYou")throw o});try{return await i[e],{created:!0,exists:!1}}finally{delete i[e]}}}s($te,"createBucketIfNotExists");var Spo=s((t,e)=>{if(e)return e;let r=t.split(".").pop();return r?tB[r.toLowerCase()]:tB.txt},"resolveContentType"),vJr=s(async(t,e,r)=>{let n=gm(t),i=hT(),o=await $te(i,n);if(r.addTags({bucketCreated:o.created,bucketExists:o.exists}),e&&o.created){let a=mbe(n,e);await i.putBucketLifecycleConfiguration(a)}return{bucket:n,client:i,bucketCreated:o}},"initialiseBucket"),DJr=s(async({client:t,bucket:e,filename:r,stream:n,type:i,extra:o})=>{if(!n)throw new Error("Stream to upload is invalid/undefined");let a=Spo(r,i),u=nf(r),c={Bucket:e,Key:u,Body:n,ContentType:a,...o??{}};return{details:await new hpt.Upload({client:t,params:c}).done(),contentType:a}},"streamUploadInternal");async function Ipo({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await Wte.default.open(r)).createReadStream():o,l=hT(),f=await $te(l,t);if(a&&f.created){let S=mbe(t,a);await l.putBucketLifecycleConfiguration(S)}let d=n,m=d||(u?tB[u.toLowerCase()]:tB.txt),A={Bucket:gm(t),Key:nf(e),Body:c,ContentType:m};if(i&&typeof i=="object"){for(let S of Object.keys(i))(!i[S]||typeof i[S]!="string")&&delete i[S];A.Metadata=i}return new hpt.Upload({client:l,params:A}).done()}s(Ipo,"upload");async function BJr({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await KN.default.trace("streamUpload",async a=>{a.addTags({bucketName:t,filename:r,type:n,ttl:o});let u=r.split(".").pop();a.addTags({extension:u});let{bucket:c,client:l}=await vJr(t,o,a),{details:f,contentType:d}=await DJr({client:l,bucket:c,filename:r,stream:e,type:n,extra:i}),m=await l.headObject({Bucket:c,Key:nf(r)});return a.addTags({contentType:d,contentLength:m.ContentLength}),{...f,ContentLength:m.ContentLength}})}s(BJr,"streamUpload");async function Rpo({bucket:t,files:e,ttl:r}){return await KN.default.trace("streamUploadMany",async i=>{if(i.addTags({bucketName:t,ttl:r,fileCount:e.length}),!e.length)return[];let{bucket:o,client:a}=await vJr(t,r,i),u=e.map((l,f)=>({...l,index:f})),c=new Array(e.length);return await kx.parallelForeach(u,async l=>{let{details:f}=await DJr({client:a,bucket:o,filename:l.filename,stream:l.stream,type:l.type,extra:l.extra});c[l.index]=f},10),c})}s(Rpo,"streamUploadMany");async function kJr(t,e){return await KN.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=hT(),i={Bucket:gm(t),Key:nf(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),Tpo.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return ybe.default.Readable.fromWeb(a)}})}s(kJr,"retrieve");async function*Apt(t,e){let r=hT(),n=s((a={})=>r.listObjectsV2({...a,Bucket:gm(t),Prefix:nf(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s(Apt,"listAllObjects");async function Cpo(t,e){let r={};return await kx.parallelForeach(Apt(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(Cpo,"getAllFiles");async function OF(t,e,r=3600){let n=hT({presigning:!0}),i={Bucket:gm(t),Key:nf(e)},o=await(0,NJr.getSignedUrl)(n,new Ebe.GetObjectCommand(i),{expiresIn:r});if(dt.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${mpt}${u}${c}`}else return o}s(OF,"getPresignedUrl");async function bpo(t,e){return await KN.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=gm(t),e=nf(e);let n=await kJr(t,e),i=(0,EE.join)(NF(),Jb());return r.addTags({outputPath:i}),n instanceof ybe.default.Readable?(r.addTags({stream:!0}),await(0,zte.pipeline)(n,oH.default.createWriteStream(i))):(r.addTags({stream:!1}),oH.default.writeFileSync(i,n)),i})}s(bpo,"retrieveToTmp");async function wpo(t,e,r){return await KN.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,EE.join)(NF(),Jb());await Wte.default.mkdir(i,{recursive:!0});let o=0;return await kx.parallelForeach(Apt(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await KN.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let f=PJr(i,l);if(!f){c.addTags({skippedUnsafePath:!0});return}let{stream:d}=await Abe(t,l);oH.default.existsSync(f.dir)||await Wte.default.mkdir(f.dir,{recursive:!0}),await(0,zte.pipeline)(d,oH.default.createWriteStream(f.path,{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(wpo,"retrieveDirectory");function PJr(t,e){let r=(0,EE.resolve)(t),n=(0,EE.resolve)(r,...e.split("/"));if(n===r||n.startsWith(`${r}${EE.sep}`))return{dir:(0,EE.dirname)(n),path:n}}s(PJr,"getSafeRetrieveDirectoryPath");async function Npo(t,e){let r=hT();await $te(r,t);let n={Bucket:t,Key:nf(e)};return r.deleteObject(n)}s(Npo,"deleteFile");async function Opo(t,e){let r=hT();await $te(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:nf(i)}))}};return r.deleteObjects(n)}s(Opo,"deleteFiles");async function LJr(t,e){t=gm(t),e=nf(e);let r=hT(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return LJr(t,e)}s(LJr,"deleteFolder");async function _pt(t,e,r){return await KN.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=gm(t);let i=await Wte.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=nf((0,EE.join)(r,o.name)),u=(0,EE.join)(e,o.name);o.isDirectory()?await _pt(t,u,a):await BJr({bucket:t,filename:a,stream:oH.default.createReadStream(u)})}return i})}s(_pt,"uploadDirectory");async function xpo(t,e,r={},{followRedirects:n=!0}={}){e=nf(e);let i=await jJ(t,{headers:r},{followRedirects:n});if(!i.ok)throw new Error(`unexpected response ${i.statusText}`);await(0,zte.pipeline)(i.body,gpt.default.createUnzip(),ppt.default.extract(e))}s(xpo,"downloadTarballDirect");async function vpo(t,e,r){e=gm(e),r=nf(r);let n=await jJ(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,EE.join)(NF(),r);return await(0,zte.pipeline)(n.body,gpt.default.createUnzip(),ppt.default.extract(i)),!dt.isTest()&&dt.SELF_HOSTED&&await _pt(e,i,r),i}s(vpo,"downloadTarball");async function Abe(t,e){return await KN.default.trace("getReadStream",async r=>{t=gm(t),e=nf(e),r.addTags({bucketName:t,path:e});let n=hT(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof ybe.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(Abe,"getReadStream");async function Dpo(t,e){t=gm(t),e=nf(e);let r=hT(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(Dpo,"getObjectMetadata");async function Bpo(t,e){t=gm(t),e=nf(e);let r=hT(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode||i.$metadata?.httpStatusCode)===404)return!1;throw i}}s(Bpo,"objectExists");function dpt(t){let e=t.split("?")[0],r=new RegExp(`^${mpt}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(dpt,"extractBucketAndPath");var qJr=ge(require("querystring"));var QJr=ge(FJr());var Sbe;function Zpo(){if(!dt.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Sbe||(Sbe=Buffer.from(dt.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Sbe)}s(Zpo,"getPrivateKey");var ego=s(()=>({keypairId:dt.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Zpo(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),aH=s(t=>{let e=tgo(t);return QJr.getSignedUrl(e,ego())},"getPresignedUrl"),tgo=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${dt.CLOUDFRONT_CDN}${e}${t}`},"getUrl");function rgo(t){return`${nf(t)}/budibase-client.js`}s(rgo,"clientLibraryPath");function ngo(t,e){return`${nf(t)}/${e}`}s(ngo,"client3rdPartyLibrary");async function igo(t,e){return`/api/assets/${t}/client?${await GJr(e)}`}s(igo,"clientLibraryUrl");async function GJr(t){let e,r;try{e=Hs()}finally{r={version:t}}return e&&e!==uh&&(r.tenantId=e),qJr.default.encode(r)}s(GJr,"getClientCacheKey");async function jJr(t){return dt.CLOUDFRONT_CDN?aH(t):await OF(dt.APPS_BUCKET_NAME,t)}s(jJr,"getAppFileUrl");async function sgo(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await jJr(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(sgo,"enrichPWAImages");var ogo=s(async(t,e,r)=>{let n=VJr(t,e);return dt.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),aH(n)):await OF(dt.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),VJr=s((t,e)=>{let r=`${t}/${e}`;return dt.MULTI_TENANCY&&(r=`${Hs()}/${r}`),r},"getGlobalFileS3Key");async function ago(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await ugo(e),n=await cgo(e);return{...e,jsUrl:r,iconUrl:n}}))}s(ago,"enrichPluginURLs");async function ugo(t){let e=YJr(t);return HJr(e)}s(ugo,"getPluginJSUrl");async function cgo(t){let e=WJr(t);if(e)return HJr(e)}s(cgo,"getPluginIconUrl");async function HJr(t){return dt.CLOUDFRONT_CDN?aH(t):await OF(dt.PLUGIN_BUCKET_NAME,t)}s(HJr,"getPluginUrl");function YJr(t){return zJr(t,"plugin.min.js")}s(YJr,"getPluginJSKey");function WJr(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return zJr(t,e)}s(WJr,"getPluginIconKey");function zJr(t,e){return`${$Jr(t.name)}/${e}`}s(zJr,"getPluginS3Key");function $Jr(t){let e=`${t}`;return dt.MULTI_TENANCY&&(e=`${Hs()}/${e}`),dt.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s($Jr,"getPluginS3Dir");var lgo="budibase.log",fgo="budibase-logs-history.txt",dgo=KJr.default.join(NF(),"systemlogs");function hgo(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}s(hgo,"getSingleFileMaxSizeInfo");function XJr(){let t=hgo(dt.ROLLING_LOG_MAX_SIZE);return JJr.createStream(lgo,{size:t?.size,path:dgo,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:fgo,initialRotation:!1})}s(XJr,"localFileDestination");function ggo(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(ggo,"isPlainObject");function mgo(t){return t instanceof Error}s(mgo,"isError");function Ago(t){return typeof t=="string"}s(Ago,"isMessage");var nB;if(!dt.DISABLE_PINO_LOGGER){let t=dt.LOG_LEVEL,e={level:t,formatters:{level:s(c=>({level:c.toUpperCase()}),"level"),bindings:s(()=>dt.SELF_HOSTED?{service:dt.SERVICE_NAME}:{},"bindings")},timestamp:s(()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`,"timestamp")},r=[];r.push(dt.isDev()?{stream:(0,ZJr.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),dt.SELF_HOSTED&&r.push({stream:XJr(),level:t}),nB=r.length?(0,Rbe.default)(e,Rbe.default.multistream(r)):(0,Rbe.default)(e);let n=s(c=>{let l,f=[],d="";c.forEach(b=>{Ago(b)&&(d=`${d} ${b}`.trimStart()),ggo(b)&&f.push(b),mgo(b)&&(l=b)});let m=u(),A={};A={tenantId:i(),appId:o(),automationId:a(),identityId:m?._id,identityType:m?.type,correlationId:Ftt()};let T=Cpt.default.scope().active();T&&Cpt.default.inject(T.context(),eXr.formats.LOG,A);let S={err:l,pid:process.pid,...A};if(f.length){let b={},C=0;for(let B=0;B<f.length;B++){let k=f[B],L=k._logKey;L?(delete k._logKey,S[L]=k):(b[C]=k,C++)}Object.keys(b).length&&(S.data=b)}return[S,d]},"getLogParams");console.log=(...c)=>{let[l,f]=n(c);nB?.info(l,f)},console.info=(...c)=>{let[l,f]=n(c);nB?.info(l,f)},console.warn=(...c)=>{let[l,f]=n(c);nB?.warn(l,f)},console.error=(...c)=>{let[l,f]=n(c);nB?.error(l,f)},console.trace=(...c)=>{let[l,f]=n(c);l.err||(l.err=new Error),nB?.trace(l,f)},console.debug=(...c)=>{let[l,f]=n(c);nB?.debug(l,f)};let i=s(()=>{let c;try{c=Hs()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=uA()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=IHe()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Jx()}catch{}return c},"getIdentity")}var bpt=nB;function FS(t){let e=Hs();return`${t}:${e}`}s(FS,"generateTenantKey");var uH=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await mpr()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>FS(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?FS(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[FS(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?FS(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>FS(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(FS(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async increment(e,r,n={useTenancy:!0}){e=n.useTenancy?FS(e):e;let i=await this.getClient(),o=await i.increment(e);return r&&await i.setExpiry(e,r),o}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?FS(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Tgo=new uH,cH={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:s(t=>`oauth2Token_${t}`,"OAUTH2_TOKEN")};var Cbe=s((...t)=>Tgo.withCache(...t),"withCache");ur();var Ggo=ge(LZr());var Eju=_h.fromSeconds(10).toMs();ur();var wju=_h.fromDays(7).toSeconds(),Nju=_h.fromSeconds(10).toMs();var Dju=_h.fromHours(1).toSeconds();var QZr=ge(require("node-fetch"));var DF=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";n_e.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,QZr.default)(`${this.host}${r}`,o)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var zju=new DF(dt.INTERNAL_ACCOUNT_PORTAL_URL),$ju=dt.SELF_HOSTED||dt.DISABLE_ACCOUNT_PORTAL;ur();ur();var sVu=+(dt.PASSWORD_MIN_LENGTH||12),oVu=+(dt.PASSWORD_MAX_LENGTH||512);var mVu=Ipr();ur();ur();var e8u={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`};var Ypt=dt.SELF_HOSTED&&!dt.isDev(),tre=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){Ypt||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Ypt||console.log("[audit] identified",e)}async identifyGroup(e){Ypt||console.log("[audit] group identified",e)}async shutdown(){}};ur();var rre=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new nU("auditLogQueue",{jobTags:s(n=>({"event.name":n.event}),"jobTags")}),t.auditLogQueue.process(async n=>{await iw(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};dt.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Cpr(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:uA(),hostInfo:r.hostInfo},tenantId:Hs()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};Wx();var Kgo=new DF(dt.INTERNAL_ACCOUNT_PORTAL_URL),nre=class t{static{s(this,"EventBrokerProcessor")}static init(e){t.getLicenseKeyFn=e}async processEvent(e,r,n,i){if(dt.DISABLE_ACCOUNT_PORTAL)return;let o;if(dt.SELF_HOSTED){if(!t.getLicenseKeyFn)return;let c=await t.getLicenseKeyFn();if(!c)return;o={"x-budibase-license-key":c}}else o={"x-budibase-api-key":dt.ACCOUNT_PORTAL_API_KEY},r.tenantId&&(o["x-budibase-tenant-id"]=r.tenantId);let a=uA(),u={id:Jb(),type:e,identity:r,properties:{...n,version:dt.VERSION,service:dt.SERVICE,environment:r.environment,hosting:r.hosting,...a&&{appId:a},...r.installationId&&{installationId:r.installationId},...r.tenantId&&{tenantId:r.tenantId}},timestamp:i===void 0?Date.now():new Date(i).getTime()};try{let c=await Kgo.post("/api/v2/analytics/event",{headers:o,body:u});c.ok||console.warn(`[EventBrokerProcessor] unexpected response status: ${c.status}`)}catch(c){console.error(`[EventBrokerProcessor] failed to send event: ${c}`)}}};var ire=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var Jgo=new tre,Xgo=new rre,Zgo=new nre;var Wpt=new ire([Jgo,Xgo,Zgo]);ur();ur();var rmo=ge(k3());ur();ur();ur();ur();ur();ur();ur();ur();var e6u=!dt.SELF_HOSTED&&!dt.isDev();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();ur();var XZr=_y.users.isBuilder,kbe=_y.users.isAdmin,e$u=_y.users.isGlobalBuilder,t$u=_y.users.isAdminOrBuilder,$Zr=_y.users.hasAdminPermissions,ore=_y.users.hasBuilderPermissions,r$u=_y.users.hasAppBuilderPermissions,lmo=_y.users.isAdminOrWorkspaceBuilder;function Imo(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Imo,"removeUserPassword");async function are(t,e){if(t==null)throw"Must supply an email address to view";let r=await ege("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Imo(n)),n}s(are,"getGlobalUserByEmail");ur();function een(t){return`config${"_"}${t}`}s(een,"generateConfigID");async function Mbe(t){let e=lp();try{return await e.get(een(t))}catch(r){if(r.status===404)return;throw r}}s(Mbe,"getConfig");async function zpt(){let t=await Mbe("settings");return t||(t={_id:een("settings"),type:"settings",config:{}}),t.config.platformUrl=await ten({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await jZr({config:t.config}),t}s(zpt,"getSettingsConfigDoc");async function ten(t={tenantAware:!0}){let e=dt.PLATFORM_URL||"http://localhost:10000";if(!dt.SELF_HOSTED&&dt.MULTI_TENANCY&&t.tenantAware){let r=Hs();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(dt.SELF_HOSTED){let r=t?.config?t.config:(await Mbe("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(ten,"getPlatformUrl");var jZr=s(async t=>{if(!dt.SELF_HOSTED)return!!dt.ENABLE_ANALYTICS;let e=await Cbe(cH.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Mbe("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=dt.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");ur();var MOo=ge(I3()),UOo=ge(rmt()),FOo=ge(k3());var Yan={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},yE={...Yan,BUILDER:"BUILDER"},QOo={UUID:void 0,NAME:"name"};var LF=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=QOo.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=Van(e):e&&Array.isArray(e)&&(e=e.map(Van)),this.inherits=e,this}};var anc={ADMIN:new LF(yE.ADMIN,yE.ADMIN,"admin",{displayName:"Admin user",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(yE.POWER),POWER:new LF(yE.POWER,yE.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(yE.BASIC),BASIC:new LF(yE.BASIC,yE.BASIC,"write",{displayName:"Basic user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(yE.PUBLIC),PUBLIC:new LF(yE.PUBLIC,yE.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new LF(yE.BUILDER,yE.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function qOo(t){return Object.values(Yan).includes(t)}s(qOo,"isBuiltin");function Van(t){return qOo(t)?t:_pr(t)}s(Van,"prefixRoleIDNoBuiltin");ur();var VOo=ge(tmt()),HOo=ge(rmt());ur();var nc=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};var dnc={PUBLIC:{_id:"public",name:"Public",permissions:[new nc("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new nc("query","read"),new nc("table","read"),new nc("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new nc("query","write"),new nc("table","write"),new nc("automation","execute"),new nc("legacy_view","read"),new nc("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new nc("table","write"),new nc("user","read"),new nc("automation","execute"),new nc("webhook","read"),new nc("legacy_view","read"),new nc("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new nc("table","admin"),new nc("user","admin"),new nc("automation","admin"),new nc("webhook","read"),new nc("query","admin"),new nc("legacy_view","read"),new nc("app","read")]}};var hnc="builder",pnc="creator",gnc="globalBuilder";ur();var mwe=ge(require("crypto")),zan=ge(require("dd-trace")),$an=ge(I3()),WOo=require("posthog-node");var Wan;function Kan(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(Kan,"parseEnvFlags");function zOo(){return Kan(dt.TENANT_FEATURE_FLAGS||"")}s(zOo,"getEnvFlags");var nmt=class{constructor(e){this.flagSchema=e;this.setId=mwe.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,$an.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await zan.default.trace("features.fetch",async e=>{let r=wHe(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=Hs(),a=new Set;if($fe())return i;for(let{tenantId:d,key:m,value:A}of zOo())if(!(!d||d!=="*"&&d!==o)&&(n.readFromEnvironmentVars=!0,A===!1&&a.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=A,n[`flags.${m}.source`]="environment"}let u=Jx(),c=u?._id;if(!c){let d=RHe();d&&(c=mwe.createHash("sha512").update(d).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,Wan&&c){n.readFromPostHog=!0;let d=await zpt(),m={tenantId:l},A={tenant:{id:l}};d.config.createdVersion&&(A.tenant.createdVersion=d.config.createdVersion),d.createdAt&&(A.tenant.createdAt=`${d.createdAt}`);let T=await Wan.getAllFlags(c,{personProperties:m,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:A});for(let[S,b]of Object.entries(T))if(this.isFlagName(S)){if(typeof b!="boolean"){console.warn(`Invalid value for posthog flag "${S}": ${b}`);continue}if(!(i[S]===!0||a.has(S)))try{i[S]=b,n[`flags.${S}.source`]="posthog"}catch(C){console.warn(`Error parsing posthog flag "${S}": ${b}`,C)}}}let f=OHe();for(let[d,m]of Object.entries(f))this.isFlagName(d)&&typeof m=="boolean"&&(i[d]=m,n[`flags.${d}.source`]="override");NHe(this.setId,i);for(let[d,m]of Object.entries(i))n[`flags.${d}.value`]=m;return e?.addTags(n),i})}},$Oo={USE_ZOD_VALIDATOR:!1,AI_TESTS:!1,ESCALATION:!1,FRONT_COMPANION:!1,PROJECTS:!1,DEBUG_UI:dt.isDev(),DEV_USE_CLIENT_FROM_STORAGE:!1,AI_AGENT_ACTIVITY:!1},Inc=new nmt($Oo);ur();var vnc=r_e();var UDo=sln(),FDo=r_e();function QDo(){return{logger:bpt,genReqId:FDo.getId,autoLogging:{ignore:s(t=>!!t.url?.includes("/health"),"ignore")},serializers:{req:s(t=>({method:t.method,url:t.url,correlationId:t.id}),"req"),res:s(t=>({status:t.statusCode}),"res")}}}s(QDo,"pinoSettings");function qDo(){return dt.HTTP_LOGGING?UDo(QDo()):(t,e)=>e()}s(qDo,"getMiddleware");var GDo=qDo();var WDo=ge(sVe());ur();ur();var zDo=ge(require("dd-trace"));var bsc=dt.SESSION_UPDATE_PERIOD?parseInt(dt.SESSION_UPDATE_PERIOD):60*1e3;ur();var Xko=ge(qwe());var Mre={};Ui(Mre,{authenticate:()=>tPo,options:()=>ePo});function xC(t,e,r){return t(r,null,{message:e})}s(xC,"authError");var MAt="Invalid credentials",Zko="This account has expired. Please reset your password",ePo={passReqToCallback:!0};async function tPo(t,e,r,n){if(!e)return xC(n,"Email Required");if(!r)return xC(n,"Password Required");let i=await are(e);return i==null?(console.info(`user=${e} could not be found`),xC(n,MAt)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),xC(n,MAt)):i.password?await hWt(r,i.password)?(delete i.password,n(null,i)):xC(n,MAt):(console.info(`user=${e} has no password set`,i),xC(n,Zko))}s(tPo,"authenticate");ur();ur();var dlc=m_t().OAuth2Strategy;var SLo=ge(require("node-fetch"));ur();var ILo=ge(jpn());ur();ur();var pfc=m_t().OAuth2Strategy;var XLo=Sgn(),ZLo=xgn().Strategy,Odc=vgn();XLo.use(new ZLo(Mre.options,Mre.authenticate));var vNe={};Ui(vNe,{validate:()=>sMo});ur();var _r=ge(qwe());var tMo=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function P_t(t,e){let{error:r}=t.validate(e);if(r)throw r}s(P_t,"runJoi");function rMo(t){let e=_r.default.object({type:_r.default.string().allow("component").required(),metadata:_r.default.object().unknown(!0).required(),hash:_r.default.string().optional(),version:_r.default.string().optional(),schema:_r.default.object({name:_r.default.string().required(),settings:_r.default.array().items(_r.default.object().unknown(!0)).required()}).unknown(!0)});P_t(e,t)}s(rMo,"validateComponent");function nMo(t){let e=_r.default.object({type:_r.default.string().allow(...Object.values(kqe)).required(),required:_r.default.boolean().required(),default:_r.default.any(),display:_r.default.string()}),r=_r.default.object({type:_r.default.string().allow(...Object.values(Bqe)),readable:_r.default.boolean(),displayName:_r.default.string(),fields:_r.default.object().pattern(_r.default.string(),e)}).required(),n=_r.default.object({type:_r.default.string().allow("datasource").required(),metadata:_r.default.object().unknown(!0).required(),hash:_r.default.string().optional(),version:_r.default.string().optional(),schema:_r.default.object({docs:_r.default.string(),plus:_r.default.boolean().optional(),isSQL:_r.default.boolean().optional(),auth:_r.default.object({type:_r.default.string().required()}).optional(),features:_r.default.object(Object.fromEntries(Object.values(Pqe).map(i=>[i,_r.default.boolean().optional()]))).optional(),relationships:_r.default.boolean().optional(),description:_r.default.string().required(),friendlyName:_r.default.string().required(),type:_r.default.string().allow(...tMo),datasource:_r.default.object().pattern(_r.default.string(),e).required(),query:_r.default.object().pattern(_r.default.string(),r).unknown(!0).required(),extra:_r.default.object().pattern(_r.default.string(),_r.default.object({type:_r.default.string().required(),displayName:_r.default.string().required(),required:_r.default.boolean(),data:_r.default.object()}))})});P_t(n,t)}s(nMo,"validateDatasource");function iMo(t){let e=_r.default.object().pattern(_r.default.string(),{type:_r.default.string().allow(...Object.values(qqe)).required(),customType:_r.default.string().allow(...Object.values(Gqe)),title:_r.default.string(),description:_r.default.string(),enum:_r.default.array().items(_r.default.string()),pretty:_r.default.array().items(_r.default.string())}),r=_r.default.object({properties:e,required:_r.default.array().items(_r.default.string())}).concat(e).required(),n=_r.default.object({type:_r.default.string().allow("automation").required(),metadata:_r.default.object().unknown(!0).required(),hash:_r.default.string().optional(),version:_r.default.string().optional(),schema:_r.default.object({name:_r.default.string().required(),tagline:_r.default.string().required(),icon:_r.default.string().required(),description:_r.default.string().required(),type:_r.default.string().allow("ACTION","LOGIC").required(),stepId:_r.default.string().disallow(...N2t).required(),inputs:_r.default.object().optional(),schema:_r.default.object({inputs:r,outputs:r}).required()})});P_t(n,t)}s(iMo,"validateAutomation");function sMo(t){switch(t?.type){case"component":rMo(t);break;case"datasource":nMo(t);break;case"automation":iMo(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(sMo,"validate");ur();var ihc={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};var I1a=ge(bBt());var T6n=ge(bBt());ur();ur();var R1a=ge(I3());var s2c={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,notOneOf:!0,$and:!1,$or:!1};var wDa=ge(G6n());var mWn=ge(PBt(),1),pBa=ge(FBt(),1),_Wn=ge(PBt(),1),YBt=ge(FBt(),1),OLe=require("url"),ZW=ge(dWn(),1),EWn=ge(require("http"),1),TWn=ge(ew(),1);var AWn={NotFound:"not-found"};function dBa(t){return typeof t=="function"?t(AWn):t}s(dBa,"resolveEvent");var hBa=class{static{s(this,"RouterEventEmitter")}_handlers=new Map;register(t,e){let r=this._handlers.get(t)??[];r.push(e),this._handlers.set(t,r)}emit(t,e,r){let n=this._handlers.get(t);return n&&n.length>0?(0,mWn.default)(n)(e,r):r()}};function NLe(t,e={}){let r={...e};"strict"in r&&!("trailing"in r)&&(r.trailing=r.strict!==!0,delete r.strict),delete r.pathAsRegExp,delete r.ignoreCaptures,delete r.prefix;let{regexp:n,keys:i}=(0,ZW.pathToRegexp)(t,r);return{regexp:n,keys:i}}s(NLe,"compilePathToRegexp");function gBa(t,e={}){return(0,ZW.compile)(t,e)}s(gBa,"compilePath");function mBa(t,e){return(0,ZW.parse)(t,e)}s(mBa,"parsePath");function VBt(t={}){let e={sensitive:t.sensitive,end:t.end,strict:t.strict,trailing:t.trailing};"strict"in e&&!("trailing"in e)&&(e.trailing=e.strict!==!0,delete e.strict);for(let r of Object.keys(e))e[r]===void 0&&delete e[r];return e}s(VBt,"normalizeLayerOptionsToPathToRegexp");function ABa(t){try{return decodeURIComponent(t)}catch{return t}}s(ABa,"safeDecodeURIComponent");var hWn=class{static{s(this,"Layer")}opts;name;methods;paramNames;stack;path;regexp;constructor(t,e,r,n={}){this.opts=n,this.name=this.opts.name||void 0,this.methods=this._normalizeHttpMethods(e),this.stack=this._normalizeAndValidateMiddleware(r,e,t),this.path=t,this.paramNames=[],this._configurePathMatching()}_normalizeHttpMethods(t){let e=[];for(let r of t){let n=r.toUpperCase();e.push(n),n==="GET"&&e.unshift("HEAD")}return e}_normalizeAndValidateMiddleware(t,e,r){let n=Array.isArray(t)?t:[t];for(let i of n){let o=typeof i;if(o!=="function"){let a=this.opts.name||r;throw new Error(`${e.toString()} \`${a}\`: \`middleware\` must be a function, not \`${o}\``)}}return n}_configurePathMatching(){this.opts.pathAsRegExp===!0?this.regexp=this.path instanceof RegExp?this.path:new RegExp(this.path):this.path&&this._configurePathToRegexp()}_configurePathToRegexp(){let t=VBt(this.opts),{regexp:e,keys:r}=NLe(this.path,t);this.regexp=e,this.paramNames=r}match(t){return this.regexp.test(t)}params(t,e,r={}){let n={...r};for(let[i,o]of e.entries()){let a=this.paramNames[i];if(a&&o&&o.length>0){let u=a.name;if(this.opts.ignoreWildcardParameter===u&&a.type==="wildcard")continue;n[u]=ABa(o)}}return n}captures(t){if(this.opts.ignoreCaptures)return[];let e=t.match(this.regexp);return e?e.slice(1):[]}url(...t){if(this.path instanceof RegExp)throw new TypeError("Cannot generate URL for routes defined with RegExp paths. Use string paths with named parameters instead.");let{params:e,options:r}=this._parseUrlArguments(t),n=this.path.replaceAll("(.*)",""),i=gBa(n,{encode:encodeURIComponent,...r}),o=this._buildParamReplacements(e,n),a=i(o);return r&&r.query?this._addQueryString(a,r.query):a}_parseUrlArguments(t){let e=t[0]??{},r=t[1];if(typeof e!="object"||e===null){let n=[...t],i=n.at(-1);typeof i=="object"&&i!==null?(r=i,e=n.slice(0,-1)):e=n}else if(e&&!r){let n=Object.keys(e);if(n.length===1&&n[0]==="query")r=e,e={};else if("query"in e&&e.query){let{query:o,...a}=e;r={query:o},e=a}}return{params:e,options:r}}_buildParamReplacements(t,e){let{tokens:r}=mBa(e),n=r.some(o=>"name"in o&&o.name),i={};if(Array.isArray(t)){let o=0;for(let a of r)"name"in a&&a.name&&(i[a.name]=String(t[o++]))}else if(n&&typeof t=="object"&&!("query"in t))for(let[o,a]of Object.entries(t))i[o]=String(a);return i}_addQueryString(t,e){let r=(0,OLe.parse)(t),n={...r,query:r.query??void 0};return typeof e=="string"?(n.search=e,n.query=void 0):(n.search=void 0,n.query=e),(0,OLe.format)(n)}param(t,e){let r=this.stack,n=this.paramNames,i=this._createParamMiddleware(t,e),o=n.map(u=>u.name),a=o.indexOf(t);return a!==-1&&this._insertParamMiddleware(r,i,o,a),this}_createParamMiddleware(t,e){let r=s(((n,i)=>(n._matchedParams||(n._matchedParams=new WeakMap),n._matchedParams.has(e)?i():(n._matchedParams.set(e,!0),e(n.params[t],n,i)))),"middleware");return r.param=t,r._originalFn=e,r}_insertParamMiddleware(t,e,r,n){let i=!1;for(let o=0;o<t.length;o++){let a=t[o];if(!a.param){t.splice(o,0,e),i=!0;break}if(r.indexOf(a.param)>n){t.splice(o,0,e),i=!0;break}}i||t.push(e)}setPrefix(t){return this.path?this.path instanceof RegExp?this:(this.path=this._applyPrefix(t),this._reconfigurePathMatching(t),this):this}_applyPrefix(t){let e=this.path==="/",r=this.opts.strict===!0,n=t.includes(":"),i=this.opts.pathAsRegExp===!0&&typeof this.path=="string";if(n&&i){let o=this.path;(o===String.raw`(?:\/|$)`||o===String.raw`(?:\\\/|$)`)&&(this.path="{/*rest}",this.opts.pathAsRegExp=!1)}return e&&!r?t:`${t}${this.path}`}_reconfigurePathMatching(t){let e=this.opts.pathAsRegExp===!0;if(t&&t.includes(":")&&e){let n=VBt(this.opts),{regexp:i,keys:o}=NLe(this.path,n);this.regexp=i,this.paramNames=o,this.opts.pathAsRegExp=!1}else if(e){let n=this.path,i=n.startsWith("^")?n:`^${n}`;this.regexp=this.path instanceof RegExp?this.path:new RegExp(i)}else{let n=VBt(this.opts),{regexp:i,keys:o}=NLe(this.path,n);this.regexp=i,this.paramNames=o}}};function _Ba(){return EWn.default.METHODS.map(t=>t.toLowerCase())}s(_Ba,"getAllHttpMethods");var EBa=["get","post","put","patch","delete","del","head","options"];function yBa(t){return t?Array.isArray(t)?t:[t]:[]}s(yBa,"normalizeParameterMiddleware");function yWn(t,e,r){let n=yBa(r);for(let i of n)t.param(e,i)}s(yWn,"applyParameterMiddlewareToRoute");function TBa(t,e){let r=Object.keys(e);for(let n of r){let i=e[n];yWn(t,n,i)}}s(TBa,"applyAllParameterMiddleware");function pWn(t,e={}){if(!t)return!1;let{keys:r}=NLe(t,e);return r.length>0}s(pWn,"hasPathParameters");function SBa(t,e){return t!==void 0?typeof t=="string"?t===""?{path:"{/*rest}",pathAsRegExp:!1}:t==="/"?{path:"/",pathAsRegExp:!1}:{path:t,pathAsRegExp:!1}:{path:t,pathAsRegExp:!0}:e?{path:"{/*rest}",pathAsRegExp:!1}:{path:String.raw`(?:\/|$)`,pathAsRegExp:!0}}s(SBa,"determineMiddlewarePath");var HBt=(0,TWn.default)("koa-router"),SWn=_Ba(),gWn=class{static{s(this,"RouterImplementation")}opts;methods;exclusive;params;stack;host;_events=new hBa;constructor(t={}){this.opts=t,this.methods=this.opts.methods||["HEAD","OPTIONS","GET","PUT","PATCH","POST","DELETE"],this.exclusive=!!this.opts.exclusive,this.params={},this.stack=[],this.host=this.opts.host}static url(t,...e){return new hWn(t,[],()=>{}).url(...e)}use(...t){let e;if(this._isPathArray(t[0]))return this._useWithPathArray(t);let r=this._hasExplicitPath(t[0]);if(r&&(e=t.shift()),t.length===0)throw new Error("You must provide at least one middleware function to router.use()");for(let n of t)this._isNestedRouter(n)?this._mountNestedRouter(n,e):this._registerMiddleware(n,e,r);return this}_isPathArray(t){return Array.isArray(t)&&t.length>0&&t.every(e=>typeof e=="string")}_hasExplicitPath(t){return typeof t=="string"||t instanceof RegExp}_isNestedRouter(t){return typeof t=="function"&&"router"in t&&t.router!==void 0}_useWithPathArray(t){let e=t[0],r=t.slice(1);for(let n of e)Reflect.apply(this.use,this,[n,...r]);return this}_mountNestedRouter(t,e){let r=t.router,n=this._cloneRouter(r),i=e&&typeof e=="string"&&pWn(e,this.opts);for(let o=0;o<n.stack.length;o++){let a=n.stack[o],u=this._cloneLayer(a);e&&typeof e=="string"&&u.setPrefix(e),this.opts.prefix&&u.setPrefix(this.opts.prefix),u.methods.length===0&&i&&(u.opts.ignoreCaptures=!1),this.stack.push(u),n.stack[o]=u}this.params&&this._applyParamMiddlewareToRouter(n)}_cloneRouter(t){return Object.assign(Object.create(Object.getPrototypeOf(t)),t,{stack:[...t.stack]})}_cloneLayer(t){return Object.assign(Object.create(Object.getPrototypeOf(t)),t,{stack:[...t.stack],methods:[...t.methods],paramNames:[...t.paramNames],opts:{...t.opts}})}_applyParamMiddlewareToRouter(t){let e=Object.keys(this.params);for(let r of e){let n=this.params[r];yWn(t,r,n)}}_registerMiddleware(t,e,r){let n=pWn(this.opts.prefix||"",this.opts),i=(()=>{if(e!==void 0)return e;if(n)return""})(),o=r||e===void 0&&n,{path:a,pathAsRegExp:u}=SBa(i,n),c=a,l=u,f=o&&a==="/";o&&typeof a=="string"&&(c=a,l=!1);let d=i===""&&a==="{/*rest}"?"rest":void 0;this.register(c,[],t,{end:f,ignoreCaptures:!o&&!n,ignoreWildcardParameter:d,pathAsRegExp:l})}prefix(t){let e=t.replace(/\/$/,""),r=this.opts.prefix||"";this.opts.prefix=e;for(let n of this.stack){if(typeof n.path=="string"&&r){let i=r+"/";(n.path===r||n.path.startsWith(i))&&(n.path=n.path.slice(r.length)||"/")}n.setPrefix(e)}return this}middleware(){let t=function(e,r){if(HBt("%s %s",e.method,e.path),!this.matchHost(e.host))return r();let n=this._getRequestPath(e),i=this.match(n,e.method);if(this._storeMatchedRoutes(e,i),e.router=this,e.routeMatched=i.route,!i.route)return this._events.emit(AWn.NotFound,e,r);let o=i.pathAndMethod;this._setMatchedRouteInfo(e,o);let a=this._buildMiddlewareChain(o,n);return(0,_Wn.default)(a)(e,r)}.bind(this);return t.router=this,t}_getRequestPath(t){let e=t;return this.opts.routerPath||e.newRouterPath||e.path||e.routerPath||""}_storeMatchedRoutes(t,e){let r=t;r.matched?r.matched.push(...e.path):r.matched=e.path}_setMatchedRouteInfo(t,e){let r=t,n=e.toReversed().find(i=>i.methods.length>0);n&&(r._matchedRoute=n.path,n.name&&(r._matchedRouteName=n.name))}_buildMiddlewareChain(t,e){let r;if(this.exclusive){let i;if(this.opts.exclusive==="specificity")for(let o of t)(!i||o.paramNames.length<i.paramNames.length)&&(i=o);else i=t.at(-1);r=i?[i]:[]}else r=t;let n=[];for(let i of r)n.push((o,a)=>{let u=o;return u.captures=i.captures(e),u.request.params=i.params(e,u.captures||[],u.params),u.params=u.request.params,u.routerPath=i.path,u.routerName=i.name||void 0,u._matchedRoute=i.path,i.name&&(u._matchedRouteName=i.name),a()},...i.stack);return n}routes(){return this.middleware()}on(t,e){return this._events.register(dBa(t),e),this}allowedMethods(t={}){let e=this.methods;return(r,n)=>{let i=r;return n().then(()=>{if(!this._shouldProcessAllowedMethods(i))return;let o=i.matched||[],a=this._collectAllowedMethods(o),u=Object.keys(a),c=r.method.toUpperCase();if(!e.includes(c)){this._handleNotImplemented(i,u,t);return}if(c==="OPTIONS"&&u.length>0){this._handleOptionsRequest(i,u);return}u.length>0&&!a[c]&&this._handleMethodNotAllowed(i,u,t)})}}_shouldProcessAllowedMethods(t){return!!(t.matched&&(!t.status||t.status===404))}_collectAllowedMethods(t){let e={};for(let r of t)for(let n of r.methods)e[n]=n;return e}_handleNotImplemented(t,e,r){if(r.throw)throw typeof r.notImplemented=="function"?r.notImplemented():new YBt.default.NotImplemented;t.status=501,t.set("Allow",e.join(", "))}_handleOptionsRequest(t,e){t.status=200,t.body="",t.set("Allow",e.join(", "))}_handleMethodNotAllowed(t,e,r){if(r.throw)throw typeof r.methodNotAllowed=="function"?r.methodNotAllowed():new YBt.default.MethodNotAllowed;t.status=405,t.set("Allow",e.join(", "))}all(...t){let e,r,n;if(t.length>=2&&(typeof t[1]=="string"||t[1]instanceof RegExp)?(e=t[0],r=t[1],n=t.slice(2)):(e=void 0,r=t[0],n=t.slice(1)),typeof r!="string"&&!(r instanceof RegExp)&&(!Array.isArray(r)||r.length===0))throw new Error("You have to provide a path when adding an all handler");let i={name:e,pathAsRegExp:r instanceof RegExp};return this.register(r,SWn,n,{...this.opts,...i}),this}redirect(t,e,r){let n=t,i=e;if(typeof t=="symbol"||typeof t=="string"&&t[0]!=="/"){let a=this.url(t);if(a instanceof Error)throw a;n=a}if(typeof e=="symbol"||typeof e=="string"&&e[0]!=="/"&&!e.includes("://")){let a=this.url(e);if(a instanceof Error)throw a;i=a}return this.all(n,a=>{a.redirect(i),a.status=r||301})}register(t,e,r,n={}){let i={...this.opts,...n};if(Array.isArray(t))return this._registerMultiplePaths(t,e,r,i);let o=this._createRouteLayer(t,e,r,i);return this.opts.prefix&&o.setPrefix(this.opts.prefix),TBa(o,this.params),this.stack.push(o),HBt("defined route %s %s",o.methods,o.path),o}_registerMultiplePaths(t,e,r,n){for(let i of t)this.register.call(this,i,e,r,n);return this}_createRouteLayer(t,e,r,n){return new hWn(t,e,r,{end:n.end===!1?n.end:!0,name:n.name,sensitive:n.sensitive||!1,strict:n.strict||!1,prefix:n.prefix||"",ignoreCaptures:n.ignoreCaptures,ignoreWildcardParameter:n.ignoreWildcardParameter,pathAsRegExp:n.pathAsRegExp})}route(t){return this.stack.find(r=>r.name===t)||!1}url(t,...e){let r=this.route(t);return r?r.url(...e):new Error(`No route found for name: ${String(t)}`)}match(t,e){let r={path:[],pathAndMethod:[],route:!1},n=e.toUpperCase();for(let i of this.stack)if(HBt("test %s %s",i.path,i.regexp),i.match(t)){r.path.push(i);let o=i.methods.length===0,a=i.methods.includes(n);(o||a)&&(r.pathAndMethod.push(i),i.methods.length>0&&(r.route=!0))}return r}matchHost(t){let{host:e}=this;return e?t?typeof e=="string"?t===e:Array.isArray(e)?e.includes(t):e instanceof RegExp?e.test(t):!1:!1:!0}param(t,e){this.params[t]||(this.params[t]=[]),Array.isArray(this.params[t])||(this.params[t]=[this.params[t]]),this.params[t].push(e);for(let r of this.stack)r.param(t,e);return this}_registerMethod(t,...e){let r,n,i;if(e.length>=2&&(typeof e[1]=="string"||e[1]instanceof RegExp)?(r=e[0],n=e[1],i=e.slice(2)):(r=void 0,n=e[0],i=e.slice(1)),typeof n!="string"&&!(n instanceof RegExp)&&(!Array.isArray(n)||n.length===0))throw new Error(`You have to provide a path when adding a ${t} handler`);let o={name:r,pathAsRegExp:n instanceof RegExp};return this.register(n,[t],i,{...this.opts,...o}),this}get(...t){return this._registerMethod("get",...t)}post(...t){return this._registerMethod("post",...t)}put(...t){return this._registerMethod("put",...t)}patch(...t){return this._registerMethod("patch",...t)}delete(...t){return this._registerMethod("delete",...t)}del(...t){return this.delete.apply(this,t)}head(...t){return this._registerMethod("head",...t)}options(...t){return this._registerMethod("options",...t)}};for(let t of SWn)EBa.includes(t)||t in gWn.prototype||Object.defineProperty(gWn.prototype,t,{value:s(function(...r){return this._registerMethod(t,...r)},"value"),writable:!0,configurable:!0,enumerable:!1});var xQc={...M7,...El};var eh=".temp",e5="couchdb",qoe="minio",RWn=[{value:"MAIN_PORT",default:"10000"},{value:"COUCH_DB_URL",default:"http://budibase:budibase@localhost:10000/db/"},{value:"MINIO_URL",default:"http://localhost:10000"},{value:"MINIO_ACCESS_KEY"},{value:"MINIO_SECRET_KEY"}];function CBa(t){let e=t.MAIN_PORT,r=t.COUCH_DB_USER,n=t.COUCH_DB_PASSWORD;return!t.COUCH_DB_URL&&e&&r&&n&&(t.COUCH_DB_URL=`http://${r}:${n}@localhost:${e}/db/`),t.MINIO_URL||(t.MINIO_URL=`http://localhost:${e}/`),t}s(CBa,"checkURLs");async function bBa(){console.log("*** NOTE: use a .env file to load these parameters repeatedly ***");let t={};for(let e of RWn)t[e.value]=await pP(e.value,e.default);return t}s(bBa,"askQuestions");function wBa(t){if(!WBt.default.existsSync(t))throw"Unable to file specified .env file";let e=WBt.default.readFileSync(t,"utf8"),r=CBa(IWn.default.parse(e));for(let n of RWn)if(!r[n.value])throw`Cannot find "${n.value}" property in .env file`;return r}s(wBa,"loadEnvironment");async function zBt(t=!0){let e;t!==!0?e=wBa(t):e=await bBa();for(let r of Object.keys(e))dt._set(r,e[r]);return e}s(zBt,"getConfig");async function $Bt(t,e){let r=ice();try{await r.replicate(t,e,{batch_size:1e3,batches_limit:5,style:"main_only"})}catch(n){throw new Error(`Replication failed - ${JSON.stringify(n)}`)}}s($Bt,"replication");function KBt(t){let e=ice(t.COUCH_DB_URL),r=ice();return{Remote:e,Local:r}}s(KBt,"getPouches");var CQ=ge(require("fs")),Ok=require("path");hd();var bWn=ge(require("node:stream")),wWn=require("stream/promises");var{ObjectStoreBuckets:NBa,ObjectStore:NWn,retrieve:OBa,uploadDirectory:xBa,createBucketIfNotExists:vBa}=Ibe,CWn=Object.values(NBa);async function DBa(t,e){let r=[],n;do{let i=await t.listObjectsV2({Bucket:e,ContinuationToken:n});r.push(...i.Contents?.filter(o=>!!o.Key).map(o=>({...o,bucket:e,Key:o.Key}))||[]),n=i.NextContinuationToken}while(n);return r}s(DBa,"listBucketObjects");async function OWn(){let t=(0,Ok.join)(eh,qoe);CQ.default.mkdirSync(t,{recursive:!0});let e=[],r=0;for(let o of CWn){let a=NWn();try{await a.headBucket({Bucket:o})}catch{r++;continue}e=e.concat(await DBa(a,o))}if(r===CWn.length)throw new Error("Unable to access MinIO/S3 - check environment config.");let n=fP(e.length),i=0;for(let o of e){let a=o.Key,u=await OBa(o.bucket,a),c=a.split("/"),l=(0,Ok.join)(t,o.bucket,...c);CQ.default.mkdirSync((0,Ok.dirname)(l),{recursive:!0}),u instanceof bWn.Readable?await(0,wWn.pipeline)(u,CQ.default.createWriteStream(l)):CQ.default.writeFileSync(l,u),n.update(++i)}n.stop()}s(OWn,"exportObjects");async function xWn(){let t=(0,Ok.join)(eh,qoe),e=CQ.default.readdirSync(t),r=0;e.forEach(o=>{let a=CQ.default.readdirSync((0,Ok.join)(t,o));r+=a.length});let n=fP(r),i=0;for(let o of e){let a=NWn();await vBa(a,o);let u=await xBa(o,(0,Ok.join)(t,o),"/");i+=u.length,n.update(i)}n.stop()}s(xWn,"importObjects");var vWn=require("tar");async function DWn(t){let e=t.env||void 0,r=t.export||t;typeof r!="string"&&(r=`backup-${new Date().toISOString()}.tar.gz`);let n=await zBt(e),i=await vqt(n.COUCH_DB_URL),{Remote:o,Local:a}=KBt(n);i0.default.existsSync(eh)&&i0.default.rmSync(eh,{recursive:!0});let u=(0,bQ.join)(eh,e5);i0.default.mkdirSync(eh),i0.default.mkdirSync(u),console.log("CouchDB Export");let c=fP(i.length),l=0;for(let f of i){c.update(++l);let d=new o(f),m=new a((0,bQ.join)(eh,e5,f));await $Bt(d,m),await d.close(),await m.close()}c.stop(),console.log("S3 Export"),await OWn(),vWn.create({sync:!0,gzip:!0,file:r,cwd:(0,bQ.join)(eh)},[e5,qoe]),i0.default.rmSync(eh,{recursive:!0}),console.log(`Generated export file - ${r}`)}s(DWn,"exportBackup");async function BWn(t){let e=t.env||void 0,r=t.import||t,n=await zBt(e);(!r||!i0.default.existsSync(r))&&(console.error("Cannot import without specifying a valid file to import"),process.exit(-1)),i0.default.existsSync(eh)&&i0.default.rmSync(eh,{recursive:!0}),i0.default.mkdirSync(eh),vWn.extract({sync:!0,cwd:(0,bQ.join)(eh),file:r});let{Remote:i,Local:o}=KBt(n),a=i0.default.readdirSync((0,bQ.join)(eh,e5));console.log("CouchDB Import");let u=fP(a.length),c=0;for(let l of a){u.update(++c);let f=new i(l),d=new o((0,bQ.join)(eh,e5,l));await $Bt(d,f),await f.close(),await d.close()}u.stop(),console.log("MinIO Import"),await xWn();try{await bqe(`http://localhost:${n.MAIN_PORT}/api/system/restored`,"POST")}catch{}console.log("Import complete"),i0.default.rmSync(eh,{recursive:!0})}s(BWn,"importBackup");async function BBa(t){if(t.import)return BWn(t);if(t.export)return DWn(t)}s(BBa,"pickOne");var kWn=new OI("backups").addHelp("Allows building backups of Budibase, as well as importing a backup to a new instance.").addSubOption("--export [filename]","Export a backup from an existing Budibase installation.",DWn).addSubOption("--import [filename]","Import a backup to a new Budibase installation.",BWn).addSubOption("--env [envFile]","Provide an environment variable file to configure the CLI.",BBa);Ox();var LXn=ge(require("node-fetch")),HQ=ge(require("fs")),MXn=ge(require("os")),HMe=require("path");var vXn=ge(MWn()),DXn=ge(require("vm")),wLt=ge(rae());var $O=class{static{s(this,"Helper")}constructor(e,r,n=!0){this.name=e,this.fn=r,this.useValueFallback=n}register(e){e.registerHelper(this.name,(r,n)=>{let i={};n&&n.data&&n.data.root&&(i=n.data.root);let o=this.fn(r,i);return o??(this.useValueFallback?r:null)})}unregister(e){e.unregisterHelper(this.name)}};var VMe=ge(rae());var $Pt=ge(n7n());var Zh=ge(s3e()),d7n=ge(i7n()),h7n=ge(s7n()),p7n=ge(o7n()),g7n=ge(a7n()),m7n=ge(u7n()),A7n=ge(c7n()),_7n=ge(l7n()),E7n=ge(f7n());Zh.default.extend(d7n.default);Zh.default.extend(h7n.default);Zh.default.extend(p7n.default);Zh.default.extend(g7n.default);Zh.default.extend(m7n.default);Zh.default.extend(A7n.default);Zh.default.extend(_7n.default);Zh.default.extend(E7n.default);function qQ(t){return typeof t=="object"&&typeof t.hash=="object"}s(qQ,"isOptions");function YPt(t){return typeof t=="object"&&typeof t.options=="object"&&typeof t.app=="object"}s(YPt,"isApp");function WPt(t,e,r){if(qQ(t))return WPt({},e,t);if(qQ(e))return WPt(t,r,e);let n=YPt(t)?t.context:{};r=r||{},qQ(r)||(e=Object.assign({},e,r)),qQ(r)&&r.hash.root===!0&&(e=Object.assign({},r.data.root,e));let i=Object.assign({},n,e,r.hash);return YPt(t)||(i=Object.assign({},t,i)),YPt(t)&&t.view&&t.view.data&&(i=Object.assign({},i,t.view.data)),i}s(WPt,"getContext");function zPt(t,e,r){return qQ(e)&&(r=e,e=T7n),qQ(t)&&(r=t,e=null,t=null),{str:t,pattern:e,options:r}}s(zPt,"initialConfig");function y7n(t,e,r){let n=zPt(t,e,r),i={lang:"en",date:new Date(n.str)},o=WPt(this,i,{});Zh.default.locale(o.lang||o.language)}s(y7n,"setLocale");var T7n="MMMM DD, YYYY",xMe=s((t,e,r)=>{let n=zPt(t,e,r);if(n.str==null&&n.pattern==null)return Zh.default.locale("en"),(0,Zh.default)().format(T7n);y7n(n.str,n.pattern,n.options);let i=(0,Zh.default)(new Date(n.str));return typeof n.options=="string"?i=n.options.toLowerCase()==="utc"?i.utc():i.tz(n.options):i=i.tz(Zh.default.tz.guess()),n.pattern===""?i.toISOString():i.format(n.pattern)},"date"),Eae=s((t,e,r)=>{let n=zPt(t,e);y7n(n.str,n.pattern);let i=Zh.default.duration(n.str,n.pattern);return r&&!qQ(r)?i.format(r):i.humanize()},"duration"),yae=s((t,e,r)=>(0,Zh.default)(new Date(t)).diff((0,Zh.default)(new Date(e)),r),"difference"),vMe=s(t=>{let e=yae(t,new Date().toISOString(),"ms");return Eae(e,"ms")},"durationFromNow");var DMe=["#if","#unless","#each","#with","lookup","log","blockHelperMissing","each","helperMissing","if","unless","log","lookup","with"],S7n=["math","array","number","url","string","comparison","object","regex","uuid"],GQ={OBJECT:"object",ALL:"all",LITERAL:"literal",JS:"js",DECODE_ID:"decodeId"},A5="%LITERAL%";var I7n={date:xMe,duration:Eae,difference:yae,durationFromNow:vMe};function R7n(t){for(let[r,n]of Object.entries(I7n))t.registerHelper(r,n);let e=[];for(let r of S7n){let n=$Pt.default[r]();for(let i of Object.entries(n)){let o=i[0];DMe.indexOf(o)!==-1||e.indexOf(o)!==-1||e.push(o)}$Pt.default[r]({handlebars:t})}KPt=e.concat(Object.keys(I7n))}s(R7n,"registerAll");var KPt=[];function SFa(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(SFa,"isJest");function jQ(){return SFa()}s(jQ,"isTest");var C7n=s(()=>process&&process.env.BACKEND_JS,"isTestingBackendJS");var IFa=/^[A-Za-z0-9]+$/g,BMe=/{{([^{].*?)}}/g,JPt=/{?{{([^{].*?)}}}?/g,RFa=/{{{([^{].*?)}}}/g,Tae=s(()=>jQ()&&C7n()?!0:jQ()?!1:typeof window>"u","isBackendService"),b7n=s(()=>process&&!process.env.NO_JS,"isJSAllowed"),w7n=s(t=>{let e=t,r=new RegExp(BMe),n=new RegExp(RFa),i=e.match(n);i&&i.forEach(a=>{e=e.replace(a,"")});let o=e.match(r);return o||[]},"findDoubleHbsInstances"),N7n=s(t=>t.match(IFa),"isAlphaNumeric"),XPt=s((t,e,r,n)=>t.slice(0,e)+n+t.slice(e+r),"swapStrings");var ZPt=s(t=>Buffer.from(t,"base64").toString("utf-8"),"atob"),O7n=s((t,e,r)=>{let n=e.map(o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),i=new RegExp(`\\b(${n.join("|")})\\b`,"g");return t.replace(i,`${r}$1`)},"prefixStrings");function kMe(t){return`
|
|
4435
4435
|
result = {
|
|
4436
4436
|
result: null,
|
|
4437
4437
|
error: null,
|
|
@@ -4466,7 +4466,7 @@ ${t}
|
|
|
4466
4466
|
</style>
|
|
4467
4467
|
`,a=!1,u,c,l=[];if(i){let d=`${t}.pre-svelte5`;Rs.default.writeFileSync(d,e),Rs.default.writeFileSync(t,o),a=!0,u=e,c=o,l.push(`Updated ${t} to use <svelte:boundary>, $$restProps, and error UI.`)}else l.push(`${t} already looks Svelte 5 compatible (uses <svelte:boundary> with no legacy Boundary.js wrapper).`);let f=rh.default.join(rh.default.dirname(t),"Boundary.js");if(Rs.default.existsSync(f))try{Rs.default.unlinkSync(f),a=!0,l.push("Removed legacy lib/Boundary.js (incompatible with Svelte 5).")}catch(d){console.log("Failed to delete legacy Boundary.js:",d instanceof Error?d.message:d)}return{changed:a,before:u,after:c,message:l.join(" ")}}s(Jqa,"migrateWrapper");function Xqa(){let t=rh.default.join(process.cwd(),"package.json");if(!Rs.default.existsSync(t))return{changed:!1,message:"package.json not found"};let e=Rs.default.readFileSync(t,"utf8"),r;try{r=JSON.parse(e)}catch(f){return{changed:!1,message:`Invalid package.json: ${f?.message||"parse error"}`}}let n=JSON.stringify(r,null,2),i=typeof r.version=="string"?r.version.trim():void 0,o=GXn(i);r.dependencies||(r.dependencies={}),r.dependencies.svelte="^5.0.0",r.peerDependencies={...r.peerDependencies||{},svelte:"^5.0.0"};let a=r.devDependencies||{};a.rollup="^4.21.0",a["@rollup/plugin-commonjs"]="^25.0.7",a["@rollup/plugin-node-resolve"]="^15.2.3",a["rollup-plugin-svelte"]="^7.2.3",a["@budibase/backend-core"]&&(a["@budibase/backend-core"]="^2.8.0"),a["npm-run-all"]&&delete a["npm-run-all"],r.devDependencies=a,r.dependencies?.["@crownframework/svelte-error-boundary"]&&delete r.dependencies["@crownframework/svelte-error-boundary"],r.scripts||(r.scripts={}),r.scripts.build="rollup -c rollup.config.mjs",r.scripts.watch="rollup -cw rollup.config.mjs",o&&(r.version=o);let u=JSON.stringify(r,null,2);if(n===u)return{changed:!1,message:"package.json already appears Svelte 5 ready. Skipping."};Rs.default.writeFileSync(`${t}.pre-svelte5`,e),Rs.default.writeFileSync(t,`${u}
|
|
4468
4468
|
`);let c=i&&o?` (version ${i} -> ${o})`:"",l=o?`Updated package.json for Svelte 5, Rollup 4, scripts, and version bump${c}.`:"Updated package.json for Svelte 5, Rollup 4, and scripts.";return{changed:!0,before:n,after:u,message:l}}s(Xqa,"migratePackageJson");function WXn(){let t=rh.default.join(process.cwd(),".github","workflows");return Rs.default.existsSync(t)?Rs.default.readdirSync(t).filter(r=>r.endsWith(".yml")||r.endsWith(".yaml")).map(r=>rh.default.join(".github","workflows",r)):[]}s(WXn,"findWorkflowFiles");function Zqa(){let t=WXn();if(t.length===0)return{changed:!1,message:"No GitHub workflow files found in .github/workflows/ - skipping node version migration."};let e=[],r=!1;for(let n of t){let i=rh.default.join(process.cwd(),n),o=Rs.default.readFileSync(i,"utf8");if(!/node-version:\s*['"]?16['"]?/g.test(o))continue;let u=o.replace(/node-version:\s*['"]?16['"]?/g,"node-version: 18");if(u!==o){let c=`${i}.pre-svelte5`;Rs.default.writeFileSync(c,o),Rs.default.writeFileSync(i,u),r=!0,e.push(`Updated ${n}: node-version 16 -> 18`)}}return r?{changed:!0,message:e.join("; ")}:{changed:!1,message:"No workflow files with node-version: 16 found - skipping node version migration."}}s(Zqa,"migrateNodeVersion");function e3a(){let t=rh.default.join(process.cwd(),"schema.json");if(!Rs.default.existsSync(t))return{changed:!1,message:"schema.json not found - skipping schema metadata migration."};let e=Rs.default.readFileSync(t,"utf8"),r;try{r=JSON.parse(e)}catch(c){return{changed:!1,message:`Invalid schema.json: ${c?.message||"parse error"}`}}let n=r&&typeof r.metadata=="object"&&!Array.isArray(r.metadata)?r.metadata:{};if(!(n?.svelteMajor!==5))return{changed:!1,message:"schema.json metadata already includes svelteMajor: 5. Skipping."};let o=JSON.stringify(r,null,2),a={...n,svelteMajor:5};r.metadata=a;let u=JSON.stringify(r,null,2);return Rs.default.writeFileSync(`${t}.pre-svelte5`,e),Rs.default.writeFileSync(t,`${u}
|
|
4469
|
-
`),{changed:!0,before:o,after:u,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(e3a,"migrateSchemaJson");async function zXn(){let t=[],e=Rs.default.readFileSync("package.json","utf8"),r=JSON.parse(e),n=r?.dependencies?.svelte?.startsWith("^5")||r?.peerDependencies?.svelte?.startsWith("^5"),i=typeof r?.version=="string"?r.version.trim():void 0,o=GXn(i);n?t.push("package.json appears to already depend on Svelte 5."):t.push("Will bump svelte to ^5.0.0 and align dev/peer dependencies."),r?.dependencies?.["@crownframework/svelte-error-boundary"]&&t.push("Detected @crownframework/svelte-error-boundary; migration will replace it with <svelte:boundary> in lib/Wrapper.svelte."),o&&i&&o!==i&&t.push(`Will bump package.json version from ${i} to ${o}.`);let a=jXn(),u="unknown";if(a){let T=Rs.default.readFileSync(a,"utf8");VXn(T)?(u="looks-new",t.push(`Rollup config ${a} already looks Svelte 5-ready.`)):(u="needs-migration",t.push("Will write Rollup 4 / Svelte 5 config and rename to rollup.config.mjs."))}else u="unknown",t.push("No rollup config found - will create rollup.config.mjs.");let c=YXn(),l="not-found";c?Rs.default.readFileSync(c,"utf8").includes("<svelte:boundary>")?(l="looks-new",t.push(`${c} already uses <svelte:boundary>.`)):(l="needs-migration",t.push(`Will update ${c} to use <svelte:boundary>, $$restProps, and error UI.`)):t.push("No wrapper.svelte found - skipping wrapper migration.");let f="unknown";if(Rs.default.existsSync("schema.json"))try{let T=Rs.default.readFileSync("schema.json","utf8"),S=JSON.parse(T);(S&&typeof S.metadata=="object"&&!Array.isArray(S.metadata)?S.metadata:{}).svelteMajor===5?(f="looks-new",t.push("schema.json metadata already declares svelteMajor: 5.")):(f="needs-migration",t.push("Will update schema.json metadata to set svelteMajor: 5."))}catch(T){f="unknown",t.push(`schema.json could not be parsed - please fix JSON before migration (${T?.message||"parse error"}).`)}else f="not-found",t.push("schema.json not found - cannot update metadata.");let d=n?"looks-new":"needs-migration",m="not-found",A=WXn();if(A.length>0){let T=!1,S=!1;for(let b of A){let C=rh.default.join(process.cwd(),b),B=Rs.default.readFileSync(C,"utf8");/node-version:\s*['"]?16['"]?/.test(B)&&(T=!0),/node-version:\s*['"]?(18|20|22)['"]?/.test(B)&&(S=!0)}T?(m="needs-migration",t.push("Will update GitHub workflow files: node-version 16 -> 18.")):S?(m="looks-new",t.push("GitHub workflow files already use node-version 18 or higher.")):(m="looks-new",t.push("GitHub workflow files found but no node-version: 16 detected."))}else t.push("No GitHub workflow files found in .github/workflows/ - skipping node version check.");return{report:t,rollup:u,packageJson:d,wrapper:l,schema:f,nodeVersion:m,canBuildAfter:!0,rollupFile:a,wrapperFile:c,pkg:r}}s(zXn,"analysePluginForSvelte5");async function $Xn(){let t=await Kqa();if(t.message.includes("Failed to retrieve canonical rollup.config.mjs from skeleton"))return{pkgRes:{changed:!1,message:"Skipped package.json migration due to Rollup template failure."},schemaRes:{changed:!1,message:"Skipped schema.json migration due to Rollup template failure."},rollupRes:t,wrapperRes:{changed:!1,message:"Skipped wrapper migration due to Rollup template failure."},nodeVersionRes:{changed:!1,message:"Skipped node version migration due to Rollup template failure."}};let e=Jqa(),r=e3a(),n=Xqa(),i=Zqa();return{pkgRes:n,schemaRes:r,rollupRes:t,wrapperRes:e,nodeVersionRes:i}}s($Xn,"runSvelte5Migration");var KXn=require("child_process");var t3a=require("find-free-port");function r3a(t){let e=[],r=[];for(let n of new Set(t.filter(Boolean)))if(tx.default.existsSync(n))try{tx.default.unlinkSync(n),e.push(n)}catch(i){r.push({path:n,error:i instanceof Error?i.message:String(i)})}return{deleted:e,failed:r}}s(r3a,"cleanupPreSvelte5Backups");function JXn(){if(!tx.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!tx.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(JXn,"checkInPlugin");async function n3a(t){return tx.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(Fi(`By default the plugin will be created in the directory "${t}"`)),console.log(Fi("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),xI("Create top level directory?"))}s(n3a,"askAboutTopLevel");async function i3a(t){let e=t.init||t;if(!e||!s2t.includes(e)){console.log(Fa("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(Fi("Lets get some details about your new plugin:"));let r=await pP("Name",`budibase-${e}`);if(tx.default.existsSync(r)){console.log(Fa("Directory by plugin name already exists, pick a new name."));return}let n=await pP("Description",`An amazing Budibase ${e}!`),i=await pP("Version","1.0.0"),o=await n3a(r);console.log(Fi("Retrieving project...")),await YMe(e,r),await UXn(e,r,n,i),console.log(Fi("Installing dependencies...")),await T5("install",(0,WMe.join)(process.cwd(),r)),o?console.log(Fi(`Plugin created in directory "${r}"`)):(xqe(r,process.cwd()),console.log(Fi("Plugin created in current directory."))),Kue(Pb.PluginInit,{type:e,name:r,description:n,version:i})}s(i3a,"init");async function xLt(){JXn(),console.log(Fi("Verifying plugin..."));let t=tx.default.readFileSync("schema.json","utf8"),e=tx.default.readFileSync("package.json","utf8"),r,n;try{let i=JSON.parse(t),o=JSON.parse(e);if(!o.name||!o.version||!o.description)throw new Error("package.json is missing one of 'name', 'version' or 'description'.");return r=o.name,n=o.version,vNe.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Fa(`schema.json is not valid JSON: ${i.message}`)):console.log(Fa(`Invalid schema/package.json: ${i.message}`))}}s(xLt,"verify");async function s3a(){let t=await xLt();if(!t?.name)return;console.log(gu("Verified!")),console.log(Fi("Building plugin...")),await T5("build");let e=(0,WMe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(gu(`Build complete - output in: ${e}`))}s(s3a,"build");async function o3a(){let t=await xLt();if(!t?.name)return;let e=(0,WMe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(Fi(`Watching - build in: ${e}`));try{await T5("watch")}catch{console.log(gu("Watch exited."))}}s(o3a,"watch");async function a3a(){let t=await pP("Directory to watch","./"),[e]=await t3a(1e4),r="admin";await tce({init:"quick",single:!0,watchPluginDir:t,genUser:r,port:e,silent:!0}),await Gq(),console.log(gu("Configuration has been written to docker-compose.yaml")),console.log(gu("Development environment started successfully - connect at: ")+Fi(`http://localhost:${e}`)),console.log(gu("Use the following credentials to login:")),console.log(gu("Email: ")+Fi(Yqe)),console.log(gu("Password: ")+Fi(r))}s(a3a,"dev");async function u3a(t){JXn();let e=!!t?.yes,r=!!t?.force,n=!1;try{n=!!(0,KXn.execSync)("git status --porcelain",{encoding:"utf8"}).trim()}catch{}if(n&&!r&&(console.log(Fi("Your git working directory is not clean. Commit or stash changes, or re-run with --force.")),!await xI("Proceed with migration anyway?"))){console.log(Fi("Migration aborted."));return}console.log(Fi("Analyzing plugin for Svelte 5 migration..."));let i=await zXn();console.log(Fi("Proposed changes:"));for(let c of i.report)console.log(Fi(" - "+c));let o=["package.json.pre-svelte5","schema.json.pre-svelte5",i.rollupFile?`${i.rollupFile}.pre-svelte5`:void 0,i.wrapperFile?`${i.wrapperFile}.pre-svelte5`:void 0];if(!e&&!await xI("Apply these changes now?")){console.log(Fi("Migration aborted by user."));return}console.log(Fi("Applying migrations..."));let a=await $Xn();if(a.rollupRes?.message?.includes("Failed to retrieve canonical rollup.config.mjs from skeleton")){console.log(Fa(a.rollupRes.message));return}if(a.pkgRes?.message&&console.log(Fi(a.pkgRes.message)),a.schemaRes?.message&&console.log(Fi(a.schemaRes.message)),a.rollupRes?.message&&console.log(Fi(a.rollupRes.message)),a.wrapperRes?.message&&console.log(Fi(a.wrapperRes.message)),console.log(Fi("Installing updated dependencies...")),await T5("install"),console.log(Fi("Re-verifying plugin...")),!(await xLt())?.name){console.log(Fa("Verification failed after migration."));return}console.log(Fi("Attempting build..."));try{await T5("build");let c=r3a(o.filter(l=>!!l));console.log(gu("Migration completed. Your plugin was migrated to Svelte 5 and built successfully.")),c.deleted.length&&console.log(Fi(`Removed ${c.deleted.length} pre-svelte5 backup file(s): ${c.deleted.join(", ")}`)),c.failed.length&&console.log(Fi(`Failed to remove ${c.failed.length} pre-svelte5 backup file(s): ${c.failed.map(l=>`${l.path} (${l.error})`).join(", ")}`))}catch(c){console.log(Fa(`Build failed after migration. Please review the errors above. ${c?.message||""}`))}}s(u3a,"migrateSvelte5");var XXn=new OI("plugins").addHelp("Custom plugins for Budibase, init, build and verify your components and datasources with this tool.").addSubOption("--init [type]","Init a new plugin project, with a type of either component or datasource.",i3a).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",s3a).addSubOption("--watch","Automatically build any changes to your plugin.",o3a).addSubOption("--dev","Run a development environment which automatically watches the current directory.",a3a).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",u3a,[{command:"--yes",help:"Skip confirmation prompts during migration."},{command:"--force",help:"Proceed even if the git working directory is not clean (creates .pre-svelte5 backups during migration, removed on success)."}]);function ZXn(){return[Oqt,rqt,kWn,XXn]}s(ZXn,"getCommands");var tZn=require("commander");hd();var eZn="3.41.0";async function l3a(){let t=new tZn.Command().addHelpCommand("help",F9("Help with Budibase commands.")).helpOption(!1).version(eZn);for(let e of ZXn())e.configure(t);await t.parseAsync(process.argv)}s(l3a,"init");var f3a=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];f3a.forEach(t=>{process.on(t,e=>{e&&!isNaN(e)||e&&(console.error(Fa("Failed to run CLI command - please report with the following message:")),console.error(Fa(e)))})});l3a().catch(t=>{console.error("Unexpected error - ",t)});
|
|
4469
|
+
`),{changed:!0,before:o,after:u,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(e3a,"migrateSchemaJson");async function zXn(){let t=[],e=Rs.default.readFileSync("package.json","utf8"),r=JSON.parse(e),n=r?.dependencies?.svelte?.startsWith("^5")||r?.peerDependencies?.svelte?.startsWith("^5"),i=typeof r?.version=="string"?r.version.trim():void 0,o=GXn(i);n?t.push("package.json appears to already depend on Svelte 5."):t.push("Will bump svelte to ^5.0.0 and align dev/peer dependencies."),r?.dependencies?.["@crownframework/svelte-error-boundary"]&&t.push("Detected @crownframework/svelte-error-boundary; migration will replace it with <svelte:boundary> in lib/Wrapper.svelte."),o&&i&&o!==i&&t.push(`Will bump package.json version from ${i} to ${o}.`);let a=jXn(),u="unknown";if(a){let T=Rs.default.readFileSync(a,"utf8");VXn(T)?(u="looks-new",t.push(`Rollup config ${a} already looks Svelte 5-ready.`)):(u="needs-migration",t.push("Will write Rollup 4 / Svelte 5 config and rename to rollup.config.mjs."))}else u="unknown",t.push("No rollup config found - will create rollup.config.mjs.");let c=YXn(),l="not-found";c?Rs.default.readFileSync(c,"utf8").includes("<svelte:boundary>")?(l="looks-new",t.push(`${c} already uses <svelte:boundary>.`)):(l="needs-migration",t.push(`Will update ${c} to use <svelte:boundary>, $$restProps, and error UI.`)):t.push("No wrapper.svelte found - skipping wrapper migration.");let f="unknown";if(Rs.default.existsSync("schema.json"))try{let T=Rs.default.readFileSync("schema.json","utf8"),S=JSON.parse(T);(S&&typeof S.metadata=="object"&&!Array.isArray(S.metadata)?S.metadata:{}).svelteMajor===5?(f="looks-new",t.push("schema.json metadata already declares svelteMajor: 5.")):(f="needs-migration",t.push("Will update schema.json metadata to set svelteMajor: 5."))}catch(T){f="unknown",t.push(`schema.json could not be parsed - please fix JSON before migration (${T?.message||"parse error"}).`)}else f="not-found",t.push("schema.json not found - cannot update metadata.");let d=n?"looks-new":"needs-migration",m="not-found",A=WXn();if(A.length>0){let T=!1,S=!1;for(let b of A){let C=rh.default.join(process.cwd(),b),B=Rs.default.readFileSync(C,"utf8");/node-version:\s*['"]?16['"]?/.test(B)&&(T=!0),/node-version:\s*['"]?(18|20|22)['"]?/.test(B)&&(S=!0)}T?(m="needs-migration",t.push("Will update GitHub workflow files: node-version 16 -> 18.")):S?(m="looks-new",t.push("GitHub workflow files already use node-version 18 or higher.")):(m="looks-new",t.push("GitHub workflow files found but no node-version: 16 detected."))}else t.push("No GitHub workflow files found in .github/workflows/ - skipping node version check.");return{report:t,rollup:u,packageJson:d,wrapper:l,schema:f,nodeVersion:m,canBuildAfter:!0,rollupFile:a,wrapperFile:c,pkg:r}}s(zXn,"analysePluginForSvelte5");async function $Xn(){let t=await Kqa();if(t.message.includes("Failed to retrieve canonical rollup.config.mjs from skeleton"))return{pkgRes:{changed:!1,message:"Skipped package.json migration due to Rollup template failure."},schemaRes:{changed:!1,message:"Skipped schema.json migration due to Rollup template failure."},rollupRes:t,wrapperRes:{changed:!1,message:"Skipped wrapper migration due to Rollup template failure."},nodeVersionRes:{changed:!1,message:"Skipped node version migration due to Rollup template failure."}};let e=Jqa(),r=e3a(),n=Xqa(),i=Zqa();return{pkgRes:n,schemaRes:r,rollupRes:t,wrapperRes:e,nodeVersionRes:i}}s($Xn,"runSvelte5Migration");var KXn=require("child_process");var t3a=require("find-free-port");function r3a(t){let e=[],r=[];for(let n of new Set(t.filter(Boolean)))if(tx.default.existsSync(n))try{tx.default.unlinkSync(n),e.push(n)}catch(i){r.push({path:n,error:i instanceof Error?i.message:String(i)})}return{deleted:e,failed:r}}s(r3a,"cleanupPreSvelte5Backups");function JXn(){if(!tx.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!tx.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(JXn,"checkInPlugin");async function n3a(t){return tx.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(Fi(`By default the plugin will be created in the directory "${t}"`)),console.log(Fi("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),xI("Create top level directory?"))}s(n3a,"askAboutTopLevel");async function i3a(t){let e=t.init||t;if(!e||!s2t.includes(e)){console.log(Fa("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(Fi("Lets get some details about your new plugin:"));let r=await pP("Name",`budibase-${e}`);if(tx.default.existsSync(r)){console.log(Fa("Directory by plugin name already exists, pick a new name."));return}let n=await pP("Description",`An amazing Budibase ${e}!`),i=await pP("Version","1.0.0"),o=await n3a(r);console.log(Fi("Retrieving project...")),await YMe(e,r),await UXn(e,r,n,i),console.log(Fi("Installing dependencies...")),await T5("install",(0,WMe.join)(process.cwd(),r)),o?console.log(Fi(`Plugin created in directory "${r}"`)):(xqe(r,process.cwd()),console.log(Fi("Plugin created in current directory."))),Kue(Pb.PluginInit,{type:e,name:r,description:n,version:i})}s(i3a,"init");async function xLt(){JXn(),console.log(Fi("Verifying plugin..."));let t=tx.default.readFileSync("schema.json","utf8"),e=tx.default.readFileSync("package.json","utf8"),r,n;try{let i=JSON.parse(t),o=JSON.parse(e);if(!o.name||!o.version||!o.description)throw new Error("package.json is missing one of 'name', 'version' or 'description'.");return r=o.name,n=o.version,vNe.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Fa(`schema.json is not valid JSON: ${i.message}`)):console.log(Fa(`Invalid schema/package.json: ${i.message}`))}}s(xLt,"verify");async function s3a(){let t=await xLt();if(!t?.name)return;console.log(gu("Verified!")),console.log(Fi("Building plugin...")),await T5("build");let e=(0,WMe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(gu(`Build complete - output in: ${e}`))}s(s3a,"build");async function o3a(){let t=await xLt();if(!t?.name)return;let e=(0,WMe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(Fi(`Watching - build in: ${e}`));try{await T5("watch")}catch{console.log(gu("Watch exited."))}}s(o3a,"watch");async function a3a(){let t=await pP("Directory to watch","./"),[e]=await t3a(1e4),r="admin";await tce({init:"quick",single:!0,watchPluginDir:t,genUser:r,port:e,silent:!0}),await Gq(),console.log(gu("Configuration has been written to docker-compose.yaml")),console.log(gu("Development environment started successfully - connect at: ")+Fi(`http://localhost:${e}`)),console.log(gu("Use the following credentials to login:")),console.log(gu("Email: ")+Fi(Yqe)),console.log(gu("Password: ")+Fi(r))}s(a3a,"dev");async function u3a(t){JXn();let e=!!t?.yes,r=!!t?.force,n=!1;try{n=!!(0,KXn.execSync)("git status --porcelain",{encoding:"utf8"}).trim()}catch{}if(n&&!r&&(console.log(Fi("Your git working directory is not clean. Commit or stash changes, or re-run with --force.")),!await xI("Proceed with migration anyway?"))){console.log(Fi("Migration aborted."));return}console.log(Fi("Analyzing plugin for Svelte 5 migration..."));let i=await zXn();console.log(Fi("Proposed changes:"));for(let c of i.report)console.log(Fi(" - "+c));let o=["package.json.pre-svelte5","schema.json.pre-svelte5",i.rollupFile?`${i.rollupFile}.pre-svelte5`:void 0,i.wrapperFile?`${i.wrapperFile}.pre-svelte5`:void 0];if(!e&&!await xI("Apply these changes now?")){console.log(Fi("Migration aborted by user."));return}console.log(Fi("Applying migrations..."));let a=await $Xn();if(a.rollupRes?.message?.includes("Failed to retrieve canonical rollup.config.mjs from skeleton")){console.log(Fa(a.rollupRes.message));return}if(a.pkgRes?.message&&console.log(Fi(a.pkgRes.message)),a.schemaRes?.message&&console.log(Fi(a.schemaRes.message)),a.rollupRes?.message&&console.log(Fi(a.rollupRes.message)),a.wrapperRes?.message&&console.log(Fi(a.wrapperRes.message)),console.log(Fi("Installing updated dependencies...")),await T5("install"),console.log(Fi("Re-verifying plugin...")),!(await xLt())?.name){console.log(Fa("Verification failed after migration."));return}console.log(Fi("Attempting build..."));try{await T5("build");let c=r3a(o.filter(l=>!!l));console.log(gu("Migration completed. Your plugin was migrated to Svelte 5 and built successfully.")),c.deleted.length&&console.log(Fi(`Removed ${c.deleted.length} pre-svelte5 backup file(s): ${c.deleted.join(", ")}`)),c.failed.length&&console.log(Fi(`Failed to remove ${c.failed.length} pre-svelte5 backup file(s): ${c.failed.map(l=>`${l.path} (${l.error})`).join(", ")}`))}catch(c){console.log(Fa(`Build failed after migration. Please review the errors above. ${c?.message||""}`))}}s(u3a,"migrateSvelte5");var XXn=new OI("plugins").addHelp("Custom plugins for Budibase, init, build and verify your components and datasources with this tool.").addSubOption("--init [type]","Init a new plugin project, with a type of either component or datasource.",i3a).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",s3a).addSubOption("--watch","Automatically build any changes to your plugin.",o3a).addSubOption("--dev","Run a development environment which automatically watches the current directory.",a3a).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",u3a,[{command:"--yes",help:"Skip confirmation prompts during migration."},{command:"--force",help:"Proceed even if the git working directory is not clean (creates .pre-svelte5 backups during migration, removed on success)."}]);function ZXn(){return[Oqt,rqt,kWn,XXn]}s(ZXn,"getCommands");var tZn=require("commander");hd();var eZn="3.41.1";async function l3a(){let t=new tZn.Command().addHelpCommand("help",F9("Help with Budibase commands.")).helpOption(!1).version(eZn);for(let e of ZXn())e.configure(t);await t.parseAsync(process.argv)}s(l3a,"init");var f3a=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];f3a.forEach(t=>{process.on(t,e=>{e&&!isNaN(e)||e&&(console.error(Fa("Failed to run CLI command - please report with the following message:")),console.error(Fa(e)))})});l3a().catch(t=>{console.error("Unexpected error - ",t)});
|
|
4470
4470
|
/*! Bundled license information:
|
|
4471
4471
|
|
|
4472
4472
|
lodash/lodash.js:
|