@budibase/cli 3.27.0 → 3.27.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
|
@@ -1441,7 +1441,7 @@ $1`)};gle.parseAttributes=s(function(t){return Object.keys(t).map(function(r){va
|
|
|
1441
1441
|
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.`;CKi.exports=wel});var Xzt=g((xKi,RKi)=>{"use strict";var bf=hp(),tj=mle(),pi=RKi.exports,Tel=IKi();pi.append=function(e,t){return typeof e=="string"&&typeof t=="string"?e+t:e};pi.camelcase=function(e){return typeof e!="string"?"":tj.changecase(e,function(t){return t.toUpperCase()})};pi.capitalize=function(e){return typeof e!="string"?"":e.charAt(0).toUpperCase()+e.slice(1)};pi.capitalizeAll=function(e){if(typeof e!="string")return"";if(bf.isString(e))return e.replace(/\w\S*/g,function(t){return pi.capitalize(t)})};pi.center=function(e,t){if(typeof e!="string")return"";for(var r="",n=0;n<t;)r+=" ",n++;return r+e+r};pi.chop=function(e){return typeof e!="string"?"":tj.chop(e)};pi.dashcase=function(e){return typeof e!="string"?"":tj.changecase(e,function(t){return"-"+t})};pi.dotcase=function(e){return typeof e!="string"?"":tj.changecase(e,function(t){return"."+t})};pi.downcase=function(){return pi.lowercase.apply(this,arguments)};pi.ellipsis=function(e,t){if(bf.isString(e))return e.length<=t?e:pi.truncate(e,t)+"\u2026"};pi.hyphenate=function(e){return typeof e!="string"?"":e.split(" ").join("-")};pi.isString=function(e){return typeof e=="string"};pi.lowercase=function(e){return bf.isObject(e)&&e.fn?e.fn(this).toLowerCase():typeof e!="string"?"":e.toLowerCase()};pi.occurrences=function(e,t){if(typeof e!="string")return"";for(var r=t.length,n=0,i=0;(n=e.indexOf(t,n))>-1;)i++,n+=r;return i};pi.pascalcase=function(e){return typeof e!="string"?"":(e=tj.changecase(e,function(t){return t.toUpperCase()}),e.charAt(0).toUpperCase()+e.slice(1))};pi.pathcase=function(e){return typeof e!="string"?"":tj.changecase(e,function(t){return"/"+t})};pi.plusify=function(e,t){return typeof e!="string"?"":(bf.isString(t)||(t=" "),e.split(t).join("+"))};pi.prepend=function(e,t){return typeof e=="string"&&typeof t=="string"?t+e:e};pi.raw=function(e){var t=e.fn(),r=bf.options(this,e);if(r.escape!==!1)for(var n=0;(n=t.indexOf("{{",n))!==-1;)t[n-1]!=="\\"&&(t=t.slice(0,n)+"\\"+t.slice(n)),n+=3;return t};pi.remove=function(e,t){return typeof e!="string"?"":bf.isString(t)?e.split(t).join(""):e};pi.removeFirst=function(e,t){return typeof e!="string"?"":bf.isString(t)?e.replace(t,""):e};pi.replace=function(e,t,r){return typeof e!="string"?"":bf.isString(t)?(bf.isString(r)||(r=""),e.split(t).join(r)):e};pi.replaceFirst=function(e,t,r){return typeof e!="string"?"":bf.isString(t)?(bf.isString(r)||(r=""),e.replace(t,r)):e};pi.reverse=Z9().reverse;pi.sentence=function(e){return typeof e!="string"?"":e.replace(/((?:\S[^\.\?\!]*)[\.\?\!]*)/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})};pi.snakecase=function(e){return typeof e!="string"?"":tj.changecase(e,function(t){return"_"+t})};pi.split=function(e,t){return typeof e!="string"?"":(bf.isString(t)||(t=","),e.split(t))};pi.startsWith=function(e,t,r){var n=[].slice.call(arguments);return r=n.pop(),bf.isString(t)&&t.indexOf(e)===0?r.fn(this):typeof r.inverse=="function"?r.inverse(this):""};pi.titleize=function(e){if(typeof e!="string")return"";for(var t=e.replace(/[- _]+/g," "),r=t.split(" "),n=r.length,i=[],o=0;n--;){var a=r[o++];i.push(xKi.capitalize(a))}return i.join(" ")};pi.trim=function(e){return typeof e=="string"?e.trim():""};pi.trimLeft=function(e){if(bf.isString(e))return e.replace(/^\s+/,"")};pi.trimRight=function(e){if(bf.isString(e))return e.replace(/\s+$/,"")};pi.truncate=function(e,t,r){if(bf.isString(e))return typeof r!="string"&&(r=""),e.length>t?e.slice(0,t-r.length)+r:e};pi.truncateWords=function(e,t,r){if(bf.isString(e)&&!isNaN(t)){typeof r!="string"&&(r="\u2026");var n=Number(t),i=e.split(/[ \t]/);if(n>=i.length)return e;i=i.slice(0,n);var o=i.join(" ").trim();return o+r}};pi.upcase=function(){return pi.uppercase.apply(this,arguments)};pi.uppercase=function(e){return bf.isObject(e)&&e.fn?e.fn(this).toUpperCase():typeof e!="string"?"":e.toUpperCase()};pi.lorem=function(e){return(isNaN(e)||e<1||!e)&&(e=11),Tel.substring(0,e)}});var eWt=g((TSf,OKi)=>{"use strict";var Zzt=require("url"),Sle=hp(),Cel=require("querystring"),rj=OKi.exports;rj.encodeURI=function(e){if(Sle.isString(e))return encodeURIComponent(e)};rj.escape=function(e){if(Sle.isString(e))return Cel.escape(e)};rj.decodeURI=function(e){if(Sle.isString(e))return decodeURIComponent(e)};rj.urlResolve=function(e,t){return Zzt.resolve(e,t)};rj.urlParse=function(e){return Zzt.parse(e)};rj.stripQuerystring=function(e){if(Sle.isString(e))return e.split("?")[0]};rj.stripProtocol=function(e){if(Sle.isString(e)){var t=Zzt.parse(e);return t.protocol="",t.format()}}});function vle(){return xje>Rje.length-16&&(kKi.default.randomFillSync(Rje),xje=0),Rje.slice(xje,xje+=16)}var kKi,Rje,xje,tWt=Z(()=>{"use strict";kKi=Le(require("crypto")),Rje=new Uint8Array(256),xje=Rje.length;s(vle,"rng")});var NKi,DKi=Z(()=>{"use strict";NKi=/^(?:[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 Iel(e){return typeof e=="string"&&NKi.test(e)}var nB,wle=Z(()=>{"use strict";DKi();s(Iel,"validate");nB=Iel});function nj(e,t=0){return gp[e[t+0]]+gp[e[t+1]]+gp[e[t+2]]+gp[e[t+3]]+"-"+gp[e[t+4]]+gp[e[t+5]]+"-"+gp[e[t+6]]+gp[e[t+7]]+"-"+gp[e[t+8]]+gp[e[t+9]]+"-"+gp[e[t+10]]+gp[e[t+11]]+gp[e[t+12]]+gp[e[t+13]]+gp[e[t+14]]+gp[e[t+15]]}function xel(e,t=0){let r=nj(e,t);if(!nB(r))throw TypeError("Stringified UUID is invalid");return r}var gp,PKi,Tle=Z(()=>{"use strict";wle();gp=[];for(let e=0;e<256;++e)gp.push((e+256).toString(16).slice(1));s(nj,"unsafeStringify");s(xel,"stringify");PKi=xel});function Rel(e,t,r){let n=t&&r||0,i=t||new Array(16);e=e||{};let o=e.node||BKi,a=e.clockseq!==void 0?e.clockseq:rWt;if(o==null||a==null){let p=e.random||(e.rng||vle)();o==null&&(o=BKi=[p[0]|1,p[1],p[2],p[3],p[4],p[5]]),a==null&&(a=rWt=(p[6]<<8|p[7])&16383)}let c=e.msecs!==void 0?e.msecs:Date.now(),u=e.nsecs!==void 0?e.nsecs:iWt+1,l=c-nWt+(u-iWt)/1e4;if(l<0&&e.clockseq===void 0&&(a=a+1&16383),(l<0||c>nWt)&&e.nsecs===void 0&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");nWt=c,iWt=u,rWt=a,c+=122192928e5;let d=((c&268435455)*1e4+u)%4294967296;i[n++]=d>>>24&255,i[n++]=d>>>16&255,i[n++]=d>>>8&255,i[n++]=d&255;let f=c/4294967296*1e4&268435455;i[n++]=f>>>8&255,i[n++]=f&255,i[n++]=f>>>24&15|16,i[n++]=f>>>16&255,i[n++]=a>>>8|128,i[n++]=a&255;for(let p=0;p<6;++p)i[n+p]=o[p];return t||nj(i)}var BKi,rWt,nWt,iWt,MKi,LKi=Z(()=>{"use strict";tWt();Tle();nWt=0,iWt=0;s(Rel,"v1");MKi=Rel});function Oel(e){if(!nB(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var Oje,sWt=Z(()=>{"use strict";wle();s(Oel,"parse");Oje=Oel});function kel(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}function Cle(e,t,r){function n(i,o,a,c){var u;if(typeof i=="string"&&(i=kel(i)),typeof o=="string"&&(o=Oje(o)),((u=o)===null||u===void 0?void 0:u.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|t,l[8]=l[8]&63|128,a){c=c||0;for(let d=0;d<16;++d)a[c+d]=l[d];return a}return nj(l)}s(n,"generateUUID");try{n.name=e}catch{}return n.DNS=Nel,n.URL=Del,n}var Nel,Del,oWt=Z(()=>{"use strict";Tle();sWt();s(kel,"stringToBytes");Nel="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Del="6ba7b811-9dad-11d1-80b4-00c04fd430c8";s(Cle,"v35")});function Pel(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),UKi.default.createHash("md5").update(e).digest()}var UKi,qKi,FKi=Z(()=>{"use strict";UKi=Le(require("crypto"));s(Pel,"md5");qKi=Pel});var Bel,QKi,jKi=Z(()=>{"use strict";oWt();FKi();Bel=Cle("v3",48,qKi),QKi=Bel});var HKi,aWt,GKi=Z(()=>{"use strict";HKi=Le(require("crypto")),aWt={randomUUID:HKi.default.randomUUID}});function Mel(e,t,r){if(aWt.randomUUID&&!t&&!e)return aWt.randomUUID();e=e||{};let n=e.random||(e.rng||vle)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return nj(n)}var VKi,$Ki=Z(()=>{"use strict";GKi();tWt();Tle();s(Mel,"v4");VKi=Mel});function Lel(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),zKi.default.createHash("sha1").update(e).digest()}var zKi,WKi,YKi=Z(()=>{"use strict";zKi=Le(require("crypto"));s(Lel,"sha1");WKi=Lel});var Uel,KKi,JKi=Z(()=>{"use strict";oWt();YKi();Uel=Cle("v5",80,WKi),KKi=Uel});var XKi,ZKi=Z(()=>{"use strict";XKi="00000000-0000-0000-0000-000000000000"});function qel(e){if(!nB(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}var e7i,t7i=Z(()=>{"use strict";wle();s(qel,"version");e7i=qel});var r7i={};Is(r7i,{NIL:()=>XKi,parse:()=>Oje,stringify:()=>PKi,v1:()=>MKi,v3:()=>QKi,v4:()=>VKi,v5:()=>KKi,validate:()=>nB,version:()=>e7i});var n7i=Z(()=>{"use strict";LKi();jKi();$Ki();JKi();ZKi();t7i();wle();Tle();sWt()});var cWt=g((bvf,i7i)=>{"use strict";var Fel=(n7i(),Dt(r7i)),Qel=i7i.exports;Qel.uuid=function(){return Fel.v4()}});var o7i=g((Svf,s7i)=>{"use strict";s7i.exports={array:Z9(),code:l9i(),collection:T9i(),comparison:Rzt(),html:G9i(),i18n:$9i(),inflection:Y9i(),match:aKi(),math:Yzt(),misc:lKi(),number:Kzt(),object:gje(),path:vKi(),regex:Jzt(),string:Xzt(),url:eWt(),uuid:cWt()}});var a7i=g((vvf,n5)=>{"use strict";var Ile=o7i();n5.exports=s(function(t,r){typeof t=="string"?t=[t]:Array.isArray(t)||(r=t,t=null),r=r||{};var n=r.handlebars||r.hbs||dle();if(n5.exports.handlebars=n,t)t.forEach(function(i){n.registerHelper(Ile[i])});else for(let i in Ile){let o=Ile[i];n.registerHelper(o)}return n.helpers},"helpers");for(let e in Ile){let t=Ile[e];n5.exports[e]=function(r){r=r||{};var n=r.handlebars||r.hbs||dle();return n5.exports.handlebars=n,n.registerHelper(t),t}}n5.exports.utils=mle()});var c7i=g((uWt,lWt)=>{"use strict";(function(e,t){typeof uWt=="object"&&typeof lWt<"u"?lWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_duration=t()})(uWt,function(){"use strict";var e,t,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,c=31536e6,u=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)?)?$/,d={years:c,months:u,days:o,hours:i,minutes:n,seconds:r,milliseconds:1,weeks:6048e5},f=s(function(N){return N instanceof x},"c"),p=s(function(N,T,B){return new x(N,B,T.$l)},"f"),h=s(function(N){return t.p(N)+"s"},"m"),A=s(function(N){return N<0},"l"),y=s(function(N){return A(N)?Math.ceil(N):Math.floor(N)},"$"),v=s(function(N){return Math.abs(N)},"y"),b=s(function(N,T){return N?A(N)?{negative:!0,format:""+v(N)+T}:{negative:!1,format:""+N+T}:{negative:!1,format:""}},"v"),x=function(){function N(B,F,j){var H=this;if(this.$d={},this.$l=j,B===void 0&&(this.$ms=0,this.parseFromMilliseconds()),F)return p(B*d[h(F)],this);if(typeof B=="number")return this.$ms=B,this.parseFromMilliseconds(),this;if(typeof B=="object")return Object.keys(B).forEach(function(ue){H.$d[h(ue)]=B[ue]}),this.calMilliseconds(),this;if(typeof B=="string"){var z=B.match(l);if(z){var X=z.slice(2).map(function(ue){return ue!=null?Number(ue):0});return this.$d.years=X[0],this.$d.months=X[1],this.$d.weeks=X[2],this.$d.days=X[3],this.$d.hours=X[4],this.$d.minutes=X[5],this.$d.seconds=X[6],this.calMilliseconds(),this}}return this}s(N,"l");var T=N.prototype;return T.calMilliseconds=function(){var B=this;this.$ms=Object.keys(this.$d).reduce(function(F,j){return F+(B.$d[j]||0)*d[j]},0)},T.parseFromMilliseconds=function(){var B=this.$ms;this.$d.years=y(B/c),B%=c,this.$d.months=y(B/u),B%=u,this.$d.days=y(B/o),B%=o,this.$d.hours=y(B/i),B%=i,this.$d.minutes=y(B/n),B%=n,this.$d.seconds=y(B/r),B%=r,this.$d.milliseconds=B},T.toISOString=function(){var B=b(this.$d.years,"Y"),F=b(this.$d.months,"M"),j=+this.$d.days||0;this.$d.weeks&&(j+=7*this.$d.weeks);var H=b(j,"D"),z=b(this.$d.hours,"H"),X=b(this.$d.minutes,"M"),ue=this.$d.seconds||0;this.$d.milliseconds&&(ue+=this.$d.milliseconds/1e3,ue=Math.round(1e3*ue)/1e3);var L=b(ue,"S"),le=B.negative||F.negative||H.negative||z.negative||X.negative||L.negative,W=z.format||X.format||L.format?"T":"",q=(le?"-":"")+"P"+B.format+F.format+H.format+W+z.format+X.format+L.format;return q==="P"||q==="-P"?"P0D":q},T.toJSON=function(){return this.toISOString()},T.format=function(B){var F=B||"YYYY-MM-DDTHH:mm:ss",j={Y:this.$d.years,YY:t.s(this.$d.years,2,"0"),YYYY:t.s(this.$d.years,4,"0"),M:this.$d.months,MM:t.s(this.$d.months,2,"0"),D:this.$d.days,DD:t.s(this.$d.days,2,"0"),H:this.$d.hours,HH:t.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:t.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:t.s(this.$d.seconds,2,"0"),SSS:t.s(this.$d.milliseconds,3,"0")};return F.replace(a,function(H,z){return z||String(j[H])})},T.as=function(B){return this.$ms/d[h(B)]},T.get=function(B){var F=this.$ms,j=h(B);return j==="milliseconds"?F%=1e3:F=j==="weeks"?y(F/d[j]):this.$d[j],F||0},T.add=function(B,F,j){var H;return H=F?B*d[h(F)]:f(B)?B.$ms:p(B,this).$ms,p(this.$ms+H*(j?-1:1),this)},T.subtract=function(B,F){return this.add(B,F,!0)},T.locale=function(B){var F=this.clone();return F.$l=B,F},T.clone=function(){return p(this.$ms,this)},T.humanize=function(B){return e().add(this.$ms,"ms").locale(this.$l).fromNow(!B)},T.valueOf=function(){return this.asMilliseconds()},T.milliseconds=function(){return this.get("milliseconds")},T.asMilliseconds=function(){return this.as("milliseconds")},T.seconds=function(){return this.get("seconds")},T.asSeconds=function(){return this.as("seconds")},T.minutes=function(){return this.get("minutes")},T.asMinutes=function(){return this.as("minutes")},T.hours=function(){return this.get("hours")},T.asHours=function(){return this.as("hours")},T.days=function(){return this.get("days")},T.asDays=function(){return this.as("days")},T.weeks=function(){return this.get("weeks")},T.asWeeks=function(){return this.as("weeks")},T.months=function(){return this.get("months")},T.asMonths=function(){return this.as("months")},T.years=function(){return this.get("years")},T.asYears=function(){return this.as("years")},N}(),O=s(function(N,T,B){return N.add(T.years()*B,"y").add(T.months()*B,"M").add(T.days()*B,"d").add(T.hours()*B,"h").add(T.minutes()*B,"m").add(T.seconds()*B,"s").add(T.milliseconds()*B,"ms")},"p");return function(N,T,B){e=B,t=B().$utils(),B.duration=function(H,z){var X=B.locale();return p(H,{$l:X},z)},B.isDuration=f;var F=T.prototype.add,j=T.prototype.subtract;T.prototype.add=function(H,z){return f(H)?O(this,H,1):F.bind(this)(H,z)},T.prototype.subtract=function(H,z){return f(H)?O(this,H,-1):j.bind(this)(H,z)}}})});var u7i=g((dWt,fWt)=>{"use strict";(function(e,t){typeof dWt=="object"&&typeof fWt<"u"?fWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_advancedFormat=t()})(dWt,function(){"use strict";return function(e,t){var r=t.prototype,n=r.format;r.format=function(i){var o=this,a=this.$locale();if(!this.isValid())return n.bind(this)(i);var c=this.$utils(),u=(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 c.s(o.week(),l==="w"?1:2,"0");case"W":case"WW":return c.s(o.isoWeek(),l==="W"?1:2,"0");case"k":case"kk":return c.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)(u)}}})});var l7i=g((pWt,hWt)=>{"use strict";(function(e,t){typeof pWt=="object"&&typeof hWt<"u"?hWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_isoWeek=t()})(pWt,function(){"use strict";var e="day";return function(t,r,n){var i=s(function(c){return c.add(4-c.isoWeekday(),e)},"a"),o=r.prototype;o.isoWeekYear=function(){return i(this).year()},o.isoWeek=function(c){if(!this.$utils().u(c))return this.add(7*(c-this.isoWeek()),e);var u,l,d,f,p=i(this),h=(u=this.isoWeekYear(),l=this.$u,d=(l?n.utc:n)().year(u).startOf("year"),f=4-d.isoWeekday(),d.isoWeekday()>4&&(f+=7),d.add(f,e));return p.diff(h,"week")+1},o.isoWeekday=function(c){return this.$utils().u(c)?this.day()||7:this.day(this.day()%7?c:c-7)};var a=o.startOf;o.startOf=function(c,u){var l=this.$utils(),d=!!l.u(u)||u;return l.p(c)==="isoweek"?d?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(c,u)}}})});var d7i=g((mWt,gWt)=>{"use strict";(function(e,t){typeof mWt=="object"&&typeof gWt<"u"?gWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_weekYear=t()})(mWt,function(){"use strict";return function(e,t){t.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 f7i=g((AWt,yWt)=>{"use strict";(function(e,t){typeof AWt=="object"&&typeof yWt<"u"?yWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_weekOfYear=t()})(AWt,function(){"use strict";var e="week",t="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 c=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var u=i(this).startOf(t).add(1,t).date(c),l=i(this).endOf(e);if(u.isBefore(l))return 1}var d=i(this).startOf(t).date(c).startOf(e).subtract(1,"millisecond"),f=this.diff(d,e,!0);return f<0?i(this).startOf("week").week():Math.ceil(f)},o.weeks=function(a){return a===void 0&&(a=null),this.week(a)}}})});var p7i=g((_Wt,EWt)=>{"use strict";(function(e,t){typeof _Wt=="object"&&typeof EWt<"u"?EWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_relativeTime=t()})(_Wt,function(){"use strict";return function(e,t,r){e=e||{};var n=t.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(c,u,l,d){return n.fromToBase(c,u,l,d)}s(o,"i"),r.en.relativeTime=i,n.fromToBase=function(c,u,l,d,f){for(var p,h,A,y=l.$locale().relativeTime||i,v=e.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"}],b=v.length,x=0;x<b;x+=1){var O=v[x];O.d&&(p=d?r(c).diff(l,O.d,!0):l.diff(c,O.d,!0));var N=(e.rounding||Math.round)(Math.abs(p));if(A=p>0,N<=O.r||!O.r){N<=1&&x>0&&(O=v[x-1]);var T=y[O.l];f&&(N=f(""+N)),h=typeof T=="string"?T.replace("%d",N):T(N,u,O.l,A);break}}if(u)return h;var B=A?y.future:y.past;return typeof B=="function"?B(h):B.replace("%s",h)},n.to=function(c,u){return o(c,u,this,!0)},n.from=function(c,u){return o(c,u,this)};var a=s(function(c){return c.$u?r.utc():r()},"d");n.toNow=function(c){return this.to(a(this),c)},n.fromNow=function(c){return this.from(a(this),c)}}})});var h7i=g((bWt,SWt)=>{"use strict";(function(e,t){typeof bWt=="object"&&typeof SWt<"u"?SWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_utc=t()})(bWt,function(){"use strict";var e="minute",t=/[+-]\d\d(?::?\d\d)?/g,r=/([+-]|\d\d)/g;return function(n,i,o){var a=i.prototype;o.utc=function(h){var A={date:h,utc:!0,args:arguments};return new i(A)},a.utc=function(h){var A=o(this.toDate(),{locale:this.$L,utc:!0});return h?A.add(this.utcOffset(),e):A},a.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var c=a.parse;a.parse=function(h){h.utc&&(this.$u=!0),this.$utils().u(h.$offset)||(this.$offset=h.$offset),c.call(this,h)};var u=a.init;a.init=function(){if(this.$u){var h=this.$d;this.$y=h.getUTCFullYear(),this.$M=h.getUTCMonth(),this.$D=h.getUTCDate(),this.$W=h.getUTCDay(),this.$H=h.getUTCHours(),this.$m=h.getUTCMinutes(),this.$s=h.getUTCSeconds(),this.$ms=h.getUTCMilliseconds()}else u.call(this)};var l=a.utcOffset;a.utcOffset=function(h,A){var y=this.$utils().u;if(y(h))return this.$u?0:y(this.$offset)?l.call(this):this.$offset;if(typeof h=="string"&&(h=function(O){O===void 0&&(O="");var N=O.match(t);if(!N)return null;var T=(""+N[0]).match(r)||["-",0,0],B=T[0],F=60*+T[1]+ +T[2];return F===0?0:B==="+"?F:-F}(h),h===null))return this;var v=Math.abs(h)<=16?60*h:h;if(v===0)return this.utc(A);var b=this.clone();if(A)return b.$offset=v,b.$u=!1,b;var x=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(b=this.local().add(v+x,e)).$offset=v,b.$x.$localOffset=x,b};var d=a.format;a.format=function(h){var A=h||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return d.call(this,A)},a.valueOf=function(){var h=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*h},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var f=a.toDate;a.toDate=function(h){return h==="s"&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():f.call(this)};var p=a.diff;a.diff=function(h,A,y){if(h&&this.$u===h.$u)return p.call(this,h,A,y);var v=this.local(),b=o(h).local();return p.call(v,b,A,y)}}})});var m7i=g((vWt,wWt)=>{"use strict";(function(e,t){typeof vWt=="object"&&typeof wWt<"u"?wWt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_timezone=t()})(vWt,function(){"use strict";var e={year:0,month:1,day:2,hour:3,minute:4,second:5},t={};return function(r,n,i){var o,a=s(function(d,f,p){p===void 0&&(p={});var h=new Date(d),A=function(y,v){v===void 0&&(v={});var b=v.timeZoneName||"short",x=y+"|"+b,O=t[x];return O||(O=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:y,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:b}),t[x]=O),O}(f,p);return A.formatToParts(h)},"a"),c=s(function(d,f){for(var p=a(d,f),h=[],A=0;A<p.length;A+=1){var y=p[A],v=y.type,b=y.value,x=e[v];x>=0&&(h[x]=parseInt(b,10))}var O=h[3],N=O===24?0:O,T=h[0]+"-"+h[1]+"-"+h[2]+" "+N+":"+h[4]+":"+h[5]+":000",B=+d;return(i.utc(T).valueOf()-(B-=B%1e3))/6e4},"u"),u=n.prototype;u.tz=function(d,f){d===void 0&&(d=o);var p,h=this.utcOffset(),A=this.toDate(),y=A.toLocaleString("en-US",{timeZone:d}),v=Math.round((A-new Date(y))/1e3/60),b=15*-Math.round(A.getTimezoneOffset()/15)-v;if(!Number(b))p=this.utcOffset(0,f);else if(p=i(y,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(b,!0),f){var x=p.utcOffset();p=p.add(h-x,"minute")}return p.$x.$timezone=d,p},u.offsetName=function(d){var f=this.$x.$timezone||i.tz.guess(),p=a(this.valueOf(),f,{timeZoneName:d}).find(function(h){return h.type.toLowerCase()==="timezonename"});return p&&p.value};var l=u.startOf;u.startOf=function(d,f){if(!this.$x||!this.$x.$timezone)return l.call(this,d,f);var p=i(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return l.call(p,d,f).tz(this.$x.$timezone,!0)},i.tz=function(d,f,p){var h=p&&f,A=p||f||o,y=c(+i(),A);if(typeof d!="string")return i(d).tz(A);var v=function(N,T,B){var F=N-60*T*1e3,j=c(F,B);if(T===j)return[F,T];var H=c(F-=60*(j-T)*1e3,B);return j===H?[F,j]:[N-60*Math.min(j,H)*1e3,Math.max(j,H)]}(i.utc(d,h).valueOf(),y,A),b=v[0],x=v[1],O=i(b).utcOffset(x);return O.$x.$timezone=A,O},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(d){o=d}}})});var G7i=g(_A=>{"use strict";_A.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"};_A.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"]};_A.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]};_A.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};_A.iterateeRearg={mapKeys:[1],reduceRight:[1,0]};_A.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]};_A.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}};_A.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}};_A.realToAlias=function(){var e=Object.prototype.hasOwnProperty,t=_A.aliasToReal,r={};for(var n in t){var i=t[n];e.call(r,i)?r[i].push(n):r[i]=[n]}return r}();_A.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"};_A.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0};_A.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 DWt=g((Yvf,V7i)=>{"use strict";V7i.exports={}});var Y7i=g((Kvf,W7i)=>{"use strict";var bd=G7i(),Wel=DWt(),$7i=Array.prototype.push;function Yel(e,t){return t==2?function(r,n){return e.apply(void 0,arguments)}:function(r){return e.apply(void 0,arguments)}}s(Yel,"baseArity");function PWt(e,t){return t==2?function(r,n){return e(r,n)}:function(r){return e(r)}}s(PWt,"baseAry");function z7i(e){for(var t=e?e.length:0,r=Array(t);t--;)r[t]=e[t];return r}s(z7i,"cloneArray");function Kel(e){return function(t){return e({},t)}}s(Kel,"createCloner");function Jel(e,t){return function(){for(var r=arguments.length,n=r-1,i=Array(r);r--;)i[r]=arguments[r];var o=i[t],a=i.slice(0,t);return o&&$7i.apply(a,o),t!=n&&$7i.apply(a,i.slice(t+1)),e.apply(this,a)}}s(Jel,"flatSpread");function BWt(e,t){return function(){var r=arguments.length;if(r){for(var n=Array(r);r--;)n[r]=arguments[r];var i=n[0]=t.apply(void 0,n);return e.apply(void 0,n),i}}}s(BWt,"wrapImmutable");function MWt(e,t,r,n){var i=typeof t=="function",o=t===Object(t);if(o&&(n=r,r=t,t=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},c=i?r:Wel,u="curry"in n&&n.curry,l="fixed"in n&&n.fixed,d="rearg"in n&&n.rearg,f=i?r.runInContext():void 0,p=i?r:{ary:e.ary,assign:e.assign,clone:e.clone,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isError:e.isError,isFunction:e.isFunction,isWeakMap:e.isWeakMap,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,toInteger:e.toInteger,toPath:e.toPath},h=p.ary,A=p.assign,y=p.clone,v=p.curry,b=p.forEach,x=p.isArray,O=p.isError,N=p.isFunction,T=p.isWeakMap,B=p.keys,F=p.rearg,j=p.toInteger,H=p.toPath,z=B(bd.aryMethod),X={castArray:function(ce){return function(){var ee=arguments[0];return x(ee)?ce(z7i(ee)):ce.apply(void 0,arguments)}},iteratee:function(ce){return function(){var ee=arguments[0],ye=arguments[1],ge=ce(ee,ye),ve=ge.length;return a.cap&&typeof ye=="number"?(ye=ye>2?ye-2:1,ve&&ve<=ye?ge:PWt(ge,ye)):ge}},mixin:function(ce){return function(ee){var ye=this;if(!N(ye))return ce(ye,Object(ee));var ge=[];return b(B(ee),function(ve){N(ee[ve])&&ge.push([ve,ye.prototype[ve]])}),ce(ye,Object(ee)),b(ge,function(ve){var ht=ve[1];N(ht)?ye.prototype[ve[0]]=ht:delete ye.prototype[ve[0]]}),ye}},nthArg:function(ce){return function(ee){var ye=ee<0?1:j(ee)+1;return v(ce(ee),ye)}},rearg:function(ce){return function(ee,ye){var ge=ye?ye.length:0;return v(ce(ee,ye),ge)}},runInContext:function(ce){return function(ee){return MWt(e,ce(ee),n)}}};function ue(ce,ee){if(a.cap){var ye=bd.iterateeRearg[ce];if(ye)return fe(ee,ye);var ge=!i&&bd.iterateeAry[ce];if(ge)return $(ee,ge)}return ee}s(ue,"castCap");function L(ce,ee,ye){return u||a.curry&&ye>1?v(ee,ye):ee}s(L,"castCurry");function le(ce,ee,ye){if(a.fixed&&(l||!bd.skipFixed[ce])){var ge=bd.methodSpread[ce],ve=ge&&ge.start;return ve===void 0?h(ee,ye):Jel(ee,ve)}return ee}s(le,"castFixed");function W(ce,ee,ye){return a.rearg&&ye>1&&(d||!bd.skipRearg[ce])?F(ee,bd.methodRearg[ce]||bd.aryRearg[ye]):ee}s(W,"castRearg");function q(ce,ee){ee=H(ee);for(var ye=-1,ge=ee.length,ve=ge-1,ht=y(Object(ce)),je=ht;je!=null&&++ye<ge;){var Et=ee[ye],jt=je[Et];jt!=null&&!(N(jt)||O(jt)||T(jt))&&(je[Et]=y(ye==ve?jt:Object(jt))),je=je[Et]}return ht}s(q,"cloneByPath");function P(ce){return te.runInContext.convert(ce)(void 0)}s(P,"convertLib");function oe(ce,ee){var ye=bd.aliasToReal[ce]||ce,ge=bd.remap[ye]||ye,ve=n;return function(ht){var je=i?f:p,Et=i?f[ge]:ee,jt=A(A({},ve),ht);return MWt(je,ye,Et,jt)}}s(oe,"createConverter");function $(ce,ee){return Oe(ce,function(ye){return typeof ye=="function"?PWt(ye,ee):ye})}s($,"iterateeAry");function fe(ce,ee){return Oe(ce,function(ye){var ge=ee.length;return Yel(F(PWt(ye,ge),ee),ge)})}s(fe,"iterateeRearg");function Oe(ce,ee){return function(){var ye=arguments.length;if(!ye)return ce();for(var ge=Array(ye);ye--;)ge[ye]=arguments[ye];var ve=a.rearg?0:ye-1;return ge[ve]=ee(ge[ve]),ce.apply(void 0,ge)}}s(Oe,"overArg");function Me(ce,ee,ye){var ge,ve=bd.aliasToReal[ce]||ce,ht=ee,je=X[ve];return je?ht=je(ee):a.immutable&&(bd.mutate.array[ve]?ht=BWt(ee,z7i):bd.mutate.object[ve]?ht=BWt(ee,Kel(ee)):bd.mutate.set[ve]&&(ht=BWt(ee,q))),b(z,function(Et){return b(bd.aryMethod[Et],function(jt){if(ve==jt){var Rt=bd.methodSpread[ve],Ht=Rt&&Rt.afterRearg;return ge=Ht?le(ve,W(ve,ht,Et),Et):W(ve,le(ve,ht,Et),Et),ge=ue(ve,ge),ge=L(ve,ge,Et),!1}}),!ge}),ge||(ge=ht),ge==ee&&(ge=u?v(ge,1):function(){return ee.apply(this,arguments)}),ge.convert=oe(ve,ee),ge.placeholder=ee.placeholder=ye,ge}if(s(Me,"wrap"),!o)return Me(t,r,c);var te=r,Ae=[];return b(z,function(ce){b(bd.aryMethod[ce],function(ee){var ye=te[bd.remap[ee]||ee];ye&&Ae.push([ee,Me(ee,ye,te)])})}),b(B(te),function(ce){var ee=te[ce];if(typeof ee=="function"){for(var ye=Ae.length;ye--;)if(Ae[ye][0]==ce)return;ee.convert=oe(ce,ee),Ae.push([ce,ee])}}),b(Ae,function(ce){te[ce[0]]=ce[1]}),te.convert=P,te.placeholder=te,b(B(te),function(ce){b(bd.realToAlias[ce]||[],function(ee){te[ee]=te[ce]})}),te}s(MWt,"baseConvert");W7i.exports=MWt});var LWt=g((Xvf,J7i)=>{"use strict";var K7i=p3e(),Xel=K7i&&new K7i;J7i.exports=Xel});var UWt=g((Zvf,Z7i)=>{"use strict";var Zel=Tp(),X7i=LWt(),etl=X7i?function(e,t){return X7i.set(e,t),e}:Zel;Z7i.exports=etl});var Nle=g((e0f,eJi)=>{"use strict";var ttl=bY(),rtl=og();function ntl(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=ttl(e.prototype),n=e.apply(r,t);return rtl(n)?n:r}}s(ntl,"createCtor");eJi.exports=ntl});var rJi=g((r0f,tJi)=>{"use strict";var itl=Nle(),stl=Fh(),otl=1;function atl(e,t,r){var n=t&otl,i=itl(e);function o(){var a=this&&this!==stl&&this instanceof o?i:e;return a.apply(n?r:this,arguments)}return s(o,"wrapper"),o}s(atl,"createBind");tJi.exports=atl});var qWt=g((i0f,nJi)=>{"use strict";var ctl=Math.max;function utl(e,t,r,n){for(var i=-1,o=e.length,a=r.length,c=-1,u=t.length,l=ctl(o-a,0),d=Array(u+l),f=!n;++c<u;)d[c]=t[c];for(;++i<a;)(f||i<o)&&(d[r[i]]=e[i]);for(;l--;)d[c++]=e[i++];return d}s(utl,"composeArgs");nJi.exports=utl});var FWt=g((o0f,iJi)=>{"use strict";var ltl=Math.max;function dtl(e,t,r,n){for(var i=-1,o=e.length,a=-1,c=r.length,u=-1,l=t.length,d=ltl(o-c,0),f=Array(d+l),p=!n;++i<d;)f[i]=e[i];for(var h=i;++u<l;)f[h+u]=t[u];for(;++a<c;)(p||i<o)&&(f[h+r[a]]=e[i++]);return f}s(dtl,"composeArgsRight");iJi.exports=dtl});var oJi=g((c0f,sJi)=>{"use strict";function ftl(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}s(ftl,"countHolders");sJi.exports=ftl});var Lje=g((l0f,aJi)=>{"use strict";function ptl(){}s(ptl,"baseLodash");aJi.exports=ptl});var qje=g((f0f,cJi)=>{"use strict";var htl=bY(),mtl=Lje(),gtl=4294967295;function Uje(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=gtl,this.__views__=[]}s(Uje,"LazyWrapper");Uje.prototype=htl(mtl.prototype);Uje.prototype.constructor=Uje;cJi.exports=Uje});var QWt=g((h0f,lJi)=>{"use strict";var uJi=LWt(),Atl=q$t(),ytl=uJi?function(e){return uJi.get(e)}:Atl;lJi.exports=ytl});var fJi=g((m0f,dJi)=>{"use strict";var _tl={};dJi.exports=_tl});var mJi=g((g0f,hJi)=>{"use strict";var pJi=fJi(),Etl=Object.prototype,btl=Etl.hasOwnProperty;function Stl(e){for(var t=e.name+"",r=pJi[t],n=btl.call(pJi,t)?r.length:0;n--;){var i=r[n],o=i.func;if(o==null||o==e)return i.name}return t}s(Stl,"getFuncName");hJi.exports=Stl});var jWt=g((y0f,gJi)=>{"use strict";var vtl=bY(),wtl=Lje();function Fje(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}s(Fje,"LodashWrapper");Fje.prototype=vtl(wtl.prototype);Fje.prototype.constructor=Fje;gJi.exports=Fje});var yJi=g((E0f,AJi)=>{"use strict";var Ttl=qje(),Ctl=jWt(),Itl=B2();function xtl(e){if(e instanceof Ttl)return e.clone();var t=new Ctl(e.__wrapped__,e.__chain__);return t.__actions__=Itl(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}s(xtl,"wrapperClone");AJi.exports=xtl});var bJi=g((S0f,EJi)=>{"use strict";var Rtl=qje(),_Ji=jWt(),Otl=Lje(),ktl=Yo(),Ntl=sg(),Dtl=yJi(),Ptl=Object.prototype,Btl=Ptl.hasOwnProperty;function Qje(e){if(Ntl(e)&&!ktl(e)&&!(e instanceof Rtl)){if(e instanceof _Ji)return e;if(Btl.call(e,"__wrapped__"))return Dtl(e)}return new _Ji(e)}s(Qje,"lodash");Qje.prototype=Otl.prototype;Qje.prototype.constructor=Qje;EJi.exports=Qje});var vJi=g((w0f,SJi)=>{"use strict";var Mtl=qje(),Ltl=QWt(),Utl=mJi(),qtl=bJi();function Ftl(e){var t=Utl(e),r=qtl[t];if(typeof r!="function"||!(t in Mtl.prototype))return!1;if(e===r)return!0;var n=Ltl(r);return!!n&&e===n[0]}s(Ftl,"isLaziable");SJi.exports=Ftl});var HWt=g((C0f,wJi)=>{"use strict";var Qtl=UWt(),jtl=qGe(),Htl=jtl(Qtl);wJi.exports=Htl});var CJi=g((I0f,TJi)=>{"use strict";var Gtl=/\{\n\/\* \[wrapped with (.+)\] \*/,Vtl=/,? & /;function $tl(e){var t=e.match(Gtl);return t?t[1].split(Vtl):[]}s($tl,"getWrapDetails");TJi.exports=$tl});var xJi=g((R0f,IJi)=>{"use strict";var ztl=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function Wtl(e,t){var r=t.length;if(!r)return e;var n=r-1;return t[n]=(r>1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(ztl,`{
|
|
1442
1442
|
/* [wrapped with `+t+`] */
|
|
1443
1443
|
`)}s(Wtl,"insertWrapDetails");IJi.exports=Wtl});var OJi=g((k0f,RJi)=>{"use strict";var Ytl=_Y(),Ktl=KBe(),Jtl=1,Xtl=2,Ztl=8,erl=16,trl=32,rrl=64,nrl=128,irl=256,srl=512,orl=[["ary",nrl],["bind",Jtl],["bindKey",Xtl],["curry",Ztl],["curryRight",erl],["flip",srl],["partial",trl],["partialRight",rrl],["rearg",irl]];function arl(e,t){return Ytl(orl,function(r){var n="_."+r[0];t&r[1]&&!Ktl(e,n)&&e.push(n)}),e.sort()}s(arl,"updateWrapDetails");RJi.exports=arl});var GWt=g((D0f,kJi)=>{"use strict";var crl=CJi(),url=xJi(),lrl=qde(),drl=OJi();function frl(e,t,r){var n=t+"";return lrl(e,url(n,drl(crl(n),r)))}s(frl,"setWrapToString");kJi.exports=frl});var VWt=g((B0f,PJi)=>{"use strict";var prl=vJi(),hrl=HWt(),mrl=GWt(),grl=1,Arl=2,yrl=4,_rl=8,NJi=32,DJi=64;function Erl(e,t,r,n,i,o,a,c,u,l){var d=t&_rl,f=d?a:void 0,p=d?void 0:a,h=d?o:void 0,A=d?void 0:o;t|=d?NJi:DJi,t&=~(d?DJi:NJi),t&yrl||(t&=~(grl|Arl));var y=[e,t,i,h,f,A,p,c,u,l],v=r.apply(void 0,y);return prl(e)&&hrl(v,y),v.placeholder=n,mrl(v,e,t)}s(Erl,"createRecurry");PJi.exports=Erl});var $Wt=g((L0f,BJi)=>{"use strict";function brl(e){var t=e;return t.placeholder}s(brl,"getHolder");BJi.exports=brl});var LJi=g((q0f,MJi)=>{"use strict";var Srl=B2(),vrl=Nj(),wrl=Math.min;function Trl(e,t){for(var r=e.length,n=wrl(t.length,r),i=Srl(e);n--;){var o=t[n];e[n]=vrl(o,r)?i[o]:void 0}return e}s(Trl,"reorder");MJi.exports=Trl});var jje=g((Q0f,qJi)=>{"use strict";var UJi="__lodash_placeholder__";function Crl(e,t){for(var r=-1,n=e.length,i=0,o=[];++r<n;){var a=e[r];(a===t||a===UJi)&&(e[r]=UJi,o[i++]=r)}return o}s(Crl,"replaceHolders");qJi.exports=Crl});var zWt=g((H0f,jJi)=>{"use strict";var Irl=qWt(),xrl=FWt(),Rrl=oJi(),FJi=Nle(),Orl=VWt(),krl=$Wt(),Nrl=LJi(),Drl=jje(),Prl=Fh(),Brl=1,Mrl=2,Lrl=8,Url=16,qrl=128,Frl=512;function QJi(e,t,r,n,i,o,a,c,u,l){var d=t&qrl,f=t&Brl,p=t&Mrl,h=t&(Lrl|Url),A=t&Frl,y=p?void 0:FJi(e);function v(){for(var b=arguments.length,x=Array(b),O=b;O--;)x[O]=arguments[O];if(h)var N=krl(v),T=Rrl(x,N);if(n&&(x=Irl(x,n,i,h)),o&&(x=xrl(x,o,a,h)),b-=T,h&&b<l){var B=Drl(x,N);return Orl(e,t,QJi,v.placeholder,r,x,B,c,u,l-b)}var F=f?r:this,j=p?F[e]:e;return b=x.length,c?x=Nrl(x,c):A&&b>1&&x.reverse(),d&&u<b&&(x.length=u),this&&this!==Prl&&this instanceof v&&(j=y||FJi(j)),j.apply(F,x)}return s(v,"wrapper"),v}s(QJi,"createHybrid");jJi.exports=QJi});var GJi=g((V0f,HJi)=>{"use strict";var Qrl=G5(),jrl=Nle(),Hrl=zWt(),Grl=VWt(),Vrl=$Wt(),$rl=jje(),zrl=Fh();function Wrl(e,t,r){var n=jrl(e);function i(){for(var o=arguments.length,a=Array(o),c=o,u=Vrl(i);c--;)a[c]=arguments[c];var l=o<3&&a[0]!==u&&a[o-1]!==u?[]:$rl(a,u);if(o-=l.length,o<r)return Grl(e,t,Hrl,i.placeholder,void 0,a,l,void 0,void 0,r-o);var d=this&&this!==zrl&&this instanceof i?n:e;return Qrl(d,this,a)}return s(i,"wrapper"),i}s(Wrl,"createCurry");HJi.exports=Wrl});var $Ji=g((z0f,VJi)=>{"use strict";var Yrl=G5(),Krl=Nle(),Jrl=Fh(),Xrl=1;function Zrl(e,t,r,n){var i=t&Xrl,o=Krl(e);function a(){for(var c=-1,u=arguments.length,l=-1,d=n.length,f=Array(d+u),p=this&&this!==Jrl&&this instanceof a?o:e;++l<d;)f[l]=n[l];for(;u--;)f[l++]=arguments[++c];return Yrl(p,i?r:this,f)}return s(a,"wrapper"),a}s(Zrl,"createPartial");VJi.exports=Zrl});var XJi=g((Y0f,JJi)=>{"use strict";var enl=qWt(),tnl=FWt(),zJi=jje(),WJi="__lodash_placeholder__",WWt=1,rnl=2,nnl=4,YJi=8,Dle=128,KJi=256,inl=Math.min;function snl(e,t){var r=e[1],n=t[1],i=r|n,o=i<(WWt|rnl|Dle),a=n==Dle&&r==YJi||n==Dle&&r==KJi&&e[7].length<=t[8]||n==(Dle|KJi)&&t[7].length<=t[8]&&r==YJi;if(!(o||a))return e;n&WWt&&(e[2]=t[2],i|=r&WWt?0:nnl);var c=t[3];if(c){var u=e[3];e[3]=u?enl(u,c,t[4]):c,e[4]=u?zJi(e[3],WJi):t[4]}return c=t[5],c&&(u=e[5],e[5]=u?tnl(u,c,t[6]):c,e[6]=u?zJi(e[5],WJi):t[6]),c=t[7],c&&(e[7]=c),n&Dle&&(e[8]=e[8]==null?t[8]:inl(e[8],t[8])),e[9]==null&&(e[9]=t[9]),e[0]=t[0],e[1]=i,e}s(snl,"mergeData");JJi.exports=snl});var Hje=g((J0f,nXi)=>{"use strict";var onl=UWt(),anl=rJi(),cnl=GJi(),unl=zWt(),lnl=$Ji(),dnl=QWt(),fnl=XJi(),pnl=HWt(),hnl=GWt(),ZJi=IY(),mnl="Expected a function",eXi=1,gnl=2,YWt=8,KWt=16,JWt=32,tXi=64,rXi=Math.max;function Anl(e,t,r,n,i,o,a,c){var u=t&gnl;if(!u&&typeof e!="function")throw new TypeError(mnl);var l=n?n.length:0;if(l||(t&=~(JWt|tXi),n=i=void 0),a=a===void 0?a:rXi(ZJi(a),0),c=c===void 0?c:ZJi(c),l-=i?i.length:0,t&tXi){var d=n,f=i;n=i=void 0}var p=u?void 0:dnl(e),h=[e,t,r,n,i,d,f,o,a,c];if(p&&fnl(h,p),e=h[0],t=h[1],r=h[2],n=h[3],i=h[4],c=h[9]=h[9]===void 0?u?0:e.length:rXi(h[9]-l,0),!c&&t&(YWt|KWt)&&(t&=~(YWt|KWt)),!t||t==eXi)var A=anl(e,t,r);else t==YWt||t==KWt?A=cnl(e,t,c):(t==JWt||t==(eXi|JWt))&&!i.length?A=lnl(e,t,r,n):A=unl.apply(void 0,h);var y=p?onl:pnl;return hnl(y(A,h),e,t)}s(Anl,"createWrap");nXi.exports=Anl});var sXi=g((Z0f,iXi)=>{"use strict";var ynl=Hje(),_nl=128;function Enl(e,t,r){return t=r?void 0:t,t=e&&t==null?e.length:t,ynl(e,_nl,void 0,void 0,void 0,void 0,t)}s(Enl,"ary");iXi.exports=Enl});var aXi=g((twf,oXi)=>{"use strict";var bnl=Hje(),Snl=8;function XWt(e,t,r){t=r?void 0:t;var n=bnl(e,Snl,void 0,void 0,void 0,void 0,void 0,t);return n.placeholder=XWt.placeholder,n}s(XWt,"curry");XWt.placeholder={};oXi.exports=XWt});var uXi=g((nwf,cXi)=>{"use strict";var vnl=DO(),wnl=sg(),Tnl="[object WeakMap]";function Cnl(e){return wnl(e)&&vnl(e)==Tnl}s(Cnl,"isWeakMap");cXi.exports=Cnl});var dXi=g((swf,lXi)=>{"use strict";var Inl=HBe(),xnl=cg(),Rnl=1;function Onl(e){return xnl(typeof e=="function"?e:Inl(e,Rnl))}s(Onl,"iteratee");lXi.exports=Onl});var pXi=g((awf,fXi)=>{"use strict";var knl=Hje(),Nnl=FGe(),Dnl=256,Pnl=Nnl(function(e,t){return knl(e,Dnl,void 0,void 0,void 0,t)});fXi.exports=Pnl});var mXi=g((cwf,hXi)=>{"use strict";var Bnl=RO(),Mnl=B2(),Lnl=Yo(),Unl=CO(),qnl=kGe(),Fnl=SB(),Qnl=Jv();function jnl(e){return Lnl(e)?Bnl(e,Fnl):Unl(e)?[e]:Mnl(qnl(Qnl(e)))}s(jnl,"toPath");hXi.exports=jnl});var AXi=g((lwf,gXi)=>{"use strict";gXi.exports={ary:sXi(),assign:MUt(),clone:tae(),curry:aXi(),forEach:_Y(),isArray:Yo(),isError:XBe(),isFunction:xj(),isWeakMap:uXi(),iteratee:dXi(),keys:Yde(),rearg:pXi(),toInteger:IY(),toPath:mXi()}});var _Xi=g((dwf,yXi)=>{"use strict";var Hnl=Y7i(),Gnl=AXi();function Vnl(e,t,r){return Hnl(Gnl,e,t,r)}s(Vnl,"convert");yXi.exports=Vnl});var bXi=g((pwf,EXi)=>{"use strict";EXi.exports={cap:!1,curry:!1,fixed:!1,immutable:!1,rearg:!1}});var wXi=g((hwf,vXi)=>{"use strict";var $nl=_Xi(),SXi=$nl("cloneDeep",FUt(),bXi());SXi.placeholder=DWt();vXi.exports=SXi});process.env.DISABLE_PINO_LOGGER="1";process.env.NO_JS="1";process.env.DISABLE_JWT_WARNING="1";Id();var Wv=class{static{s(this,"Command")}constructor(t,r){this.command=t,this.opts=[],this.func=r}convertToCommander(t){let r=t.toLowerCase().split("-");return[r.shift()].concat(r.map(i=>XHe(i))).join("")}addHelp(t){return this.help=t,this}addSubOption(t,r,n,i=[]){return this.opts.push({command:t,help:r,func:n,extras:i}),this}configure(t){let r=this,n=t.command(r.command);this.help&&(n=n.description(T5(r.help)));let i=new Set;for(let o of r.opts){n=n.option(o.command,C5(o.help));for(let a of o.extras)!a?.command||i.has(a.command)||(i.add(a.command),n=n.option(a.command,C5(a.help)))}n.helpOption("-h, --help",C5(`Get help with ${this.command} options`)),n.action(async o=>{try{let a=!1,c=!1;for(let u of r.opts){let l=u.command.split(" ")[0].replace("--","");if(l=this.convertToCommander(l),c=!a&&!!o[l],c&&u.func){let d=Object.keys(o).length>1?o:o[l];await u.func(d),a=!0}}c&&!a?console.log(Wo(`${Object.keys(o)[0]} is an option, not an operation.`)):a||(console.log(Wo(`Unknown ${this.command} option.`)),n.help())}catch(a){console.log(Wo(a))}})}};TO();Id();var nJt=require("posthog-node");TO();var bde=require("fs"),hos=require("path"),mos=require("os"),{error:gos}=(Id(),Dt(ZHe)),Sde=class{static{s(this,"ConfigManager")}constructor(){this.path=hos.join(mos.homedir(),".budibase.json"),bde.existsSync(this.path)||bde.writeFileSync(this.path,"{}")}get config(){try{return JSON.parse(bde.readFileSync(this.path,"utf8"))}catch{return console.log(gos("Error parsing configuration file. Please check your .budibase.json is valid.")),{}}}set config(t){bde.writeFileSync(this.path,JSON.stringify(t))}getValue(t){return this.config[t]}setValue(t,r){this.config={...this.config,[t]:r}}removeKey(t){let r={...this.config};delete r[t],this.config=r}};var vj=class{static{s(this,"AnalyticsClient")}constructor(){this.client=new nJt.PostHog(fGe,{}),this.configManager=new Sde}capture(t){this.configManager.config.analyticsDisabled||this.client.capture(t)}enable(){this.configManager.removeKey("analyticsDisabled"),this.client.capture({event:gC.OptIn,distinctId:"cli"})}disable(){this.client.capture({event:gC.OptOut,distinctId:"cli"}),this.configManager.setValue("analyticsDisabled",!0)}status(){return this.configManager.config.analyticsDisabled?"disabled":"enabled"}};var hGe=new vj;async function Aos(){try{hGe.disable(),console.log(Sa("Successfully opted out of Budibase analytics. You can opt in at any time by running 'budi analytics opt-in'"))}catch(e){console.log(Wo(`Error opting out of Budibase analytics. Please try again later - ${e}`))}}s(Aos,"optOut");async function yos(){try{hGe.enable(),console.log(Sa("Successfully opted in to Budibase analytics. Thank you for helping us make Budibase better!"))}catch{console.log(Wo("Error opting in to Budibase analytics. Please try again later."))}}s(yos,"optIn");async function _os(){try{console.log(Sa(`Budibase analytics ${hGe.status()}`))}catch{console.log(Wo("Error fetching analytics status. Please try again later."))}}s(_os,"status");var iJt=new Wv("analytics").addHelp("Control the analytics you send to Budibase.").addSubOption("--optin","Opt in to sending analytics to Budibase",yos).addSubOption("--optout","Opt out of sending analytics to Budibase.",Aos).addSubOption("--status","Check whether you are currently opted in to Budibase analytics.",_os);TO();TO();bB();var bos=new vj;function vde(e,t){bos.capture({distinctId:"cli",event:e,properties:t})}s(vde,"captureEvent");M5();Id();_C();var _Jt=require("path"),EJt=Le(require("fs"));Id();_C();async function Cde(e,t){let r="/plugins";if(e=(0,_Jt.resolve)(e),!EJt.default.existsSync(e)){console.log(Wo(`The directory "${e}" does not exist, please create and then try again.`));return}_Ge(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(`${e}:${r}`)}),t||console.log(Sa(`Docker compose configured to watch directory: ${e}`))}s(Cde,"watchPlugins");var{success:Tos}=(Id(),Dt(ZHe)),{updateDockerComposeService:Cos}=(_C(),Dt(uJt)),Ios=require("randomstring"),{GENERATED_USER_EMAIL:xos}=(TO(),Dt(rJt));async function Ide(e,t){let r=xos;e||(e=Ios.generate({length:6})),Cos(n=>{n.environment.BB_ADMIN_USER_EMAIL=r,n.environment.BB_ADMIN_USER_PASSWORD=e}),t||console.log(Tos(`User admin credentials configured, access with email: ${r} - password: ${e}`))}s(Ide,"generateUser");var bJt=Le(require("node-fetch"));var Ros="http://169.254.169.254/metadata/v1/user-data";async function Oos(e,t,r){let n=t?pJt:{};if(e==="do")try{let o=await(await(0,bJt.default)(Ros)).text(),a=YHe(o);for(let[c,u]of Object.entries(wGe))a[c]&&(n[u]=a[c])}catch{}return r&&(n[wGe.MAIN_PORT]=r),n}s(Oos,"getInitConfig");async function xde(e){let t,r,n,i,o,a;typeof e=="string"?t=e:(t=e.init,r=e.single,n=e.watchPluginDir,i=e.genUser,o=e.port,a=e.silent);let c=t==="quick"||t==="do";if(await Lb(),!c&&!await Yv("This will create multiple files in current directory, should continue?")){console.log("Stopping.");return}vde(gC.SelfHostInit,{type:t});let u=await Oos(t,c,o);r?await gJt(u,a):(await P5(),await mJt(u,a)),n&&await Cde(n,a),i&&await Ide(typeof i=="string"?i:null,a)}s(xde,"init");_C();Id();M5();var SJt=Le(require("docker-compose")),vJt=Le(require("fs"));bB();var kos=require("open");async function Cj(){await Lb(),AC(),console.log(yi("Starting services, this may take a moment - first time this may take a few minutes to download images."));let e;vJt.default.existsSync(Tj)?e=AJt("MAIN_PORT"):e=yJt("port"),await yC(async()=>{await SJt.default.upAll({cwd:"./",log:!0})}),await Yv(`Do you wish to open http://localhost:${e} ?`)&&await kos(`http://localhost:${e}`),console.log(Sa(`Services started, please go to http://localhost:${e} for next steps.`))}s(Cj,"start");_C();Id();var wJt=Le(require("docker-compose"));async function TJt(){await Lb(),AC(),console.log(yi("Stopping services, this may take a moment.")),await yC(async()=>{await wJt.default.stop()}),console.log(Sa("Services have been stopped successfully."))}s(TJt,"stop");_C();Id();var CJt=Le(require("docker-compose"));async function IJt(){await Lb(),AC(),console.log(yi("Budibase status")),await yC(async()=>{let e=await CJt.default.ps();console.log(e.out)})}s(IJt,"status");_C();bB();var Rde=Le(require("docker-compose"));M5();Id();var Nos=["app-service","worker-service","proxy-service","couchdb-service"],Dos=["budibase"];async function xJt(){let{services:e}=B5(wj),t=Object.keys(e).length===1;if(await Lb(),AC(),!t&&await Yv("Do you wish to update you docker-compose.yaml?")){let r=await wde("minio");await P5(),yGe("minio",r)}await yC(async()=>{let n=(await Rde.default.ps()).out.split(`
|
|
1444
|
-
`),i=n[2]&&n[2].indexOf("Up")!==-1;i&&(console.log(yi("Stopping services, this may take a moment.")),await Rde.default.stop()),console.log(yi("Beginning update, this may take a few minutes."));let o;t?o=Dos:o=Nos,await Rde.default.pullMany(o,{log:!0}),i&&(console.log(Sa("Update complete, restarting services...")),await Cj())})}s(xJt,"update");var RJt=new Wv("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 'single'.",xde).addSubOption("--start","Start the configured platform in current directory.",Cj).addSubOption("--status","Check the status of currently running services.",IJt).addSubOption("--stop","Stop the configured platform in the current directory.",TJt).addSubOption("--update","Update the Budibase images to the latest version.",xJt).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",Cde).addSubOption("--gen-user","Create an admin user automatically as part of first start.",Ide).addSubOption("--single","Specify this with init to use the single image.");TO();var Cb=Le(require("fs")),HQ=require("path");var Ode=Le(require("pouchdb"));Id();var OJt=Le(require("node-fetch"));function kde(e){let t;e?t={prefix:e}:t={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return Ode.default.plugin(r.plugin),Ode.default.adapter("writableStream",r.adapters.writableStream),Ode.default.defaults(t)}s(kde,"getPouch");async function kJt(e){let t=await(0,OJt.default)(KHe(encodeURI(`${e}/_all_dbs`)),{method:"GET"});if(t.status===200)return await t.json();throw"Cannot connect to CouchDB instance"}s(kJt,"getAllDbs");Id();var I8i=Le(require("dotenv")),I4t=Le(require("fs"));bB();Ut();Ut();var Ij={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Nde={ACCOUNT:"/portal/account",BILLING:"/portal/billing",UPGRADE:"/portal/upgrade"};var xA={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"}},NJt={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var sH={};Is(sH,{ColumnSplitter:()=>YVe,NoEmptyFilterStrings:()=>Uor,buildQuery:()=>qor,cleanupQuery:()=>XVe,fixupFilterArrays:()=>e$e,getKeyNumbering:()=>ZVe,getValidOperatorsForType:()=>LSs,hasFilters:()=>KVe,limit:()=>Qor,recurseLogicalOperators:()=>JVe,removeKeyNumbering:()=>Fde,runQuery:()=>Bfe,search:()=>FSs,sort:()=>For,splitFiltersArray:()=>Qde});Ut();var iH=Le(IGe());var OO={};Is(OO,{filterValueToLabel:()=>Tls,hasSchema:()=>Cls,isSupportedUserSearch:()=>GZt,nameToUrl:()=>kls,parallelForeach:()=>wls,processSearchFilters:()=>QGe,toMap:()=>xls,trimOtherProps:()=>Ils,unreachable:()=>vls});Ut();var HZt=Le(QZt());var Sls=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function vls(e,t){let r=t?.message||`No such case in exhaustive switch: ${e}`;if(!!!t?.doNotThrow)throw new Error(r)}s(vls,"unreachable");async function wls(e,t,r){let n=[],i=Symbol.asyncIterator in e,o=i?e[Symbol.asyncIterator]():e[Symbol.iterator](),a=s(async()=>{let c=await(i?o.next():Promise.resolve(o.next()));for(;!c.done;)await t(c.value),c=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let c=0;c<r;c++)n.push(a());await Promise.all(n)}s(wls,"parallelForeach");function Tls(){return Object.keys(xA).reduce((e,t)=>{let n=xA[t];return e[n.value]=n.label,e},{})}s(Tls,"filterValueToLabel");function Cls(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null&&!(e instanceof Date)&&Object.keys(e).length>0}s(Cls,"hasSchema");function Ils(e,t){return Object.keys(e).filter(n=>t.includes(n)).reduce((n,i)=>({...n,[i]:e[i]}),{})}s(Ils,"trimOtherProps");function GZt(e){let t=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=e;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(_de(o)){for(let l of e[o].conditions)if(!GZt(l))return!1;return!0}let c=Object.keys(a||{});if(c.length===0)continue;if(!t.find(l=>l.op===o&&c.length===1&&c[0]===l.key))return!1}return!0}s(GZt,"isSupportedUserSearch");function QGe(e){if(!e||e.length===0)return;let{allOr:t,onEmptyFilter:r,filters:n}=Qde(e);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:t?"any":"all",filters:n.map(i=>{let o=(0,HZt.default)(i,Sls);return o.field=Fde(o.field),o})}]}}s(QGe,"processSearchFilters");function xls(e,t){return t.reduce((r,n)=>(r[n[e]]=n,r),{})}s(xls,"toMap");var Rls=s(e=>e?e.trim():null,"resolveWorkspaceName"),Ols=s(e=>{let t,r=Rls(e);t=r?r.toLowerCase():"";let n=t?t.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),kls=s(e=>{let t=Ols(e);return Nls(t)},"nameToUrl"),Nls=s(e=>(e&&!e.startsWith("/")&&(e=`/${e}`),e===""?null:e),"tidyUrl");var RC={};Is(RC,{accountPortalAccountUrl:()=>Ior,accountPortalBillingUrl:()=>xor,accountPortalUpgradeUrl:()=>Ror,builderAppsUrl:()=>Por,builderSettingsAuthUrl:()=>Nor,builderSettingsEmailUrl:()=>kor,builderSettingsPeopleUsersUrl:()=>Dor,builderWorkspacesUrl:()=>Oor,cancelableTimeout:()=>VZt,cron:()=>ESs,deepGet:()=>jGe,duplicateName:()=>hSs,formatBytes:()=>_Ss,getSequentialName:()=>mSs,getUserColor:()=>Pls,getUserInitials:()=>Dls,getUserLabel:()=>Bls,isGoogleSheets:()=>Uls,isSQL:()=>qls,lists:()=>zVe,retry:()=>Fls,roles:()=>$Ve,schema:()=>UK,structuredOutput:()=>FVe,urlHelpers:()=>ySs,views:()=>VVe,wait:()=>HGe,withTimeout:()=>Mls});var jGe=s((e,t)=>{if(!e||!t)return null;if(Object.prototype.hasOwnProperty.call(e,t))return e[t];let r=t.split(".");for(let n=0;n<r.length;n++)e=e?.[r[n]];return e},"deepGet"),Dls=s(e=>{if(!e)return"?";let t="";return t+=e.firstName?e.firstName[0]:"",t+=e.lastName?e.lastName[0]:"",t!==""?t:e.email?.[0]||"U"},"getUserInitials"),Pls=s(e=>{let t=e?._id;if(!t)return"var(--spectrum-global-color-blue-400)";t=t.replace("ro_ta_users_","");let r=1;for(let n=0;n<t.length;n++)r+=t.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),Bls=s(e=>{if(!e)return"";let{firstName:t,lastName:r,email:n}=e;return t&&r?`${t} ${r}`:t||r||n},"getUserLabel");function VZt(e){let t;return[new Promise((r,n)=>{t=setTimeout(()=>{n({status:301,errno:"ETIME"})},e)}),()=>{clearTimeout(t)}]}s(VZt,"cancelableTimeout");async function Mls(e,t){let[r,n]=VZt(e),i=await Promise.race([t(),r]);return n(),i}s(Mls,"withTimeout");Ut();function Uls(e){return e==="GOOGLE_SHEETS"}s(Uls,"isGoogleSheets");function qls(e){return!e||!e.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(e.source)!==-1||e.isSQL===!0}s(qls,"isSQL");async function HGe(e){return new Promise(t=>setTimeout(t,e))}s(HGe,"wait");async function Fls(e,t){let{times:r=3}=t||{};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 HGe(o);try{return await e()}catch(a){n=a}}throw n}s(Fls,"retry");var hor=Le(Xv()),mor=Le(dor());var por="(Input cron: ",Cbs={"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 Ibs(e){let t=[];for(let r of e){r.includes(por)&&(r=r.split(por)[0].trim());for(let[n,i]of Object.entries(Cbs))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));t.push(r)}return t}s(Ibs,"improveErrors");function gor(e,t=4){let r=mor.default.parseExpression(e),n=[];for(let i=0;i<t;i++)n.push(r.next().toString());return n}s(gor,"getNextExecutionDates");function Aor(e){let t=(0,hor.default)(e,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return t.isValid()?{valid:!0}:{valid:!1,err:Ibs(t.getError())}}s(Aor,"validate");var UK={};Is(UK,{decodeNonAscii:()=>qVe,encodeNonAscii:()=>Obs,isDeprecatedSingleUserColumn:()=>xbs,isNumeric:()=>kbs,isRequired:()=>Rbs});Ut();function xbs(e){return e.type==="bb_reference"&&e.subtype==="user"&&e.constraints?.type!=="array"}s(xbs,"isDeprecatedSingleUserColumn");function Rbs(e){return!!e&&(typeof e.presence!="boolean"&&e.presence?.allowEmpty===!1||e.presence===!0)}s(Rbs,"isRequired");function Obs(e){return e.split("").map(t=>t.charCodeAt(0)>127?"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0"):t).join("")}s(Obs,"encodeNonAscii");function qVe(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}s(qVe,"decodeNonAscii");function kbs(e){return e.type==="number"||e.type==="bigint"}s(kbs,"isNumeric");var FVe={};Is(FVe,{normalizeSchemaForStructuredOutput:()=>Nbs});function Nbs(e){function t(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=[],c={};for(let[d,f]of Object.entries(o))if(typeof f=="object"&&f!==null){let p=f;if(p.required===!0){a.push(d);let{required:h,...A}=p;c[d]=t(A)}else c[d]=t(p)}else c[d]=f;i.properties=c;let u=Array.isArray(i.required)?i.required:[],l=[...new Set([...u,...a])];l.length>0?i.required=l:i.required=Object.keys(c)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=t(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>t(a)));return i}s(t,"processSchema");let r=t(e);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(Nbs,"normalizeSchemaForStructuredOutput");var VVe={};Is(VVe,{basicFields:()=>uSs,calculationFields:()=>cSs,hasCalculationFields:()=>aSs,isBasicViewField:()=>sSs,isCalculationField:()=>qK,isCalculationView:()=>oSs,isV2:()=>lSs,isVisible:()=>Cor});Ut();var GVe=Le(HVe());function qK(e){return"calculationType"in e}s(qK,"isCalculationField");function sSs(e){return!qK(e)}s(sSs,"isBasicViewField");function oSs(e){return e.type==="calculation"}s(oSs,"isCalculationView");function aSs(e){return Object.values(e.schema||{}).some(qK)}s(aSs,"hasCalculationFields");function cSs(e){return(0,GVe.default)(e.schema||{},qK)}s(cSs,"calculationFields");function Cor(e){return e.visible!==!1}s(Cor,"isVisible");function uSs(e,t){let{visible:r=!0}=t||{};return(0,GVe.default)(e.schema||{},n=>!qK(n)&&(!r||Cor(n)))}s(uSs,"basicFields");function lSs(e){return e.version===2}s(lSs,"isV2");var $Ve={};Is($Ve,{checkForRoleInheritanceLoops:()=>fSs});Ut();function dSs(e){return`role${rs}${e}`}s(dSs,"prefixForCheck");function fSs(e){let t=new Map;e.forEach(o=>{t.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=dSs(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let c=t.get(a)||t.get(o);if(!c)return n.delete(o),!1;let u=Array.isArray(c.inherits)?c.inherits:[c.inherits];for(let l of u)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!e.find(o=>i(o._id))}s(fSs,"checkForRoleInheritanceLoops");var zVe={};Is(zVe,{punctuateList:()=>pSs});function pSs(e){return e.length===0?"":e.length===1?e[0]:e.length===2?e.join(" and "):e.slice(0,-1).join(", ")+" and "+e[e.length-1]}s(pSs,"punctuateList");var hSs=s((e,t)=>{let r=new RegExp("\\s(\\d+)$"),n=e.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];t.filter(c=>{if(c===n)return!0;let u=c.match(i);return u?(o.push(parseInt(u[1])),!0):!1}),o.sort((c,u)=>c-u);let a;if(o.length===0)a=1;else{for(let c=0;c<o.length;c++)if(o[c]!==c+1){a=c+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),mSs=s((e,t,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!t?.length)return"";let o=t.trim(),a=n?`${t}1`:o;if(!e?.length)return a;let c=0;return e.forEach(u=>{let l=r?.(u)??u;if(typeof l!="string"||!l.startsWith(o))return;let d=l.split(o);if(d.length!==2)return;d[1].trim()===""&&(d[1]="1");let f=parseInt(d[1]);f>c&&(c=f)}),c===0?a:`${t}${i}${c+1}`},"getSequentialName");var gSs=s(e=>e?e.startsWith("/")?e:`/${e}`:"","normalizePath"),ASs=s(e=>e?e.endsWith("/")?e.slice(0,-1):e:"","normalizeBase"),FO=s((e,t)=>{let r=gSs(t);if(!e)return r;let n=ASs(e);return r?`${n}${r}`:n},"joinBaseAndPath"),Ior=s(e=>FO(e,Nde.ACCOUNT),"accountPortalAccountUrl"),xor=s(e=>FO(e,Nde.BILLING),"accountPortalBillingUrl"),Ror=s(e=>FO(e,Nde.UPGRADE),"accountPortalUpgradeUrl"),Oor=s(e=>FO(e,Ij.WORKSPACES),"builderWorkspacesUrl"),kor=s(e=>FO(e,Ij.SETTINGS_EMAIL),"builderSettingsEmailUrl"),Nor=s(e=>FO(e,Ij.SETTINGS_AUTH),"builderSettingsAuthUrl"),Dor=s(e=>FO(e,Ij.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Por=s(e=>FO(e,Ij.APPS),"builderAppsUrl"),ySs={accountPortalAccountUrl:Ior,accountPortalBillingUrl:xor,accountPortalUpgradeUrl:Ror,builderWorkspacesUrl:Oor,builderSettingsEmailUrl:kor,builderSettingsAuthUrl:Nor,builderSettingsPeopleUsersUrl:Dor,builderAppsUrl:Por};function _Ss(e,t=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,o=typeof e=="string"?parseInt(e,10):e||0;for(;o>=1024&&i<r.length-1&&++i;)o/=1024;return`${o.toFixed(o<10&&i>0?1:0)}${t}${r[i]}`}s(_Ss,"formatBytes");var ESs={getNextExecutionDates:gor,validate:Aor};var Pfe=Le(y_()),WVe=Le(ug());var BSs=/{{([^{].*?)}}/g,Lor=Object.values(k5),MSs=[...Object.values(Sj),...Object.values(AB),...Object.values(O5)],LSs=s((e,t,r)=>{let n=xA,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],c=[],{type:u,formulaType:l,subtype:d}=e;u==="string"?d==="array"?c=a:c=i:u==="number"||u==="bigint"?c=o:u==="options"?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="array"?c=a:u==="boolean"?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:u==="longform"?c=i:u==="datetime"?c=o:u==="formula"&&l==="static"?c=i.concat([n.MoreThan,n.LessThan]):u==="ai"?c=i.concat([n.MoreThan,n.LessThan]):u==="bb_reference_single"||UK.isDeprecatedSingleUserColumn(e)?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?c=a:u==="barcodeqr"?c=i:u==="link"&&(c=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return t==="_id"&&f&&(c=[n.Equals,n.NotEquals,n.In]),c},"getValidOperatorsForType"),Uor=[xA.StartsWith.value,xA.Like.value,xA.Equals.value,xA.NotEquals.value,xA.Contains.value,xA.NotContains.value,xA.ContainsAny.value,xA.In.value];function JVe(e,t){for(let r of Lor)e[r]&&(e[r].conditions=e[r].conditions.map(n=>t(n)));return e}s(JVe,"recurseLogicalOperators");var XVe=s(e=>{for(let t of Uor)if(e[t])for(let r of Object.keys(e)){if(r!==t)continue;if(typeof e[r]=="object")for(let[i,o]of Object.entries(e[r]))(o==null||o===""||USs(o))&&delete e[t][i]}return e=JVe(e,XVe),e},"cleanupQuery");function USs(e){return Array.isArray(e)&&e.length===0}s(USs,"isEmptyArray");var Fde=s(e=>ZVe(e).key,"removeKeyNumbering"),ZVe=s(e=>{if(typeof e=="string"&&e.match(/\d[0-9]*:/g)!=null){let t=e.split(":");return{prefix:`${t.shift()}:`,key:t.join(":")}}else return{key:e}},"getKeyNumbering"),YVe=class{static{s(this,"ColumnSplitter")}constructor(t,r){if(this.tableNames=t.map(n=>n.name),this.tableIds=t.map(n=>n._id),this.relationshipColumnNames=t.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(t){let{prefix:r,key:n}=ZVe(t),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let c=`${a}.`;n.startsWith(c)&&(i=this.aliases[a],n=n.slice(c.length))}let o;for(let a of this.relationships){let c=`${a}.`;if(n.startsWith(c)){let u=n.split(c);u.shift(),o=c,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=qVe(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function qSs(e){if(!e||!e?.operator||!e?.field)return;let t={},{operator:r,field:n,type:i,externalType:o}=e,{value:a}=e;(r==="empty"||r==="notEmpty")&&(a=null);let c=typeof a=="string"&&(a.match(BSs)||[]).length>0;switch(i){case"datetime":if(!c&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Ede(r))return t[r]??={},t[r][n]=a,t}break;case"number":typeof a=="string"&&!c&&(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(Ede(r)){let l=NJt[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};t[r]??={},t[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!=="")t.range??={},t.range[n]={...t.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")t.range??={},t.range[n]={...t.range[n],low:a};else if(b5t(r)||S5t(r)||Ede(r))i==="boolean"?r==="equal"&&a===!1?(t.notEqual=t.notEqual||{},t.notEqual[n]=!0):r==="notEqual"&&a===!1?(t.equal=t.equal||{},t.equal[n]=!0):(t[r]??={},t[r][n]=a):(t[r]??={},t[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return t}s(qSs,"buildCondition");function Qde(e){let t={filters:[]};for(let r of e)"operator"in r&&r.operator==="allOr"?t.allOr=!0:"onEmptyFilter"in r?t.onEmptyFilter=r.onEmptyFilter:t.filters.push(r);return t}s(Qde,"splitFiltersArray");function qor(e){if(!e)return{};if(Array.isArray(e)&&(e=QGe(e),!e))return{};let t={};e.onEmptyFilter?t.onEmptyFilter=e.onEmptyFilter:t.onEmptyFilter="all";let r=Mor(e.logicalOperator||"all");return t[r]={conditions:(e.groups||[]).map(n=>{if(n.groups){let u=qor(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:o,filters:a}=Qde(n.filters||[]);o&&(t.onEmptyFilter=o);let c=i?"$or":"$and";return n.logicalOperator&&(c=Mor(n.logicalOperator)),{[c]:{conditions:a.map(qSs).filter(u=>u)}}})},t}s(qor,"buildQuery");function Mor(e){return e==="all"?"$and":"$or"}s(Mor,"logicalOperatorFromUI");function e$e(e){if(!e)return e;for(let t of Object.values(AB)){let r=e[t];if(!(r==null||!(0,Pfe.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 JVe(e,e$e),e}s(e$e,"fixupFilterArrays");function FSs(e,t){let r=Bfe(e,t.query);t.sort&&(r=For(r,t.sort,t.sortOrder||"ascending",t.sortType));let n=r.length;t.limit&&(r=Qor(r,t.limit.toString()));let i={rows:r};return t.countRows&&(i.totalRows=n),i}s(FSs,"search");function Bfe(e,t){if(!e||!Array.isArray(e))return[];if(!t)return e;if(t=XVe(t),t=e$e(t),!KVe(t)&&t.onEmptyFilter==="none")return[];let r=s((T,B)=>F=>{for(let[j,H]of Object.entries(t[T]||{})){let z=_de(T)?F:jGe(F,Fde(j)),X=B(z,H);if(t.allOr&&X)return!0;if(!t.allOr&&!X)return!1}return!t.allOr},"match"),n=r("string",(T,B)=>typeof T!="string"||typeof B!="string"?!1:T.toLowerCase().startsWith(B.toLowerCase())),i=r("fuzzy",(T,B)=>typeof T!="string"||typeof B!="string"?!1:T.toLowerCase().includes(B.toLowerCase())),o=r("range",(T,B)=>{if(T==null||T===""||((0,Pfe.default)(B.low)&&(0,WVe.default)(B.low)&&(B.low=void 0),(0,Pfe.default)(B.high)&&(0,WVe.default)(B.high)&&(B.high=void 0),B.low==null&&B.high==null))return!1;let F=+T;if(!isNaN(F)){let H=+B.low,z=+B.high;if(!isNaN(H)&&!isNaN(z))return F>=H&&F<=z;if(isNaN(H)){if(!isNaN(z))return F<=z}else return F>=H}let j=(0,iH.default)(T);if(j.isValid()){let H=(0,iH.default)(B.low||"0000-00-00T00:00:00.000Z"),z=(0,iH.default)(B.high||"9999-00-00T00:00:00.000Z");if(H.isValid()&&z.isValid())return j.isAfter(H)&&j.isBefore(z)||j.isSame(H)||j.isSame(z);if(H.isValid())return j.isAfter(H)||j.isSame(H);if(z.isValid())return j.isBefore(z)||j.isSame(z)}return B.low!=null&&B.high!=null?T>=B.low&&T<=B.high:B.low!=null?T>=B.low:B.high!=null?T<=B.high:!1}),a=s((T,B)=>{if(Array.isArray(T)){for(let j of T)if(a(j,B))return!0;return!1}if(T&&typeof T=="object"&&typeof B=="string")return T._id===B;if(T===B)return!0;if(T==null&&B!=null||T!=null&&B==null)return!1;let F=(0,iH.default)(T);if(F.isValid()){let j=(0,iH.default)(B);if(j.isValid())return F.isSame(j)}return!1},"_valueMatches"),c=s(T=>(...B)=>!T(...B),"not"),u=r("equal",a),l=r("notEqual",c(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),p=r("notEmpty",c(d)),h=r("oneOf",(T,B)=>(typeof B=="string"&&(B=B.split(",")),typeof T=="number"&&(B=B.map(F=>parseFloat(F))),Array.isArray(B)?B.some(F=>a(T,F)):!1)),A=s(T=>(B,F)=>!Array.isArray(B)||(typeof F=="string"&&(F=F.split(","),typeof B[0]=="number"&&(F=F.map(j=>parseFloat(j)))),!Array.isArray(F))?!1:F.length===0?!0:F[T](j=>a(B,j)),"_contains"),y=r("contains",(T,B)=>Array.isArray(B)&&B.length===0?!0:A("every")(T,B)),v=r("notContains",(T,B)=>Array.isArray(B)&&B.length===0?!0:c(A("every"))(T,B)),b=r("containsAny",A("some")),x=r("$and",(T,B)=>{if(!B.length)return!1;for(let F of B)if(!Bfe([T],F).length)return!1;return!0}),O=r("$or",(T,B)=>{if(!B.length)return!1;for(let F of B)if(Bfe([T],{...F,allOr:!0}).length)return!0;return!1}),N=s(T=>{let B={string:n,fuzzy:i,range:o,equal:u,notEqual:l,empty:f,notEmpty:p,oneOf:h,contains:y,containsAny:b,notContains:v,$and:x,$or:O},F=Object.entries(t||{}).filter(([j,H])=>!["allOr","onEmptyFilter"].includes(j)&&H&&Object.keys(H).length>0).map(([j])=>B[j]?.(T)??!1);return KVe(t)?t.allOr?F.some(j=>j===!0):F.every(j=>j===!0):!0},"docMatch");return e.filter(N)}s(Bfe,"runQuery");function For(e,t,r,n="string"){if(!t||!r||!n)return e;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return e.slice().sort((o,a)=>{let c=i(o[t]),u=i(a[t]),l=u==null||c>u?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(For,"sort");function Qor(e,t){let r=typeof t=="number"?t:parseFloat(t);return isNaN(r)?e:e.slice(0,r)}s(Qor,"limit");var KVe=s(e=>{if(!e)return!1;let t=s(r=>{for(let n of Lor)if(r[n])for(let i of r[n]?.conditions||[]){let o=t(i);if(o)return o}for(let n of MSs){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let c=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||c}).length!==0)return!0}return!1},"check");return t(e)},"hasFilters");var v_={};Is(v_,{applications:()=>r$e,automations:()=>n$e,screens:()=>a$e,users:()=>o$e});var r$e={};Is(r$e,{getDevAppID:()=>QSs,getProdAppID:()=>QK});Ut();var t$e=_B("app"),FK=_B("app_dev");function QSs(e){if(!e)throw new Error("No app ID provided");if(e.startsWith(FK))return e;let t=e.split(t$e);t.shift();let r=t.join(t$e);return`${FK}${r}`}s(QSs,"getDevAppID");function QK(e){if(!e)throw new Error("No app ID provided");if(!e.startsWith(FK))return e;let t=e.split(FK);t.shift();let r=t.join(FK);return`${t$e}${r}`}s(QK,"getProdAppID");var n$e={};Is(n$e,{checkForCollectStep:()=>VSs,isAppAction:()=>GSs,isRowAction:()=>jSs,isWebhookAction:()=>HSs});Ut();function jSs(e){return e.definition.trigger?.stepId==="ROW_ACTION"}s(jSs,"isRowAction");function HSs(e){return e.definition.trigger?.stepId==="WEBHOOK"}s(HSs,"isWebhookAction");function GSs(e){return e.definition.trigger?.stepId==="APP"}s(GSs,"isAppAction");function jor(e){if(!e||!Array.isArray(e))return!1;for(let t of e){if(t.stepId==="COLLECT")return!0;if(LKt(t)&&t.inputs.children){for(let r of Object.values(t.inputs.children))if(jor(r))return!0}}return!1}s(jor,"hasCollectBlockRecursive");function VSs(e){return jor(e.definition.steps)}s(VSs,"checkForCollectStep");var o$e={};Is(o$e,{canCreateApps:()=>$Ss,containsUserID:()=>evs,getGlobalUserID:()=>ZSs,getUserAppGroups:()=>tvs,hasAdminPermissions:()=>s$e,hasAppBuilderPermissions:()=>Ufe,hasBuilderPermissions:()=>JSs,hasCreatorPermissions:()=>qfe,isAdmin:()=>jK,isAdminOrBuilder:()=>WSs,isAdminOrGlobalBuilder:()=>YSs,isAdminOrWorkspaceBuilder:()=>zSs,isBuilder:()=>i$e,isCreator:()=>XSs,isGlobalBuilder:()=>Lfe,userAppAccessList:()=>rvs});Ut();function i$e(e,t){return e?e.builder?.global?!0:!!(t&&e.builder?.apps?.includes(QK(t))):!1}s(i$e,"isBuilder");function Lfe(e){return i$e(e)&&!Ufe(e)||jK(e)}s(Lfe,"isGlobalBuilder");function $Ss(e){return Lfe(e)||qfe(e)}s($Ss,"canCreateApps");function jK(e){return e?s$e(e):!1}s(jK,"isAdmin");function zSs(e,t){return e?!!(jK(e)||t&&e.builder?.apps?.includes(QK(t))):!1}s(zSs,"isAdminOrWorkspaceBuilder");function WSs(e,t){return i$e(e,t)||jK(e)}s(WSs,"isAdminOrBuilder");function YSs(e){return Lfe(e)||jK(e)}s(YSs,"isAdminOrGlobalBuilder");function Ufe(e){if(!e)return!1;let t=e.builder?.apps?.length;return!!!e.builder?.global&&t!=null&&t>0}s(Ufe,"hasAppBuilderPermissions");function KSs(e){return e?!!Object.values(e.roles??{}).find(t=>t==="CREATOR"):!1}s(KSs,"hasAppCreatorPermissions");function JSs(e){return e?e.builder?.global||Ufe(e)||qfe(e):!1}s(JSs,"hasBuilderPermissions");function s$e(e){return e?!!e.admin?.global:!1}s(s$e,"hasAdminPermissions");function qfe(e){return e?!!e.builder?.creator:!1}s(qfe,"hasCreatorPermissions");function XSs(e){return e?Lfe(e)||s$e(e)||qfe(e)||Ufe(e)||KSs(e):!1}s(XSs,"isCreator");function ZSs(e){if(typeof e!="string")return e;let t=`ro${rs}ta_users${rs}`;return e.startsWith(t)?e.split(t)[1]:e}s(ZSs,"getGlobalUserID");function evs(e){return typeof e!="string"?!1:e.includes(`us${rs}`)}s(evs,"containsUserID");function Hor(e,t){return t?.filter(r=>r.users?.find(n=>n._id===e))||[]}s(Hor,"getUserGroups");function tvs(e,t,r){let n=QK(e);return Hor(t,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(tvs,"getUserAppGroups");function rvs(e,t){let n=Hor(e._id,t).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(e?.roles||{}),...n];return[...new Set(i)]}s(rvs,"userAppAccessList");var a$e={};Is(a$e,{findInSettings:()=>nvs});function nvs(e,t){let r=[];function n(i,o=""){for(let[a,c]of Object.entries(i))c&&(typeof c=="string"&&c.includes(t)?r.push({setting:o?`${o}.${a}`:a,value:c}):typeof c=="object"&&n(c,a))}return s(n,"recurse"),n(e.props),r}s(nvs,"findInSettings");Ut();var c$e={by_email2:["by_email"]},Vb={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"}},GB=_B("app"),svs=_B("app_dev"),QO=svs;var HK="_design/sqlite";var ovs=`ro${rs}ta_users${rs}`;var xf="default";Ut();Ut();var u$e=require("crypto"),Qfe=require("fs"),cvs=Le(aH()),VK=require("path");var uvs=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,VK.resolve)((0,VK.join)(__dirname,"..","..","..")),Vor=!1;!Vor&&Ffe()&&!l$e()&&(require("dotenv").config({path:(0,VK.join)(uvs,".env")}),Vor=!0);function l$e(){return zor()}s(l$e,"isTest");function zor(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(zor,"isJest");function Ffe(){return process.env.NODE_ENV!=="production"}s(Ffe,"isDev");function lvs(e){if(e)return parseInt(e)}s(lvs,"parseIntSafe");var cH={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},$or=!!parseInt(process.env.SELF_HOSTED||"");function dvs(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(dvs,"getAPIEncryptionKey");function fvs(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(fvs,"httpLogging");function pvs(){function e(r){function n(c,u){let l=`${u}/${c}`;if((0,Qfe.existsSync)(l))return l;let d=`${u}/..`;return d===u?null:n(c,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Qfe.readFileSync)(i,"utf-8");return JSON.parse(o)}s(e,"getParentFile");let t;if(Ffe()&&!l$e())try{t=`${e("lerna.json").version}+local`}catch{}try{let r=e("package.json");return{VERSION:t||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(pvs,"getPackageJsonFields");function hvs(){return jO.SERVICE_TYPE==="worker"}s(hvs,"isWorker");function mvs(){return jO.SERVICE_TYPE==="apps"}s(mvs,"isApps");function gvs(){return jO.BUDIBASE_ENVIRONMENT==="QA"}s(gvs,"isQA");function Avs(){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(Avs,"getServiceName");var jO={isTest:l$e,isJest:zor,isDev:Ffe,isWorker:hvs,isApps:mvs,isQA:gvs,isProd:()=>!Ffe(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,u$e.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,u$e.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:dvs(),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,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:$or,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||cH.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||cH.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||cH.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||cH.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||cH.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||cH.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Avs(),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:fvs(),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:$or?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...pvs(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(e,t){process.env[e]=t,jO[e]=t},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,OPENAI_API_KEY:process.env.OPENAI_API_KEY,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:lvs(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};for(let[e,t]of Object.entries(jO))t==="0"&&(jO[e]=0),t==="false"&&(jO[e]=0);var He=jO;var $K="-";function d$e(){let e=He.REDIS_PASSWORD,t=He.REDIS_USERNAME,r=He.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");t=t||a[0]||void 0,e=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:e,username:t,port:isNaN(o)?6379:o}}s(d$e,"getRedisConnectionDetails");function Wor(){return{slotsRefreshTimeout:2e3,dnsLookup:(e,t)=>t(null,e),redisOptions:{...uH(),tls:{}}}}s(Wor,"getRedisClusterOptions");function uH(){let{host:e,password:t,port:r,username:n}=d$e();return{connectTimeout:3e4,port:r,host:e,password:t,...n&&{username:n}}}s(uH,"getRedisOptions");function Yor(e){let t=e.split($K);return t.length>=2?(t.shift(),t.join($K)):t[0]}s(Yor,"removeDbPrefix");var gkn=Le(require("events"));JK();function r0(){return VB().replace(/-/g,"")}s(r0,"newid");var kvs=require("bcrypt"),rvl=He.SALT_ROUNDS||10;async function yar(e,t){return kvs.compare(e,t)}s(yar,"compare");Ut();var FRa=Le(c4e());var Wc={};Is(Wc,{DEFAULT_TENANT_ID:()=>xf,baseGlobalDBName:()=>wSe,doInAutomationContext:()=>lXo,doInContext:()=>Bdt,doInEnvironmentContext:()=>bXo,doInFeatureFlagOverrideContext:()=>wcn,doInIPContext:()=>Scn,doInIdentityContext:()=>Spe,doInLicenseContext:()=>fXo,doInScimContext:()=>SXo,doInSelfHostTenantUsingCloud:()=>dXo,doInTenant:()=>qI,doInWorkspaceContext:()=>mXo,doInWorkspaceMigrationContext:()=>AXo,ensureSnippetContext:()=>vcn,getAuditLogDBName:()=>Ecn,getAuditLogsDB:()=>wXo,getAutomationId:()=>Mdt,getCurrentContext:()=>QL,getDevWorkspaceDB:()=>CXo,getDevWorkspaceId:()=>_Xo,getEnvironmentVariables:()=>vXo,getFeatureFlagOverrides:()=>jdt,getFeatureFlags:()=>Fdt,getGlobalDB:()=>jp,getGlobalDBName:()=>Bee,getIP:()=>Ldt,getIdentity:()=>zO,getLicense:()=>pXo,getOrThrowWorkspaceId:()=>yXo,getPlatformURL:()=>Pdt,getProdWorkspaceDB:()=>TXo,getProdWorkspaceId:()=>EXo,getScimDBName:()=>oXo,getSelfHostCloudDB:()=>hXo,getTableForView:()=>IXo,getTenantIDFromWorkspaceID:()=>OV,getTenantId:()=>ms,getWorkspaceDB:()=>Udt,getWorkspaceId:()=>tm,identity:()=>u7,isMultiTenant:()=>FL,isScim:()=>qdt,isSelfHostUsingCloud:()=>TSe,isTenancyEnabled:()=>cXo,isTenantIdSet:()=>aXo,setFeatureFlags:()=>Qdt,setTableForView:()=>xXo});var u7={};Is(u7,{doInAccountContext:()=>Mxs,doInIdentityContext:()=>u4e,doInUserContext:()=>Ylr,getAccountUserId:()=>Klr,getIdentity:()=>Wlr});Ut();function Wlr(){return zO()}s(Wlr,"getIdentity");function u4e(e,t){return Spe(e,t)}s(u4e,"doInIdentityContext");function Ylr(e,t,r){let n={...e,_id:e._id,type:"user",hostInfo:{ipAddress:t.request.ip,userAgent:t.userAgent.source}};return u4e(n,r)}s(Ylr,"doInUserContext");function Mxs(e,t){let r=Klr(e),n=e.tenantId,i={_id:r,type:"user",tenantId:n,account:e};return u4e(i,t)}s(Mxs,"doInAccountContext");function Klr(e){let t;return sGe(e)?t=e.budibaseUserId:t=e.accountId,t}s(Klr,"getAccountUserId");var WO=s(e=>{let t=Jlr(e),r,n;if(t.auth?.username)r=t.auth.username;else if(He.COUCH_DB_USERNAME)r=He.COUCH_DB_USERNAME;else if(!He.isTest())throw new Error("CouchDB username not set");if(t.auth?.password)n=t.auth.password;else if(He.COUCH_DB_PASSWORD)n=He.COUCH_DB_PASSWORD;else if(!He.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=He.COUCH_DB_SQL_URL;if(He.isDev()&&!o)o="http://localhost:4006";else if(!o&&t.url){let a=new URL(t.url);o=t.url.replace(a.port,"4984")}return{url:t.url,sqlUrl:Jlr(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),Jlr=s((e=He.COUCH_DB_URL)=>{let t,r,n,i;if(e){/^https?:\/\//i.test(e)||(e=`http://${e}`);let a=e.split("://"),c=a[0],u=a.slice(1).join("://");if(e.includes("@")){let l=u.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=u;t=`${c}://${i}`}return{url:t,auth:{username:r,password:n}}},"getUrlInfo");var Acn=Le(Ugr());Ut();var qgr=Le(require("node-fetch"));function phe(e){return e.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(phe,"checkSlashesInUrl");async function SWe({url:e,cookie:t,method:r,body:n}){let i={method:r,headers:{Authorization:t}};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,qgr.default)(phe(encodeURI(e)),i)}s(SWe,"directCouchUrlCall");var GBs=Le(require("pouchdb"));var VBs,$Bs=!1;var zBs=s(()=>{if(!$Bs)throw new Error("init has not been called")},"checkInitialised");function uk(e,t){zBs();let r=new VBs(e,t),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(uk,"getPouchDB");var eu=Le(L0());var Pee=class{constructor(t){this.db=t}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(t){return eu.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:t}),t?this.db.exists(t):this.db.exists()))}get(t){return eu.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:t}),this.db.get(t)))}tryGet(t){return eu.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:t});let n=await this.db.tryGet(t);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(t,r){return eu.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:t?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(t,r);return n.addTags({num_docs_found:i.length}),i})}remove(t,r){return eu.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:t,rev:r});let i=typeof t=="object",o=i?t._id:t;r=i?t._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(t,r){return eu.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:t.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(t,r)))}put(t,r){return eu.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:t._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(t,r);return n.addTags({ok:i.ok}),i})}bulkDocs(t){return eu.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:t.length}),this.db.bulkDocs(t)))}async find(t){return eu.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.find(t);return r.addTags({rows_length:n.docs.length}),n})}allDocs(t){return eu.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.allDocs(t);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(t,r){return eu.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:t,...r});let i=await this.db.query(t,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return eu.default.trace("db.destroy",async t=>{t.addTags({db_name:this.name});let r=await this.db.destroy();return t.addTags({ok:r.ok}),r})}compact(){return eu.default.trace("db.compact",async t=>{t.addTags({db_name:this.name});let r=await this.db.compact();return t.addTags({ok:r.ok}),r})}dump(t,r){return eu.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(t,r)))}load(...t){return eu.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.load(...t)))}createIndex(...t){return eu.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.createIndex(...t)))}deleteIndex(...t){return eu.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.deleteIndex(...t)))}getIndexes(...t){return eu.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.getIndexes(...t)))}sql(t,r){return eu.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(t,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(t){return eu.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(t)?t.length:1}),this.db.sqlPurgeDocument(t)))}sqlDiskCleanup(){return eu.default.trace("db.sqlDiskCleanup",t=>(t.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};Ut();var fed=`${rs}${rs}`;var ped=encodeURIComponent(" ");function Ndt(e,t,r){if(!He.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${e.toUpperCase()}] query="${t}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Ndt,"sqlLog");var hcn="Database does not exist.";function mcn(e){return(0,Acn.default)({url:e.url,requestDefaults:{headers:{Authorization:e.cookie}},parseUrl:!1})}s(mcn,"buildNano");var DN=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 vSe=class e{constructor(t,r,n){this.couchInfo=WO();this.name=t,this.pouchOpts=r||{},n&&(this.couchInfo=WO(n),this.instanceNano=mcn(this.couchInfo)),e.nano||e.init()}static{s(this,"DatabaseImpl")}static init(){let t=WO();e.nano=mcn(t)}exists(t){return t===void 0?this.dbExists():this.docExists(t)}async dbExists(){return(await SWe({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(t){try{return await this.performCall(r=>()=>r.head(t)),!0}catch{return!1}}nano(){return this.instanceNano||e.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let t=!this.pouchOpts?.skip_setup,r=await this.exists();if(!t&&!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 DN(n.message,n)}return this.getDb()}async performCallWithDBCreation(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===hcn)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(t);throw new DN(`CouchDB error: ${i.message}`,i)}}async performCall(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){throw new DN(`CouchDB error: ${i.message}`,i)}}async get(t){return this.performCall(r=>{if(!t)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(t)})}async tryGet(t){try{return await this.get(t)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(t,r){if(!t||t.length===0)return[];t=[...new Set(t)];let n=!r?.excludeDocs,i=await this.allDocs({keys:t,include_docs:n}),o=s(u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found","rowUnavailable"),a=i.rows.filter(u=>!o(u)),c=a.length!==i.rows.length;if(!r?.allowMissing&&c){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(u=>n?u.doc:u.value)}async remove(t,r){return this.performCall(n=>{let i,o;if(I5t(t)?(i=t._id,o=t._rev):(i=t,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(t,r){let n=await this.performCall(a=>()=>a.bulk({docs:t.map(c=>({...c,_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 DN(o,{name:this.name,status:400})}async post(t,r){return t._id||(t._id=r0()),this.put(t,r)}async put(t,r){if(!t._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(t.createdAt||(t.createdAt=new Date().toISOString()),t.updatedAt=new Date().toISOString(),r?.force&&t._id)try{let i=await this.get(t._id);i&&(t._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(t);return r?.returnDoc?{...i,doc:{...t,_rev:i.rev}}:i}})}async bulkDocs(t){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:t.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(t){return this.performCall(r=>async()=>r.find(t))}async allDocs(t){return this.performCall(r=>async()=>{try{return await r.list(t)}catch(n){if(n.reason===hcn)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(t,r,n){t=phe(`${this.couchInfo.sqlUrl}/${t}`);let i={url:t,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await SWe(i),a=await o.text();if(o.status>300){let c;try{c=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new DN("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw c}return JSON.parse(a)})}async sql(t,r){let i=`/${this.name}/${HK}`;return Ndt("sqlite3",t,r),await this._sqlQuery(i,"POST",{query:t,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(t){Array.isArray(t)||(t=[t]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:t})}async query(t,r){return this.performCall(n=>{let[i,o]=t.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(HK)){let t=await this.get(HK);t.sql.tables={},await this.put(t),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(t){if(t.statusCode===404)return{ok:!0};throw new DN(t.message,t)}}async compact(){return this.performCall(t=>()=>t.compact())}async dump(t,r){return uk(this.name).dump(t,r)}async load(t){return uk(this.name).load(t)}async createIndex(t){return uk(this.name).createIndex(t)}async deleteIndex(t){return uk(this.name).deleteIndex(t)}async getIndexes(){return uk(this.name).getIndexes()}};function TS(e,t){return new Pee(new vSe(e,t))}s(TS,"getDB");function Ddt(e){if(!e||e.startsWith(QO))return e;let t=e.split(GB);t.shift();let r=t.join(GB);return`${QO}${r}`}s(Ddt,"getDevWorkspaceID");function RV(e){if(!e||!e.startsWith(QO))return e;let t=e.split(QO);t.shift();let r=t.join(QO);return`${GB}${r}`}s(RV,"getProdWorkspaceID");var ycn=require("async_hooks");var cl=class e{static{s(this,"Context")}static{this.storage=new ycn.AsyncLocalStorage}static run(t,r){return e.storage.run(t,()=>r())}static get(){return e.storage.getStore()}};var _cn=null;function Bee(e){return e||(e=ms()),wSe(e)}s(Bee,"getGlobalDBName");function Ecn(e){return e||(e=ms()),e===xf?Vb.AUDIT_LOGS.name:`${e}${rs}${Vb.AUDIT_LOGS.name}`}s(Ecn,"getAuditLogDBName");function oXo(e){return e||(e=ms()),e===xf?Vb.SCIM_LOGS.name:`${e}${rs}${Vb.SCIM_LOGS.name}`}s(oXo,"getScimDBName");function wSe(e){return!e||e===xf?Vb.GLOBAL.name:`${e}${rs}${Vb.GLOBAL.name}`}s(wSe,"baseGlobalDBName");function Pdt(){return He.PLATFORM_URL}s(Pdt,"getPlatformURL");function FL(){return!!He.MULTI_TENANCY}s(FL,"isMultiTenant");function aXo(){return!!cl.get()?.tenantId}s(aXo,"isTenantIdSet");function cXo(){return He.MULTI_TENANCY}s(cXo,"isTenancyEnabled");function OV(e){if(!e)return;if(!FL())return xf;let t=e.split(rs),r=t[1]==="dev";if(!(r&&t.length===3||!r&&t.length===2))return r?t[2]:t[1]}s(OV,"getTenantIDFromWorkspaceID");function uXo(e){let t;try{t=cl.get()}catch{t={}}return t={...t,...e},t}s(uXo,"updateContext");async function CS(e,t){gXo();let r=uXo(e);return cl.run(r,t)}s(CS,"newContext");async function lXo(e){return await vcn(),await CS({tenantId:OV(e.workspaceId),appId:e.workspaceId,automationId:e.automationId},e.task)}s(lXo,"doInAutomationContext");async function Bdt(e,t){let r=OV(e);return CS({tenantId:r,appId:e},t)}s(Bdt,"doInContext");async function qI(e,t){return He.MULTI_TENANCY||(e=e||xf),CS(e?{tenantId:e}:{},t)}s(qI,"doInTenant");async function dXo(e,t){return CS({tenantId:e,isSelfHostUsingCloud:!0},t)}s(dXo,"doInSelfHostTenantUsingCloud");async function fXo(e,t){return CS({license:e},t)}s(fXo,"doInLicenseContext");function pXo(){return cl.get()?.license}s(pXo,"getLicense");function TSe(){return!!cl.get()?.isSelfHostUsingCloud}s(TSe,"isSelfHostUsingCloud");function hXo(){let e=cl.get();if(!e||!e.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return TS(Vb.SELF_HOST_CLOUD.name)}s(hXo,"getSelfHostCloudDB");async function mXo(e,t){return bcn(e,t)}s(mXo,"doInWorkspaceContext");async function bcn(e,t,r){if(!e)throw new Error("workspaceId is required");let n=OV(e),i={appId:e,...r};return n&&(i.tenantId=n),CS(i,t)}s(bcn,"_doInWorkspaceContext");async function Spe(e,t){if(!e)throw new Error("identity is required");let r={identity:e};return e.tenantId&&(r.tenantId=e.tenantId),CS(r,t)}s(Spe,"doInIdentityContext");function gXo(){if(cl.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(gXo,"guardMigration");async function AXo(e,t){return bcn(e,t,{isMigrating:!0})}s(AXo,"doInWorkspaceMigrationContext");function zO(){try{return cl.get()?.identity}catch{}}s(zO,"getIdentity");function ms(){if(!FL())return xf;let t=cl.get()?.tenantId;if(!t)throw new Error("Tenant id not found");return t}s(ms,"getTenantId");function Mdt(){return cl.get()?.automationId}s(Mdt,"getAutomationId");function tm(){let t=cl.get()?.appId;return!t&&He.isTest()&&_cn?_cn:t}s(tm,"getWorkspaceId");function yXo(){let e=tm();if(!e)throw new Error("Workspace id not set");return e}s(yXo,"getOrThrowWorkspaceId");function Ldt(){return cl.get()?.ip}s(Ldt,"getIP");var _Xo=s(()=>{let e=tm();if(!e)throw new Error("Could not get workspaceId");return Ddt(e)},"getDevWorkspaceId"),EXo=s(()=>{let e=tm();if(!e)throw new Error("Could not get workspaceId");return RV(e)},"getProdWorkspaceId");function bXo(e,t){if(!e)throw new Error("Must supply environment variables.");return CS({environmentVariables:e},t)}s(bXo,"doInEnvironmentContext");function SXo(e){return CS({isScim:!0},e)}s(SXo,"doInScimContext");function Scn(e,t){return CS({ip:e},t)}s(Scn,"doInIPContext");async function vcn(){let e=QL();if(!e||e.snippets)return;let t,r=Udt();r&&(t=(await r.tryGet("app_metadata"))?.snippets),e.snippets=t||[]}s(vcn,"ensureSnippetContext");function vXo(){let e=cl.get();return e.environmentVariables?e.environmentVariables:null}s(vXo,"getEnvironmentVariables");function jp(){let e=cl.get();if(!e||He.MULTI_TENANCY&&!e.tenantId)throw new Error("Global DB not found");if(e.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return TS(wSe(e?.tenantId))}s(jp,"getGlobalDB");function wXo(){if(!ms())throw new Error("No tenant ID found - cannot open audit log DB");return TS(Ecn())}s(wXo,"getAuditLogsDB");function Udt(e){let t=tm();if(!t)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(TSe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return TS(t,e)}s(Udt,"getWorkspaceDB");function TXo(e){let t=tm();if(!t)throw new Error("Unable to retrieve prod DB - no workspace ID.");return TS(RV(t),e)}s(TXo,"getProdWorkspaceDB");function CXo(e){let t=tm();if(!t)throw new Error("Unable to retrieve dev DB - no workspace ID.");return TS(Ddt(t),e)}s(CXo,"getDevWorkspaceDB");function qdt(){return!!cl.get()?.isScim}s(qdt,"isScim");function QL(){try{return cl.get()}catch{return}}s(QL,"getCurrentContext");function Fdt(e){let t=QL();if(t)return t.featureFlagCache?.[e]}s(Fdt,"getFeatureFlags");function Qdt(e,t){let r=QL();r&&(r.featureFlagCache??={},r.featureFlagCache[e]=t)}s(Qdt,"setFeatureFlags");function jdt(){return QL()?.featureFlagOverrides||{}}s(jdt,"getFeatureFlagOverrides");async function wcn(e,t){return await CS({featureFlagOverrides:e},t)}s(wcn,"doInFeatureFlagOverrideContext");function IXo(e){let t=QL();if(t)return t.viewToTableCache?.[e]}s(IXo,"getTableForView");function xXo(e,t){let r=QL();r&&(r.viewToTableCache??={},r.viewToTableCache[e]=t)}s(xXo,"setTableForView");var Twe=Le(dln());var wwe=Le(L0()),zSn=Le(aH());var $Sn;if(He.MOCK_REDIS)try{$Sn=VSn()}catch{console.log("Mock redis unavailable")}async function ERa(e=0){return await wwe.tracer.trace("Redis.init",async t=>{if(He.MOCK_REDIS)return t.addTags({mock:!0}),new $Sn(uH());let r;if(He.REDIS_CLUSTERED){t.addTags({clustered:!0});let{host:n,port:i}=d$e();r=new Twe.Cluster([{host:n,port:i}],Wor())}else r=new Twe.default(uH());return new Promise((n,i)=>{r.on("error",o=>{t.addTags({error:!0}),console.error(`failed to connect to redis (db: ${e})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${e})`)}),r.on("ready",()=>{t.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${e})`),n(r)})})})}s(ERa,"init");function bRa(e,t){return new Promise((r,n)=>{let i=new Set;e.on("data",o=>o.forEach(a=>i.add(a))),e.on("error",o=>n(o)),e.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let c=await t.get(a);return c&&(c=JSON.parse(c)),{key:Yor(a),value:c}});r(await Promise.all(o))}catch(o){n(o)}})})}s(bRa,"promisifyStream");function SRa(e){return e.isCluster}s(SRa,"isCluster");var jyt=class e{static{s(this,"RedisWrapper")}constructor(t,r){this.client=t,this.db=r}static async init(t,r=0){return await wwe.tracer.trace("RedisWrapper.init",async n=>{let i=await ERa(r);return r&&!He.isTest()&&(n.addTags({db:t}),i.select(r)),new e(i,t)})}trace(t,r){return wwe.tracer.trace(t,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(t){return t.includes(this.db)?t:`${this.db}${$K}${t}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(t=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:t}),t=`${this.db}${$K}${t}`;let n;SRa(this.client)?n=this.client.nodes("master")[0].scanStream({match:t+"*",count:100}):n=this.client.scanStream({match:t+"*",count:100});let i=await bRa(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(t){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:t}),this.client.keys(this.prefixed(t))))}async exists(t){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:t}),await this.client.exists(this.prefixed(t))))}async get(t){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:t});let n=await this.client.get(this.prefixed(t));n!=null&&n.key&&(n.key=t);try{return JSON.parse(n)}catch{return n}})}async bulkGet(t){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:t.length}),t.length===0)return{};let n=await this.client.mget(t.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,zSn.zip)(t,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${t.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(t,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:t,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(t),r),n&&await this.client.expire(this.prefixed(t),n)})}async bulkStore(t,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(t).length,expirySeconds:r});let i=Object.entries(t).reduce((a,[c,u])=>(a[this.prefixed(c)]=typeof u=="object"?JSON.stringify(u):u,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(t){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:t}),await this.client.ttl(this.prefixed(t))))}async setExpiry(t,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:t,expirySeconds:r}),await this.client.expire(this.prefixed(t),r)))}async delete(t){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:t}),await this.client.del(this.prefixed(t))})}async bulkDelete(t){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:t.length}),await this.client.del(t.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async t=>{let r=await this.scan();t.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(t){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:t});let n=await this.client.incr(this.prefixed(t));if(isNaN(n))throw new Error(`Redis ${t} does not contain a number`);return n})}async deleteIfValue(t,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:t});let i=`
|
|
1444
|
+
`),i=n[2]&&n[2].indexOf("Up")!==-1;i&&(console.log(yi("Stopping services, this may take a moment.")),await Rde.default.stop()),console.log(yi("Beginning update, this may take a few minutes."));let o;t?o=Dos:o=Nos,await Rde.default.pullMany(o,{log:!0}),i&&(console.log(Sa("Update complete, restarting services...")),await Cj())})}s(xJt,"update");var RJt=new Wv("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 'single'.",xde).addSubOption("--start","Start the configured platform in current directory.",Cj).addSubOption("--status","Check the status of currently running services.",IJt).addSubOption("--stop","Stop the configured platform in the current directory.",TJt).addSubOption("--update","Update the Budibase images to the latest version.",xJt).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",Cde).addSubOption("--gen-user","Create an admin user automatically as part of first start.",Ide).addSubOption("--single","Specify this with init to use the single image.");TO();var Cb=Le(require("fs")),HQ=require("path");var Ode=Le(require("pouchdb"));Id();var OJt=Le(require("node-fetch"));function kde(e){let t;e?t={prefix:e}:t={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return Ode.default.plugin(r.plugin),Ode.default.adapter("writableStream",r.adapters.writableStream),Ode.default.defaults(t)}s(kde,"getPouch");async function kJt(e){let t=await(0,OJt.default)(KHe(encodeURI(`${e}/_all_dbs`)),{method:"GET"});if(t.status===200)return await t.json();throw"Cannot connect to CouchDB instance"}s(kJt,"getAllDbs");Id();var I8i=Le(require("dotenv")),I4t=Le(require("fs"));bB();Ut();Ut();var Ij={WORKSPACES:"/builder/workspaces",SETTINGS_EMAIL:"/builder/settings/email",SETTINGS_AUTH:"/builder/settings/auth",SETTINGS_PEOPLE_USERS:"/builder/settings/people/users",APPS:"/builder/apps"},Nde={ACCOUNT:"/portal/account",BILLING:"/portal/billing",UPGRADE:"/portal/upgrade"};var xA={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"}},NJt={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var sH={};Is(sH,{ColumnSplitter:()=>YVe,NoEmptyFilterStrings:()=>Uor,buildQuery:()=>qor,cleanupQuery:()=>XVe,fixupFilterArrays:()=>e$e,getKeyNumbering:()=>ZVe,getValidOperatorsForType:()=>LSs,hasFilters:()=>KVe,limit:()=>Qor,recurseLogicalOperators:()=>JVe,removeKeyNumbering:()=>Fde,runQuery:()=>Bfe,search:()=>FSs,sort:()=>For,splitFiltersArray:()=>Qde});Ut();var iH=Le(IGe());var OO={};Is(OO,{filterValueToLabel:()=>Tls,hasSchema:()=>Cls,isSupportedUserSearch:()=>GZt,nameToUrl:()=>kls,parallelForeach:()=>wls,processSearchFilters:()=>QGe,toMap:()=>xls,trimOtherProps:()=>Ils,unreachable:()=>vls});Ut();var HZt=Le(QZt());var Sls=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function vls(e,t){let r=t?.message||`No such case in exhaustive switch: ${e}`;if(!!!t?.doNotThrow)throw new Error(r)}s(vls,"unreachable");async function wls(e,t,r){let n=[],i=Symbol.asyncIterator in e,o=i?e[Symbol.asyncIterator]():e[Symbol.iterator](),a=s(async()=>{let c=await(i?o.next():Promise.resolve(o.next()));for(;!c.done;)await t(c.value),c=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let c=0;c<r;c++)n.push(a());await Promise.all(n)}s(wls,"parallelForeach");function Tls(){return Object.keys(xA).reduce((e,t)=>{let n=xA[t];return e[n.value]=n.label,e},{})}s(Tls,"filterValueToLabel");function Cls(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null&&!(e instanceof Date)&&Object.keys(e).length>0}s(Cls,"hasSchema");function Ils(e,t){return Object.keys(e).filter(n=>t.includes(n)).reduce((n,i)=>({...n,[i]:e[i]}),{})}s(Ils,"trimOtherProps");function GZt(e){let t=[{op:"string",key:"email"},{op:"fuzzy",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=e;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(_de(o)){for(let l of e[o].conditions)if(!GZt(l))return!1;return!0}let c=Object.keys(a||{});if(c.length===0)continue;if(!t.find(l=>l.op===o&&c.length===1&&c[0]===l.key))return!1}return!0}s(GZt,"isSupportedUserSearch");function QGe(e){if(!e||e.length===0)return;let{allOr:t,onEmptyFilter:r,filters:n}=Qde(e);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:t?"any":"all",filters:n.map(i=>{let o=(0,HZt.default)(i,Sls);return o.field=Fde(o.field),o})}]}}s(QGe,"processSearchFilters");function xls(e,t){return t.reduce((r,n)=>(r[n[e]]=n,r),{})}s(xls,"toMap");var Rls=s(e=>e?e.trim():null,"resolveWorkspaceName"),Ols=s(e=>{let t,r=Rls(e);t=r?r.toLowerCase():"";let n=t?t.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),kls=s(e=>{let t=Ols(e);return Nls(t)},"nameToUrl"),Nls=s(e=>(e&&!e.startsWith("/")&&(e=`/${e}`),e===""?null:e),"tidyUrl");var RC={};Is(RC,{accountPortalAccountUrl:()=>Ior,accountPortalBillingUrl:()=>xor,accountPortalUpgradeUrl:()=>Ror,builderAppsUrl:()=>Por,builderSettingsAuthUrl:()=>Nor,builderSettingsEmailUrl:()=>kor,builderSettingsPeopleUsersUrl:()=>Dor,builderWorkspacesUrl:()=>Oor,cancelableTimeout:()=>VZt,cron:()=>ESs,deepGet:()=>jGe,duplicateName:()=>hSs,formatBytes:()=>_Ss,getSequentialName:()=>mSs,getUserColor:()=>Pls,getUserInitials:()=>Dls,getUserLabel:()=>Bls,isGoogleSheets:()=>Uls,isSQL:()=>qls,lists:()=>zVe,retry:()=>Fls,roles:()=>$Ve,schema:()=>UK,structuredOutput:()=>FVe,urlHelpers:()=>ySs,views:()=>VVe,wait:()=>HGe,withTimeout:()=>Mls});var jGe=s((e,t)=>{if(!e||!t)return null;if(Object.prototype.hasOwnProperty.call(e,t))return e[t];let r=t.split(".");for(let n=0;n<r.length;n++)e=e?.[r[n]];return e},"deepGet"),Dls=s(e=>{if(!e)return"?";let t="";return t+=e.firstName?e.firstName[0]:"",t+=e.lastName?e.lastName[0]:"",t!==""?t:e.email?.[0]||"U"},"getUserInitials"),Pls=s(e=>{let t=e?._id;if(!t)return"var(--spectrum-global-color-blue-400)";t=t.replace("ro_ta_users_","");let r=1;for(let n=0;n<t.length;n++)r+=t.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),Bls=s(e=>{if(!e)return"";let{firstName:t,lastName:r,email:n}=e;return t&&r?`${t} ${r}`:t||r||n},"getUserLabel");function VZt(e){let t;return[new Promise((r,n)=>{t=setTimeout(()=>{n({status:301,errno:"ETIME"})},e)}),()=>{clearTimeout(t)}]}s(VZt,"cancelableTimeout");async function Mls(e,t){let[r,n]=VZt(e),i=await Promise.race([t(),r]);return n(),i}s(Mls,"withTimeout");Ut();function Uls(e){return e==="GOOGLE_SHEETS"}s(Uls,"isGoogleSheets");function qls(e){return!e||!e.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(e.source)!==-1||e.isSQL===!0}s(qls,"isSQL");async function HGe(e){return new Promise(t=>setTimeout(t,e))}s(HGe,"wait");async function Fls(e,t){let{times:r=3}=t||{};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 HGe(o);try{return await e()}catch(a){n=a}}throw n}s(Fls,"retry");var hor=Le(Xv()),mor=Le(dor());var por="(Input cron: ",Cbs={"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 Ibs(e){let t=[];for(let r of e){r.includes(por)&&(r=r.split(por)[0].trim());for(let[n,i]of Object.entries(Cbs))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));t.push(r)}return t}s(Ibs,"improveErrors");function gor(e,t=4){let r=mor.default.parseExpression(e),n=[];for(let i=0;i<t;i++)n.push(r.next().toString());return n}s(gor,"getNextExecutionDates");function Aor(e){let t=(0,hor.default)(e,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return t.isValid()?{valid:!0}:{valid:!1,err:Ibs(t.getError())}}s(Aor,"validate");var UK={};Is(UK,{decodeNonAscii:()=>qVe,encodeNonAscii:()=>Obs,isDeprecatedSingleUserColumn:()=>xbs,isNumeric:()=>kbs,isRequired:()=>Rbs});Ut();function xbs(e){return e.type==="bb_reference"&&e.subtype==="user"&&e.constraints?.type!=="array"}s(xbs,"isDeprecatedSingleUserColumn");function Rbs(e){return!!e&&(typeof e.presence!="boolean"&&e.presence?.allowEmpty===!1||e.presence===!0)}s(Rbs,"isRequired");function Obs(e){return e.split("").map(t=>t.charCodeAt(0)>127?"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0"):t).join("")}s(Obs,"encodeNonAscii");function qVe(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}s(qVe,"decodeNonAscii");function kbs(e){return e.type==="number"||e.type==="bigint"}s(kbs,"isNumeric");var FVe={};Is(FVe,{normalizeSchemaForStructuredOutput:()=>Nbs});function Nbs(e){function t(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=[],c={};for(let[d,f]of Object.entries(o))if(typeof f=="object"&&f!==null){let p=f;if(p.required===!0){a.push(d);let{required:h,...A}=p;c[d]=t(A)}else c[d]=t(p)}else c[d]=f;i.properties=c;let u=Array.isArray(i.required)?i.required:[],l=[...new Set([...u,...a])];l.length>0?i.required=l:i.required=Object.keys(c)}i.type==="array"&&i.items&&typeof i.items=="object"&&i.items!==null&&(i.items=t(i.items));for(let o of["anyOf","oneOf","allOf"])Array.isArray(i[o])&&(i[o]=i[o].map(a=>t(a)));return i}s(t,"processSchema");let r=t(e);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(Nbs,"normalizeSchemaForStructuredOutput");var VVe={};Is(VVe,{basicFields:()=>uSs,calculationFields:()=>cSs,hasCalculationFields:()=>aSs,isBasicViewField:()=>sSs,isCalculationField:()=>qK,isCalculationView:()=>oSs,isV2:()=>lSs,isVisible:()=>Cor});Ut();var GVe=Le(HVe());function qK(e){return"calculationType"in e}s(qK,"isCalculationField");function sSs(e){return!qK(e)}s(sSs,"isBasicViewField");function oSs(e){return e.type==="calculation"}s(oSs,"isCalculationView");function aSs(e){return Object.values(e.schema||{}).some(qK)}s(aSs,"hasCalculationFields");function cSs(e){return(0,GVe.default)(e.schema||{},qK)}s(cSs,"calculationFields");function Cor(e){return e.visible!==!1}s(Cor,"isVisible");function uSs(e,t){let{visible:r=!0}=t||{};return(0,GVe.default)(e.schema||{},n=>!qK(n)&&(!r||Cor(n)))}s(uSs,"basicFields");function lSs(e){return e.version===2}s(lSs,"isV2");var $Ve={};Is($Ve,{checkForRoleInheritanceLoops:()=>fSs});Ut();function dSs(e){return`role${rs}${e}`}s(dSs,"prefixForCheck");function fSs(e){let t=new Map;e.forEach(o=>{t.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=dSs(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let c=t.get(a)||t.get(o);if(!c)return n.delete(o),!1;let u=Array.isArray(c.inherits)?c.inherits:[c.inherits];for(let l of u)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!e.find(o=>i(o._id))}s(fSs,"checkForRoleInheritanceLoops");var zVe={};Is(zVe,{punctuateList:()=>pSs});function pSs(e){return e.length===0?"":e.length===1?e[0]:e.length===2?e.join(" and "):e.slice(0,-1).join(", ")+" and "+e[e.length-1]}s(pSs,"punctuateList");var hSs=s((e,t)=>{let r=new RegExp("\\s(\\d+)$"),n=e.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];t.filter(c=>{if(c===n)return!0;let u=c.match(i);return u?(o.push(parseInt(u[1])),!0):!1}),o.sort((c,u)=>c-u);let a;if(o.length===0)a=1;else{for(let c=0;c<o.length;c++)if(o[c]!==c+1){a=c+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),mSs=s((e,t,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!t?.length)return"";let o=t.trim(),a=n?`${t}1`:o;if(!e?.length)return a;let c=0;return e.forEach(u=>{let l=r?.(u)??u;if(typeof l!="string"||!l.startsWith(o))return;let d=l.split(o);if(d.length!==2)return;d[1].trim()===""&&(d[1]="1");let f=parseInt(d[1]);f>c&&(c=f)}),c===0?a:`${t}${i}${c+1}`},"getSequentialName");var gSs=s(e=>e?e.startsWith("/")?e:`/${e}`:"","normalizePath"),ASs=s(e=>e?e.endsWith("/")?e.slice(0,-1):e:"","normalizeBase"),FO=s((e,t)=>{let r=gSs(t);if(!e)return r;let n=ASs(e);return r?`${n}${r}`:n},"joinBaseAndPath"),Ior=s(e=>FO(e,Nde.ACCOUNT),"accountPortalAccountUrl"),xor=s(e=>FO(e,Nde.BILLING),"accountPortalBillingUrl"),Ror=s(e=>FO(e,Nde.UPGRADE),"accountPortalUpgradeUrl"),Oor=s(e=>FO(e,Ij.WORKSPACES),"builderWorkspacesUrl"),kor=s(e=>FO(e,Ij.SETTINGS_EMAIL),"builderSettingsEmailUrl"),Nor=s(e=>FO(e,Ij.SETTINGS_AUTH),"builderSettingsAuthUrl"),Dor=s(e=>FO(e,Ij.SETTINGS_PEOPLE_USERS),"builderSettingsPeopleUsersUrl"),Por=s(e=>FO(e,Ij.APPS),"builderAppsUrl"),ySs={accountPortalAccountUrl:Ior,accountPortalBillingUrl:xor,accountPortalUpgradeUrl:Ror,builderWorkspacesUrl:Oor,builderSettingsEmailUrl:kor,builderSettingsAuthUrl:Nor,builderSettingsPeopleUsersUrl:Dor,builderAppsUrl:Por};function _Ss(e,t=""){let r=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=0,o=typeof e=="string"?parseInt(e,10):e||0;for(;o>=1024&&i<r.length-1&&++i;)o/=1024;return`${o.toFixed(o<10&&i>0?1:0)}${t}${r[i]}`}s(_Ss,"formatBytes");var ESs={getNextExecutionDates:gor,validate:Aor};var Pfe=Le(y_()),WVe=Le(ug());var BSs=/{{([^{].*?)}}/g,Lor=Object.values(k5),MSs=[...Object.values(Sj),...Object.values(AB),...Object.values(O5)],LSs=s((e,t,r)=>{let n=xA,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],c=[],{type:u,formulaType:l,subtype:d}=e;u==="string"?d==="array"?c=a:c=i:u==="number"||u==="bigint"?c=o:u==="options"?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="array"?c=a:u==="boolean"?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:u==="longform"?c=i:u==="datetime"?c=o:u==="formula"&&l==="static"?c=i.concat([n.MoreThan,n.LessThan]):u==="ai"?c=i.concat([n.MoreThan,n.LessThan]):u==="bb_reference_single"||UK.isDeprecatedSingleUserColumn(e)?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?c=a:u==="barcodeqr"?c=i:u==="link"&&(c=[n.Empty,n.NotEmpty]);let f=r?.tableId?.includes("datasource_plus");return t==="_id"&&f&&(c=[n.Equals,n.NotEquals,n.In]),c},"getValidOperatorsForType"),Uor=[xA.StartsWith.value,xA.Like.value,xA.Equals.value,xA.NotEquals.value,xA.Contains.value,xA.NotContains.value,xA.ContainsAny.value,xA.In.value];function JVe(e,t){for(let r of Lor)e[r]&&(e[r].conditions=e[r].conditions.map(n=>t(n)));return e}s(JVe,"recurseLogicalOperators");var XVe=s(e=>{for(let t of Uor)if(e[t])for(let r of Object.keys(e)){if(r!==t)continue;if(typeof e[r]=="object")for(let[i,o]of Object.entries(e[r]))(o==null||o===""||USs(o))&&delete e[t][i]}return e=JVe(e,XVe),e},"cleanupQuery");function USs(e){return Array.isArray(e)&&e.length===0}s(USs,"isEmptyArray");var Fde=s(e=>ZVe(e).key,"removeKeyNumbering"),ZVe=s(e=>{if(typeof e=="string"&&e.match(/\d[0-9]*:/g)!=null){let t=e.split(":");return{prefix:`${t.shift()}:`,key:t.join(":")}}else return{key:e}},"getKeyNumbering"),YVe=class{static{s(this,"ColumnSplitter")}constructor(t,r){if(this.tableNames=t.map(n=>n.name),this.tableIds=t.map(n=>n._id),this.relationshipColumnNames=t.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(t){let{prefix:r,key:n}=ZVe(t),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let c=`${a}.`;n.startsWith(c)&&(i=this.aliases[a],n=n.slice(c.length))}let o;for(let a of this.relationships){let c=`${a}.`;if(n.startsWith(c)){let u=n.split(c);u.shift(),o=c,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=qVe(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function qSs(e){if(!e||!e?.operator||!e?.field)return;let t={},{operator:r,field:n,type:i,externalType:o}=e,{value:a}=e;(r==="empty"||r==="notEmpty")&&(a=null);let c=typeof a=="string"&&(a.match(BSs)||[]).length>0;switch(i){case"datetime":if(!c&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Ede(r))return t[r]??={},t[r][n]=a,t}break;case"number":typeof a=="string"&&!c&&(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(Ede(r)){let l=NJt[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};t[r]??={},t[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!=="")t.range??={},t.range[n]={...t.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")t.range??={},t.range[n]={...t.range[n],low:a};else if(b5t(r)||S5t(r)||Ede(r))i==="boolean"?r==="equal"&&a===!1?(t.notEqual=t.notEqual||{},t.notEqual[n]=!0):r==="notEqual"&&a===!1?(t.equal=t.equal||{},t.equal[n]=!0):(t[r]??={},t[r][n]=a):(t[r]??={},t[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return t}s(qSs,"buildCondition");function Qde(e){let t={filters:[]};for(let r of e)"operator"in r&&r.operator==="allOr"?t.allOr=!0:"onEmptyFilter"in r?t.onEmptyFilter=r.onEmptyFilter:t.filters.push(r);return t}s(Qde,"splitFiltersArray");function qor(e){if(!e)return{};if(Array.isArray(e)&&(e=QGe(e),!e))return{};let t={};e.onEmptyFilter?t.onEmptyFilter=e.onEmptyFilter:t.onEmptyFilter="all";let r=Mor(e.logicalOperator||"all");return t[r]={conditions:(e.groups||[]).map(n=>{if(n.groups){let u=qor(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:o,filters:a}=Qde(n.filters||[]);o&&(t.onEmptyFilter=o);let c=i?"$or":"$and";return n.logicalOperator&&(c=Mor(n.logicalOperator)),{[c]:{conditions:a.map(qSs).filter(u=>u)}}})},t}s(qor,"buildQuery");function Mor(e){return e==="all"?"$and":"$or"}s(Mor,"logicalOperatorFromUI");function e$e(e){if(!e)return e;for(let t of Object.values(AB)){let r=e[t];if(!(r==null||!(0,Pfe.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 JVe(e,e$e),e}s(e$e,"fixupFilterArrays");function FSs(e,t){let r=Bfe(e,t.query);t.sort&&(r=For(r,t.sort,t.sortOrder||"ascending",t.sortType));let n=r.length;t.limit&&(r=Qor(r,t.limit.toString()));let i={rows:r};return t.countRows&&(i.totalRows=n),i}s(FSs,"search");function Bfe(e,t){if(!e||!Array.isArray(e))return[];if(!t)return e;if(t=XVe(t),t=e$e(t),!KVe(t)&&t.onEmptyFilter==="none")return[];let r=s((T,B)=>F=>{for(let[j,H]of Object.entries(t[T]||{})){let z=_de(T)?F:jGe(F,Fde(j)),X=B(z,H);if(t.allOr&&X)return!0;if(!t.allOr&&!X)return!1}return!t.allOr},"match"),n=r("string",(T,B)=>typeof T!="string"||typeof B!="string"?!1:T.toLowerCase().startsWith(B.toLowerCase())),i=r("fuzzy",(T,B)=>typeof T!="string"||typeof B!="string"?!1:T.toLowerCase().includes(B.toLowerCase())),o=r("range",(T,B)=>{if(T==null||T===""||((0,Pfe.default)(B.low)&&(0,WVe.default)(B.low)&&(B.low=void 0),(0,Pfe.default)(B.high)&&(0,WVe.default)(B.high)&&(B.high=void 0),B.low==null&&B.high==null))return!1;let F=+T;if(!isNaN(F)){let H=+B.low,z=+B.high;if(!isNaN(H)&&!isNaN(z))return F>=H&&F<=z;if(isNaN(H)){if(!isNaN(z))return F<=z}else return F>=H}let j=(0,iH.default)(T);if(j.isValid()){let H=(0,iH.default)(B.low||"0000-00-00T00:00:00.000Z"),z=(0,iH.default)(B.high||"9999-00-00T00:00:00.000Z");if(H.isValid()&&z.isValid())return j.isAfter(H)&&j.isBefore(z)||j.isSame(H)||j.isSame(z);if(H.isValid())return j.isAfter(H)||j.isSame(H);if(z.isValid())return j.isBefore(z)||j.isSame(z)}return B.low!=null&&B.high!=null?T>=B.low&&T<=B.high:B.low!=null?T>=B.low:B.high!=null?T<=B.high:!1}),a=s((T,B)=>{if(Array.isArray(T)){for(let j of T)if(a(j,B))return!0;return!1}if(T&&typeof T=="object"&&typeof B=="string")return T._id===B;if(T===B)return!0;if(T==null&&B!=null||T!=null&&B==null)return!1;let F=(0,iH.default)(T);if(F.isValid()){let j=(0,iH.default)(B);if(j.isValid())return F.isSame(j)}return!1},"_valueMatches"),c=s(T=>(...B)=>!T(...B),"not"),u=r("equal",a),l=r("notEqual",c(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),p=r("notEmpty",c(d)),h=r("oneOf",(T,B)=>(typeof B=="string"&&(B=B.split(",")),typeof T=="number"&&(B=B.map(F=>parseFloat(F))),Array.isArray(B)?B.some(F=>a(T,F)):!1)),A=s(T=>(B,F)=>!Array.isArray(B)||(typeof F=="string"&&(F=F.split(","),typeof B[0]=="number"&&(F=F.map(j=>parseFloat(j)))),!Array.isArray(F))?!1:F.length===0?!0:F[T](j=>a(B,j)),"_contains"),y=r("contains",(T,B)=>Array.isArray(B)&&B.length===0?!0:A("every")(T,B)),v=r("notContains",(T,B)=>Array.isArray(B)&&B.length===0?!0:c(A("every"))(T,B)),b=r("containsAny",A("some")),x=r("$and",(T,B)=>{if(!B.length)return!1;for(let F of B)if(!Bfe([T],F).length)return!1;return!0}),O=r("$or",(T,B)=>{if(!B.length)return!1;for(let F of B)if(Bfe([T],{...F,allOr:!0}).length)return!0;return!1}),N=s(T=>{let B={string:n,fuzzy:i,range:o,equal:u,notEqual:l,empty:f,notEmpty:p,oneOf:h,contains:y,containsAny:b,notContains:v,$and:x,$or:O},F=Object.entries(t||{}).filter(([j,H])=>!["allOr","onEmptyFilter"].includes(j)&&H&&Object.keys(H).length>0).map(([j])=>B[j]?.(T)??!1);return KVe(t)?t.allOr?F.some(j=>j===!0):F.every(j=>j===!0):!0},"docMatch");return e.filter(N)}s(Bfe,"runQuery");function For(e,t,r,n="string"){if(!t||!r||!n)return e;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return e.slice().sort((o,a)=>{let c=i(o[t]),u=i(a[t]),l=u==null||c>u?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(For,"sort");function Qor(e,t){let r=typeof t=="number"?t:parseFloat(t);return isNaN(r)?e:e.slice(0,r)}s(Qor,"limit");var KVe=s(e=>{if(!e)return!1;let t=s(r=>{for(let n of Lor)if(r[n])for(let i of r[n]?.conditions||[]){let o=t(i);if(o)return o}for(let n of MSs){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let c=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||c}).length!==0)return!0}return!1},"check");return t(e)},"hasFilters");var v_={};Is(v_,{applications:()=>r$e,automations:()=>n$e,screens:()=>a$e,users:()=>o$e});var r$e={};Is(r$e,{getDevAppID:()=>QSs,getProdAppID:()=>QK});Ut();var t$e=_B("app"),FK=_B("app_dev");function QSs(e){if(!e)throw new Error("No app ID provided");if(e.startsWith(FK))return e;let t=e.split(t$e);t.shift();let r=t.join(t$e);return`${FK}${r}`}s(QSs,"getDevAppID");function QK(e){if(!e)throw new Error("No app ID provided");if(!e.startsWith(FK))return e;let t=e.split(FK);t.shift();let r=t.join(FK);return`${t$e}${r}`}s(QK,"getProdAppID");var n$e={};Is(n$e,{checkForCollectStep:()=>VSs,isAppAction:()=>GSs,isRowAction:()=>jSs,isWebhookAction:()=>HSs});Ut();function jSs(e){return e.definition.trigger?.stepId==="ROW_ACTION"}s(jSs,"isRowAction");function HSs(e){return e.definition.trigger?.stepId==="WEBHOOK"}s(HSs,"isWebhookAction");function GSs(e){return e.definition.trigger?.stepId==="APP"}s(GSs,"isAppAction");function jor(e){if(!e||!Array.isArray(e))return!1;for(let t of e){if(t.stepId==="COLLECT")return!0;if(LKt(t)&&t.inputs.children){for(let r of Object.values(t.inputs.children))if(jor(r))return!0}}return!1}s(jor,"hasCollectBlockRecursive");function VSs(e){return jor(e.definition.steps)}s(VSs,"checkForCollectStep");var o$e={};Is(o$e,{canCreateApps:()=>$Ss,containsUserID:()=>evs,getGlobalUserID:()=>ZSs,getUserAppGroups:()=>tvs,hasAdminPermissions:()=>s$e,hasAppBuilderPermissions:()=>Ufe,hasBuilderPermissions:()=>JSs,hasCreatorPermissions:()=>qfe,isAdmin:()=>jK,isAdminOrBuilder:()=>WSs,isAdminOrGlobalBuilder:()=>YSs,isAdminOrWorkspaceBuilder:()=>zSs,isBuilder:()=>i$e,isCreator:()=>XSs,isGlobalBuilder:()=>Lfe,userAppAccessList:()=>rvs});Ut();function i$e(e,t){return e?e.builder?.global?!0:!!(t&&e.builder?.apps?.includes(QK(t))):!1}s(i$e,"isBuilder");function Lfe(e){return i$e(e)&&!Ufe(e)||jK(e)}s(Lfe,"isGlobalBuilder");function $Ss(e){return Lfe(e)||qfe(e)}s($Ss,"canCreateApps");function jK(e){return e?s$e(e):!1}s(jK,"isAdmin");function zSs(e,t){return e?!!(jK(e)||t&&e.builder?.apps?.includes(QK(t))):!1}s(zSs,"isAdminOrWorkspaceBuilder");function WSs(e,t){return i$e(e,t)||jK(e)}s(WSs,"isAdminOrBuilder");function YSs(e){return Lfe(e)||jK(e)}s(YSs,"isAdminOrGlobalBuilder");function Ufe(e){if(!e)return!1;let t=e.builder?.apps?.length;return!!!e.builder?.global&&t!=null&&t>0}s(Ufe,"hasAppBuilderPermissions");function KSs(e){return e?!!Object.values(e.roles??{}).find(t=>t==="CREATOR"):!1}s(KSs,"hasAppCreatorPermissions");function JSs(e){return e?e.builder?.global||Ufe(e)||qfe(e):!1}s(JSs,"hasBuilderPermissions");function s$e(e){return e?!!e.admin?.global:!1}s(s$e,"hasAdminPermissions");function qfe(e){return e?!!e.builder?.creator:!1}s(qfe,"hasCreatorPermissions");function XSs(e){return e?Lfe(e)||s$e(e)||qfe(e)||Ufe(e)||KSs(e):!1}s(XSs,"isCreator");function ZSs(e){if(typeof e!="string")return e;let t=`ro${rs}ta_users${rs}`;return e.startsWith(t)?e.split(t)[1]:e}s(ZSs,"getGlobalUserID");function evs(e){return typeof e!="string"?!1:e.includes(`us${rs}`)}s(evs,"containsUserID");function Hor(e,t){return t?.filter(r=>r.users?.find(n=>n._id===e))||[]}s(Hor,"getUserGroups");function tvs(e,t,r){let n=QK(e);return Hor(t,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(tvs,"getUserAppGroups");function rvs(e,t){let n=Hor(e._id,t).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(e?.roles||{}),...n];return[...new Set(i)]}s(rvs,"userAppAccessList");var a$e={};Is(a$e,{findInSettings:()=>nvs});function nvs(e,t){let r=[];function n(i,o=""){for(let[a,c]of Object.entries(i))c&&(typeof c=="string"&&c.includes(t)?r.push({setting:o?`${o}.${a}`:a,value:c}):typeof c=="object"&&n(c,a))}return s(n,"recurse"),n(e.props),r}s(nvs,"findInSettings");Ut();var c$e={by_email2:["by_email"]},Vb={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"}},GB=_B("app"),svs=_B("app_dev"),QO=svs;var HK="_design/sqlite";var ovs=`ro${rs}ta_users${rs}`;var xf="default";Ut();Ut();var u$e=require("crypto"),Qfe=require("fs"),cvs=Le(aH()),VK=require("path");var uvs=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,VK.resolve)((0,VK.join)(__dirname,"..","..","..")),Vor=!1;!Vor&&Ffe()&&!l$e()&&(require("dotenv").config({path:(0,VK.join)(uvs,".env")}),Vor=!0);function l$e(){return zor()}s(l$e,"isTest");function zor(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(zor,"isJest");function Ffe(){return process.env.NODE_ENV!=="production"}s(Ffe,"isDev");function lvs(e){if(e)return parseInt(e)}s(lvs,"parseIntSafe");var cH={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},$or=!!parseInt(process.env.SELF_HOSTED||"");function dvs(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(dvs,"getAPIEncryptionKey");function fvs(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(fvs,"httpLogging");function pvs(){function e(r){function n(c,u){let l=`${u}/${c}`;if((0,Qfe.existsSync)(l))return l;let d=`${u}/..`;return d===u?null:n(c,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Qfe.readFileSync)(i,"utf-8");return JSON.parse(o)}s(e,"getParentFile");let t;if(Ffe()&&!l$e())try{t=`${e("lerna.json").version}+local`}catch{}try{let r=e("package.json");return{VERSION:t||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(pvs,"getPackageJsonFields");function hvs(){return jO.SERVICE_TYPE==="worker"}s(hvs,"isWorker");function mvs(){return jO.SERVICE_TYPE==="apps"}s(mvs,"isApps");function gvs(){return jO.BUDIBASE_ENVIRONMENT==="QA"}s(gvs,"isQA");function Avs(){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(Avs,"getServiceName");var jO={isTest:l$e,isJest:zor,isDev:Ffe,isWorker:hvs,isApps:mvs,isQA:gvs,isProd:()=>!Ffe(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JWT_SECRET:process.env.JWT_SECRET?(0,u$e.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,u$e.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:dvs(),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,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:$or,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||cH.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||cH.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||cH.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||cH.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||cH.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||cH.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Avs(),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:fvs(),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:$or?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...pvs(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(e,t){process.env[e]=t,jO[e]=t},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,OPENAI_API_KEY:process.env.OPENAI_API_KEY,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:lvs(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};for(let[e,t]of Object.entries(jO))t==="0"&&(jO[e]=0),t==="false"&&(jO[e]=0);var He=jO;var $K="-";function d$e(){let e=He.REDIS_PASSWORD,t=He.REDIS_USERNAME,r=He.REDIS_URL.split("//");if(r=r.length>1?r[1]:r[0],r=r.split("@"),r.length>1){let a=r[0].split(":");t=t||a[0]||void 0,e=a[1],r=r[1]}else r=r[0];let[n,i]=r.split(":"),o=parseInt(i);return{host:n,password:e,username:t,port:isNaN(o)?6379:o}}s(d$e,"getRedisConnectionDetails");function Wor(){return{slotsRefreshTimeout:2e3,dnsLookup:(e,t)=>t(null,e),redisOptions:{...uH(),tls:{}}}}s(Wor,"getRedisClusterOptions");function uH(){let{host:e,password:t,port:r,username:n}=d$e();return{connectTimeout:3e4,port:r,host:e,password:t,...n&&{username:n}}}s(uH,"getRedisOptions");function Yor(e){let t=e.split($K);return t.length>=2?(t.shift(),t.join($K)):t[0]}s(Yor,"removeDbPrefix");var gkn=Le(require("events"));JK();function r0(){return VB().replace(/-/g,"")}s(r0,"newid");var kvs=require("bcrypt"),rvl=He.SALT_ROUNDS||10;async function yar(e,t){return kvs.compare(e,t)}s(yar,"compare");Ut();var FRa=Le(c4e());var Wc={};Is(Wc,{DEFAULT_TENANT_ID:()=>xf,baseGlobalDBName:()=>wSe,doInAutomationContext:()=>lXo,doInContext:()=>Bdt,doInEnvironmentContext:()=>bXo,doInFeatureFlagOverrideContext:()=>wcn,doInIPContext:()=>Scn,doInIdentityContext:()=>Spe,doInLicenseContext:()=>fXo,doInScimContext:()=>SXo,doInSelfHostTenantUsingCloud:()=>dXo,doInTenant:()=>qI,doInWorkspaceContext:()=>mXo,doInWorkspaceMigrationContext:()=>AXo,ensureSnippetContext:()=>vcn,getAuditLogDBName:()=>Ecn,getAuditLogsDB:()=>wXo,getAutomationId:()=>Mdt,getCurrentContext:()=>QL,getDevWorkspaceDB:()=>CXo,getDevWorkspaceId:()=>_Xo,getEnvironmentVariables:()=>vXo,getFeatureFlagOverrides:()=>jdt,getFeatureFlags:()=>Fdt,getGlobalDB:()=>jp,getGlobalDBName:()=>Bee,getIP:()=>Ldt,getIdentity:()=>zO,getLicense:()=>pXo,getOrThrowWorkspaceId:()=>yXo,getPlatformURL:()=>Pdt,getProdWorkspaceDB:()=>TXo,getProdWorkspaceId:()=>EXo,getScimDBName:()=>oXo,getSelfHostCloudDB:()=>hXo,getTableForView:()=>IXo,getTenantIDFromWorkspaceID:()=>OV,getTenantId:()=>ms,getWorkspaceDB:()=>Udt,getWorkspaceId:()=>tm,identity:()=>u7,isMultiTenant:()=>FL,isScim:()=>qdt,isSelfHostUsingCloud:()=>TSe,isTenancyEnabled:()=>cXo,isTenantIdSet:()=>aXo,setFeatureFlags:()=>Qdt,setTableForView:()=>xXo});var u7={};Is(u7,{doInAccountContext:()=>Mxs,doInIdentityContext:()=>u4e,doInUserContext:()=>Ylr,getAccountUserId:()=>Klr,getIdentity:()=>Wlr});Ut();function Wlr(){return zO()}s(Wlr,"getIdentity");function u4e(e,t){return Spe(e,t)}s(u4e,"doInIdentityContext");function Ylr(e,t,r){let n={...e,_id:e._id,type:"user",hostInfo:{ipAddress:t.request.ip,userAgent:t.userAgent.source}};return u4e(n,r)}s(Ylr,"doInUserContext");function Mxs(e,t){let r=Klr(e),n=e.tenantId,i={_id:r,type:"user",tenantId:n,account:e};return u4e(i,t)}s(Mxs,"doInAccountContext");function Klr(e){let t;return sGe(e)?t=e.budibaseUserId:t=e.accountId,t}s(Klr,"getAccountUserId");var WO=s(e=>{let t=Jlr(e),r,n;if(t.auth?.username)r=t.auth.username;else if(He.COUCH_DB_USERNAME)r=He.COUCH_DB_USERNAME;else if(!He.isTest())throw new Error("CouchDB username not set");if(t.auth?.password)n=t.auth.password;else if(He.COUCH_DB_PASSWORD)n=He.COUCH_DB_PASSWORD;else if(!He.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=He.COUCH_DB_SQL_URL;if(He.isDev()&&!o)o="http://localhost:4006";else if(!o&&t.url){let a=new URL(t.url);o=t.url.replace(a.port,"4984")}return{url:t.url,sqlUrl:Jlr(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),Jlr=s((e=He.COUCH_DB_URL)=>{let t,r,n,i;if(e){/^https?:\/\//i.test(e)||(e=`http://${e}`);let a=e.split("://"),c=a[0],u=a.slice(1).join("://");if(e.includes("@")){let l=u.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=u;t=`${c}://${i}`}return{url:t,auth:{username:r,password:n}}},"getUrlInfo");var Acn=Le(Ugr());Ut();var qgr=Le(require("node-fetch"));function phe(e){return e.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(phe,"checkSlashesInUrl");async function SWe({url:e,cookie:t,method:r,body:n}){let i={method:r,headers:{Authorization:t}};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,qgr.default)(phe(encodeURI(e)),i)}s(SWe,"directCouchUrlCall");var GBs=Le(require("pouchdb"));var VBs,$Bs=!1;var zBs=s(()=>{if(!$Bs)throw new Error("init has not been called")},"checkInitialised");function uk(e,t){zBs();let r=new VBs(e,t),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(uk,"getPouchDB");var eu=Le(L0());var Pee=class{constructor(t){this.db=t}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(t){return eu.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:t}),t?this.db.exists(t):this.db.exists()))}get(t){return eu.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:t}),this.db.get(t)))}tryGet(t){return eu.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:t});let n=await this.db.tryGet(t);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(t,r){return eu.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:t?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(t,r);return n.addTags({num_docs_found:i.length}),i})}remove(t,r){return eu.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:t,rev:r});let i=typeof t=="object",o=i?t._id:t;r=i?t._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(t,r){return eu.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:t.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(t,r)))}put(t,r){return eu.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:t._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(t,r);return n.addTags({ok:i.ok}),i})}bulkDocs(t){return eu.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:t.length}),this.db.bulkDocs(t)))}async find(t){return eu.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.find(t);return r.addTags({rows_length:n.docs.length}),n})}allDocs(t){return eu.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...t});let n=await this.db.allDocs(t);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(t,r){return eu.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:t,...r});let i=await this.db.query(t,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return eu.default.trace("db.destroy",async t=>{t.addTags({db_name:this.name});let r=await this.db.destroy();return t.addTags({ok:r.ok}),r})}compact(){return eu.default.trace("db.compact",async t=>{t.addTags({db_name:this.name});let r=await this.db.compact();return t.addTags({ok:r.ok}),r})}dump(t,r){return eu.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(t,r)))}load(...t){return eu.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.load(...t)))}createIndex(...t){return eu.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.createIndex(...t)))}deleteIndex(...t){return eu.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.deleteIndex(...t)))}getIndexes(...t){return eu.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.getIndexes(...t)))}sql(t,r){return eu.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(t,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(t){return eu.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(t)?t.length:1}),this.db.sqlPurgeDocument(t)))}sqlDiskCleanup(){return eu.default.trace("db.sqlDiskCleanup",t=>(t.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};Ut();var fed=`${rs}${rs}`;var ped=encodeURIComponent(" ");function Ndt(e,t,r){if(!He.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${e.toUpperCase()}] query="${t}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Ndt,"sqlLog");var hcn="Database does not exist.";function mcn(e){return(0,Acn.default)({url:e.url,requestDefaults:{headers:{Authorization:e.cookie}},parseUrl:!1})}s(mcn,"buildNano");var DN=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 vSe=class e{constructor(t,r,n){this.couchInfo=WO();this.name=t,this.pouchOpts=r||{},n&&(this.couchInfo=WO(n),this.instanceNano=mcn(this.couchInfo)),e.nano||e.init()}static{s(this,"DatabaseImpl")}static init(){let t=WO();e.nano=mcn(t)}exists(t){return t===void 0?this.dbExists():this.docExists(t)}async dbExists(){return(await SWe({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(t){try{return await this.performCall(r=>()=>r.head(t)),!0}catch{return!1}}nano(){return this.instanceNano||e.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let t=!this.pouchOpts?.skip_setup,r=await this.exists();if(!t&&!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 DN(n.message,n)}return this.getDb()}async performCallWithDBCreation(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===hcn)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(t);throw new DN(`CouchDB error: ${i.message}`,i)}}async performCall(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){throw new DN(`CouchDB error: ${i.message}`,i)}}async get(t){return this.performCall(r=>{if(!t)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(t)})}async tryGet(t){try{return await this.get(t)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(t,r){if(!t||t.length===0)return[];t=[...new Set(t)];let n=!r?.excludeDocs,i=await this.allDocs({keys:t,include_docs:n}),o=s(u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found","rowUnavailable"),a=i.rows.filter(u=>!o(u)),c=a.length!==i.rows.length;if(!r?.allowMissing&&c){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(u=>n?u.doc:u.value)}async remove(t,r){return this.performCall(n=>{let i,o;if(I5t(t)?(i=t._id,o=t._rev):(i=t,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(t,r){let n=await this.performCall(a=>()=>a.bulk({docs:t.map(c=>({...c,_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 DN(o,{name:this.name,status:400})}async post(t,r){return t._id||(t._id=r0()),this.put(t,r)}async put(t,r){if(!t._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(t.createdAt||(t.createdAt=new Date().toISOString()),t.updatedAt=new Date().toISOString(),r?.force&&t._id)try{let i=await this.get(t._id);i&&(t._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(t);return r?.returnDoc?{...i,doc:{...t,_rev:i.rev}}:i}})}async bulkDocs(t){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:t.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(t){return this.performCall(r=>async()=>r.find(t))}async allDocs(t){return this.performCall(r=>async()=>{try{return await r.list(t)}catch(n){if(n.reason===hcn)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(t,r,n){t=phe(`${this.couchInfo.sqlUrl}/${t}`);let i={url:t,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await SWe(i),a=await o.text();if(o.status>300){let c;try{c=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new DN("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw c}return JSON.parse(a)})}async sql(t,r){let i=`/${this.name}/${HK}`;return Ndt("sqlite3",t,r),await this._sqlQuery(i,"POST",{query:t,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(t){Array.isArray(t)||(t=[t]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:t})}async query(t,r){return this.performCall(n=>{let[i,o]=t.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(HK)){let t=await this.get(HK);t.sql.tables={},await this.put(t),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(t){if(t.statusCode===404)return{ok:!0};throw new DN(t.message,t)}}async compact(){return this.performCall(t=>()=>t.compact())}async dump(t,r){return uk(this.name).dump(t,r)}async load(t){return uk(this.name).load(t)}async createIndex(t){return uk(this.name).createIndex(t)}async deleteIndex(t){return uk(this.name).deleteIndex(t)}async getIndexes(){return uk(this.name).getIndexes()}};function TS(e,t){return new Pee(new vSe(e,t))}s(TS,"getDB");function Ddt(e){if(!e||e.startsWith(QO))return e;let t=e.split(GB);t.shift();let r=t.join(GB);return`${QO}${r}`}s(Ddt,"getDevWorkspaceID");function RV(e){if(!e||!e.startsWith(QO))return e;let t=e.split(QO);t.shift();let r=t.join(QO);return`${GB}${r}`}s(RV,"getProdWorkspaceID");var ycn=require("async_hooks");var cl=class e{static{s(this,"Context")}static{this.storage=new ycn.AsyncLocalStorage}static run(t,r){return e.storage.run(t,()=>r())}static get(){return e.storage.getStore()}};var _cn=null;function Bee(e){return e||(e=ms()),wSe(e)}s(Bee,"getGlobalDBName");function Ecn(e){return e||(e=ms()),e===xf?Vb.AUDIT_LOGS.name:`${e}${rs}${Vb.AUDIT_LOGS.name}`}s(Ecn,"getAuditLogDBName");function oXo(e){return e||(e=ms()),e===xf?Vb.SCIM_LOGS.name:`${e}${rs}${Vb.SCIM_LOGS.name}`}s(oXo,"getScimDBName");function wSe(e){return!e||e===xf?Vb.GLOBAL.name:`${e}${rs}${Vb.GLOBAL.name}`}s(wSe,"baseGlobalDBName");function Pdt(){return He.PLATFORM_URL}s(Pdt,"getPlatformURL");function FL(){return!!He.MULTI_TENANCY}s(FL,"isMultiTenant");function aXo(){return!!cl.get()?.tenantId}s(aXo,"isTenantIdSet");function cXo(){return He.MULTI_TENANCY}s(cXo,"isTenancyEnabled");function OV(e){if(!e)return;if(!FL())return xf;let t=e.split(rs),r=t[1]==="dev";if(!(r&&t.length===3||!r&&t.length===2))return r?t[2]:t[1]}s(OV,"getTenantIDFromWorkspaceID");function uXo(e){let t;try{t=cl.get()}catch{t={}}return t={...t,...e},t}s(uXo,"updateContext");async function CS(e,t){gXo();let r=uXo(e);return cl.run(r,t)}s(CS,"newContext");async function lXo(e){return await vcn(),await CS({tenantId:OV(e.workspaceId),appId:e.workspaceId,automationId:e.automationId},e.task)}s(lXo,"doInAutomationContext");async function Bdt(e,t){let r=OV(e);return CS({tenantId:r,appId:e},t)}s(Bdt,"doInContext");async function qI(e,t){return He.MULTI_TENANCY||(e=e||xf),CS(e?{tenantId:e}:{},t)}s(qI,"doInTenant");async function dXo(e,t){return CS({tenantId:e,isSelfHostUsingCloud:!0},t)}s(dXo,"doInSelfHostTenantUsingCloud");async function fXo(e,t){return CS({license:e},t)}s(fXo,"doInLicenseContext");function pXo(){return cl.get()?.license}s(pXo,"getLicense");function TSe(){return!!cl.get()?.isSelfHostUsingCloud}s(TSe,"isSelfHostUsingCloud");function hXo(){let e=cl.get();if(!e||!e.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return TS(Vb.SELF_HOST_CLOUD.name)}s(hXo,"getSelfHostCloudDB");async function mXo(e,t){return bcn(e,t)}s(mXo,"doInWorkspaceContext");async function bcn(e,t,r){if(!e)throw new Error("workspaceId is required");let n=OV(e),i={appId:e,...r};return n&&(i.tenantId=n),CS(i,t)}s(bcn,"_doInWorkspaceContext");async function Spe(e,t){if(!e)throw new Error("identity is required");let r={identity:e};return e.tenantId&&(r.tenantId=e.tenantId),CS(r,t)}s(Spe,"doInIdentityContext");function gXo(){if(cl.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(gXo,"guardMigration");async function AXo(e,t){return bcn(e,t,{isMigrating:!0})}s(AXo,"doInWorkspaceMigrationContext");function zO(){try{return cl.get()?.identity}catch{}}s(zO,"getIdentity");function ms(){if(!FL())return xf;let t=cl.get()?.tenantId;if(!t)throw new Error("Tenant id not found");return t}s(ms,"getTenantId");function Mdt(){return cl.get()?.automationId}s(Mdt,"getAutomationId");function tm(){let t=cl.get()?.appId;return!t&&He.isTest()&&_cn?_cn:t}s(tm,"getWorkspaceId");function yXo(){let e=tm();if(!e)throw new Error("Workspace id not set");return e}s(yXo,"getOrThrowWorkspaceId");function Ldt(){return cl.get()?.ip}s(Ldt,"getIP");var _Xo=s(()=>{let e=tm();if(!e)throw new Error("Could not get workspaceId");return Ddt(e)},"getDevWorkspaceId"),EXo=s(()=>{let e=tm();if(!e)throw new Error("Could not get workspaceId");return RV(e)},"getProdWorkspaceId");function bXo(e,t){if(!e)throw new Error("Must supply environment variables.");return CS({environmentVariables:e},t)}s(bXo,"doInEnvironmentContext");function SXo(e){return CS({isScim:!0},e)}s(SXo,"doInScimContext");function Scn(e,t){return CS({ip:e},t)}s(Scn,"doInIPContext");async function vcn(){let e=QL();if(!e||e.snippets)return;let t,r=Udt();r&&(t=(await r.tryGet("app_metadata"))?.snippets),e.snippets=t||[]}s(vcn,"ensureSnippetContext");function vXo(){let e=cl.get();return e.environmentVariables?e.environmentVariables:null}s(vXo,"getEnvironmentVariables");function jp(){let e=cl.get();if(!e||He.MULTI_TENANCY&&!e.tenantId)throw new Error("Global DB not found");if(e.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return TS(wSe(e?.tenantId))}s(jp,"getGlobalDB");function wXo(){if(!ms())throw new Error("No tenant ID found - cannot open audit log DB");return TS(Ecn())}s(wXo,"getAuditLogsDB");function Udt(e){let t=tm();if(!t)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(TSe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return TS(t,e)}s(Udt,"getWorkspaceDB");function TXo(e){let t=tm();if(!t)throw new Error("Unable to retrieve prod DB - no workspace ID.");return TS(RV(t),e)}s(TXo,"getProdWorkspaceDB");function CXo(e){let t=tm();if(!t)throw new Error("Unable to retrieve dev DB - no workspace ID.");return TS(Ddt(t),e)}s(CXo,"getDevWorkspaceDB");function qdt(){return!!cl.get()?.isScim}s(qdt,"isScim");function QL(){try{return cl.get()}catch{return}}s(QL,"getCurrentContext");function Fdt(e){let t=QL();if(t)return t.featureFlagCache?.[e]}s(Fdt,"getFeatureFlags");function Qdt(e,t){let r=QL();r&&(r.featureFlagCache??={},r.featureFlagCache[e]=t)}s(Qdt,"setFeatureFlags");function jdt(){return QL()?.featureFlagOverrides||{}}s(jdt,"getFeatureFlagOverrides");async function wcn(e,t){return await CS({featureFlagOverrides:e},t)}s(wcn,"doInFeatureFlagOverrideContext");function IXo(e){let t=QL();if(t)return t.viewToTableCache?.[e]}s(IXo,"getTableForView");function xXo(e,t){let r=QL();r&&(r.viewToTableCache??={},r.viewToTableCache[e]=t)}s(xXo,"setTableForView");var Twe=Le(dln());var wwe=Le(L0()),zSn=Le(aH());var $Sn;if(He.MOCK_REDIS)try{$Sn=VSn()}catch{console.log("Mock redis unavailable")}async function ERa(e=0){return await wwe.tracer.trace("Redis.init",async t=>{if(He.MOCK_REDIS)return t.addTags({mock:!0}),new $Sn(uH());let r;if(He.REDIS_CLUSTERED){t.addTags({clustered:!0});let{host:n,port:i}=d$e();r=new Twe.Cluster([{host:n,port:i}],Wor())}else r=new Twe.default(uH());return new Promise((n,i)=>{r.on("error",o=>{t.addTags({error:!0}),console.error(`failed to connect to redis (db: ${e})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${e})`)}),r.on("ready",()=>{t.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${e})`),n(r)})})})}s(ERa,"init");function bRa(e,t){return new Promise((r,n)=>{let i=new Set;e.on("data",o=>o.forEach(a=>i.add(a))),e.on("error",o=>n(o)),e.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let c=await t.get(a);return c&&(c=JSON.parse(c)),{key:Yor(a),value:c}});r(await Promise.all(o))}catch(o){n(o)}})})}s(bRa,"promisifyStream");function SRa(e){return e.isCluster}s(SRa,"isCluster");var jyt=class e{static{s(this,"RedisWrapper")}constructor(t,r){this.client=t,this.db=r}static async init(t,r=0){return await wwe.tracer.trace("RedisWrapper.init",async n=>{let i=await ERa(r);return r&&!He.isTest()&&(n.addTags({db:t}),i.select(r)),new e(i,t)})}trace(t,r){return wwe.tracer.trace(t,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(t){return t.includes(this.db)?t:`${this.db}${$K}${t}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(t=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:t}),t=`${this.db}${$K}${t}`;let n;SRa(this.client)?n=this.client.nodes("master")[0].scanStream({match:t+"*",count:1e3}):n=this.client.scanStream({match:t+"*",count:1e3});let i=await bRa(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(t){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:t}),this.client.keys(this.prefixed(t))))}async exists(t){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:t}),await this.client.exists(this.prefixed(t))))}async get(t){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:t});let n=await this.client.get(this.prefixed(t));n!=null&&n.key&&(n.key=t);try{return JSON.parse(n)}catch{return n}})}async bulkGet(t){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:t.length}),t.length===0)return{};let n=await this.client.mget(t.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,zSn.zip)(t,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${t.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(t,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:t,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(t),r),n&&await this.client.expire(this.prefixed(t),n)})}async bulkStore(t,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(t).length,expirySeconds:r});let i=Object.entries(t).reduce((a,[c,u])=>(a[this.prefixed(c)]=typeof u=="object"?JSON.stringify(u):u,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(t){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:t}),await this.client.ttl(this.prefixed(t))))}async setExpiry(t,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:t,expirySeconds:r}),await this.client.expire(this.prefixed(t),r)))}async delete(t){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:t}),await this.client.del(this.prefixed(t))})}async bulkDelete(t){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:t.length}),await this.client.del(t.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async t=>{let r=await this.scan();t.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(t){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:t});let n=await this.client.incr(this.prefixed(t));if(isNaN(n))throw new Error(`Redis ${t} does not contain a number`);return n})}async deleteIfValue(t,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:t});let i=`
|
|
1445
1445
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
1446
1446
|
redis.call('DEL', KEYS[1])
|
|
1447
1447
|
end
|
|
@@ -1495,7 +1495,7 @@ ${e}
|
|
|
1495
1495
|
</style>
|
|
1496
1496
|
`,a=!1,c,u,l=[];if(i){let f=`${e}.pre-svelte5`;Zi.default.writeFileSync(f,t),Zi.default.writeFileSync(e,o),a=!0,c=t,u=o,l.push(`Updated ${e} to use <svelte:boundary>, $$restProps, and error UI.`)}else l.push(`${e} already looks Svelte 5 compatible (uses <svelte:boundary> with no legacy Boundary.js wrapper).`);let d=Sf.default.join(Sf.default.dirname(e),"Boundary.js");if(Zi.default.existsSync(d))try{Zi.default.unlinkSync(d),a=!0,l.push("Removed legacy lib/Boundary.js (incompatible with Svelte 5).")}catch(f){console.log("Failed to delete legacy Boundary.js:",f instanceof Error?f.message:f)}return{changed:a,before:c,after:u,message:l.join(" ")}}s(yil,"migrateWrapper");function _il(){let e=Sf.default.join(process.cwd(),"package.json");if(!Zi.default.existsSync(e))return{changed:!1,message:"package.json not found"};let t=Zi.default.readFileSync(e,"utf8"),r;try{r=JSON.parse(t)}catch(d){return{changed:!1,message:`Invalid package.json: ${d?.message||"parse error"}`}}let n=JSON.stringify(r,null,2),i=typeof r.version=="string"?r.version.trim():void 0,o=$Xi(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 c=JSON.stringify(r,null,2);if(n===c)return{changed:!1,message:"package.json already appears Svelte 5 ready. Skipping."};Zi.default.writeFileSync(`${e}.pre-svelte5`,t),Zi.default.writeFileSync(e,`${c}
|
|
1497
1497
|
`);let u=i&&o?` (version ${i} -> ${o})`:"",l=o?`Updated package.json for Svelte 5, Rollup 4, scripts, and version bump${u}.`:"Updated package.json for Svelte 5, Rollup 4, and scripts.";return{changed:!0,before:n,after:c,message:l}}s(_il,"migratePackageJson");function JXi(){let e=Sf.default.join(process.cwd(),".github","workflows");return Zi.default.existsSync(e)?Zi.default.readdirSync(e).filter(r=>r.endsWith(".yml")||r.endsWith(".yaml")).map(r=>Sf.default.join(".github","workflows",r)):[]}s(JXi,"findWorkflowFiles");function Eil(){let e=JXi();if(e.length===0)return{changed:!1,message:"No GitHub workflow files found in .github/workflows/ - skipping node version migration."};let t=[],r=!1;for(let n of e){let i=Sf.default.join(process.cwd(),n),o=Zi.default.readFileSync(i,"utf8");if(!/node-version:\s*['"]?16['"]?/g.test(o))continue;let c=o.replace(/node-version:\s*['"]?16['"]?/g,"node-version: 18");if(c!==o){let u=`${i}.pre-svelte5`;Zi.default.writeFileSync(u,o),Zi.default.writeFileSync(i,c),r=!0,t.push(`Updated ${n}: node-version 16 -> 18`)}}return r?{changed:!0,message:t.join("; ")}:{changed:!1,message:"No workflow files with node-version: 16 found - skipping node version migration."}}s(Eil,"migrateNodeVersion");function bil(){let e=Sf.default.join(process.cwd(),"schema.json");if(!Zi.default.existsSync(e))return{changed:!1,message:"schema.json not found - skipping schema metadata migration."};let t=Zi.default.readFileSync(e,"utf8"),r;try{r=JSON.parse(t)}catch(u){return{changed:!1,message:`Invalid schema.json: ${u?.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 c=JSON.stringify(r,null,2);return Zi.default.writeFileSync(`${e}.pre-svelte5`,t),Zi.default.writeFileSync(e,`${c}
|
|
1498
|
-
`),{changed:!0,before:o,after:c,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(bil,"migrateSchemaJson");async function XXi(){let e=[],t=Zi.default.readFileSync("package.json","utf8"),r=JSON.parse(t),n=r?.dependencies?.svelte?.startsWith("^5")||r?.peerDependencies?.svelte?.startsWith("^5"),i=typeof r?.version=="string"?r.version.trim():void 0,o=$Xi(i);n?e.push("package.json appears to already depend on Svelte 5."):e.push("Will bump svelte to ^5.0.0 and align dev/peer dependencies."),r?.dependencies?.["@crownframework/svelte-error-boundary"]&&e.push("Detected @crownframework/svelte-error-boundary; migration will replace it with <svelte:boundary> in lib/Wrapper.svelte."),o&&i&&o!==i&&e.push(`Will bump package.json version from ${i} to ${o}.`);let a=zXi(),c="unknown";if(a){let A=Zi.default.readFileSync(a,"utf8");WXi(A)?(c="looks-new",e.push(`Rollup config ${a} already looks Svelte 5-ready.`)):(c="needs-migration",e.push("Will write Rollup 4 / Svelte 5 config and rename to rollup.config.mjs."))}else c="unknown",e.push("No rollup config found - will create rollup.config.mjs.");let u=KXi(),l="not-found";u?Zi.default.readFileSync(u,"utf8").includes("<svelte:boundary>")?(l="looks-new",e.push(`${u} already uses <svelte:boundary>.`)):(l="needs-migration",e.push(`Will update ${u} to use <svelte:boundary>, $$restProps, and error UI.`)):e.push("No wrapper.svelte found - skipping wrapper migration.");let d="unknown";if(Zi.default.existsSync("schema.json"))try{let A=Zi.default.readFileSync("schema.json","utf8"),y=JSON.parse(A);(y&&typeof y.metadata=="object"&&!Array.isArray(y.metadata)?y.metadata:{}).svelteMajor===5?(d="looks-new",e.push("schema.json metadata already declares svelteMajor: 5.")):(d="needs-migration",e.push("Will update schema.json metadata to set svelteMajor: 5."))}catch(A){d="unknown",e.push(`schema.json could not be parsed - please fix JSON before migration (${A?.message||"parse error"}).`)}else d="not-found",e.push("schema.json not found - cannot update metadata.");let f=n?"looks-new":"needs-migration",p="not-found",h=JXi();if(h.length>0){let A=!1,y=!1;for(let v of h){let b=Sf.default.join(process.cwd(),v),x=Zi.default.readFileSync(b,"utf8");/node-version:\s*['"]?16['"]?/.test(x)&&(A=!0),/node-version:\s*['"]?(18|20|22)['"]?/.test(x)&&(y=!0)}A?(p="needs-migration",e.push("Will update GitHub workflow files: node-version 16 -> 18.")):y?(p="looks-new",e.push("GitHub workflow files already use node-version 18 or higher.")):(p="looks-new",e.push("GitHub workflow files found but no node-version: 16 detected."))}else e.push("No GitHub workflow files found in .github/workflows/ - skipping node version check.");return{report:e,rollup:c,packageJson:f,wrapper:l,schema:d,nodeVersion:p,canBuildAfter:!0,rollupFile:a,wrapperFile:u,pkg:r}}s(XXi,"analysePluginForSvelte5");async function ZXi(){let e=await Ail();if(e.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:e,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 t=yil(),r=bil(),n=_il(),i=Eil();return{pkgRes:n,schemaRes:r,rollupRes:e,wrapperRes:t,nodeVersionRes:i}}s(ZXi,"runSvelte5Migration");var eZi=require("child_process");var Sil=require("find-free-port");function vil(e){let t=[],r=[];for(let n of new Set(e.filter(Boolean)))if(fO.default.existsSync(n))try{fO.default.unlinkSync(n),t.push(n)}catch(i){r.push({path:n,error:i instanceof Error?i.message:String(i)})}return{deleted:t,failed:r}}s(vil,"cleanupPreSvelte5Backups");function tZi(){if(!fO.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!fO.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(tZi,"checkInPlugin");async function wil(e){return fO.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(yi(`By default the plugin will be created in the directory "${e}"`)),console.log(yi("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),Yv("Create top level directory?"))}s(wil,"askAboutTopLevel");async function Til(e){let t=e.init||e;if(!t||!mKt.includes(t)){console.log(Wo("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(yi("Lets get some details about your new plugin:"));let r=await EB("Name",`budibase-${t}`);if(fO.default.existsSync(r)){console.log(Wo("Directory by plugin name already exists, pick a new name."));return}let n=await EB("Description",`An amazing Budibase ${t}!`),i=await EB("Version","1.0.0"),o=await wil(r);console.log(yi("Retrieving project...")),await zje(t,r),await jXi(t,r,n,i),console.log(yi("Installing dependencies...")),await c5("install",(0,Wje.join)(process.cwd(),r)),o?console.log(yi(`Plugin created in directory "${r}"`)):(JHe(r,process.cwd()),console.log(yi("Plugin created in current directory."))),vde(gC.PluginInit,{type:t,name:r,description:n,version:i})}s(Til,"init");async function u8t(){tZi(),console.log(yi("Verifying plugin..."));let e=fO.default.readFileSync("schema.json","utf8"),t=fO.default.readFileSync("package.json","utf8"),r,n;try{let i=JSON.parse(e),o=JSON.parse(t);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,PBe.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Wo(`schema.json is not valid JSON: ${i.message}`)):console.log(Wo(`Invalid schema/package.json: ${i.message}`))}}s(u8t,"verify");async function Cil(){let e=await u8t();if(!e?.name)return;console.log(Sa("Verified!")),console.log(yi("Building plugin...")),await c5("build");let t=(0,Wje.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(Sa(`Build complete - output in: ${t}`))}s(Cil,"build");async function Iil(){let e=await u8t();if(!e?.name)return;let t=(0,Wje.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(yi(`Watching - build in: ${t}`));try{await c5("watch")}catch{console.log(Sa("Watch exited."))}}s(Iil,"watch");async function xil(){let e=await EB("Directory to watch","./"),[t]=await Sil(1e4),r="admin";await xde({init:"quick",single:!0,watchPluginDir:e,genUser:r,port:t,silent:!0}),await Cj(),console.log(Sa("Configuration has been written to docker-compose.yaml")),console.log(Sa("Development environment started successfully - connect at: ")+yi(`http://localhost:${t}`)),console.log(Sa("Use the following credentials to login:")),console.log(Sa("Email: ")+yi(pGe)),console.log(Sa("Password: ")+yi(r))}s(xil,"dev");async function Ril(e){tZi();let t=!!e?.yes,r=!!e?.force,n=!1;try{n=!!(0,eZi.execSync)("git status --porcelain",{encoding:"utf8"}).trim()}catch{}if(n&&!r&&(console.log(yi("Your git working directory is not clean. Commit or stash changes, or re-run with --force.")),!await Yv("Proceed with migration anyway?"))){console.log(yi("Migration aborted."));return}console.log(yi("Analyzing plugin for Svelte 5 migration..."));let i=await XXi();console.log(yi("Proposed changes:"));for(let u of i.report)console.log(yi(" - "+u));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(!t&&!await Yv("Apply these changes now?")){console.log(yi("Migration aborted by user."));return}console.log(yi("Applying migrations..."));let a=await ZXi();if(a.rollupRes?.message?.includes("Failed to retrieve canonical rollup.config.mjs from skeleton")){console.log(Wo(a.rollupRes.message));return}if(a.pkgRes?.message&&console.log(yi(a.pkgRes.message)),a.schemaRes?.message&&console.log(yi(a.schemaRes.message)),a.rollupRes?.message&&console.log(yi(a.rollupRes.message)),a.wrapperRes?.message&&console.log(yi(a.wrapperRes.message)),console.log(yi("Installing updated dependencies...")),await c5("install"),console.log(yi("Re-verifying plugin...")),!(await u8t())?.name){console.log(Wo("Verification failed after migration."));return}console.log(yi("Attempting build..."));try{await c5("build");let u=vil(o.filter(l=>!!l));console.log(Sa("Migration completed. Your plugin was migrated to Svelte 5 and built successfully.")),u.deleted.length&&console.log(yi(`Removed ${u.deleted.length} pre-svelte5 backup file(s): ${u.deleted.join(", ")}`)),u.failed.length&&console.log(yi(`Failed to remove ${u.failed.length} pre-svelte5 backup file(s): ${u.failed.map(l=>`${l.path} (${l.error})`).join(", ")}`))}catch(u){console.log(Wo(`Build failed after migration. Please review the errors above. ${u?.message||""}`))}}s(Ril,"migrateSvelte5");var rZi=new Wv("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.",Til).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",Cil).addSubOption("--watch","Automatically build any changes to your plugin.",Iil).addSubOption("--dev","Run a development environment which automatically watches the current directory.",xil).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",Ril,[{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 nZi(){return[RJt,iJt,L8i,rZi]}s(nZi,"getCommands");var sZi=require("commander");Id();var iZi="3.27.0";async function kil(){let e=new sZi.Command().addHelpCommand("help",T5("Help with Budibase commands.")).helpOption(!1).version(iZi);for(let t of nZi())t.configure(e);await e.parseAsync(process.argv)}s(kil,"init");var Nil=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];Nil.forEach(e=>{process.on(e,t=>{t&&!isNaN(t)||t&&(console.error(Wo("Failed to run CLI command - please report with the following message:")),console.error(Wo(t)))})});kil().catch(e=>{console.error("Unexpected error - ",e)});
|
|
1498
|
+
`),{changed:!0,before:o,after:c,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(bil,"migrateSchemaJson");async function XXi(){let e=[],t=Zi.default.readFileSync("package.json","utf8"),r=JSON.parse(t),n=r?.dependencies?.svelte?.startsWith("^5")||r?.peerDependencies?.svelte?.startsWith("^5"),i=typeof r?.version=="string"?r.version.trim():void 0,o=$Xi(i);n?e.push("package.json appears to already depend on Svelte 5."):e.push("Will bump svelte to ^5.0.0 and align dev/peer dependencies."),r?.dependencies?.["@crownframework/svelte-error-boundary"]&&e.push("Detected @crownframework/svelte-error-boundary; migration will replace it with <svelte:boundary> in lib/Wrapper.svelte."),o&&i&&o!==i&&e.push(`Will bump package.json version from ${i} to ${o}.`);let a=zXi(),c="unknown";if(a){let A=Zi.default.readFileSync(a,"utf8");WXi(A)?(c="looks-new",e.push(`Rollup config ${a} already looks Svelte 5-ready.`)):(c="needs-migration",e.push("Will write Rollup 4 / Svelte 5 config and rename to rollup.config.mjs."))}else c="unknown",e.push("No rollup config found - will create rollup.config.mjs.");let u=KXi(),l="not-found";u?Zi.default.readFileSync(u,"utf8").includes("<svelte:boundary>")?(l="looks-new",e.push(`${u} already uses <svelte:boundary>.`)):(l="needs-migration",e.push(`Will update ${u} to use <svelte:boundary>, $$restProps, and error UI.`)):e.push("No wrapper.svelte found - skipping wrapper migration.");let d="unknown";if(Zi.default.existsSync("schema.json"))try{let A=Zi.default.readFileSync("schema.json","utf8"),y=JSON.parse(A);(y&&typeof y.metadata=="object"&&!Array.isArray(y.metadata)?y.metadata:{}).svelteMajor===5?(d="looks-new",e.push("schema.json metadata already declares svelteMajor: 5.")):(d="needs-migration",e.push("Will update schema.json metadata to set svelteMajor: 5."))}catch(A){d="unknown",e.push(`schema.json could not be parsed - please fix JSON before migration (${A?.message||"parse error"}).`)}else d="not-found",e.push("schema.json not found - cannot update metadata.");let f=n?"looks-new":"needs-migration",p="not-found",h=JXi();if(h.length>0){let A=!1,y=!1;for(let v of h){let b=Sf.default.join(process.cwd(),v),x=Zi.default.readFileSync(b,"utf8");/node-version:\s*['"]?16['"]?/.test(x)&&(A=!0),/node-version:\s*['"]?(18|20|22)['"]?/.test(x)&&(y=!0)}A?(p="needs-migration",e.push("Will update GitHub workflow files: node-version 16 -> 18.")):y?(p="looks-new",e.push("GitHub workflow files already use node-version 18 or higher.")):(p="looks-new",e.push("GitHub workflow files found but no node-version: 16 detected."))}else e.push("No GitHub workflow files found in .github/workflows/ - skipping node version check.");return{report:e,rollup:c,packageJson:f,wrapper:l,schema:d,nodeVersion:p,canBuildAfter:!0,rollupFile:a,wrapperFile:u,pkg:r}}s(XXi,"analysePluginForSvelte5");async function ZXi(){let e=await Ail();if(e.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:e,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 t=yil(),r=bil(),n=_il(),i=Eil();return{pkgRes:n,schemaRes:r,rollupRes:e,wrapperRes:t,nodeVersionRes:i}}s(ZXi,"runSvelte5Migration");var eZi=require("child_process");var Sil=require("find-free-port");function vil(e){let t=[],r=[];for(let n of new Set(e.filter(Boolean)))if(fO.default.existsSync(n))try{fO.default.unlinkSync(n),t.push(n)}catch(i){r.push({path:n,error:i instanceof Error?i.message:String(i)})}return{deleted:t,failed:r}}s(vil,"cleanupPreSvelte5Backups");function tZi(){if(!fO.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!fO.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(tZi,"checkInPlugin");async function wil(e){return fO.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(yi(`By default the plugin will be created in the directory "${e}"`)),console.log(yi("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),Yv("Create top level directory?"))}s(wil,"askAboutTopLevel");async function Til(e){let t=e.init||e;if(!t||!mKt.includes(t)){console.log(Wo("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(yi("Lets get some details about your new plugin:"));let r=await EB("Name",`budibase-${t}`);if(fO.default.existsSync(r)){console.log(Wo("Directory by plugin name already exists, pick a new name."));return}let n=await EB("Description",`An amazing Budibase ${t}!`),i=await EB("Version","1.0.0"),o=await wil(r);console.log(yi("Retrieving project...")),await zje(t,r),await jXi(t,r,n,i),console.log(yi("Installing dependencies...")),await c5("install",(0,Wje.join)(process.cwd(),r)),o?console.log(yi(`Plugin created in directory "${r}"`)):(JHe(r,process.cwd()),console.log(yi("Plugin created in current directory."))),vde(gC.PluginInit,{type:t,name:r,description:n,version:i})}s(Til,"init");async function u8t(){tZi(),console.log(yi("Verifying plugin..."));let e=fO.default.readFileSync("schema.json","utf8"),t=fO.default.readFileSync("package.json","utf8"),r,n;try{let i=JSON.parse(e),o=JSON.parse(t);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,PBe.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Wo(`schema.json is not valid JSON: ${i.message}`)):console.log(Wo(`Invalid schema/package.json: ${i.message}`))}}s(u8t,"verify");async function Cil(){let e=await u8t();if(!e?.name)return;console.log(Sa("Verified!")),console.log(yi("Building plugin...")),await c5("build");let t=(0,Wje.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(Sa(`Build complete - output in: ${t}`))}s(Cil,"build");async function Iil(){let e=await u8t();if(!e?.name)return;let t=(0,Wje.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(yi(`Watching - build in: ${t}`));try{await c5("watch")}catch{console.log(Sa("Watch exited."))}}s(Iil,"watch");async function xil(){let e=await EB("Directory to watch","./"),[t]=await Sil(1e4),r="admin";await xde({init:"quick",single:!0,watchPluginDir:e,genUser:r,port:t,silent:!0}),await Cj(),console.log(Sa("Configuration has been written to docker-compose.yaml")),console.log(Sa("Development environment started successfully - connect at: ")+yi(`http://localhost:${t}`)),console.log(Sa("Use the following credentials to login:")),console.log(Sa("Email: ")+yi(pGe)),console.log(Sa("Password: ")+yi(r))}s(xil,"dev");async function Ril(e){tZi();let t=!!e?.yes,r=!!e?.force,n=!1;try{n=!!(0,eZi.execSync)("git status --porcelain",{encoding:"utf8"}).trim()}catch{}if(n&&!r&&(console.log(yi("Your git working directory is not clean. Commit or stash changes, or re-run with --force.")),!await Yv("Proceed with migration anyway?"))){console.log(yi("Migration aborted."));return}console.log(yi("Analyzing plugin for Svelte 5 migration..."));let i=await XXi();console.log(yi("Proposed changes:"));for(let u of i.report)console.log(yi(" - "+u));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(!t&&!await Yv("Apply these changes now?")){console.log(yi("Migration aborted by user."));return}console.log(yi("Applying migrations..."));let a=await ZXi();if(a.rollupRes?.message?.includes("Failed to retrieve canonical rollup.config.mjs from skeleton")){console.log(Wo(a.rollupRes.message));return}if(a.pkgRes?.message&&console.log(yi(a.pkgRes.message)),a.schemaRes?.message&&console.log(yi(a.schemaRes.message)),a.rollupRes?.message&&console.log(yi(a.rollupRes.message)),a.wrapperRes?.message&&console.log(yi(a.wrapperRes.message)),console.log(yi("Installing updated dependencies...")),await c5("install"),console.log(yi("Re-verifying plugin...")),!(await u8t())?.name){console.log(Wo("Verification failed after migration."));return}console.log(yi("Attempting build..."));try{await c5("build");let u=vil(o.filter(l=>!!l));console.log(Sa("Migration completed. Your plugin was migrated to Svelte 5 and built successfully.")),u.deleted.length&&console.log(yi(`Removed ${u.deleted.length} pre-svelte5 backup file(s): ${u.deleted.join(", ")}`)),u.failed.length&&console.log(yi(`Failed to remove ${u.failed.length} pre-svelte5 backup file(s): ${u.failed.map(l=>`${l.path} (${l.error})`).join(", ")}`))}catch(u){console.log(Wo(`Build failed after migration. Please review the errors above. ${u?.message||""}`))}}s(Ril,"migrateSvelte5");var rZi=new Wv("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.",Til).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",Cil).addSubOption("--watch","Automatically build any changes to your plugin.",Iil).addSubOption("--dev","Run a development environment which automatically watches the current directory.",xil).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",Ril,[{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 nZi(){return[RJt,iJt,L8i,rZi]}s(nZi,"getCommands");var sZi=require("commander");Id();var iZi="3.27.2";async function kil(){let e=new sZi.Command().addHelpCommand("help",T5("Help with Budibase commands.")).helpOption(!1).version(iZi);for(let t of nZi())t.configure(e);await e.parseAsync(process.argv)}s(kil,"init");var Nil=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];Nil.forEach(e=>{process.on(e,t=>{t&&!isNaN(t)||t&&(console.error(Wo("Failed to run CLI command - please report with the following message:")),console.error(Wo(t)))})});kil().catch(e=>{console.error("Unexpected error - ",e)});
|
|
1499
1499
|
/*! Bundled license information:
|
|
1500
1500
|
|
|
1501
1501
|
lodash/lodash.js:
|