@budibase/cli 3.37.0 → 3.37.2
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 +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -4315,7 +4315,7 @@ $1`)};_oe.parseAttributes=s(function(e){return Object.keys(e).map(function(r){va
|
|
|
4315
4315
|
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.`;I5n.exports=aBa});var PDt=y((C5n,w5n)=>{"use strict";var Xd=Yh(),eQ=Aoe(),Mi=w5n.exports,uBa=R5n();Mi.append=function(t,e){return typeof t=="string"&&typeof e=="string"?t+e:t};Mi.camelcase=function(t){return typeof t!="string"?"":eQ.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(Xd.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"?"":eQ.chop(t)};Mi.dashcase=function(t){return typeof t!="string"?"":eQ.changecase(t,function(e){return"-"+e})};Mi.dotcase=function(t){return typeof t!="string"?"":eQ.changecase(t,function(e){return"."+e})};Mi.downcase=function(){return Mi.lowercase.apply(this,arguments)};Mi.ellipsis=function(t,e){if(Xd.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 Xd.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=eQ.changecase(t,function(e){return e.toUpperCase()}),t.charAt(0).toUpperCase()+t.slice(1))};Mi.pathcase=function(t){return typeof t!="string"?"":eQ.changecase(t,function(e){return"/"+e})};Mi.plusify=function(t,e){return typeof t!="string"?"":(Xd.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=Xd.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"?"":Xd.isString(e)?t.split(e).join(""):t};Mi.removeFirst=function(t,e){return typeof t!="string"?"":Xd.isString(e)?t.replace(e,""):t};Mi.replace=function(t,e,r){return typeof t!="string"?"":Xd.isString(e)?(Xd.isString(r)||(r=""),t.split(e).join(r)):t};Mi.replaceFirst=function(t,e,r){return typeof t!="string"?"":Xd.isString(e)?(Xd.isString(r)||(r=""),t.replace(e,r)):t};Mi.reverse=S6().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"?"":eQ.changecase(t,function(e){return"_"+e})};Mi.split=function(t,e){return typeof t!="string"?"":(Xd.isString(e)||(e=","),t.split(e))};Mi.startsWith=function(t,e,r){var n=[].slice.call(arguments);return r=n.pop(),Xd.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(C5n.capitalize(a))}return i.join(" ")};Mi.trim=function(t){return typeof t=="string"?t.trim():""};Mi.trimLeft=function(t){if(Xd.isString(t))return t.replace(/^\s+/,"")};Mi.trimRight=function(t){if(Xd.isString(t))return t.replace(/\s+$/,"")};Mi.truncate=function(t,e,r){if(Xd.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(Xd.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 Xd.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),uBa.substring(0,t)}});var MDt=y((IMc,b5n)=>{"use strict";var LDt=require("url"),Roe=Yh(),cBa=require("querystring"),tQ=b5n.exports;tQ.encodeURI=function(t){if(Roe.isString(t))return encodeURIComponent(t)};tQ.escape=function(t){if(Roe.isString(t))return cBa.escape(t)};tQ.decodeURI=function(t){if(Roe.isString(t))return decodeURIComponent(t)};tQ.urlResolve=function(t,e){return LDt.resolve(t,e)};tQ.urlParse=function(t){return LDt.parse(t)};tQ.stripQuerystring=function(t){if(Roe.isString(t))return t.split("?")[0]};tQ.stripProtocol=function(t){if(Roe.isString(t)){var e=LDt.parse(t);return e.protocol="",e.format()}}});function Coe(){return bLe>NLe.length-16&&(N5n.default.randomFillSync(NLe),bLe=0),NLe.slice(bLe,bLe+=16)}var N5n,NLe,bLe,UDt=ie(()=>{"use strict";N5n=Ae(require("crypto")),NLe=new Uint8Array(256),bLe=NLe.length;s(Coe,"rng")});var O5n,v5n=ie(()=>{"use strict";O5n=/^(?:[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 lBa(t){return typeof t=="string"&&O5n.test(t)}var dk,woe=ie(()=>{"use strict";v5n();s(lBa,"validate");dk=lBa});function rQ(t,e=0){return Wh[t[e+0]]+Wh[t[e+1]]+Wh[t[e+2]]+Wh[t[e+3]]+"-"+Wh[t[e+4]]+Wh[t[e+5]]+"-"+Wh[t[e+6]]+Wh[t[e+7]]+"-"+Wh[t[e+8]]+Wh[t[e+9]]+"-"+Wh[t[e+10]]+Wh[t[e+11]]+Wh[t[e+12]]+Wh[t[e+13]]+Wh[t[e+14]]+Wh[t[e+15]]}function fBa(t,e=0){let r=rQ(t,e);if(!dk(r))throw TypeError("Stringified UUID is invalid");return r}var Wh,x5n,boe=ie(()=>{"use strict";woe();Wh=[];for(let t=0;t<256;++t)Wh.push((t+256).toString(16).slice(1));s(rQ,"unsafeStringify");s(fBa,"stringify");x5n=fBa});function dBa(t,e,r){let n=e&&r||0,i=e||new Array(16);t=t||{};let o=t.node||D5n,a=t.clockseq!==void 0?t.clockseq:FDt;if(o==null||a==null){let m=t.random||(t.rng||Coe)();o==null&&(o=D5n=[m[0]|1,m[1],m[2],m[3],m[4],m[5]]),a==null&&(a=FDt=(m[6]<<8|m[7])&16383)}let u=t.msecs!==void 0?t.msecs:Date.now(),c=t.nsecs!==void 0?t.nsecs:qDt+1,l=u-QDt+(c-qDt)/1e4;if(l<0&&t.clockseq===void 0&&(a=a+1&16383),(l<0||u>QDt)&&t.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");QDt=u,qDt=c,FDt=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||rQ(i)}var D5n,FDt,QDt,qDt,B5n,k5n=ie(()=>{"use strict";UDt();boe();QDt=0,qDt=0;s(dBa,"v1");B5n=dBa});function hBa(t){if(!dk(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 OLe,GDt=ie(()=>{"use strict";woe();s(hBa,"parse");OLe=hBa});function pBa(t){t=unescape(encodeURIComponent(t));let e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e}function Noe(t,e,r){function n(i,o,a,u){var c;if(typeof i=="string"&&(i=pBa(i)),typeof o=="string"&&(o=OLe(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 rQ(l)}s(n,"generateUUID");try{n.name=t}catch{}return n.DNS=gBa,n.URL=mBa,n}var gBa,mBa,VDt=ie(()=>{"use strict";boe();GDt();s(pBa,"stringToBytes");gBa="6ba7b810-9dad-11d1-80b4-00c04fd430c8",mBa="6ba7b811-9dad-11d1-80b4-00c04fd430c8";s(Noe,"v35")});function ABa(t){return Array.isArray(t)?t=Buffer.from(t):typeof t=="string"&&(t=Buffer.from(t,"utf8")),P5n.default.createHash("md5").update(t).digest()}var P5n,L5n,M5n=ie(()=>{"use strict";P5n=Ae(require("crypto"));s(ABa,"md5");L5n=ABa});var _Ba,U5n,F5n=ie(()=>{"use strict";VDt();M5n();_Ba=Noe("v3",48,L5n),U5n=_Ba});var Q5n,jDt,q5n=ie(()=>{"use strict";Q5n=Ae(require("crypto")),jDt={randomUUID:Q5n.default.randomUUID}});function EBa(t,e,r){if(jDt.randomUUID&&!e&&!t)return jDt.randomUUID();t=t||{};let n=t.random||(t.rng||Coe)();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 rQ(n)}var G5n,V5n=ie(()=>{"use strict";q5n();UDt();boe();s(EBa,"v4");G5n=EBa});function yBa(t){return Array.isArray(t)?t=Buffer.from(t):typeof t=="string"&&(t=Buffer.from(t,"utf8")),j5n.default.createHash("sha1").update(t).digest()}var j5n,Y5n,H5n=ie(()=>{"use strict";j5n=Ae(require("crypto"));s(yBa,"sha1");Y5n=yBa});var TBa,W5n,z5n=ie(()=>{"use strict";VDt();H5n();TBa=Noe("v5",80,Y5n),W5n=TBa});var $5n,K5n=ie(()=>{"use strict";$5n="00000000-0000-0000-0000-000000000000"});function SBa(t){if(!dk(t))throw TypeError("Invalid UUID");return parseInt(t.slice(14,15),16)}var J5n,X5n=ie(()=>{"use strict";woe();s(SBa,"version");J5n=SBa});var Z5n={};Ui(Z5n,{NIL:()=>$5n,parse:()=>OLe,stringify:()=>x5n,v1:()=>B5n,v3:()=>U5n,v4:()=>G5n,v5:()=>W5n,validate:()=>dk,version:()=>J5n});var ezn=ie(()=>{"use strict";k5n();F5n();V5n();z5n();K5n();X5n();woe();boe();GDt()});var YDt=y((EUc,tzn)=>{"use strict";var IBa=(ezn(),on(Z5n)),RBa=tzn.exports;RBa.uuid=function(){return IBa.v4()}});var nzn=y((yUc,rzn)=>{"use strict";rzn.exports={array:S6(),code:aWn(),collection:SWn(),comparison:dDt(),html:qWn(),i18n:VWn(),inflection:HWn(),match:i5n(),math:DDt(),misc:a5n(),number:BDt(),object:gLe(),path:y5n(),regex:kDt(),string:PDt(),url:MDt(),uuid:YDt()}});var izn=y((TUc,w6)=>{"use strict";var Ooe=nzn();w6.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||hoe();if(w6.exports.handlebars=n,e)e.forEach(function(i){n.registerHelper(Ooe[i])});else for(let i in Ooe){let o=Ooe[i];n.registerHelper(o)}return n.helpers},"helpers");for(let t in Ooe){let e=Ooe[t];w6.exports[t]=function(r){r=r||{};var n=r.handlebars||r.hbs||hoe();return w6.exports.handlebars=n,n.registerHelper(e),e}}w6.exports.utils=Aoe()});var szn=y((HDt,WDt)=>{"use strict";(function(t,e){typeof HDt=="object"&&typeof WDt<"u"?WDt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_duration=e()})(HDt,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(P){return P instanceof B},"c"),m=s(function(P,O,G){return new B(P,G,O.$l)},"f"),A=s(function(P){return e.p(P)+"s"},"m"),T=s(function(P){return P<0},"l"),S=s(function(P){return T(P)?Math.ceil(P):Math.floor(P)},"$"),b=s(function(P){return Math.abs(P)},"y"),C=s(function(P,O){return P?T(P)?{negative:!0,format:""+b(P)+O}:{negative:!1,format:""+P+O}:{negative:!1,format:""}},"v"),B=function(){function P(G,W,Y){var X=this;if(this.$d={},this.$l=Y,G===void 0&&(this.$ms=0,this.parseFromMilliseconds()),W)return m(G*f[A(W)],this);if(typeof G=="number")return this.$ms=G,this.parseFromMilliseconds(),this;if(typeof G=="object")return Object.keys(G).forEach(function(we){X.$d[A(we)]=G[we]}),this.calMilliseconds(),this;if(typeof G=="string"){var oe=G.match(l);if(oe){var ee=oe.slice(2).map(function(we){return we!=null?Number(we):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(P,"l");var O=P.prototype;return O.calMilliseconds=function(){var G=this;this.$ms=Object.keys(this.$d).reduce(function(W,Y){return W+(G.$d[Y]||0)*f[Y]},0)},O.parseFromMilliseconds=function(){var G=this.$ms;this.$d.years=S(G/u),G%=u,this.$d.months=S(G/c),G%=c,this.$d.days=S(G/o),G%=o,this.$d.hours=S(G/i),G%=i,this.$d.minutes=S(G/n),G%=n,this.$d.seconds=S(G/r),G%=r,this.$d.milliseconds=G},O.toISOString=function(){var G=C(this.$d.years,"Y"),W=C(this.$d.months,"M"),Y=+this.$d.days||0;this.$d.weeks&&(Y+=7*this.$d.weeks);var X=C(Y,"D"),oe=C(this.$d.hours,"H"),ee=C(this.$d.minutes,"M"),we=this.$d.seconds||0;this.$d.milliseconds&&(we+=this.$d.milliseconds/1e3,we=Math.round(1e3*we)/1e3);var M=C(we,"S"),j=G.negative||W.negative||X.negative||oe.negative||ee.negative||M.negative,$=oe.format||ee.format||M.format?"T":"",Q=(j?"-":"")+"P"+G.format+W.format+X.format+$+oe.format+ee.format+M.format;return Q==="P"||Q==="-P"?"P0D":Q},O.toJSON=function(){return this.toISOString()},O.format=function(G){var W=G||"YYYY-MM-DDTHH:mm:ss",Y={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 W.replace(a,function(X,oe){return oe||String(Y[X])})},O.as=function(G){return this.$ms/f[A(G)]},O.get=function(G){var W=this.$ms,Y=A(G);return Y==="milliseconds"?W%=1e3:W=Y==="weeks"?S(W/f[Y]):this.$d[Y],W||0},O.add=function(G,W,Y){var X;return X=W?G*f[A(W)]:d(G)?G.$ms:m(G,this).$ms,m(this.$ms+X*(Y?-1:1),this)},O.subtract=function(G,W){return this.add(G,W,!0)},O.locale=function(G){var W=this.clone();return W.$l=G,W},O.clone=function(){return m(this.$ms,this)},O.humanize=function(G){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!G)},O.valueOf=function(){return this.asMilliseconds()},O.milliseconds=function(){return this.get("milliseconds")},O.asMilliseconds=function(){return this.as("milliseconds")},O.seconds=function(){return this.get("seconds")},O.asSeconds=function(){return this.as("seconds")},O.minutes=function(){return this.get("minutes")},O.asMinutes=function(){return this.as("minutes")},O.hours=function(){return this.get("hours")},O.asHours=function(){return this.as("hours")},O.days=function(){return this.get("days")},O.asDays=function(){return this.as("days")},O.weeks=function(){return this.get("weeks")},O.asWeeks=function(){return this.as("weeks")},O.months=function(){return this.get("months")},O.asMonths=function(){return this.as("months")},O.years=function(){return this.get("years")},O.asYears=function(){return this.as("years")},P}(),k=s(function(P,O,G){return P.add(O.years()*G,"y").add(O.months()*G,"M").add(O.days()*G,"d").add(O.hours()*G,"h").add(O.minutes()*G,"m").add(O.seconds()*G,"s").add(O.milliseconds()*G,"ms")},"p");return function(P,O,G){t=G,e=G().$utils(),G.duration=function(X,oe){var ee=G.locale();return m(X,{$l:ee},oe)},G.isDuration=d;var W=O.prototype.add,Y=O.prototype.subtract;O.prototype.add=function(X,oe){return d(X)?k(this,X,1):W.bind(this)(X,oe)},O.prototype.subtract=function(X,oe){return d(X)?k(this,X,-1):Y.bind(this)(X,oe)}}})});var ozn=y((zDt,$Dt)=>{"use strict";(function(t,e){typeof zDt=="object"&&typeof $Dt<"u"?$Dt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(zDt,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 azn=y((KDt,JDt)=>{"use strict";(function(t,e){typeof KDt=="object"&&typeof JDt<"u"?JDt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(KDt,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 uzn=y((XDt,ZDt)=>{"use strict";(function(t,e){typeof XDt=="object"&&typeof ZDt<"u"?ZDt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_weekYear=e()})(XDt,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 czn=y((eBt,tBt)=>{"use strict";(function(t,e){typeof eBt=="object"&&typeof tBt<"u"?tBt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_weekOfYear=e()})(eBt,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 lzn=y((rBt,nBt)=>{"use strict";(function(t,e){typeof rBt=="object"&&typeof nBt<"u"?nBt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_relativeTime=e()})(rBt,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 P=(t.rounding||Math.round)(Math.abs(m));if(T=m>0,P<=k.r||!k.r){P<=1&&B>0&&(k=b[B-1]);var O=S[k.l];d&&(P=d(""+P)),A=typeof O=="string"?O.replace("%d",P):O(P,c,k.l,T);break}}if(c)return A;var G=T?S.future:S.past;return typeof G=="function"?G(A):G.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 fzn=y((iBt,sBt)=>{"use strict";(function(t,e){typeof iBt=="object"&&typeof sBt<"u"?sBt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_utc=e()})(iBt,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 P=k.match(e);if(!P)return null;var O=(""+P[0]).match(r)||["-",0,0],G=O[0],W=60*+O[1]+ +O[2];return W===0?0:G==="+"?W:-W}(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 dzn=y((oBt,aBt)=>{"use strict";(function(t,e){typeof oBt=="object"&&typeof aBt<"u"?aBt.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_timezone=e()})(oBt,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],P=k===24?0:k,O=A[0]+"-"+A[1]+"-"+A[2]+" "+P+":"+A[4]+":"+A[5]+":000",G=+f;return(i.utc(O).valueOf()-(G-=G%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(P,O,G){var W=P-60*O*1e3,Y=u(W,G);if(O===Y)return[W,O];var X=u(W-=60*(Y-O)*1e3,G);return Y===X?[W,Y]:[P-60*Math.min(Y,X)*1e3,Math.max(Y,X)]}(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 qzn=y(t_=>{"use strict";t_.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"};t_.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"]};t_.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]};t_.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};t_.iterateeRearg={mapKeys:[1],reduceRight:[1,0]};t_.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]};t_.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}};t_.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}};t_.realToAlias=function(){var t=Object.prototype.hasOwnProperty,e=t_.aliasToReal,r={};for(var n in e){var i=e[n];t.call(r,i)?r[i].push(n):r[i]=[n]}return r}();t_.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"};t_.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0};t_.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 mBt=y((WUc,Gzn)=>{"use strict";Gzn.exports={}});var Hzn=y((zUc,Yzn)=>{"use strict";var Zf=qzn(),xBa=mBt(),Vzn=Array.prototype.push;function DBa(t,e){return e==2?function(r,n){return t.apply(void 0,arguments)}:function(r){return t.apply(void 0,arguments)}}s(DBa,"baseArity");function ABt(t,e){return e==2?function(r,n){return t(r,n)}:function(r){return t(r)}}s(ABt,"baseAry");function jzn(t){for(var e=t?t.length:0,r=Array(e);e--;)r[e]=t[e];return r}s(jzn,"cloneArray");function BBa(t){return function(e){return t({},e)}}s(BBa,"createCloner");function kBa(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&&Vzn.apply(a,o),e!=n&&Vzn.apply(a,i.slice(e+1)),t.apply(this,a)}}s(kBa,"flatSpread");function _Bt(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(_Bt,"wrapImmutable");function EBt(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:xBa,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,P=m.isFunction,O=m.isWeakMap,G=m.keys,W=m.rearg,Y=m.toInteger,X=m.toPath,oe=G(Zf.aryMethod),ee={castArray:function(Se){return function(){var de=arguments[0];return B(de)?Se(jzn(de)):Se.apply(void 0,arguments)}},iteratee:function(Se){return function(){var de=arguments[0],Be=arguments[1],Pe=Se(de,Be),Qe=Pe.length;return a.cap&&typeof Be=="number"?(Be=Be>2?Be-2:1,Qe&&Qe<=Be?Pe:ABt(Pe,Be)):Pe}},mixin:function(Se){return function(de){var Be=this;if(!P(Be))return Se(Be,Object(de));var Pe=[];return C(G(de),function(Qe){P(de[Qe])&&Pe.push([Qe,Be.prototype[Qe]])}),Se(Be,Object(de)),C(Pe,function(Qe){var Ct=Qe[1];P(Ct)?Be.prototype[Qe[0]]=Ct:delete Be.prototype[Qe[0]]}),Be}},nthArg:function(Se){return function(de){var Be=de<0?1:Y(de)+1;return b(Se(de),Be)}},rearg:function(Se){return function(de,Be){var Pe=Be?Be.length:0;return b(Se(de,Be),Pe)}},runInContext:function(Se){return function(de){return EBt(t,Se(de),n)}}};function we(Se,de){if(a.cap){var Be=Zf.iterateeRearg[Se];if(Be)return Te(de,Be);var Pe=!i&&Zf.iterateeAry[Se];if(Pe)return re(de,Pe)}return de}s(we,"castCap");function M(Se,de,Be){return c||a.curry&&Be>1?b(de,Be):de}s(M,"castCurry");function j(Se,de,Be){if(a.fixed&&(l||!Zf.skipFixed[Se])){var Pe=Zf.methodSpread[Se],Qe=Pe&&Pe.start;return Qe===void 0?A(de,Be):kBa(de,Qe)}return de}s(j,"castFixed");function $(Se,de,Be){return a.rearg&&Be>1&&(f||!Zf.skipRearg[Se])?W(de,Zf.methodRearg[Se]||Zf.aryRearg[Be]):de}s($,"castRearg");function Q(Se,de){de=X(de);for(var Be=-1,Pe=de.length,Qe=Pe-1,Ct=S(Object(Se)),at=Ct;at!=null&&++Be<Pe;){var It=de[Be],tr=at[It];tr!=null&&!(P(tr)||k(tr)||O(tr))&&(at[It]=S(Be==Qe?tr:Object(tr))),at=at[It]}return Ct}s(Q,"cloneByPath");function U(Se){return ue.runInContext.convert(Se)(void 0)}s(U,"convertLib");function me(Se,de){var Be=Zf.aliasToReal[Se]||Se,Pe=Zf.remap[Be]||Be,Qe=n;return function(Ct){var at=i?d:m,It=i?d[Pe]:de,tr=T(T({},Qe),Ct);return EBt(at,Be,It,tr)}}s(me,"createConverter");function re(Se,de){return Fe(Se,function(Be){return typeof Be=="function"?ABt(Be,de):Be})}s(re,"iterateeAry");function Te(Se,de){return Fe(Se,function(Be){var Pe=de.length;return DBa(W(ABt(Be,Pe),de),Pe)})}s(Te,"iterateeRearg");function Fe(Se,de){return function(){var Be=arguments.length;if(!Be)return Se();for(var Pe=Array(Be);Be--;)Pe[Be]=arguments[Be];var Qe=a.rearg?0:Be-1;return Pe[Qe]=de(Pe[Qe]),Se.apply(void 0,Pe)}}s(Fe,"overArg");function De(Se,de,Be){var Pe,Qe=Zf.aliasToReal[Se]||Se,Ct=de,at=ee[Qe];return at?Ct=at(de):a.immutable&&(Zf.mutate.array[Qe]?Ct=_Bt(de,jzn):Zf.mutate.object[Qe]?Ct=_Bt(de,BBa(de)):Zf.mutate.set[Qe]&&(Ct=_Bt(de,Q))),C(oe,function(It){return C(Zf.aryMethod[It],function(tr){if(Qe==tr){var Wt=Zf.methodSpread[Qe],br=Wt&&Wt.afterRearg;return Pe=br?j(Qe,$(Qe,Ct,It),It):$(Qe,j(Qe,Ct,It),It),Pe=we(Qe,Pe),Pe=M(Qe,Pe,It),!1}}),!Pe}),Pe||(Pe=Ct),Pe==de&&(Pe=c?b(Pe,1):function(){return de.apply(this,arguments)}),Pe.convert=me(Qe,de),Pe.placeholder=de.placeholder=Be,Pe}if(s(De,"wrap"),!o)return De(e,r,u);var ue=r,ve=[];return C(oe,function(Se){C(Zf.aryMethod[Se],function(de){var Be=ue[Zf.remap[de]||de];Be&&ve.push([de,De(de,Be,ue)])})}),C(G(ue),function(Se){var de=ue[Se];if(typeof de=="function"){for(var Be=ve.length;Be--;)if(ve[Be][0]==Se)return;de.convert=me(Se,de),ve.push([Se,de])}}),C(ve,function(Se){ue[Se[0]]=Se[1]}),ue.convert=U,ue.placeholder=ue,C(G(ue),function(Se){C(Zf.realToAlias[Se]||[],function(de){ue[de]=ue[Se]})}),ue}s(EBt,"baseConvert");Yzn.exports=EBt});var yBt=y((KUc,zzn)=>{"use strict";var Wzn=Yqe(),PBa=Wzn&&new Wzn;zzn.exports=PBa});var TBt=y((JUc,Kzn)=>{"use strict";var LBa=ip(),$zn=yBt(),MBa=$zn?function(t,e){return $zn.set(t,e),t}:LBa;Kzn.exports=MBa});var koe=y((XUc,Jzn)=>{"use strict";var UBa=sH(),FBa=Km();function QBa(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=UBa(t.prototype),n=t.apply(r,e);return FBa(n)?n:r}}s(QBa,"createCtor");Jzn.exports=QBa});var Zzn=y((eFc,Xzn)=>{"use strict";var qBa=koe(),GBa=Sg(),VBa=1;function jBa(t,e,r){var n=e&VBa,i=qBa(t);function o(){var a=this&&this!==GBa&&this instanceof o?i:t;return a.apply(n?r:this,arguments)}return s(o,"wrapper"),o}s(jBa,"createBind");Xzn.exports=jBa});var SBt=y((rFc,e$n)=>{"use strict";var YBa=Math.max;function HBa(t,e,r,n){for(var i=-1,o=t.length,a=r.length,u=-1,c=e.length,l=YBa(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(HBa,"composeArgs");e$n.exports=HBa});var IBt=y((iFc,t$n)=>{"use strict";var WBa=Math.max;function zBa(t,e,r,n){for(var i=-1,o=t.length,a=-1,u=r.length,c=-1,l=e.length,f=WBa(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(zBa,"composeArgsRight");t$n.exports=zBa});var n$n=y((oFc,r$n)=>{"use strict";function $Ba(t,e){for(var r=t.length,n=0;r--;)t[r]===e&&++n;return n}s($Ba,"countHolders");r$n.exports=$Ba});var LLe=y((uFc,i$n)=>{"use strict";function KBa(){}s(KBa,"baseLodash");i$n.exports=KBa});var ULe=y((lFc,s$n)=>{"use strict";var JBa=sH(),XBa=LLe(),ZBa=4294967295;function MLe(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ZBa,this.__views__=[]}s(MLe,"LazyWrapper");MLe.prototype=JBa(XBa.prototype);MLe.prototype.constructor=MLe;s$n.exports=MLe});var RBt=y((dFc,a$n)=>{"use strict";var o$n=yBt(),eka=ANt(),tka=o$n?function(t){return o$n.get(t)}:eka;a$n.exports=tka});var c$n=y((hFc,u$n)=>{"use strict";var rka={};u$n.exports=rka});var d$n=y((pFc,f$n)=>{"use strict";var l$n=c$n(),nka=Object.prototype,ika=nka.hasOwnProperty;function ska(t){for(var e=t.name+"",r=l$n[e],n=ika.call(l$n,e)?r.length:0;n--;){var i=r[n],o=i.func;if(o==null||o==t)return i.name}return e}s(ska,"getFuncName");f$n.exports=ska});var CBt=y((mFc,h$n)=>{"use strict";var oka=sH(),aka=LLe();function FLe(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}s(FLe,"LodashWrapper");FLe.prototype=oka(aka.prototype);FLe.prototype.constructor=FLe;h$n.exports=FLe});var g$n=y((_Fc,p$n)=>{"use strict";var uka=ULe(),cka=CBt(),lka=mF();function fka(t){if(t instanceof uka)return t.clone();var e=new cka(t.__wrapped__,t.__chain__);return e.__actions__=lka(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}s(fka,"wrapperClone");p$n.exports=fka});var _$n=y((yFc,A$n)=>{"use strict";var dka=ULe(),m$n=CBt(),hka=LLe(),pka=qa(),gka=$m(),mka=g$n(),Aka=Object.prototype,_ka=Aka.hasOwnProperty;function QLe(t){if(gka(t)&&!pka(t)&&!(t instanceof dka)){if(t instanceof m$n)return t;if(_ka.call(t,"__wrapped__"))return mka(t)}return new m$n(t)}s(QLe,"lodash");QLe.prototype=hka.prototype;QLe.prototype.constructor=QLe;A$n.exports=QLe});var y$n=y((SFc,E$n)=>{"use strict";var Eka=ULe(),yka=RBt(),Tka=d$n(),Ska=_$n();function Ika(t){var e=Tka(t),r=Ska[e];if(typeof r!="function"||!(e in Eka.prototype))return!1;if(t===r)return!0;var n=yka(r);return!!n&&t===n[0]}s(Ika,"isLaziable");E$n.exports=Ika});var wBt=y((RFc,T$n)=>{"use strict";var Rka=TBt(),Cka=Aqe(),wka=Cka(Rka);T$n.exports=wka});var I$n=y((CFc,S$n)=>{"use strict";var bka=/\{\n\/\* \[wrapped with (.+)\] \*/,Nka=/,? & /;function Oka(t){var e=t.match(bka);return e?e[1].split(Nka):[]}s(Oka,"getWrapDetails");S$n.exports=Oka});var C$n=y((bFc,R$n)=>{"use strict";var vka=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function xka(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(vka,`{
|
|
4316
4316
|
/* [wrapped with `+e+`] */
|
|
4317
4317
|
`)}s(xka,"insertWrapDetails");R$n.exports=xka});var b$n=y((OFc,w$n)=>{"use strict";var Dka=nH(),Bka=iNe(),kka=1,Pka=2,Lka=8,Mka=16,Uka=32,Fka=64,Qka=128,qka=256,Gka=512,Vka=[["ary",Qka],["bind",kka],["bindKey",Pka],["curry",Lka],["curryRight",Mka],["flip",Gka],["partial",Uka],["partialRight",Fka],["rearg",qka]];function jka(t,e){return Dka(Vka,function(r){var n="_."+r[0];e&r[1]&&!Bka(t,n)&&t.push(n)}),t.sort()}s(jka,"updateWrapDetails");w$n.exports=jka});var bBt=y((xFc,N$n)=>{"use strict";var Yka=I$n(),Hka=C$n(),Wka=Sue(),zka=b$n();function $ka(t,e,r){var n=e+"";return Wka(t,Hka(n,zka(Yka(n),r)))}s($ka,"setWrapToString");N$n.exports=$ka});var NBt=y((BFc,x$n)=>{"use strict";var Kka=y$n(),Jka=wBt(),Xka=bBt(),Zka=1,ePa=2,tPa=4,rPa=8,O$n=32,v$n=64;function nPa(t,e,r,n,i,o,a,u,c,l){var f=e&rPa,d=f?a:void 0,m=f?void 0:a,A=f?o:void 0,T=f?void 0:o;e|=f?O$n:v$n,e&=~(f?v$n:O$n),e&tPa||(e&=~(Zka|ePa));var S=[t,e,i,A,d,T,m,u,c,l],b=r.apply(void 0,S);return Kka(t)&&Jka(b,S),b.placeholder=n,Xka(b,t,e)}s(nPa,"createRecurry");x$n.exports=nPa});var OBt=y((PFc,D$n)=>{"use strict";function iPa(t){var e=t;return e.placeholder}s(iPa,"getHolder");D$n.exports=iPa});var k$n=y((MFc,B$n)=>{"use strict";var sPa=mF(),oPa=lq(),aPa=Math.min;function uPa(t,e){for(var r=t.length,n=aPa(e.length,r),i=sPa(t);n--;){var o=e[n];t[n]=oPa(o,r)?i[o]:void 0}return t}s(uPa,"reorder");B$n.exports=uPa});var qLe=y((FFc,L$n)=>{"use strict";var P$n="__lodash_placeholder__";function cPa(t,e){for(var r=-1,n=t.length,i=0,o=[];++r<n;){var a=t[r];(a===e||a===P$n)&&(t[r]=P$n,o[i++]=r)}return o}s(cPa,"replaceHolders");L$n.exports=cPa});var vBt=y((qFc,F$n)=>{"use strict";var lPa=SBt(),fPa=IBt(),dPa=n$n(),M$n=koe(),hPa=NBt(),pPa=OBt(),gPa=k$n(),mPa=qLe(),APa=Sg(),_Pa=1,EPa=2,yPa=8,TPa=16,SPa=128,IPa=512;function U$n(t,e,r,n,i,o,a,u,c,l){var f=e&SPa,d=e&_Pa,m=e&EPa,A=e&(yPa|TPa),T=e&IPa,S=m?void 0:M$n(t);function b(){for(var C=arguments.length,B=Array(C),k=C;k--;)B[k]=arguments[k];if(A)var P=pPa(b),O=dPa(B,P);if(n&&(B=lPa(B,n,i,A)),o&&(B=fPa(B,o,a,A)),C-=O,A&&C<l){var G=mPa(B,P);return hPa(t,e,U$n,b.placeholder,r,B,G,u,c,l-C)}var W=d?r:this,Y=m?W[t]:t;return C=B.length,u?B=gPa(B,u):T&&C>1&&B.reverse(),f&&c<C&&(B.length=c),this&&this!==APa&&this instanceof b&&(Y=S||M$n(Y)),Y.apply(W,B)}return s(b,"wrapper"),b}s(U$n,"createHybrid");F$n.exports=U$n});var q$n=y((VFc,Q$n)=>{"use strict";var RPa=gz(),CPa=koe(),wPa=vBt(),bPa=NBt(),NPa=OBt(),OPa=qLe(),vPa=Sg();function xPa(t,e,r){var n=CPa(t);function i(){for(var o=arguments.length,a=Array(o),u=o,c=NPa(i);u--;)a[u]=arguments[u];var l=o<3&&a[0]!==c&&a[o-1]!==c?[]:OPa(a,c);if(o-=l.length,o<r)return bPa(t,e,wPa,i.placeholder,void 0,a,l,void 0,void 0,r-o);var f=this&&this!==vPa&&this instanceof i?n:t;return RPa(f,this,a)}return s(i,"wrapper"),i}s(xPa,"createCurry");Q$n.exports=xPa});var V$n=y((YFc,G$n)=>{"use strict";var DPa=gz(),BPa=koe(),kPa=Sg(),PPa=1;function LPa(t,e,r,n){var i=e&PPa,o=BPa(t);function a(){for(var u=-1,c=arguments.length,l=-1,f=n.length,d=Array(f+c),m=this&&this!==kPa&&this instanceof a?o:t;++l<f;)d[l]=n[l];for(;c--;)d[l++]=arguments[++u];return DPa(m,i?r:this,d)}return s(a,"wrapper"),a}s(LPa,"createPartial");G$n.exports=LPa});var $$n=y((WFc,z$n)=>{"use strict";var MPa=SBt(),UPa=IBt(),j$n=qLe(),Y$n="__lodash_placeholder__",xBt=1,FPa=2,QPa=4,H$n=8,Poe=128,W$n=256,qPa=Math.min;function GPa(t,e){var r=t[1],n=e[1],i=r|n,o=i<(xBt|FPa|Poe),a=n==Poe&&r==H$n||n==Poe&&r==W$n&&t[7].length<=e[8]||n==(Poe|W$n)&&e[7].length<=e[8]&&r==H$n;if(!(o||a))return t;n&xBt&&(t[2]=e[2],i|=r&xBt?0:QPa);var u=e[3];if(u){var c=t[3];t[3]=c?MPa(c,u,e[4]):u,t[4]=c?j$n(t[3],Y$n):e[4]}return u=e[5],u&&(c=t[5],t[5]=c?UPa(c,u,e[6]):u,t[6]=c?j$n(t[5],Y$n):e[6]),u=e[7],u&&(t[7]=u),n&Poe&&(t[8]=t[8]==null?e[8]:qPa(t[8],e[8])),t[9]==null&&(t[9]=e[9]),t[0]=e[0],t[1]=i,t}s(GPa,"mergeData");z$n.exports=GPa});var GLe=y(($Fc,e9n)=>{"use strict";var VPa=TBt(),jPa=Zzn(),YPa=q$n(),HPa=vBt(),WPa=V$n(),zPa=RBt(),$Pa=$$n(),KPa=wBt(),JPa=bBt(),K$n=fH(),XPa="Expected a function",J$n=1,ZPa=2,DBt=8,BBt=16,kBt=32,X$n=64,Z$n=Math.max;function eLa(t,e,r,n,i,o,a,u){var c=e&ZPa;if(!c&&typeof t!="function")throw new TypeError(XPa);var l=n?n.length:0;if(l||(e&=~(kBt|X$n),n=i=void 0),a=a===void 0?a:Z$n(K$n(a),0),u=u===void 0?u:K$n(u),l-=i?i.length:0,e&X$n){var f=n,d=i;n=i=void 0}var m=c?void 0:zPa(t),A=[t,e,r,n,i,f,d,o,a,u];if(m&&$Pa(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:Z$n(A[9]-l,0),!u&&e&(DBt|BBt)&&(e&=~(DBt|BBt)),!e||e==J$n)var T=jPa(t,e,r);else e==DBt||e==BBt?T=YPa(t,e,u):(e==kBt||e==(J$n|kBt))&&!i.length?T=WPa(t,e,r,n):T=HPa.apply(void 0,A);var S=m?VPa:KPa;return JPa(S(T,A),t,e)}s(eLa,"createWrap");e9n.exports=eLa});var r9n=y((JFc,t9n)=>{"use strict";var tLa=GLe(),rLa=128;function nLa(t,e,r){return e=r?void 0:e,e=t&&e==null?t.length:e,tLa(t,rLa,void 0,void 0,void 0,void 0,e)}s(nLa,"ary");t9n.exports=nLa});var i9n=y((ZFc,n9n)=>{"use strict";var iLa=GLe(),sLa=8;function PBt(t,e,r){e=r?void 0:e;var n=iLa(t,sLa,void 0,void 0,void 0,void 0,void 0,e);return n.placeholder=PBt.placeholder,n}s(PBt,"curry");PBt.placeholder={};n9n.exports=PBt});var o9n=y((t2c,s9n)=>{"use strict";var oLa=Dv(),aLa=$m(),uLa="[object WeakMap]";function cLa(t){return aLa(t)&&oLa(t)==uLa}s(cLa,"isWeakMap");s9n.exports=cLa});var u9n=y((n2c,a9n)=>{"use strict";var lLa=Jbe(),fLa=Xm(),dLa=1;function hLa(t){return fLa(typeof t=="function"?t:lLa(t,dLa))}s(hLa,"iteratee");a9n.exports=hLa});var l9n=y((s2c,c9n)=>{"use strict";var pLa=GLe(),gLa=_qe(),mLa=256,ALa=gLa(function(t,e){return pLa(t,mLa,void 0,void 0,void 0,e)});c9n.exports=ALa});var d9n=y((o2c,f9n)=>{"use strict";var _La=Nv(),ELa=mF(),yLa=qa(),TLa=Cv(),SLa=cqe(),ILa=Kk(),RLa=CI();function CLa(t){return yLa(t)?_La(t,ILa):TLa(t)?[t]:ELa(SLa(RLa(t)))}s(CLa,"toPath");f9n.exports=CLa});var p9n=y((u2c,h9n)=>{"use strict";h9n.exports={ary:r9n(),assign:$mt(),clone:ore(),curry:i9n(),forEach:nH(),isArray:qa(),isError:oNe(),isFunction:oq(),isWeakMap:o9n(),iteratee:u9n(),keys:Due(),rearg:l9n(),toInteger:fH(),toPath:d9n()}});var m9n=y((c2c,g9n)=>{"use strict";var wLa=Hzn(),bLa=p9n();function NLa(t,e,r){return wLa(bLa,t,e,r)}s(NLa,"convert");g9n.exports=NLa});var _9n=y((f2c,A9n)=>{"use strict";A9n.exports={cap:!1,curry:!1,fixed:!1,immutable:!1,rearg:!1}});var T9n=y((d2c,y9n)=>{"use strict";var OLa=m9n(),E9n=OLa("cloneDeep",Zmt(),_9n());E9n.placeholder=mBt();y9n.exports=E9n});process.env.DISABLE_PINO_LOGGER="1";process.env.NO_JS="1";process.env.DISABLE_JWT_WARNING="1";ad();var SI=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=>xQe(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($5(r.help)));let i=new Set;for(let o of r.opts){n=n.option(o.command,K5(o.help));for(let a of o.extras)!a?.command||i.has(a.command)||(i.add(a.command),n=n.option(a.command,K5(a.help)))}n.helpOption("-h, --help",K5(`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(Qa(`${Object.keys(o)[0]} is an option, not an operation.`)):a||(console.log(Qa(`Unknown ${this.command} option.`)),n.help())}catch(a){console.log(Qa(a))}})}};Rv();ad();var cFt=require("posthog-node");Rv();var sue=require("fs"),VKn=require("path"),jKn=require("os"),{error:YKn}=(ad(),on(DQe)),oue=class{static{s(this,"ConfigManager")}constructor(){this.path=VKn.join(jKn.homedir(),".budibase.json"),sue.existsSync(this.path)||sue.writeFileSync(this.path,"{}")}get config(){try{return JSON.parse(sue.readFileSync(this.path,"utf8"))}catch{return console.log(YKn("Error parsing configuration file. Please check your .budibase.json is valid.")),{}}}set config(e){sue.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 tq=class{static{s(this,"AnalyticsClient")}constructor(){this.client=new cFt.PostHog(YQe,{}),this.configManager=new oue}capture(e){this.configManager.config.analyticsDisabled||this.client.capture(e)}enable(){this.configManager.removeKey("analyticsDisabled"),this.client.capture({event:Cw.OptIn,distinctId:"cli"})}disable(){this.client.capture({event:Cw.OptOut,distinctId:"cli"}),this.configManager.setValue("analyticsDisabled",!0)}status(){return this.configManager.config.analyticsDisabled?"disabled":"enabled"}};var WQe=new tq;async function HKn(){try{WQe.disable(),console.log(mu("Successfully opted out of Budibase analytics. You can opt in at any time by running 'budi analytics opt-in'"))}catch(t){console.log(Qa(`Error opting out of Budibase analytics. Please try again later - ${t}`))}}s(HKn,"optOut");async function WKn(){try{WQe.enable(),console.log(mu("Successfully opted in to Budibase analytics. Thank you for helping us make Budibase better!"))}catch{console.log(Qa("Error opting in to Budibase analytics. Please try again later."))}}s(WKn,"optIn");async function zKn(){try{console.log(mu(`Budibase analytics ${WQe.status()}`))}catch{console.log(Qa("Error fetching analytics status. Please try again later."))}}s(zKn,"status");var lFt=new SI("analytics").addHelp("Control the analytics you send to Budibase.").addSubOption("--optin","Opt in to sending analytics to Budibase",WKn).addSubOption("--optout","Opt out of sending analytics to Budibase.",HKn).addSubOption("--status","Check whether you are currently opted in to Budibase analytics.",zKn);Rv();Rv();$k();var KKn=new tq;function aue(t,e){KKn.capture({distinctId:"cli",event:t,properties:e})}s(aue,"captureEvent");oz();ad();Nw();var bFt=require("path"),NFt=Ae(require("fs"));ad();Nw();async function lue(t,e){let r="/plugins";if(t=(0,bFt.resolve)(t),!NFt.default.existsSync(t)){console.log(Qa(`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(mu(`Docker compose configured to watch directory: ${t}`))}s(lue,"watchPlugins");var{success:t7n}=(ad(),on(DQe)),{updateDockerComposeService:r7n}=(Nw(),on(AFt)),n7n=require("randomstring"),{GENERATED_USER_EMAIL:i7n}=(Rv(),on(uFt));async function fue(t,e){let r=i7n;t||(t=n7n.generate({length:6})),r7n(n=>{n.environment.BB_ADMIN_USER_EMAIL=r,n.environment.BB_ADMIN_USER_PASSWORD=t}),e||console.log(t7n(`User admin credentials configured, access with email: ${r} - password: ${t}`))}s(fue,"generateUser");var OFt=Ae(require("node-fetch"));var s7n="http://169.254.169.254/metadata/v1/user-data";async function o7n(t,e,r){let n=e?TFt:{};if(t==="do")try{let o=await(await(0,OFt.default)(s7n)).text(),a=NQe(o);for(let[u,c]of Object.entries(rqe))a[u]&&(n[c]=a[u])}catch{}return r&&(n[rqe.MAIN_PORT]=r),n}s(o7n,"getInitConfig");async function due(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 SS(),!u&&!await II(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}aue(Cw.SelfHostInit,{type:e});let c=await o7n(e,u,o);r?await RFt(c,a):(await iz(),await IFt(c,a)),n&&await lue(n,a),i&&await fue(typeof i=="string"?i:null,a)}s(due,"init");Nw();ad();oz();var vFt=Ae(require("docker-compose")),xFt=Ae(require("fs"));$k();var a7n=require("open");async function iq(){await SS(),ww(),console.log(Fi("Starting services, this may take a moment - first time this may take a few minutes to download images."));let t;xFt.default.existsSync(nq)?t=CFt("MAIN_PORT"):t=wFt("port"),await bw(async()=>{await vFt.default.upAll({cwd:"./",log:!0})}),await II(`Do you wish to open http://localhost:${t} ?`)&&await a7n(`http://localhost:${t}`),console.log(mu(`Services started, please go to http://localhost:${t} for next steps.`))}s(iq,"start");Nw();ad();var DFt=Ae(require("docker-compose"));async function BFt(){await SS(),ww(),console.log(Fi("Stopping services, this may take a moment.")),await bw(async()=>{await DFt.default.stop()}),console.log(mu("Services have been stopped successfully."))}s(BFt,"stop");Nw();ad();var kFt=Ae(require("docker-compose"));async function PFt(){await SS(),ww(),console.log(Fi("Budibase status")),await bw(async()=>{let t=await kFt.default.ps();console.log(t.out)})}s(PFt,"status");Nw();$k();var hue=Ae(require("docker-compose"));oz();ad();var u7n=["app-service","worker-service","proxy-service","couchdb-service","litellm-service"],c7n=["budibase"];function l7n(t){return Object.prototype.hasOwnProperty.call(t,"budibase")}s(l7n,"isSingleComposeServiceList");async function LFt(t){let{services:e}=sz(rq),r=typeof t=="object"&&t!=null&&"single"in t&&!!t.single,n=r||l7n(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 SS(),ww(),!n&&await II("Do you wish to update you docker-compose.yaml?")){let i=await uue("minio");await iz(),KQe("minio",i)}await bw(async()=>{let o=(await hue.default.ps()).out.split(`
|
|
4318
|
-
`),a=o[2]&&o[2].indexOf("Up")!==-1;a&&(console.log(Fi("Stopping services, this may take a moment.")),await hue.default.stop()),console.log(Fi("Beginning update, this may take a few minutes."));let u;n?u=c7n:u=u7n,await hue.default.pullMany(u,{log:!0}),a&&(console.log(mu("Update complete, restarting services...")),await iq())})}s(LFt,"update");var MFt=new SI("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.",due).addSubOption("--start","Start the configured platform in current directory.",iq).addSubOption("--status","Check the status of currently running services.",PFt).addSubOption("--stop","Stop the configured platform in the current directory.",BFt).addSubOption("--update","Update the Budibase images to the latest version.",LFt).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",lue).addSubOption("--gen-user","Create an admin user automatically as part of first start.",fue).addSubOption("--single","Specify this with init or update to target a single-image deployment (also supports --init single).");Rv();var KT=Ae(require("fs")),G2=require("path");var pue=Ae(require("pouchdb"));ad();var UFt=Ae(require("node-fetch"));function gue(t){let e;t?e={prefix:t}:e={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return pue.default.plugin(r.plugin),pue.default.adapter("writableStream",r.adapters.writableStream),pue.default.defaults(e)}s(gue,"getPouch");async function FFt(t){let e=await(0,UFt.default)(OQe(encodeURI(`${t}/_all_dbs`)),{method:"GET"});if(e.status===200)return await e.json();throw"Cannot connect to CouchDB instance"}s(FFt,"getAllDbs");ad();var CYn=Ae(require("dotenv")),c1t=Ae(require("fs"));$k();ur();ur();var sq={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},az={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var I_={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"},ContainsAny:{value:"containsAny",label:"Has any"}},QFt={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Mq={};Ui(Mq,{ColumnSplitter:()=>MGe,NoEmptyFilterStrings:()=>qYt,buildQuery:()=>GYt,cleanupQuery:()=>QGe,fixupFilterArrays:()=>GGe,getKeyNumbering:()=>qGe,getValidOperatorsForType:()=>mdi,hasFilters:()=>UGe,limit:()=>jYt,recurseLogicalOperators:()=>FGe,removeKeyNumbering:()=>Iue,runQuery:()=>yce,search:()=>Edi,sort:()=>VYt,splitFiltersArray:()=>Rue});ur();var Lq=Ae(sqe());var Ov={};Ui(Ov,{filterValueToLabel:()=>rei,hasSchema:()=>nei,isSupportedUserSearch:()=>XQt,nameToUrl:()=>uei,parallelForeach:()=>tei,processSearchFilters:()=>Eqe,toMap:()=>sei,trimOtherProps:()=>iei,unreachable:()=>eei});ur();var JQt=Ae($Qt());var ZZn=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function eei(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(eei,"unreachable");async function tei(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(tei,"parallelForeach");function rei(){return Object.keys(I_).reduce((t,e)=>{let n=I_[e];return t[n.value]=n.label,t},{})}s(rei,"filterValueToLabel");function nei(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(nei,"hasSchema");function iei(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(iei,"trimOtherProps");function XQt(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(nue(o)){for(let l of t[o].conditions)if(!XQt(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(XQt,"isSupportedUserSearch");function Eqe(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Rue(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,JQt.default)(i,ZZn);return o.field=Iue(o.field),o})}]}}s(Eqe,"processSearchFilters");function sei(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(sei,"toMap");var oei=s(t=>t?t.trim():null,"resolveWorkspaceName"),aei=s(t=>{let e,r=oei(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),uei=s(t=>{let e=aei(t);return cei(e)},"nameToUrl"),cei=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var Fw={};Ui(Fw,{accountPortalAccountUrl:()=>bGe,accountPortalBillingUrl:()=>NGe,accountPortalUpgradeUrl:()=>OGe,agentChatUrl:()=>PGe,appAgentUrl:()=>_ce,appChatUrl:()=>Ace,applyBaseUrl:()=>BYt,builderAppsUrl:()=>kGe,builderSettingsAuthUrl:()=>DGe,builderSettingsEmailUrl:()=>xGe,builderSettingsPeopleUsersUrl:()=>BGe,builderWorkspacesUrl:()=>vGe,cancelableTimeout:()=>ZQt,cron:()=>Zfi,deepGet:()=>yqe,duplicateName:()=>Wfi,escapeHtml:()=>pei,formatBytes:()=>Xfi,getSequentialName:()=>zfi,getUserColor:()=>fei,getUserInitials:()=>lei,getUserLabel:()=>dei,isEnvironmentVariableKey:()=>MYt,isGoogleSheets:()=>Aei,isSQL:()=>_ei,lists:()=>wGe,normalizeForComparison:()=>gei,retry:()=>Eei,roles:()=>CGe,schema:()=>c$,structuredOutput:()=>EGe,urlHelpers:()=>LYt,views:()=>RGe,wait:()=>Tqe,withTimeout:()=>hei});var yqe=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"),lei=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"),fei=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"),dei=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function ZQt(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(ZQt,"cancelableTimeout");async function hei(t,e){let[r,n]=ZQt(t),i=await Promise.race([e(),r]);return n(),i}s(hei,"withTimeout");var pei=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml"),gei=s(t=>t.toLowerCase().trim(),"normalizeForComparison");ur();function Aei(t){return t==="GOOGLE_SHEETS"}s(Aei,"isGoogleSheets");function _ei(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(_ei,"isSQL");async function Tqe(t){return new Promise(e=>setTimeout(e,t))}s(Tqe,"wait");async function Eei(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 Tqe(o);try{return await t()}catch(a){n=a}}throw n}s(Eei,"retry");var yYt=Ae(wI()),TYt=Ae(AGe());var EYt="(Input cron: ",sfi={"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 ofi(t){let e=[];for(let r of t){r.includes(EYt)&&(r=r.split(EYt)[0].trim());for(let[n,i]of Object.entries(sfi))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(ofi,"improveErrors");function SYt(t,e=4){let r=TYt.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(SYt,"getNextExecutionDates");function IYt(t){let e=(0,yYt.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:ofi(e.getError())}}s(IYt,"validate");var c$={};Ui(c$,{decodeNonAscii:()=>_Ge,encodeNonAscii:()=>cfi,isDeprecatedSingleUserColumn:()=>afi,isNumeric:()=>lfi,isRequired:()=>ufi});ur();function afi(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(afi,"isDeprecatedSingleUserColumn");function ufi(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(ufi,"isRequired");function cfi(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(cfi,"encodeNonAscii");function _Ge(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(_Ge,"decodeNonAscii");function lfi(t){return t.type==="number"||t.type==="bigint"}s(lfi,"isNumeric");var EGe={};Ui(EGe,{normalizeSchemaForStructuredOutput:()=>ffi});function ffi(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(ffi,"normalizeSchemaForStructuredOutput");var RGe={};Ui(RGe,{basicFields:()=>Gfi,calculationFields:()=>qfi,hasCalculationFields:()=>Qfi,isBasicViewField:()=>Ufi,isCalculationField:()=>l$,isCalculationView:()=>Ffi,isV2:()=>Vfi,isVisible:()=>DYt});ur();var IGe=Ae(SGe());function l$(t){return"calculationType"in t}s(l$,"isCalculationField");function Ufi(t){return!l$(t)}s(Ufi,"isBasicViewField");function Ffi(t){return t.type==="calculation"}s(Ffi,"isCalculationView");function Qfi(t){return Object.values(t.schema||{}).some(l$)}s(Qfi,"hasCalculationFields");function qfi(t){return(0,IGe.default)(t.schema||{},l$)}s(qfi,"calculationFields");function DYt(t){return t.visible!==!1}s(DYt,"isVisible");function Gfi(t,e){let{visible:r=!0}=e||{};return(0,IGe.default)(t.schema||{},n=>!l$(n)&&(!r||DYt(n)))}s(Gfi,"basicFields");function Vfi(t){return t.version===2}s(Vfi,"isV2");var CGe={};Ui(CGe,{checkForRoleInheritanceLoops:()=>Yfi});ur();function jfi(t){return`role${Ts}${t}`}s(jfi,"prefixForCheck");function Yfi(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=jfi(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(Yfi,"checkForRoleInheritanceLoops");var wGe={};Ui(wGe,{punctuateList:()=>Hfi});function Hfi(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(Hfi,"punctuateList");var Wfi=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"),zfi=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 $fi=/{?{{([^{].*?)}}}?/g;function BYt(t,e){if(!e)return t;let r=t.match($fi)??[],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(BYt,"applyBaseUrl");var kYt=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),Kfi=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),Uw=s((t,e)=>{let r=kYt(e);if(!t)return r;let n=Kfi(t);return r?`${n}${r}`:n},"joinBaseAndPath"),Jfi=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),PYt=s(t=>Jfi(kYt(t)),"normalizeAppUrl"),bGe=s(t=>Uw(t,az.ACCOUNT),"accountPortalAccountUrl"),NGe=s(t=>Uw(t,az.BILLING),"accountPortalBillingUrl"),OGe=s((t,e)=>{if(e){let r=Uw(t,az.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return Uw(t,az.UPGRADE)},"accountPortalUpgradeUrl"),vGe=s(t=>Uw(t,sq.WORKSPACES),"builderWorkspacesUrl"),xGe=s(t=>Uw(t,sq.SETTINGS_EMAIL),"builderSettingsEmailUrl"),DGe=s(t=>Uw(t,sq.SETTINGS_AUTH),"builderSettingsAuthUrl"),BGe=s(t=>Uw(t,sq.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),kGe=s(t=>Uw(t,sq.APPS),"builderAppsUrl"),Ace=s(t=>`/app-chat${PYt(t)}`,"appChatUrl"),_ce=s((t,e)=>`${PYt(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),PGe=s((t,e)=>Ace(_ce(t,e)),"agentChatUrl"),LYt={accountPortalAccountUrl:bGe,accountPortalBillingUrl:NGe,accountPortalUpgradeUrl:OGe,builderWorkspacesUrl:vGe,builderSettingsEmailUrl:xGe,builderSettingsAuthUrl:DGe,builderSettingsPeopleUsersUrl:BGe,builderAppsUrl:kGe,appChatUrl:Ace,appAgentUrl:_ce,agentChatUrl:PGe};function Xfi(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(Xfi,"formatBytes");function MYt(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(MYt,"isEnvironmentVariableKey");var Zfi={getNextExecutionDates:SYt,validate:IYt};var Ece=Ae(ay()),LGe=Ae(Zm());var pdi=/{{([^{].*?)}}/g,QYt=Object.values(tz),gdi=[...Object.values(eq),...Object.values(Yk),...Object.values(ez)],mdi=s((t,e,r)=>{let n=I_,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],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]: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"||c$.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]: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]),u},"getValidOperatorsForType"),qYt=[I_.StartsWith.value,I_.Like.value,I_.Equals.value,I_.NotEquals.value,I_.Contains.value,I_.NotContains.value,I_.ContainsAny.value,I_.In.value];function FGe(t,e){for(let r of QYt)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(FGe,"recurseLogicalOperators");var QGe=s(t=>{for(let e of qYt)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===""||Adi(o))&&delete t[e][i]}return t=FGe(t,QGe),t},"cleanupQuery");function Adi(t){return Array.isArray(t)&&t.length===0}s(Adi,"isEmptyArray");var Iue=s(t=>qGe(t).key,"removeKeyNumbering"),qGe=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"),MGe=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}=qGe(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=_Ge(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function _di(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(pdi)||[]).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(iue(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?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(iue(r)){let l=QFt[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(TLt(r)||SLt(r)||iue(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(_di,"buildCondition");function Rue(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(Rue,"splitFiltersArray");function GYt(t){if(!t)return{};if(Array.isArray(t)&&(t=Eqe(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=FYt(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=GYt(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Rue(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=FYt(n.logicalOperator)),{[u]:{conditions:a.map(_di).filter(c=>c)}}})},e}s(GYt,"buildQuery");function FYt(t){return t==="all"?"$and":"$or"}s(FYt,"logicalOperatorFromUI");function GGe(t){if(!t)return t;for(let e of Object.values(Yk)){let r=t[e];if(!(r==null||!(0,Ece.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 FGe(t,GGe),t}s(GGe,"fixupFilterArrays");function Edi(t,e){let r=yce(t,e.query);e.sort&&(r=VYt(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=jYt(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(Edi,"search");function yce(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=QGe(e),e=GGe(e),!UGe(e)&&e.onEmptyFilter==="none")return[];let r=s((O,G)=>W=>{for(let[Y,X]of Object.entries(e[O]||{})){let oe=nue(O)?W:yqe(W,Iue(Y)),ee=G(oe,X);if(e.allOr&&ee)return!0;if(!e.allOr&&!ee)return!1}return!e.allOr},"match"),n=r("string",(O,G)=>typeof O!="string"||typeof G!="string"?!1:O.toLowerCase().startsWith(G.toLowerCase())),i=r("fuzzy",(O,G)=>typeof O!="string"||typeof G!="string"?!1:O.toLowerCase().includes(G.toLowerCase())),o=r("range",(O,G)=>{if(O==null||O===""||((0,Ece.default)(G.low)&&(0,LGe.default)(G.low)&&(G.low=void 0),(0,Ece.default)(G.high)&&(0,LGe.default)(G.high)&&(G.high=void 0),G.low==null&&G.high==null))return!1;let W=+O;if(!isNaN(W)){let X=+G.low,oe=+G.high;if(!isNaN(X)&&!isNaN(oe))return W>=X&&W<=oe;if(isNaN(X)){if(!isNaN(oe))return W<=oe}else return W>=X}let Y=(0,Lq.default)(O);if(Y.isValid()){let X=(0,Lq.default)(G.low||"0000-00-00T00:00:00.000Z"),oe=(0,Lq.default)(G.high||"9999-00-00T00:00:00.000Z");if(X.isValid()&&oe.isValid())return Y.isAfter(X)&&Y.isBefore(oe)||Y.isSame(X)||Y.isSame(oe);if(X.isValid())return Y.isAfter(X)||Y.isSame(X);if(oe.isValid())return Y.isBefore(oe)||Y.isSame(oe)}return G.low!=null&&G.high!=null?O>=G.low&&O<=G.high:G.low!=null?O>=G.low:G.high!=null?O<=G.high:!1}),a=s((O,G)=>{if(Array.isArray(O)){for(let Y of O)if(a(Y,G))return!0;return!1}if(O&&typeof O=="object"&&typeof G=="string")return O._id===G;if(O===G)return!0;if(O==null&&G!=null||O!=null&&G==null)return!1;let W=(0,Lq.default)(O);if(W.isValid()){let Y=(0,Lq.default)(G);if(Y.isValid())return W.isSame(Y)}return!1},"_valueMatches"),u=s(O=>(...G)=>!O(...G),"not"),c=r("equal",a),l=r("notEqual",u(a)),f=s(O=>typeof O=="string"?O==="":Array.isArray(O)?O.length===0:O&&typeof O=="object"?Object.keys(O).length===0:O==null,"_empty"),d=r("empty",f),m=r("notEmpty",u(f)),A=r("oneOf",(O,G)=>(typeof G=="string"&&(G=G.split(",")),typeof O=="number"&&(G=G.map(W=>parseFloat(W))),Array.isArray(G)?G.some(W=>a(O,W)):!1)),T=s(O=>(G,W)=>!Array.isArray(G)||(typeof W=="string"&&(W=W.split(","),typeof G[0]=="number"&&(W=W.map(Y=>parseFloat(Y)))),!Array.isArray(W))?!1:W.length===0?!0:W[O](Y=>a(G,Y)),"_contains"),S=r("contains",(O,G)=>Array.isArray(G)&&G.length===0?!0:T("every")(O,G)),b=r("notContains",(O,G)=>Array.isArray(G)&&G.length===0?!0:u(T("every"))(O,G)),C=r("containsAny",T("some")),B=r("$and",(O,G)=>{if(!G.length)return!1;for(let W of G)if(!yce([O],W).length)return!1;return!0}),k=r("$or",(O,G)=>{if(!G.length)return!1;for(let W of G)if(yce([O],{...W,allOr:!0}).length)return!0;return!1}),P=s(O=>{let G={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:d,notEmpty:m,oneOf:A,contains:S,containsAny:C,notContains:b,$and:B,$or:k},W=Object.entries(e||{}).filter(([Y,X])=>!["allOr","onEmptyFilter"].includes(Y)&&X&&Object.keys(X).length>0).map(([Y])=>G[Y]?.(O)??!1);return UGe(e)?e.allOr?W.some(Y=>Y===!0):W.every(Y=>Y===!0):!0},"docMatch");return t.filter(P)}s(yce,"runQuery");function VYt(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(VYt,"sort");function jYt(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(jYt,"limit");var UGe=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of QYt)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of gdi){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 dy={};Ui(dy,{applications:()=>jGe,automations:()=>YGe,screens:()=>$Ge,users:()=>zGe});var jGe={};Ui(jGe,{getDevAppID:()=>ydi,getProdAppID:()=>d$});ur();var VGe=Wk("app"),f$=Wk("app_dev");function ydi(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(f$))return t;let e=t.split(VGe);e.shift();let r=e.join(VGe);return`${f$}${r}`}s(ydi,"getDevAppID");function d$(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(f$))return t;let e=t.split(f$);e.shift();let r=e.join(f$);return`${VGe}${r}`}s(d$,"getProdAppID");var YGe={};Ui(YGe,{checkForCollectStep:()=>Rdi,isAppAction:()=>Idi,isRowAction:()=>Tdi,isWebhookAction:()=>Sdi});ur();function Tdi(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Tdi,"isRowAction");function Sdi(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(Sdi,"isWebhookAction");function Idi(t){return t.definition.trigger?.stepId==="APP"}s(Idi,"isAppAction");function YYt(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(qMt(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(YYt(r))return!0}}return!1}s(YYt,"hasCollectBlockRecursive");function Rdi(t){return YYt(t.definition.steps)}s(Rdi,"checkForCollectStep");var zGe={};Ui(zGe,{canCreateApps:()=>Cdi,containsUserID:()=>Bdi,getGlobalUserID:()=>Ddi,getUserAppGroups:()=>kdi,hasAdminPermissions:()=>WGe,hasAppBuilderPermissions:()=>Sce,hasBuilderPermissions:()=>vdi,hasCreatorPermissions:()=>Ice,isAdmin:()=>p$,isAdminOrBuilder:()=>bdi,isAdminOrGlobalBuilder:()=>Ndi,isAdminOrWorkspaceBuilder:()=>wdi,isBuilder:()=>HGe,isCreator:()=>xdi,isGlobalBuilder:()=>Tce,userAppAccessList:()=>Pdi});ur();function HGe(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(d$(e))):!1}s(HGe,"isBuilder");function Tce(t){return HGe(t)&&!Sce(t)||p$(t)}s(Tce,"isGlobalBuilder");function Cdi(t){return Tce(t)||Ice(t)}s(Cdi,"canCreateApps");function p$(t){return t?WGe(t):!1}s(p$,"isAdmin");function wdi(t,e){return t?!!(p$(t)||e&&t.builder?.apps?.includes(d$(e))):!1}s(wdi,"isAdminOrWorkspaceBuilder");function bdi(t,e){return HGe(t,e)||p$(t)}s(bdi,"isAdminOrBuilder");function Ndi(t){return Tce(t)||p$(t)}s(Ndi,"isAdminOrGlobalBuilder");function Sce(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Sce,"hasAppBuilderPermissions");function Odi(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(Odi,"hasAppCreatorPermissions");function vdi(t){return t?t.builder?.global||Sce(t)||Ice(t):!1}s(vdi,"hasBuilderPermissions");function WGe(t){return t?!!t.admin?.global:!1}s(WGe,"hasAdminPermissions");function Ice(t){return t?!!t.builder?.creator:!1}s(Ice,"hasCreatorPermissions");function xdi(t){return t?Tce(t)||WGe(t)||Ice(t)||Sce(t)||Odi(t):!1}s(xdi,"isCreator");function Ddi(t){if(typeof t!="string")return t;let e=`ro${Ts}ta_users${Ts}`;return t.startsWith(e)?t.split(e)[1]:t}s(Ddi,"getGlobalUserID");function Bdi(t){return typeof t!="string"?!1:t.includes(`us${Ts}`)}s(Bdi,"containsUserID");function HYt(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(HYt,"getUserGroups");function kdi(t,e,r){let n=d$(t);return HYt(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(kdi,"getUserAppGroups");function Pdi(t,e){let n=HYt(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Pdi,"userAppAccessList");var $Ge={};Ui($Ge,{findInSettings:()=>Ldi});function Ldi(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(Ldi,"findInSettings");ur();var KGe={by_email2:["by_email"]},vS={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"}},_P=Wk("app"),Udi=Wk("app_dev"),Fv=Udi;var g$="_design/sqlite";var Fdi=`ro${Ts}ta_users${Ts}`;var oh="default";ur();ur();var JGe=require("crypto"),Cce=require("fs"),qdi=Ae(Fq()),A$=require("path");var Gdi=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,A$.resolve)((0,A$.join)(__dirname,"..","..","..")),zYt=!1;!zYt&&Rce()&&!XGe()&&(require("dotenv").config({path:(0,A$.join)(Gdi,".env")}),zYt=!0);function XGe(){return KYt()}s(XGe,"isTest");function KYt(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(KYt,"isJest");function Rce(){return process.env.NODE_ENV!=="production"}s(Rce,"isDev");function Vdi(t){if(t)return parseInt(t)}s(Vdi,"parseIntSafe");var Qq={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},$Yt=!!parseInt(process.env.SELF_HOSTED||"");function jdi(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(jdi,"getAPIEncryptionKey");function Ydi(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Ydi,"httpLogging");function Hdi(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Cce.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,Cce.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Rce()&&!XGe())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(Hdi,"getPackageJsonFields");function Wdi(){return Qv.SERVICE_TYPE==="worker"}s(Wdi,"isWorker");function zdi(){return Qv.SERVICE_TYPE==="apps"}s(zdi,"isApps");function $di(){return Qv.BUDIBASE_ENVIRONMENT==="QA"}s($di,"isQA");function Kdi(){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(Kdi,"getServiceName");var Qv={isTest:XGe,isJest:KYt,isDev:Rce,isWorker:Wdi,isApps:zdi,isQA:$di,isProd:()=>!Rce(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,JGe.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,JGe.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:jdi(),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 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:$Yt,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,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||Qq.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Qq.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Qq.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Qq.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Qq.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Qq.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Kdi(),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:Ydi(),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:$Yt?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Hdi(),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,Qv[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:Vdi(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"};for(let[t,e]of Object.entries(Qv))e==="0"&&(Qv[t]=0),e==="false"&&(Qv[t]=0);var ut=Qv;var _$="-";function ZGe(){let t=ut.REDIS_PASSWORD,e=ut.REDIS_USERNAME,r=ut.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(ZGe,"getRedisConnectionDetails");function JYt(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...qq()}}}s(JYt,"getRedisClusterOptions");function qq(){let{host:t,password:e,port:r,username:n}=ZGe(),i=ut.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(qq,"getRedisOptions");function XYt(t){let e=t.split(_$);return e.length>=2?(e.shift(),e.join(_$)):e[0]}s(XYt,"removeDbPrefix");var uyr=Ae(require("events"));Vv();function xI(){return Qw().replace(/-/g,"")}s(xI,"newid");var lhi=require("bcrypt"),f9a=ut.SALT_ROUNDS||10;async function THt(t,e){return lhi.compare(t,e)}s(THt,"compare");ur();var C7i=Ae(q6t());var Ec={};Ui(Ec,{DEFAULT_TENANT_ID:()=>oh,baseGlobalDBName:()=>afe,doInAutomationContext:()=>Fwi,doInContext:()=>AYe,doInEnvironmentContext:()=>Kwi,doInFeatureFlagOverrideContext:()=>j7t,doInIPContext:()=>G7t,doInIdentityContext:()=>ale,doInLicenseContext:()=>qwi,doInScimContext:()=>Jwi,doInSelfHostTenantUsingCloud:()=>Qwi,doInTenant:()=>Ww,doInWorkspaceContext:()=>jwi,doInWorkspaceMigrationContext:()=>Hwi,ensureSnippetContext:()=>V7t,getAuditLogDBName:()=>Q7t,getAuditLogsDB:()=>Zwi,getAutomationId:()=>_Ye,getCurrentContext:()=>PP,getDevWorkspaceDB:()=>tbi,getDevWorkspaceId:()=>zwi,getEnvironmentVariables:()=>Xwi,getFeatureFlagOverrides:()=>RYe,getFeatureFlags:()=>SYe,getGlobalDB:()=>ap,getGlobalDBName:()=>p9,getIP:()=>EYe,getIdentity:()=>Hv,getLicense:()=>Gwi,getOrThrowWorkspaceId:()=>Wwi,getPlatformURL:()=>mYe,getProdWorkspaceDB:()=>ebi,getProdWorkspaceId:()=>$wi,getScimDBName:()=>Pwi,getSelfHostCloudDB:()=>Vwi,getTableForView:()=>rbi,getTenantIDFromWorkspaceID:()=>l3,getTenantId:()=>Ws,getWorkspaceDB:()=>yYe,getWorkspaceId:()=>uh,identity:()=>P$,isMultiTenant:()=>kP,isScim:()=>TYe,isSelfHostUsingCloud:()=>ufe,isTenancyEnabled:()=>Mwi,isTenantIdSet:()=>Lwi,setFeatureFlags:()=>IYe,setTableForView:()=>nbi});var P$={};Ui(P$,{doInAccountContext:()=>gEi,doInIdentityContext:()=>nje,doInUserContext:()=>V6t,getAccountUserId:()=>j6t,getIdentity:()=>G6t});ur();function G6t(){return Hv()}s(G6t,"getIdentity");function nje(t,e){return ale(t,e)}s(nje,"doInIdentityContext");function V6t(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return nje(n,r)}s(V6t,"doInUserContext");function gEi(t,e){let r=j6t(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return nje(i,e)}s(gEi,"doInAccountContext");function j6t(t){let e;return UQe(t)?e=t.budibaseUserId:e=t.accountId,e}s(j6t,"getAccountUserId");var Wv=s(t=>{let e=Y6t(t),r,n;if(e.auth?.username)r=e.auth.username;else if(ut.COUCH_DB_USERNAME)r=ut.COUCH_DB_USERNAME;else if(!ut.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(ut.COUCH_DB_PASSWORD)n=ut.COUCH_DB_PASSWORD;else if(!ut.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=ut.COUCH_DB_SQL_URL;if(ut.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:Y6t(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),Y6t=s((t=ut.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 M7t=Ae(x7t());ur();var D7t=Ae(require("node-fetch"));function sfe(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(sfe,"checkSlashesInUrl");async function hYe({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,D7t.default)(sfe(encodeURI(t)),i)}s(hYe,"directCouchUrlCall");var bwi=Ae(require("pouchdb"));var Nwi,Owi=!1;var vwi=s(()=>{if(!Owi)throw new Error("init has not been called")},"checkInitialised");function rx(t,e){vwi();let r=new Nwi(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(rx,"getPouchDB");var Vc=Ae(require("dd-trace"));var h9=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return Vc.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 Vc.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Vc.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 Vc.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 Vc.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 Vc.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 Vc.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 Vc.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Vc.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 Vc.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 Vc.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 Vc.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 Vc.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 Vc.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 Vc.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Vc.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Vc.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Vc.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Vc.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 Vc.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 Vc.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};ur();var Ceu=`${Ts}${Ts}`;var weu=encodeURIComponent(" ");function pYe(t,e,r){if(!ut.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(pYe,"sqlLog");var k7t="Database does not exist.";function P7t(t){return(0,M7t.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(P7t,"buildNano");var nx=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}static{s(this,"CouchDBError")}};var ofe=class t{constructor(e,r,n){this.couchInfo=Wv();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Wv(n),this.instanceNano=P7t(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=Wv();t.nano=P7t(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await hYe({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 nx(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===k7t)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new nx(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new nx(`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(bLt(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 nx(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=xI()),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===k7t)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=sfe(`${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 hYe(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new nx("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}/${g$}`;return pYe("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(g$)){let e=await this.get(g$);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 nx(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return rx(this.name).dump(e,r)}async load(e){return rx(this.name).load(e)}async createIndex(e){return rx(this.name).createIndex(e)}async deleteIndex(e){return rx(this.name).deleteIndex(e)}async getIndexes(){return rx(this.name).getIndexes()}};function kS(t,e){return new h9(new ofe(t,e))}s(kS,"getDB");function gYe(t){if(!t||t.startsWith(Fv))return t;let e=t.split(_P);e.shift();let r=e.join(_P);return`${Fv}${r}`}s(gYe,"getDevWorkspaceID");function c3(t){if(!t||!t.startsWith(Fv))return t;let e=t.split(Fv);e.shift();let r=e.join(Fv);return`${_P}${r}`}s(c3,"getProdWorkspaceID");var U7t=require("async_hooks");var Yl=class t{static{s(this,"Context")}static{this.storage=new U7t.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var F7t=null;function p9(t){return t||(t=Ws()),afe(t)}s(p9,"getGlobalDBName");function Q7t(t){return t||(t=Ws()),t===oh?vS.AUDIT_LOGS.name:`${t}${Ts}${vS.AUDIT_LOGS.name}`}s(Q7t,"getAuditLogDBName");function Pwi(t){return t||(t=Ws()),t===oh?vS.SCIM_LOGS.name:`${t}${Ts}${vS.SCIM_LOGS.name}`}s(Pwi,"getScimDBName");function afe(t){return!t||t===oh?vS.GLOBAL.name:`${t}${Ts}${vS.GLOBAL.name}`}s(afe,"baseGlobalDBName");function mYe(){return ut.PLATFORM_URL}s(mYe,"getPlatformURL");function kP(){return!!ut.MULTI_TENANCY}s(kP,"isMultiTenant");function Lwi(){return!!Yl.get()?.tenantId}s(Lwi,"isTenantIdSet");function Mwi(){return ut.MULTI_TENANCY}s(Mwi,"isTenancyEnabled");function l3(t){if(!t)return;if(!kP())return oh;let e=t.split(Ts),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(l3,"getTenantIDFromWorkspaceID");function Uwi(t){let e;try{e=Yl.get()}catch{e={}}return e={...e,...t},e}s(Uwi,"updateContext");async function PS(t,e){Ywi();let r=Uwi(t);return Yl.run(r,e)}s(PS,"newContext");async function Fwi(t){return await V7t(),await PS({tenantId:l3(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(Fwi,"doInAutomationContext");async function AYe(t,e){let r=l3(t);return PS({tenantId:r,appId:t},e)}s(AYe,"doInContext");async function Ww(t,e){return ut.MULTI_TENANCY||(t=t||oh),PS(t?{tenantId:t}:{},e)}s(Ww,"doInTenant");async function Qwi(t,e){return PS({tenantId:t,isSelfHostUsingCloud:!0},e)}s(Qwi,"doInSelfHostTenantUsingCloud");async function qwi(t,e){return PS({license:t},e)}s(qwi,"doInLicenseContext");function Gwi(){return Yl.get()?.license}s(Gwi,"getLicense");function ufe(){return!!Yl.get()?.isSelfHostUsingCloud}s(ufe,"isSelfHostUsingCloud");function Vwi(){let t=Yl.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return kS(vS.SELF_HOST_CLOUD.name)}s(Vwi,"getSelfHostCloudDB");async function jwi(t,e){return q7t(t,e)}s(jwi,"doInWorkspaceContext");async function q7t(t,e,r){if(!t)throw new Error("workspaceId is required");let n=l3(t),i={appId:t,...r};return n&&(i.tenantId=n),PS(i,e)}s(q7t,"_doInWorkspaceContext");async function ale(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),PS(r,e)}s(ale,"doInIdentityContext");function Ywi(){if(Yl.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(Ywi,"guardMigration");async function Hwi(t,e){return q7t(t,e,{isMigrating:!0})}s(Hwi,"doInWorkspaceMigrationContext");function Hv(){try{return Yl.get()?.identity}catch{}}s(Hv,"getIdentity");function Ws(){if(!kP())return oh;let e=Yl.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(Ws,"getTenantId");function _Ye(){return Yl.get()?.automationId}s(_Ye,"getAutomationId");function uh(){let e=Yl.get()?.appId;return!e&&ut.isTest()&&F7t?F7t:e}s(uh,"getWorkspaceId");function Wwi(){let t=uh();if(!t)throw new Error("Workspace id not set");return t}s(Wwi,"getOrThrowWorkspaceId");function EYe(){return Yl.get()?.ip}s(EYe,"getIP");var zwi=s(()=>{let t=uh();if(!t)throw new Error("Could not get workspaceId");return gYe(t)},"getDevWorkspaceId"),$wi=s(()=>{let t=uh();if(!t)throw new Error("Could not get workspaceId");return c3(t)},"getProdWorkspaceId");function Kwi(t,e){if(!t)throw new Error("Must supply environment variables.");return PS({environmentVariables:t},e)}s(Kwi,"doInEnvironmentContext");function Jwi(t){return PS({isScim:!0},t)}s(Jwi,"doInScimContext");function G7t(t,e){return PS({ip:t},e)}s(G7t,"doInIPContext");async function V7t(){let t=PP();if(!t||t.snippets)return;let e,r=yYe();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(V7t,"ensureSnippetContext");function Xwi(){let t=Yl.get();return t.environmentVariables?t.environmentVariables:null}s(Xwi,"getEnvironmentVariables");function ap(){let t=Yl.get();if(!t||ut.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 kS(afe(t?.tenantId))}s(ap,"getGlobalDB");function Zwi(){if(!Ws())throw new Error("No tenant ID found - cannot open audit log DB");return kS(Q7t())}s(Zwi,"getAuditLogsDB");function yYe(t){let e=uh();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(ufe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return kS(e,t)}s(yYe,"getWorkspaceDB");function ebi(t){let e=uh();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return kS(c3(e),t)}s(ebi,"getProdWorkspaceDB");function tbi(t){let e=uh();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return kS(gYe(e),t)}s(tbi,"getDevWorkspaceDB");function TYe(){return!!Yl.get()?.isScim}s(TYe,"isScim");function PP(){try{return Yl.get()}catch{return}}s(PP,"getCurrentContext");function SYe(t){let e=PP();if(e)return e.featureFlagCache?.[t]}s(SYe,"getFeatureFlags");function IYe(t,e){let r=PP();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(IYe,"setFeatureFlags");function RYe(){return PP()?.featureFlagOverrides||{}}s(RYe,"getFeatureFlagOverrides");async function j7t(t,e){return await PS({featureFlagOverrides:t},e)}s(j7t,"doInFeatureFlagOverrideContext");function rbi(t){let e=PP();if(e)return e.viewToTableCache?.[t]}s(rbi,"getTableForView");function nbi(t,e){let r=PP();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(nbi,"setTableForView");var upe=Ae(bXt());var ape=require("dd-trace"),dfr=Ae(Fq());var ffr;if(ut.MOCK_REDIS)try{ffr=lfr()}catch{console.log("Mock redis unavailable")}async function s7i(t=0){return await ape.tracer.trace("Redis.init",async e=>{if(ut.MOCK_REDIS)return e.addTags({mock:!0}),new ffr(qq());let r;if(ut.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=ZGe();r=new upe.Cluster([{host:n,port:i}],JYt())}else r=new upe.default(qq());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(s7i,"init");function o7i(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:XYt(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(o7i,"promisifyStream");function a7i(t){return t.isCluster}s(a7i,"isCluster");var C$e=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await ape.tracer.trace("RedisWrapper.init",async n=>{let i=await s7i(r);return r&&!ut.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return ape.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${_$}${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}${_$}${e}`;let n;a7i(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await o7i(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,dfr.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});let i=`
|
|
4318
|
+
`),a=o[2]&&o[2].indexOf("Up")!==-1;a&&(console.log(Fi("Stopping services, this may take a moment.")),await hue.default.stop()),console.log(Fi("Beginning update, this may take a few minutes."));let u;n?u=c7n:u=u7n,await hue.default.pullMany(u,{log:!0}),a&&(console.log(mu("Update complete, restarting services...")),await iq())})}s(LFt,"update");var MFt=new SI("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.",due).addSubOption("--start","Start the configured platform in current directory.",iq).addSubOption("--status","Check the status of currently running services.",PFt).addSubOption("--stop","Stop the configured platform in the current directory.",BFt).addSubOption("--update","Update the Budibase images to the latest version.",LFt).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",lue).addSubOption("--gen-user","Create an admin user automatically as part of first start.",fue).addSubOption("--single","Specify this with init or update to target a single-image deployment (also supports --init single).");Rv();var KT=Ae(require("fs")),G2=require("path");var pue=Ae(require("pouchdb"));ad();var UFt=Ae(require("node-fetch"));function gue(t){let e;t?e={prefix:t}:e={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return pue.default.plugin(r.plugin),pue.default.adapter("writableStream",r.adapters.writableStream),pue.default.defaults(e)}s(gue,"getPouch");async function FFt(t){let e=await(0,UFt.default)(OQe(encodeURI(`${t}/_all_dbs`)),{method:"GET"});if(e.status===200)return await e.json();throw"Cannot connect to CouchDB instance"}s(FFt,"getAllDbs");ad();var CYn=Ae(require("dotenv")),c1t=Ae(require("fs"));$k();ur();ur();var sq={WORKSPACES:"/builder/apps",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},az={ACCOUNT:"/portal/account",BILLING:"/portal/billing",TENANTS:"/portal/tenants",UPGRADE:"/portal/upgrade"};var I_={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"},ContainsAny:{value:"containsAny",label:"Has any"}},QFt={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Mq={};Ui(Mq,{ColumnSplitter:()=>MGe,NoEmptyFilterStrings:()=>qYt,buildQuery:()=>GYt,cleanupQuery:()=>QGe,fixupFilterArrays:()=>GGe,getKeyNumbering:()=>qGe,getValidOperatorsForType:()=>mdi,hasFilters:()=>UGe,limit:()=>jYt,recurseLogicalOperators:()=>FGe,removeKeyNumbering:()=>Iue,runQuery:()=>yce,search:()=>Edi,sort:()=>VYt,splitFiltersArray:()=>Rue});ur();var Lq=Ae(sqe());var Ov={};Ui(Ov,{filterValueToLabel:()=>rei,hasSchema:()=>nei,isSupportedUserSearch:()=>XQt,nameToUrl:()=>uei,parallelForeach:()=>tei,processSearchFilters:()=>Eqe,toMap:()=>sei,trimOtherProps:()=>iei,unreachable:()=>eei});ur();var JQt=Ae($Qt());var ZZn=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function eei(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(eei,"unreachable");async function tei(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(tei,"parallelForeach");function rei(){return Object.keys(I_).reduce((t,e)=>{let n=I_[e];return t[n.value]=n.label,t},{})}s(rei,"filterValueToLabel");function nei(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(nei,"hasSchema");function iei(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(iei,"trimOtherProps");function XQt(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(nue(o)){for(let l of t[o].conditions)if(!XQt(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(XQt,"isSupportedUserSearch");function Eqe(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Rue(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,JQt.default)(i,ZZn);return o.field=Iue(o.field),o})}]}}s(Eqe,"processSearchFilters");function sei(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(sei,"toMap");var oei=s(t=>t?t.trim():null,"resolveWorkspaceName"),aei=s(t=>{let e,r=oei(t);e=r?r.toLowerCase():"";let n=e?e.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),uei=s(t=>{let e=aei(t);return cei(e)},"nameToUrl"),cei=s(t=>(t&&!t.startsWith("/")&&(t=`/${t}`),t===""?null:t),"tidyUrl");var Fw={};Ui(Fw,{accountPortalAccountUrl:()=>bGe,accountPortalBillingUrl:()=>NGe,accountPortalUpgradeUrl:()=>OGe,agentChatUrl:()=>PGe,appAgentUrl:()=>_ce,appChatUrl:()=>Ace,applyBaseUrl:()=>BYt,builderAppsUrl:()=>kGe,builderSettingsAuthUrl:()=>DGe,builderSettingsEmailUrl:()=>xGe,builderSettingsPeopleUsersUrl:()=>BGe,builderWorkspacesUrl:()=>vGe,cancelableTimeout:()=>ZQt,cron:()=>Zfi,deepGet:()=>yqe,duplicateName:()=>Wfi,escapeHtml:()=>pei,formatBytes:()=>Xfi,getSequentialName:()=>zfi,getUserColor:()=>fei,getUserInitials:()=>lei,getUserLabel:()=>dei,isEnvironmentVariableKey:()=>MYt,isGoogleSheets:()=>Aei,isSQL:()=>_ei,lists:()=>wGe,normalizeForComparison:()=>gei,retry:()=>Eei,roles:()=>CGe,schema:()=>c$,structuredOutput:()=>EGe,urlHelpers:()=>LYt,views:()=>RGe,wait:()=>Tqe,withTimeout:()=>hei});var yqe=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"),lei=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"),fei=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"),dei=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function ZQt(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(ZQt,"cancelableTimeout");async function hei(t,e){let[r,n]=ZQt(t),i=await Promise.race([e(),r]);return n(),i}s(hei,"withTimeout");var pei=s(t=>t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeHtml"),gei=s(t=>t.toLowerCase().trim(),"normalizeForComparison");ur();function Aei(t){return t==="GOOGLE_SHEETS"}s(Aei,"isGoogleSheets");function _ei(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(_ei,"isSQL");async function Tqe(t){return new Promise(e=>setTimeout(e,t))}s(Tqe,"wait");async function Eei(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 Tqe(o);try{return await t()}catch(a){n=a}}throw n}s(Eei,"retry");var yYt=Ae(wI()),TYt=Ae(AGe());var EYt="(Input cron: ",sfi={"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 ofi(t){let e=[];for(let r of t){r.includes(EYt)&&(r=r.split(EYt)[0].trim());for(let[n,i]of Object.entries(sfi))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(ofi,"improveErrors");function SYt(t,e=4){let r=TYt.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(SYt,"getNextExecutionDates");function IYt(t){let e=(0,yYt.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:ofi(e.getError())}}s(IYt,"validate");var c$={};Ui(c$,{decodeNonAscii:()=>_Ge,encodeNonAscii:()=>cfi,isDeprecatedSingleUserColumn:()=>afi,isNumeric:()=>lfi,isRequired:()=>ufi});ur();function afi(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(afi,"isDeprecatedSingleUserColumn");function ufi(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(ufi,"isRequired");function cfi(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(cfi,"encodeNonAscii");function _Ge(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(_Ge,"decodeNonAscii");function lfi(t){return t.type==="number"||t.type==="bigint"}s(lfi,"isNumeric");var EGe={};Ui(EGe,{normalizeSchemaForStructuredOutput:()=>ffi});function ffi(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(ffi,"normalizeSchemaForStructuredOutput");var RGe={};Ui(RGe,{basicFields:()=>Gfi,calculationFields:()=>qfi,hasCalculationFields:()=>Qfi,isBasicViewField:()=>Ufi,isCalculationField:()=>l$,isCalculationView:()=>Ffi,isV2:()=>Vfi,isVisible:()=>DYt});ur();var IGe=Ae(SGe());function l$(t){return"calculationType"in t}s(l$,"isCalculationField");function Ufi(t){return!l$(t)}s(Ufi,"isBasicViewField");function Ffi(t){return t.type==="calculation"}s(Ffi,"isCalculationView");function Qfi(t){return Object.values(t.schema||{}).some(l$)}s(Qfi,"hasCalculationFields");function qfi(t){return(0,IGe.default)(t.schema||{},l$)}s(qfi,"calculationFields");function DYt(t){return t.visible!==!1}s(DYt,"isVisible");function Gfi(t,e){let{visible:r=!0}=e||{};return(0,IGe.default)(t.schema||{},n=>!l$(n)&&(!r||DYt(n)))}s(Gfi,"basicFields");function Vfi(t){return t.version===2}s(Vfi,"isV2");var CGe={};Ui(CGe,{checkForRoleInheritanceLoops:()=>Yfi});ur();function jfi(t){return`role${Ts}${t}`}s(jfi,"prefixForCheck");function Yfi(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=jfi(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(Yfi,"checkForRoleInheritanceLoops");var wGe={};Ui(wGe,{punctuateList:()=>Hfi});function Hfi(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(Hfi,"punctuateList");var Wfi=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"),zfi=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 $fi=/{?{{([^{].*?)}}}?/g;function BYt(t,e){if(!e)return t;let r=t.match($fi)??[],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(BYt,"applyBaseUrl");var kYt=s(t=>t?t.startsWith("/")?t:`/${t}`:"","normalizePath"),Kfi=s(t=>t?t.endsWith("/")?t.slice(0,-1):t:"","normalizeBase"),Uw=s((t,e)=>{let r=kYt(e);if(!t)return r;let n=Kfi(t);return r?`${n}${r}`:n},"joinBaseAndPath"),Jfi=s(t=>t.replace(/\/+$/,""),"trimTrailingSlash"),PYt=s(t=>Jfi(kYt(t)),"normalizeAppUrl"),bGe=s(t=>Uw(t,az.ACCOUNT),"accountPortalAccountUrl"),NGe=s(t=>Uw(t,az.BILLING),"accountPortalBillingUrl"),OGe=s((t,e)=>{if(e){let r=Uw(t,az.TENANTS),n=encodeURIComponent(e);return`${r}?managePlansTenantId=${n}`}return Uw(t,az.UPGRADE)},"accountPortalUpgradeUrl"),vGe=s(t=>Uw(t,sq.WORKSPACES),"builderWorkspacesUrl"),xGe=s(t=>Uw(t,sq.SETTINGS_EMAIL),"builderSettingsEmailUrl"),DGe=s(t=>Uw(t,sq.SETTINGS_AUTH),"builderSettingsAuthUrl"),BGe=s(t=>Uw(t,sq.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),kGe=s(t=>Uw(t,sq.APPS),"builderAppsUrl"),Ace=s(t=>`/app-chat${PYt(t)}`,"appChatUrl"),_ce=s((t,e)=>`${PYt(t)}/agent/${encodeURIComponent(e)}`,"appAgentUrl"),PGe=s((t,e)=>Ace(_ce(t,e)),"agentChatUrl"),LYt={accountPortalAccountUrl:bGe,accountPortalBillingUrl:NGe,accountPortalUpgradeUrl:OGe,builderWorkspacesUrl:vGe,builderSettingsEmailUrl:xGe,builderSettingsAuthUrl:DGe,builderSettingsPeopleUsersUrl:BGe,builderAppsUrl:kGe,appChatUrl:Ace,appAgentUrl:_ce,agentChatUrl:PGe};function Xfi(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(Xfi,"formatBytes");function MYt(t){return/^{{\s*env\.([^\s]+)\s*}}$/.test(String(t))}s(MYt,"isEnvironmentVariableKey");var Zfi={getNextExecutionDates:SYt,validate:IYt};var Ece=Ae(ay()),LGe=Ae(Zm());var pdi=/{{([^{].*?)}}/g,QYt=Object.values(tz),gdi=[...Object.values(eq),...Object.values(Yk),...Object.values(ez)],mdi=s((t,e,r)=>{let n=I_,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],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]: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"||c$.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]: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]),u},"getValidOperatorsForType"),qYt=[I_.StartsWith.value,I_.Like.value,I_.Equals.value,I_.NotEquals.value,I_.Contains.value,I_.NotContains.value,I_.ContainsAny.value,I_.In.value];function FGe(t,e){for(let r of QYt)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(FGe,"recurseLogicalOperators");var QGe=s(t=>{for(let e of qYt)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===""||Adi(o))&&delete t[e][i]}return t=FGe(t,QGe),t},"cleanupQuery");function Adi(t){return Array.isArray(t)&&t.length===0}s(Adi,"isEmptyArray");var Iue=s(t=>qGe(t).key,"removeKeyNumbering"),qGe=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"),MGe=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}=qGe(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=_Ge(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function _di(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(pdi)||[]).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(iue(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?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(iue(r)){let l=QFt[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(TLt(r)||SLt(r)||iue(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(_di,"buildCondition");function Rue(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(Rue,"splitFiltersArray");function GYt(t){if(!t)return{};if(Array.isArray(t)&&(t=Eqe(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=FYt(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=GYt(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Rue(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=FYt(n.logicalOperator)),{[u]:{conditions:a.map(_di).filter(c=>c)}}})},e}s(GYt,"buildQuery");function FYt(t){return t==="all"?"$and":"$or"}s(FYt,"logicalOperatorFromUI");function GGe(t){if(!t)return t;for(let e of Object.values(Yk)){let r=t[e];if(!(r==null||!(0,Ece.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 FGe(t,GGe),t}s(GGe,"fixupFilterArrays");function Edi(t,e){let r=yce(t,e.query);e.sort&&(r=VYt(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=jYt(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(Edi,"search");function yce(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=QGe(e),e=GGe(e),!UGe(e)&&e.onEmptyFilter==="none")return[];let r=s((O,G)=>W=>{for(let[Y,X]of Object.entries(e[O]||{})){let oe=nue(O)?W:yqe(W,Iue(Y)),ee=G(oe,X);if(e.allOr&&ee)return!0;if(!e.allOr&&!ee)return!1}return!e.allOr},"match"),n=r("string",(O,G)=>typeof O!="string"||typeof G!="string"?!1:O.toLowerCase().startsWith(G.toLowerCase())),i=r("fuzzy",(O,G)=>typeof O!="string"||typeof G!="string"?!1:O.toLowerCase().includes(G.toLowerCase())),o=r("range",(O,G)=>{if(O==null||O===""||((0,Ece.default)(G.low)&&(0,LGe.default)(G.low)&&(G.low=void 0),(0,Ece.default)(G.high)&&(0,LGe.default)(G.high)&&(G.high=void 0),G.low==null&&G.high==null))return!1;let W=+O;if(!isNaN(W)){let X=+G.low,oe=+G.high;if(!isNaN(X)&&!isNaN(oe))return W>=X&&W<=oe;if(isNaN(X)){if(!isNaN(oe))return W<=oe}else return W>=X}let Y=(0,Lq.default)(O);if(Y.isValid()){let X=(0,Lq.default)(G.low||"0000-00-00T00:00:00.000Z"),oe=(0,Lq.default)(G.high||"9999-00-00T00:00:00.000Z");if(X.isValid()&&oe.isValid())return Y.isAfter(X)&&Y.isBefore(oe)||Y.isSame(X)||Y.isSame(oe);if(X.isValid())return Y.isAfter(X)||Y.isSame(X);if(oe.isValid())return Y.isBefore(oe)||Y.isSame(oe)}return G.low!=null&&G.high!=null?O>=G.low&&O<=G.high:G.low!=null?O>=G.low:G.high!=null?O<=G.high:!1}),a=s((O,G)=>{if(Array.isArray(O)){for(let Y of O)if(a(Y,G))return!0;return!1}if(O&&typeof O=="object"&&typeof G=="string")return O._id===G;if(O===G)return!0;if(O==null&&G!=null||O!=null&&G==null)return!1;let W=(0,Lq.default)(O);if(W.isValid()){let Y=(0,Lq.default)(G);if(Y.isValid())return W.isSame(Y)}return!1},"_valueMatches"),u=s(O=>(...G)=>!O(...G),"not"),c=r("equal",a),l=r("notEqual",u(a)),f=s(O=>typeof O=="string"?O==="":Array.isArray(O)?O.length===0:O&&typeof O=="object"?Object.keys(O).length===0:O==null,"_empty"),d=r("empty",f),m=r("notEmpty",u(f)),A=r("oneOf",(O,G)=>(typeof G=="string"&&(G=G.split(",")),typeof O=="number"&&(G=G.map(W=>parseFloat(W))),Array.isArray(G)?G.some(W=>a(O,W)):!1)),T=s(O=>(G,W)=>!Array.isArray(G)||(typeof W=="string"&&(W=W.split(","),typeof G[0]=="number"&&(W=W.map(Y=>parseFloat(Y)))),!Array.isArray(W))?!1:W.length===0?!0:W[O](Y=>a(G,Y)),"_contains"),S=r("contains",(O,G)=>Array.isArray(G)&&G.length===0?!0:T("every")(O,G)),b=r("notContains",(O,G)=>Array.isArray(G)&&G.length===0?!0:u(T("every"))(O,G)),C=r("containsAny",T("some")),B=r("$and",(O,G)=>{if(!G.length)return!1;for(let W of G)if(!yce([O],W).length)return!1;return!0}),k=r("$or",(O,G)=>{if(!G.length)return!1;for(let W of G)if(yce([O],{...W,allOr:!0}).length)return!0;return!1}),P=s(O=>{let G={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:d,notEmpty:m,oneOf:A,contains:S,containsAny:C,notContains:b,$and:B,$or:k},W=Object.entries(e||{}).filter(([Y,X])=>!["allOr","onEmptyFilter"].includes(Y)&&X&&Object.keys(X).length>0).map(([Y])=>G[Y]?.(O)??!1);return UGe(e)?e.allOr?W.some(Y=>Y===!0):W.every(Y=>Y===!0):!0},"docMatch");return t.filter(P)}s(yce,"runQuery");function VYt(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(VYt,"sort");function jYt(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(jYt,"limit");var UGe=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of QYt)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of gdi){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 dy={};Ui(dy,{applications:()=>jGe,automations:()=>YGe,screens:()=>$Ge,users:()=>zGe});var jGe={};Ui(jGe,{getDevAppID:()=>ydi,getProdAppID:()=>d$});ur();var VGe=Wk("app"),f$=Wk("app_dev");function ydi(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(f$))return t;let e=t.split(VGe);e.shift();let r=e.join(VGe);return`${f$}${r}`}s(ydi,"getDevAppID");function d$(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(f$))return t;let e=t.split(f$);e.shift();let r=e.join(f$);return`${VGe}${r}`}s(d$,"getProdAppID");var YGe={};Ui(YGe,{checkForCollectStep:()=>Rdi,isAppAction:()=>Idi,isRowAction:()=>Tdi,isWebhookAction:()=>Sdi});ur();function Tdi(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(Tdi,"isRowAction");function Sdi(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(Sdi,"isWebhookAction");function Idi(t){return t.definition.trigger?.stepId==="APP"}s(Idi,"isAppAction");function YYt(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(qMt(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(YYt(r))return!0}}return!1}s(YYt,"hasCollectBlockRecursive");function Rdi(t){return YYt(t.definition.steps)}s(Rdi,"checkForCollectStep");var zGe={};Ui(zGe,{canCreateApps:()=>Cdi,containsUserID:()=>Bdi,getGlobalUserID:()=>Ddi,getUserAppGroups:()=>kdi,hasAdminPermissions:()=>WGe,hasAppBuilderPermissions:()=>Sce,hasBuilderPermissions:()=>vdi,hasCreatorPermissions:()=>Ice,isAdmin:()=>p$,isAdminOrBuilder:()=>bdi,isAdminOrGlobalBuilder:()=>Ndi,isAdminOrWorkspaceBuilder:()=>wdi,isBuilder:()=>HGe,isCreator:()=>xdi,isGlobalBuilder:()=>Tce,userAppAccessList:()=>Pdi});ur();function HGe(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(d$(e))):!1}s(HGe,"isBuilder");function Tce(t){return HGe(t)&&!Sce(t)||p$(t)}s(Tce,"isGlobalBuilder");function Cdi(t){return Tce(t)||Ice(t)}s(Cdi,"canCreateApps");function p$(t){return t?WGe(t):!1}s(p$,"isAdmin");function wdi(t,e){return t?!!(p$(t)||e&&t.builder?.apps?.includes(d$(e))):!1}s(wdi,"isAdminOrWorkspaceBuilder");function bdi(t,e){return HGe(t,e)||p$(t)}s(bdi,"isAdminOrBuilder");function Ndi(t){return Tce(t)||p$(t)}s(Ndi,"isAdminOrGlobalBuilder");function Sce(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Sce,"hasAppBuilderPermissions");function Odi(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(Odi,"hasAppCreatorPermissions");function vdi(t){return t?t.builder?.global||Sce(t)||Ice(t):!1}s(vdi,"hasBuilderPermissions");function WGe(t){return t?!!t.admin?.global:!1}s(WGe,"hasAdminPermissions");function Ice(t){return t?!!t.builder?.creator:!1}s(Ice,"hasCreatorPermissions");function xdi(t){return t?Tce(t)||WGe(t)||Ice(t)||Sce(t)||Odi(t):!1}s(xdi,"isCreator");function Ddi(t){if(typeof t!="string")return t;let e=`ro${Ts}ta_users${Ts}`;return t.startsWith(e)?t.split(e)[1]:t}s(Ddi,"getGlobalUserID");function Bdi(t){return typeof t!="string"?!1:t.includes(`us${Ts}`)}s(Bdi,"containsUserID");function HYt(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t))||[]}s(HYt,"getUserGroups");function kdi(t,e,r){let n=d$(t);return HYt(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(kdi,"getUserAppGroups");function Pdi(t,e){let n=HYt(t._id,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(Pdi,"userAppAccessList");var $Ge={};Ui($Ge,{findInSettings:()=>Ldi});function Ldi(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(Ldi,"findInSettings");ur();var KGe={by_email2:["by_email"]},vS={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"}},_P=Wk("app"),Udi=Wk("app_dev"),Fv=Udi;var g$="_design/sqlite";var Fdi=`ro${Ts}ta_users${Ts}`;var oh="default";ur();ur();var JGe=require("crypto"),Cce=require("fs"),qdi=Ae(Fq()),A$=require("path");var Gdi=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,A$.resolve)((0,A$.join)(__dirname,"..","..","..")),zYt=!1;!zYt&&Rce()&&!XGe()&&(require("dotenv").config({path:(0,A$.join)(Gdi,".env")}),zYt=!0);function XGe(){return KYt()}s(XGe,"isTest");function KYt(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(KYt,"isJest");function Rce(){return process.env.NODE_ENV!=="production"}s(Rce,"isDev");function Vdi(t){if(t)return parseInt(t)}s(Vdi,"parseIntSafe");var Qq={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},$Yt=!!parseInt(process.env.SELF_HOSTED||"");function jdi(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(jdi,"getAPIEncryptionKey");function Ydi(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Ydi,"httpLogging");function Hdi(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Cce.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,Cce.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Rce()&&!XGe())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(Hdi,"getPackageJsonFields");function Wdi(){return Qv.SERVICE_TYPE==="worker"}s(Wdi,"isWorker");function zdi(){return Qv.SERVICE_TYPE==="apps"}s(zdi,"isApps");function $di(){return Qv.BUDIBASE_ENVIRONMENT==="QA"}s($di,"isQA");function Kdi(){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(Kdi,"getServiceName");var Qv={isTest:XGe,isJest:KYt,isDev:Rce,isWorker:Wdi,isApps:zdi,isQA:$di,isProd:()=>!Rce(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,JGe.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,JGe.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:jdi(),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:$Yt,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,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||Qq.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Qq.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Qq.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Qq.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Qq.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Qq.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Kdi(),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:Ydi(),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:$Yt?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Hdi(),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,Qv[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:Vdi(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"};for(let[t,e]of Object.entries(Qv))e==="0"&&(Qv[t]=0),e==="false"&&(Qv[t]=0);var ut=Qv;var _$="-";function ZGe(){let t=ut.REDIS_PASSWORD,e=ut.REDIS_USERNAME,r=ut.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(ZGe,"getRedisConnectionDetails");function JYt(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...qq()}}}s(JYt,"getRedisClusterOptions");function qq(){let{host:t,password:e,port:r,username:n}=ZGe(),i=ut.REDIS_URL.toLowerCase().startsWith("rediss://")?{}:void 0;return{connectTimeout:3e4,port:r,host:t,password:e,...n&&{username:n},...i&&{tls:i}}}s(qq,"getRedisOptions");function XYt(t){let e=t.split(_$);return e.length>=2?(e.shift(),e.join(_$)):e[0]}s(XYt,"removeDbPrefix");var uyr=Ae(require("events"));Vv();function xI(){return Qw().replace(/-/g,"")}s(xI,"newid");var lhi=require("bcrypt"),f9a=ut.SALT_ROUNDS||10;async function THt(t,e){return lhi.compare(t,e)}s(THt,"compare");ur();var C7i=Ae(q6t());var Ec={};Ui(Ec,{DEFAULT_TENANT_ID:()=>oh,baseGlobalDBName:()=>afe,doInAutomationContext:()=>Fwi,doInContext:()=>AYe,doInEnvironmentContext:()=>Kwi,doInFeatureFlagOverrideContext:()=>j7t,doInIPContext:()=>G7t,doInIdentityContext:()=>ale,doInLicenseContext:()=>qwi,doInScimContext:()=>Jwi,doInSelfHostTenantUsingCloud:()=>Qwi,doInTenant:()=>Ww,doInWorkspaceContext:()=>jwi,doInWorkspaceMigrationContext:()=>Hwi,ensureSnippetContext:()=>V7t,getAuditLogDBName:()=>Q7t,getAuditLogsDB:()=>Zwi,getAutomationId:()=>_Ye,getCurrentContext:()=>PP,getDevWorkspaceDB:()=>tbi,getDevWorkspaceId:()=>zwi,getEnvironmentVariables:()=>Xwi,getFeatureFlagOverrides:()=>RYe,getFeatureFlags:()=>SYe,getGlobalDB:()=>ap,getGlobalDBName:()=>p9,getIP:()=>EYe,getIdentity:()=>Hv,getLicense:()=>Gwi,getOrThrowWorkspaceId:()=>Wwi,getPlatformURL:()=>mYe,getProdWorkspaceDB:()=>ebi,getProdWorkspaceId:()=>$wi,getScimDBName:()=>Pwi,getSelfHostCloudDB:()=>Vwi,getTableForView:()=>rbi,getTenantIDFromWorkspaceID:()=>l3,getTenantId:()=>Ws,getWorkspaceDB:()=>yYe,getWorkspaceId:()=>uh,identity:()=>P$,isMultiTenant:()=>kP,isScim:()=>TYe,isSelfHostUsingCloud:()=>ufe,isTenancyEnabled:()=>Mwi,isTenantIdSet:()=>Lwi,setFeatureFlags:()=>IYe,setTableForView:()=>nbi});var P$={};Ui(P$,{doInAccountContext:()=>gEi,doInIdentityContext:()=>nje,doInUserContext:()=>V6t,getAccountUserId:()=>j6t,getIdentity:()=>G6t});ur();function G6t(){return Hv()}s(G6t,"getIdentity");function nje(t,e){return ale(t,e)}s(nje,"doInIdentityContext");function V6t(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return nje(n,r)}s(V6t,"doInUserContext");function gEi(t,e){let r=j6t(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return nje(i,e)}s(gEi,"doInAccountContext");function j6t(t){let e;return UQe(t)?e=t.budibaseUserId:e=t.accountId,e}s(j6t,"getAccountUserId");var Wv=s(t=>{let e=Y6t(t),r,n;if(e.auth?.username)r=e.auth.username;else if(ut.COUCH_DB_USERNAME)r=ut.COUCH_DB_USERNAME;else if(!ut.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(ut.COUCH_DB_PASSWORD)n=ut.COUCH_DB_PASSWORD;else if(!ut.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=ut.COUCH_DB_SQL_URL;if(ut.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:Y6t(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),Y6t=s((t=ut.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 M7t=Ae(x7t());ur();var D7t=Ae(require("node-fetch"));function sfe(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(sfe,"checkSlashesInUrl");async function hYe({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,D7t.default)(sfe(encodeURI(t)),i)}s(hYe,"directCouchUrlCall");var bwi=Ae(require("pouchdb"));var Nwi,Owi=!1;var vwi=s(()=>{if(!Owi)throw new Error("init has not been called")},"checkInitialised");function rx(t,e){vwi();let r=new Nwi(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(rx,"getPouchDB");var Vc=Ae(require("dd-trace"));var h9=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return Vc.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 Vc.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Vc.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 Vc.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 Vc.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 Vc.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 Vc.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 Vc.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Vc.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 Vc.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 Vc.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 Vc.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 Vc.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 Vc.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 Vc.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Vc.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Vc.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Vc.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Vc.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 Vc.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 Vc.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};ur();var Ceu=`${Ts}${Ts}`;var weu=encodeURIComponent(" ");function pYe(t,e,r){if(!ut.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(pYe,"sqlLog");var k7t="Database does not exist.";function P7t(t){return(0,M7t.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(P7t,"buildNano");var nx=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}static{s(this,"CouchDBError")}};var ofe=class t{constructor(e,r,n){this.couchInfo=Wv();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Wv(n),this.instanceNano=P7t(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=Wv();t.nano=P7t(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await hYe({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 nx(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===k7t)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new nx(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new nx(`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(bLt(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 nx(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=xI()),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===k7t)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=sfe(`${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 hYe(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new nx("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}/${g$}`;return pYe("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(g$)){let e=await this.get(g$);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 nx(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return rx(this.name).dump(e,r)}async load(e){return rx(this.name).load(e)}async createIndex(e){return rx(this.name).createIndex(e)}async deleteIndex(e){return rx(this.name).deleteIndex(e)}async getIndexes(){return rx(this.name).getIndexes()}};function kS(t,e){return new h9(new ofe(t,e))}s(kS,"getDB");function gYe(t){if(!t||t.startsWith(Fv))return t;let e=t.split(_P);e.shift();let r=e.join(_P);return`${Fv}${r}`}s(gYe,"getDevWorkspaceID");function c3(t){if(!t||!t.startsWith(Fv))return t;let e=t.split(Fv);e.shift();let r=e.join(Fv);return`${_P}${r}`}s(c3,"getProdWorkspaceID");var U7t=require("async_hooks");var Yl=class t{static{s(this,"Context")}static{this.storage=new U7t.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var F7t=null;function p9(t){return t||(t=Ws()),afe(t)}s(p9,"getGlobalDBName");function Q7t(t){return t||(t=Ws()),t===oh?vS.AUDIT_LOGS.name:`${t}${Ts}${vS.AUDIT_LOGS.name}`}s(Q7t,"getAuditLogDBName");function Pwi(t){return t||(t=Ws()),t===oh?vS.SCIM_LOGS.name:`${t}${Ts}${vS.SCIM_LOGS.name}`}s(Pwi,"getScimDBName");function afe(t){return!t||t===oh?vS.GLOBAL.name:`${t}${Ts}${vS.GLOBAL.name}`}s(afe,"baseGlobalDBName");function mYe(){return ut.PLATFORM_URL}s(mYe,"getPlatformURL");function kP(){return!!ut.MULTI_TENANCY}s(kP,"isMultiTenant");function Lwi(){return!!Yl.get()?.tenantId}s(Lwi,"isTenantIdSet");function Mwi(){return ut.MULTI_TENANCY}s(Mwi,"isTenancyEnabled");function l3(t){if(!t)return;if(!kP())return oh;let e=t.split(Ts),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(l3,"getTenantIDFromWorkspaceID");function Uwi(t){let e;try{e=Yl.get()}catch{e={}}return e={...e,...t},e}s(Uwi,"updateContext");async function PS(t,e){Ywi();let r=Uwi(t);return Yl.run(r,e)}s(PS,"newContext");async function Fwi(t){return await V7t(),await PS({tenantId:l3(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(Fwi,"doInAutomationContext");async function AYe(t,e){let r=l3(t);return PS({tenantId:r,appId:t},e)}s(AYe,"doInContext");async function Ww(t,e){return ut.MULTI_TENANCY||(t=t||oh),PS(t?{tenantId:t}:{},e)}s(Ww,"doInTenant");async function Qwi(t,e){return PS({tenantId:t,isSelfHostUsingCloud:!0},e)}s(Qwi,"doInSelfHostTenantUsingCloud");async function qwi(t,e){return PS({license:t},e)}s(qwi,"doInLicenseContext");function Gwi(){return Yl.get()?.license}s(Gwi,"getLicense");function ufe(){return!!Yl.get()?.isSelfHostUsingCloud}s(ufe,"isSelfHostUsingCloud");function Vwi(){let t=Yl.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return kS(vS.SELF_HOST_CLOUD.name)}s(Vwi,"getSelfHostCloudDB");async function jwi(t,e){return q7t(t,e)}s(jwi,"doInWorkspaceContext");async function q7t(t,e,r){if(!t)throw new Error("workspaceId is required");let n=l3(t),i={appId:t,...r};return n&&(i.tenantId=n),PS(i,e)}s(q7t,"_doInWorkspaceContext");async function ale(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),PS(r,e)}s(ale,"doInIdentityContext");function Ywi(){if(Yl.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(Ywi,"guardMigration");async function Hwi(t,e){return q7t(t,e,{isMigrating:!0})}s(Hwi,"doInWorkspaceMigrationContext");function Hv(){try{return Yl.get()?.identity}catch{}}s(Hv,"getIdentity");function Ws(){if(!kP())return oh;let e=Yl.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(Ws,"getTenantId");function _Ye(){return Yl.get()?.automationId}s(_Ye,"getAutomationId");function uh(){let e=Yl.get()?.appId;return!e&&ut.isTest()&&F7t?F7t:e}s(uh,"getWorkspaceId");function Wwi(){let t=uh();if(!t)throw new Error("Workspace id not set");return t}s(Wwi,"getOrThrowWorkspaceId");function EYe(){return Yl.get()?.ip}s(EYe,"getIP");var zwi=s(()=>{let t=uh();if(!t)throw new Error("Could not get workspaceId");return gYe(t)},"getDevWorkspaceId"),$wi=s(()=>{let t=uh();if(!t)throw new Error("Could not get workspaceId");return c3(t)},"getProdWorkspaceId");function Kwi(t,e){if(!t)throw new Error("Must supply environment variables.");return PS({environmentVariables:t},e)}s(Kwi,"doInEnvironmentContext");function Jwi(t){return PS({isScim:!0},t)}s(Jwi,"doInScimContext");function G7t(t,e){return PS({ip:t},e)}s(G7t,"doInIPContext");async function V7t(){let t=PP();if(!t||t.snippets)return;let e,r=yYe();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(V7t,"ensureSnippetContext");function Xwi(){let t=Yl.get();return t.environmentVariables?t.environmentVariables:null}s(Xwi,"getEnvironmentVariables");function ap(){let t=Yl.get();if(!t||ut.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 kS(afe(t?.tenantId))}s(ap,"getGlobalDB");function Zwi(){if(!Ws())throw new Error("No tenant ID found - cannot open audit log DB");return kS(Q7t())}s(Zwi,"getAuditLogsDB");function yYe(t){let e=uh();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(ufe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return kS(e,t)}s(yYe,"getWorkspaceDB");function ebi(t){let e=uh();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return kS(c3(e),t)}s(ebi,"getProdWorkspaceDB");function tbi(t){let e=uh();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return kS(gYe(e),t)}s(tbi,"getDevWorkspaceDB");function TYe(){return!!Yl.get()?.isScim}s(TYe,"isScim");function PP(){try{return Yl.get()}catch{return}}s(PP,"getCurrentContext");function SYe(t){let e=PP();if(e)return e.featureFlagCache?.[t]}s(SYe,"getFeatureFlags");function IYe(t,e){let r=PP();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(IYe,"setFeatureFlags");function RYe(){return PP()?.featureFlagOverrides||{}}s(RYe,"getFeatureFlagOverrides");async function j7t(t,e){return await PS({featureFlagOverrides:t},e)}s(j7t,"doInFeatureFlagOverrideContext");function rbi(t){let e=PP();if(e)return e.viewToTableCache?.[t]}s(rbi,"getTableForView");function nbi(t,e){let r=PP();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(nbi,"setTableForView");var upe=Ae(bXt());var ape=require("dd-trace"),dfr=Ae(Fq());var ffr;if(ut.MOCK_REDIS)try{ffr=lfr()}catch{console.log("Mock redis unavailable")}async function s7i(t=0){return await ape.tracer.trace("Redis.init",async e=>{if(ut.MOCK_REDIS)return e.addTags({mock:!0}),new ffr(qq());let r;if(ut.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=ZGe();r=new upe.Cluster([{host:n,port:i}],JYt())}else r=new upe.default(qq());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(s7i,"init");function o7i(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:XYt(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(o7i,"promisifyStream");function a7i(t){return t.isCluster}s(a7i,"isCluster");var C$e=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await ape.tracer.trace("RedisWrapper.init",async n=>{let i=await s7i(r);return r&&!ut.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return ape.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${_$}${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}${_$}${e}`;let n;a7i(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await o7i(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,dfr.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});let i=`
|
|
4319
4319
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
4320
4320
|
redis.call('DEL', KEYS[1])
|
|
4321
4321
|
end
|
|
@@ -4369,7 +4369,7 @@ ${t}
|
|
|
4369
4369
|
</style>
|
|
4370
4370
|
`,a=!1,u,c,l=[];if(i){let d=`${t}.pre-svelte5`;ws.default.writeFileSync(d,e),ws.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=Zd.default.join(Zd.default.dirname(t),"Boundary.js");if(ws.default.existsSync(f))try{ws.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(tMa,"migrateWrapper");function rMa(){let t=Zd.default.join(process.cwd(),"package.json");if(!ws.default.existsSync(t))return{changed:!1,message:"package.json not found"};let e=ws.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=V9n(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."};ws.default.writeFileSync(`${t}.pre-svelte5`,e),ws.default.writeFileSync(t,`${u}
|
|
4371
4371
|
`);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(rMa,"migratePackageJson");function z9n(){let t=Zd.default.join(process.cwd(),".github","workflows");return ws.default.existsSync(t)?ws.default.readdirSync(t).filter(r=>r.endsWith(".yml")||r.endsWith(".yaml")).map(r=>Zd.default.join(".github","workflows",r)):[]}s(z9n,"findWorkflowFiles");function nMa(){let t=z9n();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=Zd.default.join(process.cwd(),n),o=ws.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`;ws.default.writeFileSync(c,o),ws.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(nMa,"migrateNodeVersion");function iMa(){let t=Zd.default.join(process.cwd(),"schema.json");if(!ws.default.existsSync(t))return{changed:!1,message:"schema.json not found - skipping schema metadata migration."};let e=ws.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 ws.default.writeFileSync(`${t}.pre-svelte5`,e),ws.default.writeFileSync(t,`${u}
|
|
4372
|
-
`),{changed:!0,before:o,after:u,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(iMa,"migrateSchemaJson");async function $9n(){let t=[],e=ws.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=V9n(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=j9n(),u="unknown";if(a){let T=ws.default.readFileSync(a,"utf8");Y9n(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=W9n(),l="not-found";c?ws.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(ws.default.existsSync("schema.json"))try{let T=ws.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=z9n();if(A.length>0){let T=!1,S=!1;for(let b of A){let C=Zd.default.join(process.cwd(),b),B=ws.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($9n,"analysePluginForSvelte5");async function K9n(){let t=await eMa();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=tMa(),r=iMa(),n=rMa(),i=nMa();return{pkgRes:n,schemaRes:r,rollupRes:t,wrapperRes:e,nodeVersionRes:i}}s(K9n,"runSvelte5Migration");var J9n=require("child_process");var sMa=require("find-free-port");function oMa(t){let e=[],r=[];for(let n of new Set(t.filter(Boolean)))if(JO.default.existsSync(n))try{JO.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(oMa,"cleanupPreSvelte5Backups");function X9n(){if(!JO.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!JO.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(X9n,"checkInPlugin");async function aMa(t){return JO.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.")),II("Create top level directory?"))}s(aMa,"askAboutTopLevel");async function uMa(t){let e=t.init||t;if(!e||!AMt.includes(e)){console.log(Qa("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 zk("Name",`budibase-${e}`);if(JO.default.existsSync(r)){console.log(Qa("Directory by plugin name already exists, pick a new name."));return}let n=await zk("Description",`An amazing Budibase ${e}!`),i=await zk("Version","1.0.0"),o=await aMa(r);console.log(Fi("Retrieving project...")),await HLe(e,r),await F9n(e,r,n,i),console.log(Fi("Installing dependencies...")),await x6("install",(0,WLe.join)(process.cwd(),r)),o?console.log(Fi(`Plugin created in directory "${r}"`)):(vQe(r,process.cwd()),console.log(Fi("Plugin created in current directory."))),aue(Cw.PluginInit,{type:e,name:r,description:n,version:i})}s(uMa,"init");async function HBt(){X9n(),console.log(Fi("Verifying plugin..."));let t=JO.default.readFileSync("schema.json","utf8"),e=JO.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,Gbe.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Qa(`schema.json is not valid JSON: ${i.message}`)):console.log(Qa(`Invalid schema/package.json: ${i.message}`))}}s(HBt,"verify");async function cMa(){let t=await HBt();if(!t?.name)return;console.log(mu("Verified!")),console.log(Fi("Building plugin...")),await x6("build");let e=(0,WLe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(mu(`Build complete - output in: ${e}`))}s(cMa,"build");async function lMa(){let t=await HBt();if(!t?.name)return;let e=(0,WLe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(Fi(`Watching - build in: ${e}`));try{await x6("watch")}catch{console.log(mu("Watch exited."))}}s(lMa,"watch");async function fMa(){let t=await zk("Directory to watch","./"),[e]=await sMa(1e4),r="admin";await due({init:"quick",single:!0,watchPluginDir:t,genUser:r,port:e,silent:!0}),await iq(),console.log(mu("Configuration has been written to docker-compose.yaml")),console.log(mu("Development environment started successfully - connect at: ")+Fi(`http://localhost:${e}`)),console.log(mu("Use the following credentials to login:")),console.log(mu("Email: ")+Fi(HQe)),console.log(mu("Password: ")+Fi(r))}s(fMa,"dev");async function dMa(t){X9n();let e=!!t?.yes,r=!!t?.force,n=!1;try{n=!!(0,J9n.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 II("Proceed with migration anyway?"))){console.log(Fi("Migration aborted."));return}console.log(Fi("Analyzing plugin for Svelte 5 migration..."));let i=await $9n();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 II("Apply these changes now?")){console.log(Fi("Migration aborted by user."));return}console.log(Fi("Applying migrations..."));let a=await K9n();if(a.rollupRes?.message?.includes("Failed to retrieve canonical rollup.config.mjs from skeleton")){console.log(Qa(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 x6("install"),console.log(Fi("Re-verifying plugin...")),!(await HBt())?.name){console.log(Qa("Verification failed after migration."));return}console.log(Fi("Attempting build..."));try{await x6("build");let c=oMa(o.filter(l=>!!l));console.log(mu("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(Qa(`Build failed after migration. Please review the errors above. ${c?.message||""}`))}}s(dMa,"migrateSvelte5");var Z9n=new SI("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.",uMa).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",cMa).addSubOption("--watch","Automatically build any changes to your plugin.",lMa).addSubOption("--dev","Run a development environment which automatically watches the current directory.",fMa).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",dMa,[{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 eKn(){return[MFt,lFt,PYn,Z9n]}s(eKn,"getCommands");var rKn=require("commander");ad();var tKn="3.37.0";async function pMa(){let t=new rKn.Command().addHelpCommand("help",$5("Help with Budibase commands.")).helpOption(!1).version(tKn);for(let e of eKn())e.configure(t);await t.parseAsync(process.argv)}s(pMa,"init");var gMa=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];gMa.forEach(t=>{process.on(t,e=>{e&&!isNaN(e)||e&&(console.error(Qa("Failed to run CLI command - please report with the following message:")),console.error(Qa(e)))})});pMa().catch(t=>{console.error("Unexpected error - ",t)});
|
|
4372
|
+
`),{changed:!0,before:o,after:u,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(iMa,"migrateSchemaJson");async function $9n(){let t=[],e=ws.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=V9n(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=j9n(),u="unknown";if(a){let T=ws.default.readFileSync(a,"utf8");Y9n(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=W9n(),l="not-found";c?ws.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(ws.default.existsSync("schema.json"))try{let T=ws.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=z9n();if(A.length>0){let T=!1,S=!1;for(let b of A){let C=Zd.default.join(process.cwd(),b),B=ws.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($9n,"analysePluginForSvelte5");async function K9n(){let t=await eMa();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=tMa(),r=iMa(),n=rMa(),i=nMa();return{pkgRes:n,schemaRes:r,rollupRes:t,wrapperRes:e,nodeVersionRes:i}}s(K9n,"runSvelte5Migration");var J9n=require("child_process");var sMa=require("find-free-port");function oMa(t){let e=[],r=[];for(let n of new Set(t.filter(Boolean)))if(JO.default.existsSync(n))try{JO.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(oMa,"cleanupPreSvelte5Backups");function X9n(){if(!JO.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!JO.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(X9n,"checkInPlugin");async function aMa(t){return JO.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.")),II("Create top level directory?"))}s(aMa,"askAboutTopLevel");async function uMa(t){let e=t.init||t;if(!e||!AMt.includes(e)){console.log(Qa("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 zk("Name",`budibase-${e}`);if(JO.default.existsSync(r)){console.log(Qa("Directory by plugin name already exists, pick a new name."));return}let n=await zk("Description",`An amazing Budibase ${e}!`),i=await zk("Version","1.0.0"),o=await aMa(r);console.log(Fi("Retrieving project...")),await HLe(e,r),await F9n(e,r,n,i),console.log(Fi("Installing dependencies...")),await x6("install",(0,WLe.join)(process.cwd(),r)),o?console.log(Fi(`Plugin created in directory "${r}"`)):(vQe(r,process.cwd()),console.log(Fi("Plugin created in current directory."))),aue(Cw.PluginInit,{type:e,name:r,description:n,version:i})}s(uMa,"init");async function HBt(){X9n(),console.log(Fi("Verifying plugin..."));let t=JO.default.readFileSync("schema.json","utf8"),e=JO.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,Gbe.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Qa(`schema.json is not valid JSON: ${i.message}`)):console.log(Qa(`Invalid schema/package.json: ${i.message}`))}}s(HBt,"verify");async function cMa(){let t=await HBt();if(!t?.name)return;console.log(mu("Verified!")),console.log(Fi("Building plugin...")),await x6("build");let e=(0,WLe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(mu(`Build complete - output in: ${e}`))}s(cMa,"build");async function lMa(){let t=await HBt();if(!t?.name)return;let e=(0,WLe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(Fi(`Watching - build in: ${e}`));try{await x6("watch")}catch{console.log(mu("Watch exited."))}}s(lMa,"watch");async function fMa(){let t=await zk("Directory to watch","./"),[e]=await sMa(1e4),r="admin";await due({init:"quick",single:!0,watchPluginDir:t,genUser:r,port:e,silent:!0}),await iq(),console.log(mu("Configuration has been written to docker-compose.yaml")),console.log(mu("Development environment started successfully - connect at: ")+Fi(`http://localhost:${e}`)),console.log(mu("Use the following credentials to login:")),console.log(mu("Email: ")+Fi(HQe)),console.log(mu("Password: ")+Fi(r))}s(fMa,"dev");async function dMa(t){X9n();let e=!!t?.yes,r=!!t?.force,n=!1;try{n=!!(0,J9n.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 II("Proceed with migration anyway?"))){console.log(Fi("Migration aborted."));return}console.log(Fi("Analyzing plugin for Svelte 5 migration..."));let i=await $9n();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 II("Apply these changes now?")){console.log(Fi("Migration aborted by user."));return}console.log(Fi("Applying migrations..."));let a=await K9n();if(a.rollupRes?.message?.includes("Failed to retrieve canonical rollup.config.mjs from skeleton")){console.log(Qa(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 x6("install"),console.log(Fi("Re-verifying plugin...")),!(await HBt())?.name){console.log(Qa("Verification failed after migration."));return}console.log(Fi("Attempting build..."));try{await x6("build");let c=oMa(o.filter(l=>!!l));console.log(mu("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(Qa(`Build failed after migration. Please review the errors above. ${c?.message||""}`))}}s(dMa,"migrateSvelte5");var Z9n=new SI("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.",uMa).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",cMa).addSubOption("--watch","Automatically build any changes to your plugin.",lMa).addSubOption("--dev","Run a development environment which automatically watches the current directory.",fMa).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",dMa,[{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 eKn(){return[MFt,lFt,PYn,Z9n]}s(eKn,"getCommands");var rKn=require("commander");ad();var tKn="3.37.2";async function pMa(){let t=new rKn.Command().addHelpCommand("help",$5("Help with Budibase commands.")).helpOption(!1).version(tKn);for(let e of eKn())e.configure(t);await t.parseAsync(process.argv)}s(pMa,"init");var gMa=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];gMa.forEach(t=>{process.on(t,e=>{e&&!isNaN(e)||e&&(console.error(Qa("Failed to run CLI command - please report with the following message:")),console.error(Qa(e)))})});pMa().catch(t=>{console.error("Unexpected error - ",t)});
|
|
4373
4373
|
/*! Bundled license information:
|
|
4374
4374
|
|
|
4375
4375
|
lodash/lodash.js:
|