@budibase/cli 3.23.17 → 3.23.19
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
|
@@ -1493,7 +1493,7 @@ $1`)};fpe.parseAttributes=s(function(t){return Object.keys(t).map(function(r){va
|
|
|
1493
1493
|
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. 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.
|
|
1494
1494
|
|
|
1495
1495
|
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.`;mZi.exports=XJu});var jWt=A((AZi,yZi)=>{"use strict";var Mp=Ih(),uH=lpe(),ds=yZi.exports,ZJu=gZi();ds.append=function(e,t){return typeof e=="string"&&typeof t=="string"?e+t:e};ds.camelcase=function(e){return typeof e!="string"?"":uH.changecase(e,function(t){return t.toUpperCase()})};ds.capitalize=function(e){return typeof e!="string"?"":e.charAt(0).toUpperCase()+e.slice(1)};ds.capitalizeAll=function(e){if(typeof e!="string")return"";if(Mp.isString(e))return e.replace(/\w\S*/g,function(t){return ds.capitalize(t)})};ds.center=function(e,t){if(typeof e!="string")return"";for(var r="",n=0;n<t;)r+=" ",n++;return r+e+r};ds.chop=function(e){return typeof e!="string"?"":uH.chop(e)};ds.dashcase=function(e){return typeof e!="string"?"":uH.changecase(e,function(t){return"-"+t})};ds.dotcase=function(e){return typeof e!="string"?"":uH.changecase(e,function(t){return"."+t})};ds.downcase=function(){return ds.lowercase.apply(this,arguments)};ds.ellipsis=function(e,t){if(Mp.isString(e))return e.length<=t?e:ds.truncate(e,t)+"\u2026"};ds.hyphenate=function(e){return typeof e!="string"?"":e.split(" ").join("-")};ds.isString=function(e){return typeof e=="string"};ds.lowercase=function(e){return Mp.isObject(e)&&e.fn?e.fn(this).toLowerCase():typeof e!="string"?"":e.toLowerCase()};ds.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};ds.pascalcase=function(e){return typeof e!="string"?"":(e=uH.changecase(e,function(t){return t.toUpperCase()}),e.charAt(0).toUpperCase()+e.slice(1))};ds.pathcase=function(e){return typeof e!="string"?"":uH.changecase(e,function(t){return"/"+t})};ds.plusify=function(e,t){return typeof e!="string"?"":(Mp.isString(t)||(t=" "),e.split(t).join("+"))};ds.prepend=function(e,t){return typeof e=="string"&&typeof t=="string"?t+e:e};ds.raw=function(e){var t=e.fn(),r=Mp.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};ds.remove=function(e,t){return typeof e!="string"?"":Mp.isString(t)?e.split(t).join(""):e};ds.removeFirst=function(e,t){return typeof e!="string"?"":Mp.isString(t)?e.replace(t,""):e};ds.replace=function(e,t,r){return typeof e!="string"?"":Mp.isString(t)?(Mp.isString(r)||(r=""),e.split(t).join(r)):e};ds.replaceFirst=function(e,t,r){return typeof e!="string"?"":Mp.isString(t)?(Mp.isString(r)||(r=""),e.replace(t,r)):e};ds.reverse=A7().reverse;ds.sentence=function(e){return typeof e!="string"?"":e.replace(/((?:\S[^\.\?\!]*)[\.\?\!]*)/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})};ds.snakecase=function(e){return typeof e!="string"?"":uH.changecase(e,function(t){return"_"+t})};ds.split=function(e,t){return typeof e!="string"?"":(Mp.isString(t)||(t=","),e.split(t))};ds.startsWith=function(e,t,r){var n=[].slice.call(arguments);return r=n.pop(),Mp.isString(t)&&t.indexOf(e)===0?r.fn(this):typeof r.inverse=="function"?r.inverse(this):""};ds.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(AZi.capitalize(a))}return i.join(" ")};ds.trim=function(e){return typeof e=="string"?e.trim():""};ds.trimLeft=function(e){if(Mp.isString(e))return e.replace(/^\s+/,"")};ds.trimRight=function(e){if(Mp.isString(e))return e.replace(/\s+$/,"")};ds.truncate=function(e,t,r){if(Mp.isString(e))return typeof r!="string"&&(r=""),e.length>t?e.slice(0,t-r.length)+r:e};ds.truncateWords=function(e,t,r){if(Mp.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}};ds.upcase=function(){return ds.uppercase.apply(this,arguments)};ds.uppercase=function(e){return Mp.isObject(e)&&e.fn?e.fn(this).toUpperCase():typeof e!="string"?"":e.toUpperCase()};ds.lorem=function(e){return(isNaN(e)||e<1||!e)&&(e=11),ZJu.substring(0,e)}});var GWt=A((mmd,_Zi)=>{"use strict";var HWt=require("url"),Ape=Ih(),eXu=require("querystring"),lH=_Zi.exports;lH.encodeURI=function(e){if(Ape.isString(e))return encodeURIComponent(e)};lH.escape=function(e){if(Ape.isString(e))return eXu.escape(e)};lH.decodeURI=function(e){if(Ape.isString(e))return decodeURIComponent(e)};lH.urlResolve=function(e,t){return HWt.resolve(e,t)};lH.urlParse=function(e){return HWt.parse(e)};lH.stripQuerystring=function(e){if(Ape.isString(e))return e.split("?")[0]};lH.stripProtocol=function(e){if(Ape.isString(e)){var t=HWt.parse(e);return t.protocol="",t.format()}}});function ype(){return dGe>pGe.length-16&&(EZi.default.randomFillSync(pGe),dGe=0),pGe.slice(dGe,dGe+=16)}var EZi,pGe,dGe,VWt=ue(()=>{"use strict";EZi=ot(require("crypto")),pGe=new Uint8Array(256),dGe=pGe.length;s(ype,"rng")});var bZi,vZi=ue(()=>{"use strict";bZi=/^(?:[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 tXu(e){return typeof e=="string"&&bZi.test(e)}var HM,_pe=ue(()=>{"use strict";vZi();s(tXu,"validate");HM=tXu});function fH(e,t=0){return Oh[e[t+0]]+Oh[e[t+1]]+Oh[e[t+2]]+Oh[e[t+3]]+"-"+Oh[e[t+4]]+Oh[e[t+5]]+"-"+Oh[e[t+6]]+Oh[e[t+7]]+"-"+Oh[e[t+8]]+Oh[e[t+9]]+"-"+Oh[e[t+10]]+Oh[e[t+11]]+Oh[e[t+12]]+Oh[e[t+13]]+Oh[e[t+14]]+Oh[e[t+15]]}function rXu(e,t=0){let r=fH(e,t);if(!HM(r))throw TypeError("Stringified UUID is invalid");return r}var Oh,SZi,Epe=ue(()=>{"use strict";_pe();Oh=[];for(let e=0;e<256;++e)Oh.push((e+256).toString(16).slice(1));s(fH,"unsafeStringify");s(rXu,"stringify");SZi=rXu});function nXu(e,t,r){let n=t&&r||0,i=t||new Array(16);e=e||{};let o=e.node||wZi,a=e.clockseq!==void 0?e.clockseq:$Wt;if(o==null||a==null){let p=e.random||(e.rng||ype)();o==null&&(o=wZi=[p[0]|1,p[1],p[2],p[3],p[4],p[5]]),a==null&&(a=$Wt=(p[6]<<8|p[7])&16383)}let c=e.msecs!==void 0?e.msecs:Date.now(),u=e.nsecs!==void 0?e.nsecs:WWt+1,l=c-zWt+(u-WWt)/1e4;if(l<0&&e.clockseq===void 0&&(a=a+1&16383),(l<0||c>zWt)&&e.nsecs===void 0&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");zWt=c,WWt=u,$Wt=a,c+=122192928e5;let f=((c&268435455)*1e4+u)%4294967296;i[n++]=f>>>24&255,i[n++]=f>>>16&255,i[n++]=f>>>8&255,i[n++]=f&255;let d=c/4294967296*1e4&268435455;i[n++]=d>>>8&255,i[n++]=d&255,i[n++]=d>>>24&15|16,i[n++]=d>>>16&255,i[n++]=a>>>8|128,i[n++]=a&255;for(let p=0;p<6;++p)i[n+p]=o[p];return t||fH(i)}var wZi,$Wt,zWt,WWt,TZi,CZi=ue(()=>{"use strict";VWt();Epe();zWt=0,WWt=0;s(nXu,"v1");TZi=nXu});function iXu(e){if(!HM(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 hGe,YWt=ue(()=>{"use strict";_pe();s(iXu,"parse");hGe=iXu});function sXu(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}function bpe(e,t,r){function n(i,o,a,c){var u;if(typeof i=="string"&&(i=sXu(i)),typeof o=="string"&&(o=hGe(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 f=0;f<16;++f)a[c+f]=l[f];return a}return fH(l)}s(n,"generateUUID");try{n.name=e}catch{}return n.DNS=oXu,n.URL=aXu,n}var oXu,aXu,KWt=ue(()=>{"use strict";Epe();YWt();s(sXu,"stringToBytes");oXu="6ba7b810-9dad-11d1-80b4-00c04fd430c8",aXu="6ba7b811-9dad-11d1-80b4-00c04fd430c8";s(bpe,"v35")});function cXu(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),xZi.default.createHash("md5").update(e).digest()}var xZi,IZi,RZi=ue(()=>{"use strict";xZi=ot(require("crypto"));s(cXu,"md5");IZi=cXu});var uXu,OZi,kZi=ue(()=>{"use strict";KWt();RZi();uXu=bpe("v3",48,IZi),OZi=uXu});var NZi,JWt,DZi=ue(()=>{"use strict";NZi=ot(require("crypto")),JWt={randomUUID:NZi.default.randomUUID}});function lXu(e,t,r){if(JWt.randomUUID&&!t&&!e)return JWt.randomUUID();e=e||{};let n=e.random||(e.rng||ype)();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 fH(n)}var PZi,BZi=ue(()=>{"use strict";DZi();VWt();Epe();s(lXu,"v4");PZi=lXu});function fXu(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),MZi.default.createHash("sha1").update(e).digest()}var MZi,LZi,UZi=ue(()=>{"use strict";MZi=ot(require("crypto"));s(fXu,"sha1");LZi=fXu});var dXu,FZi,qZi=ue(()=>{"use strict";KWt();UZi();dXu=bpe("v5",80,LZi),FZi=dXu});var QZi,jZi=ue(()=>{"use strict";QZi="00000000-0000-0000-0000-000000000000"});function pXu(e){if(!HM(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}var HZi,GZi=ue(()=>{"use strict";_pe();s(pXu,"version");HZi=pXu});var VZi={};Go(VZi,{NIL:()=>QZi,parse:()=>hGe,stringify:()=>SZi,v1:()=>TZi,v3:()=>OZi,v4:()=>PZi,v5:()=>FZi,validate:()=>HM,version:()=>HZi});var $Zi=ue(()=>{"use strict";CZi();kZi();BZi();qZi();jZi();GZi();_pe();Epe();YWt()});var XWt=A((fgd,zZi)=>{"use strict";var hXu=($Zi(),vr(VZi)),mXu=zZi.exports;mXu.uuid=function(){return hXu.v4()}});var YZi=A((dgd,WZi)=>{"use strict";WZi.exports={array:A7(),code:Z7i(),collection:hJi(),comparison:_Wt(),html:DJi(),i18n:BJi(),inflection:UJi(),match:KXi(),math:FWt(),misc:ZXi(),number:qWt(),object:eGe(),path:dZi(),regex:QWt(),string:jWt(),url:GWt(),uuid:XWt()}});var KZi=A((pgd,b7)=>{"use strict";var vpe=YZi();b7.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||ope();if(b7.exports.handlebars=n,t)t.forEach(function(i){n.registerHelper(vpe[i])});else for(let i in vpe){let o=vpe[i];n.registerHelper(o)}return n.helpers},"helpers");for(let e in vpe){let t=vpe[e];b7.exports[e]=function(r){r=r||{};var n=r.handlebars||r.hbs||ope();return b7.exports.handlebars=n,n.registerHelper(t),t}}b7.exports.utils=lpe()});var JZi=A((ZWt,eYt)=>{"use strict";(function(e,t){typeof ZWt=="object"&&typeof eYt<"u"?eYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_duration=t()})(ZWt,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)?)?$/,f={years:c,months:u,days:o,hours:i,minutes:n,seconds:r,milliseconds:1,weeks:6048e5},d=s(function(N){return N instanceof C},"c"),p=s(function(N,T,B){return new C(N,B,T.$l)},"f"),h=s(function(N){return t.p(N)+"s"},"m"),g=s(function(N){return N<0},"l"),y=s(function(N){return g(N)?Math.ceil(N):Math.floor(N)},"$"),b=s(function(N){return Math.abs(N)},"y"),v=s(function(N,T){return N?g(N)?{negative:!0,format:""+b(N)+T}:{negative:!1,format:""+N+T}:{negative:!1,format:""}},"v"),C=function(){function N(B,Q,L){var G=this;if(this.$d={},this.$l=L,B===void 0&&(this.$ms=0,this.parseFromMilliseconds()),Q)return p(B*f[h(Q)],this);if(typeof B=="number")return this.$ms=B,this.parseFromMilliseconds(),this;if(typeof B=="object")return Object.keys(B).forEach(function(de){G.$d[h(de)]=B[de]}),this.calMilliseconds(),this;if(typeof B=="string"){var J=B.match(l);if(J){var te=J.slice(2).map(function(de){return de!=null?Number(de):0});return this.$d.years=te[0],this.$d.months=te[1],this.$d.weeks=te[2],this.$d.days=te[3],this.$d.hours=te[4],this.$d.minutes=te[5],this.$d.seconds=te[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(Q,L){return Q+(B.$d[L]||0)*f[L]},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=v(this.$d.years,"Y"),Q=v(this.$d.months,"M"),L=+this.$d.days||0;this.$d.weeks&&(L+=7*this.$d.weeks);var G=v(L,"D"),J=v(this.$d.hours,"H"),te=v(this.$d.minutes,"M"),de=this.$d.seconds||0;this.$d.milliseconds&&(de+=this.$d.milliseconds/1e3,de=Math.round(1e3*de)/1e3);var U=v(de,"S"),le=B.negative||Q.negative||G.negative||J.negative||te.negative||U.negative,X=J.format||te.format||U.format?"T":"",F=(le?"-":"")+"P"+B.format+Q.format+G.format+X+J.format+te.format+U.format;return F==="P"||F==="-P"?"P0D":F},T.toJSON=function(){return this.toISOString()},T.format=function(B){var Q=B||"YYYY-MM-DDTHH:mm:ss",L={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 Q.replace(a,function(G,J){return J||String(L[G])})},T.as=function(B){return this.$ms/f[h(B)]},T.get=function(B){var Q=this.$ms,L=h(B);return L==="milliseconds"?Q%=1e3:Q=L==="weeks"?y(Q/f[L]):this.$d[L],Q||0},T.add=function(B,Q,L){var G;return G=Q?B*f[h(Q)]:d(B)?B.$ms:p(B,this).$ms,p(this.$ms+G*(L?-1:1),this)},T.subtract=function(B,Q){return this.add(B,Q,!0)},T.locale=function(B){var Q=this.clone();return Q.$l=B,Q},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}(),I=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(G,J){var te=B.locale();return p(G,{$l:te},J)},B.isDuration=d;var Q=T.prototype.add,L=T.prototype.subtract;T.prototype.add=function(G,J){return d(G)?I(this,G,1):Q.bind(this)(G,J)},T.prototype.subtract=function(G,J){return d(G)?I(this,G,-1):L.bind(this)(G,J)}}})});var XZi=A((tYt,rYt)=>{"use strict";(function(e,t){typeof tYt=="object"&&typeof rYt<"u"?rYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_advancedFormat=t()})(tYt,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 ZZi=A((nYt,iYt)=>{"use strict";(function(e,t){typeof nYt=="object"&&typeof iYt<"u"?iYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_isoWeek=t()})(nYt,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,f,d,p=i(this),h=(u=this.isoWeekYear(),l=this.$u,f=(l?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,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(),f=!!l.u(u)||u;return l.p(c)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(c,u)}}})});var ees=A((sYt,oYt)=>{"use strict";(function(e,t){typeof sYt=="object"&&typeof oYt<"u"?oYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_weekYear=t()})(sYt,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 tes=A((aYt,cYt)=>{"use strict";(function(e,t){typeof aYt=="object"&&typeof cYt<"u"?cYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_weekOfYear=t()})(aYt,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 f=i(this).startOf(t).date(c).startOf(e).subtract(1,"millisecond"),d=this.diff(f,e,!0);return d<0?i(this).startOf("week").week():Math.ceil(d)},o.weeks=function(a){return a===void 0&&(a=null),this.week(a)}}})});var nes=A((uYt,lYt)=>{"use strict";(function(e,t){typeof uYt=="object"&&typeof lYt<"u"?lYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_relativeTime=t()})(uYt,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,f){return n.fromToBase(c,u,l,f)}s(o,"i"),r.en.relativeTime=i,n.fromToBase=function(c,u,l,f,d){for(var p,h,g,y=l.$locale().relativeTime||i,b=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"}],v=b.length,C=0;C<v;C+=1){var I=b[C];I.d&&(p=f?r(c).diff(l,I.d,!0):l.diff(c,I.d,!0));var N=(e.rounding||Math.round)(Math.abs(p));if(g=p>0,N<=I.r||!I.r){N<=1&&C>0&&(I=b[C-1]);var T=y[I.l];d&&(N=d(""+N)),h=typeof T=="string"?T.replace("%d",N):T(N,u,I.l,g);break}}if(u)return h;var B=g?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 ies=A((fYt,dYt)=>{"use strict";(function(e,t){typeof fYt=="object"&&typeof dYt<"u"?dYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_utc=t()})(fYt,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 g={date:h,utc:!0,args:arguments};return new i(g)},a.utc=function(h){var g=o(this.toDate(),{locale:this.$L,utc:!0});return h?g.add(this.utcOffset(),e):g},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,g){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(I){I===void 0&&(I="");var N=I.match(t);if(!N)return null;var T=(""+N[0]).match(r)||["-",0,0],B=T[0],Q=60*+T[1]+ +T[2];return Q===0?0:B==="+"?Q:-Q}(h),h===null))return this;var b=Math.abs(h)<=16?60*h:h;if(b===0)return this.utc(g);var v=this.clone();if(g)return v.$offset=b,v.$u=!1,v;var C=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(v=this.local().add(b+C,e)).$offset=b,v.$x.$localOffset=C,v};var f=a.format;a.format=function(h){var g=h||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return f.call(this,g)},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 d=a.toDate;a.toDate=function(h){return h==="s"&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():d.call(this)};var p=a.diff;a.diff=function(h,g,y){if(h&&this.$u===h.$u)return p.call(this,h,g,y);var b=this.local(),v=o(h).local();return p.call(b,v,g,y)}}})});var ses=A((pYt,hYt)=>{"use strict";(function(e,t){typeof pYt=="object"&&typeof hYt<"u"?hYt.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_timezone=t()})(pYt,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(f,d,p){p===void 0&&(p={});var h=new Date(f),g=function(y,b){b===void 0&&(b={});var v=b.timeZoneName||"short",C=y+"|"+v,I=t[C];return I||(I=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:v}),t[C]=I),I}(d,p);return g.formatToParts(h)},"a"),c=s(function(f,d){for(var p=a(f,d),h=[],g=0;g<p.length;g+=1){var y=p[g],b=y.type,v=y.value,C=e[b];C>=0&&(h[C]=parseInt(v,10))}var I=h[3],N=I===24?0:I,T=h[0]+"-"+h[1]+"-"+h[2]+" "+N+":"+h[4]+":"+h[5]+":000",B=+f;return(i.utc(T).valueOf()-(B-=B%1e3))/6e4},"u"),u=n.prototype;u.tz=function(f,d){f===void 0&&(f=o);var p,h=this.utcOffset(),g=this.toDate(),y=g.toLocaleString("en-US",{timeZone:f}),b=Math.round((g-new Date(y))/1e3/60),v=15*-Math.round(g.getTimezoneOffset()/15)-b;if(!Number(v))p=this.utcOffset(0,d);else if(p=i(y,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(v,!0),d){var C=p.utcOffset();p=p.add(h-C,"minute")}return p.$x.$timezone=f,p},u.offsetName=function(f){var d=this.$x.$timezone||i.tz.guess(),p=a(this.valueOf(),d,{timeZoneName:f}).find(function(h){return h.type.toLowerCase()==="timezonename"});return p&&p.value};var l=u.startOf;u.startOf=function(f,d){if(!this.$x||!this.$x.$timezone)return l.call(this,f,d);var p=i(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return l.call(p,f,d).tz(this.$x.$timezone,!0)},i.tz=function(f,d,p){var h=p&&d,g=p||d||o,y=c(+i(),g);if(typeof f!="string")return i(f).tz(g);var b=function(N,T,B){var Q=N-60*T*1e3,L=c(Q,B);if(T===L)return[Q,T];var G=c(Q-=60*(L-T)*1e3,B);return L===G?[Q,L]:[N-60*Math.min(L,G)*1e3,Math.max(L,G)]}(i.utc(f,h).valueOf(),y,g),v=b[0],C=b[1],I=i(v).utcOffset(C);return I.$x.$timezone=g,I},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(f){o=f}}})});process.env.DISABLE_PINO_LOGGER="1";process.env.NO_JS="1";process.env.JS_BCRYPT="1";process.env.DISABLE_JWT_WARNING="1";Ud();var KS=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=>IVe(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(j7(r.help)));for(let i of r.opts)n=n.option(i.command,lhe(i.help));n.helpOption("--help",lhe(`Get help with ${this.command} options`)),n.action(async i=>{try{let o=!1,a=!1;for(let c of r.opts){let u=c.command.split(" ")[0].replace("--","");if(u=this.convertToCommander(u),a=!o&&!!i[u],a&&c.func){let l=Object.keys(i).length>1?i:i[u];await c.func(l),o=!0}}a&&!o?console.log(Bc(`${Object.keys(i)[0]} is an option, not an operation.`)):o||(console.log(Bc(`Unknown ${this.command} option.`)),n.help())}catch(o){console.log(Bc(o))}})}};Jk();Ud();var ytr=require("posthog-node");Jk();var phe=require("fs"),wcs=require("path"),Tcs=require("os"),{error:Ccs}=(Ud(),vr(RVe)),hhe=class{static{s(this,"ConfigManager")}constructor(){this.path=wcs.join(Tcs.homedir(),".budibase.json"),phe.existsSync(this.path)||phe.writeFileSync(this.path,"{}")}get config(){try{return JSON.parse(phe.readFileSync(this.path,"utf8"))}catch{return console.log(Ccs("Error parsing configuration file. Please check your .budibase.json is valid.")),{}}}set config(t){phe.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 kH=class{static{s(this,"AnalyticsClient")}constructor(){this.client=new ytr.PostHog(jVe,{}),this.configManager=new hhe}capture(t){this.configManager.config.analyticsDisabled||this.client.capture(t)}enable(){this.configManager.removeKey("analyticsDisabled"),this.client.capture({event:Cx.OptIn,distinctId:"cli"})}disable(){this.client.capture({event:Cx.OptOut,distinctId:"cli"}),this.configManager.setValue("analyticsDisabled",!0)}status(){return this.configManager.config.analyticsDisabled?"disabled":"enabled"}};var GVe=new kH;async function xcs(){try{GVe.disable(),console.log(Mc("Successfully opted out of Budibase analytics. You can opt in at any time by running 'budi analytics opt-in'"))}catch(e){console.log(Bc(`Error opting out of Budibase analytics. Please try again later - ${e}`))}}s(xcs,"optOut");async function Ics(){try{GVe.enable(),console.log(Mc("Successfully opted in to Budibase analytics. Thank you for helping us make Budibase better!"))}catch{console.log(Bc("Error opting in to Budibase analytics. Please try again later."))}}s(Ics,"optIn");async function Rcs(){try{console.log(Mc(`Budibase analytics ${GVe.status()}`))}catch{console.log(Bc("Error fetching analytics status. Please try again later."))}}s(Rcs,"status");var _tr=new KS("analytics").addHelp("Control the analytics you send to Budibase.").addSubOption("--optin","Opt in to sending analytics to Budibase",Ics).addSubOption("--optout","Opt out of sending analytics to Budibase.",xcs).addSubOption("--status","Check whether you are currently opted in to Budibase analytics.",Rcs);Jk();Jk();oL();var kcs=new kH;function mhe(e,t){kcs.capture({distinctId:"cli",event:e,properties:t})}s(mhe,"captureEvent");X7();Ud();Rx();var Ptr=require("path"),Btr=ot(require("fs"));Ud();Rx();async function yhe(e,t){let r="/plugins";if(e=(0,Ptr.resolve)(e),!Btr.default.existsSync(e)){console.log(Bc(`The directory "${e}" does not exist, please create and then try again.`));return}YVe(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(Mc(`Docker compose configured to watch directory: ${e}`))}s(yhe,"watchPlugins");var{success:Bcs}=(Ud(),vr(RVe)),{updateDockerComposeService:Mcs}=(Rx(),vr(wtr)),Lcs=require("randomstring"),{GENERATED_USER_EMAIL:Ucs}=(Jk(),vr(Atr));async function _he(e,t){let r=Ucs;e||(e=Lcs.generate({length:6})),Mcs(n=>{n.environment.BB_ADMIN_USER_EMAIL=r,n.environment.BB_ADMIN_USER_PASSWORD=e}),t||console.log(Bcs(`User admin credentials configured, access with email: ${r} - password: ${e}`))}s(_he,"generateUser");var Mtr=ot(require("node-fetch"));var Fcs="http://169.254.169.254/metadata/v1/user-data";async function qcs(e,t,r){let n=t?Itr:{};if(e==="do")try{let o=await(await(0,Mtr.default)(Fcs)).text(),a=TVe(o);for(let[c,u]of Object.entries(e8e))a[c]&&(n[u]=a[c])}catch{}return r&&(n[e8e.MAIN_PORT]=r),n}s(qcs,"getInitConfig");async function Ehe(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 M0(),!c&&!await JS("This will create multiple files in current directory, should continue?")){console.log("Stopping.");return}mhe(Cx.SelfHostInit,{type:t});let u=await qcs(t,c,o);r?await ktr(u,a):(await K7(),await Otr(u,a)),n&&await yhe(n,a),i&&await _he(typeof i=="string"?i:null,a)}s(Ehe,"init");Rx();Ud();X7();var Ltr=ot(require("docker-compose")),Utr=ot(require("fs"));oL();var Qcs=require("open");async function PH(){await M0(),xx(),console.log(Ps("Starting services, this may take a moment - first time this may take a few minutes to download images."));let e;Utr.default.existsSync(DH)?e=Ntr("MAIN_PORT"):e=Dtr("port"),await Ix(async()=>{await Ltr.default.upAll({cwd:"./",log:!0})}),await JS(`Do you wish to open http://localhost:${e} ?`)&&await Qcs(`http://localhost:${e}`),console.log(Mc(`Services started, please go to http://localhost:${e} for next steps.`))}s(PH,"start");Rx();Ud();var Ftr=ot(require("docker-compose"));async function qtr(){await M0(),xx(),console.log(Ps("Stopping services, this may take a moment.")),await Ix(async()=>{await Ftr.default.stop()}),console.log(Mc("Services have been stopped successfully."))}s(qtr,"stop");Rx();Ud();var Qtr=ot(require("docker-compose"));async function jtr(){await M0(),xx(),console.log(Ps("Budibase status")),await Ix(async()=>{let e=await Qtr.default.ps();console.log(e.out)})}s(jtr,"status");Rx();oL();var bhe=ot(require("docker-compose"));X7();Ud();var jcs=["app-service","worker-service","proxy-service","couchdb-service"],Hcs=["budibase"];async function Htr(){let{services:e}=J7(NH),t=Object.keys(e).length===1;if(await M0(),xx(),!t&&await JS("Do you wish to update you docker-compose.yaml?")){let r=await ghe("minio");await K7(),WVe("minio",r)}await Ix(async()=>{let n=(await bhe.default.ps()).out.split(`
|
|
1496
|
-
`),i=n[2]&&n[2].indexOf("Up")!==-1;i&&(console.log(Ps("Stopping services, this may take a moment.")),await bhe.default.stop()),console.log(Ps("Beginning update, this may take a few minutes."));let o;t?o=Hcs:o=jcs,await bhe.default.pullMany(o,{log:!0}),i&&(console.log(Mc("Update complete, restarting services...")),await PH())})}s(Htr,"update");var Gtr=new KS("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'.",Ehe).addSubOption("--start","Start the configured platform in current directory.",PH).addSubOption("--status","Check the status of currently running services.",jtr).addSubOption("--stop","Stop the configured platform in the current directory.",qtr).addSubOption("--update","Update the Budibase images to the latest version.",Htr).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",yhe).addSubOption("--gen-user","Create an admin user automatically as part of first start.",_he).addSubOption("--single","Specify this with init to use the single image.");Jk();var x0=ot(require("fs")),J3=require("path");var vhe=ot(require("pouchdb"));Ud();var Vtr=ot(require("node-fetch"));function She(e){let t;e?t={prefix:e}:t={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return vhe.default.plugin(r.plugin),vhe.default.adapter("writableStream",r.adapters.writableStream),vhe.default.defaults(t)}s(She,"getPouch");async function $tr(e){let t=await(0,Vtr.default)(CVe(encodeURI(`${e}/_all_dbs`)),{method:"GET"});if(t.status===200)return await t.json();throw"Cannot connect to CouchDB instance"}s($tr,"getAllDbs");Ud();var gYi=ot(require("dotenv")),A9t=ot(require("fs"));oL();Nr();Nr();var By={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"}},ztr={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var f4={};Go(f4,{ColumnSplitter:()=>w6e,NoEmptyFilterStrings:()=>$lr,buildQuery:()=>zlr,cleanupQuery:()=>x6e,fixupFilterArrays:()=>R6e,getKeyNumbering:()=>I6e,getValidOperatorsForType:()=>jSs,hasFilters:()=>T6e,limit:()=>Ylr,recurseLogicalOperators:()=>C6e,removeKeyNumbering:()=>khe,runQuery:()=>Cme,search:()=>VSs,sort:()=>Wlr,splitFiltersArray:()=>Nhe});Nr();var l4=ot(n8e());var rN={};Go(rN,{filterValueToLabel:()=>Bds,hasSchema:()=>Mds,isSupportedUserSearch:()=>sir,nameToUrl:()=>Qds,parallelForeach:()=>Pds,processSearchFilters:()=>A8e,toMap:()=>Uds,trimOtherProps:()=>Lds,unreachable:()=>Dds});Nr();var iir=ot(rir());var Nds=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function Dds(e,t){let r=t?.message||`No such case in exhaustive switch: ${e}`;if(!!!t?.doNotThrow)throw new Error(r)}s(Dds,"unreachable");async function Pds(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(Pds,"parallelForeach");function Bds(){return Object.keys(By).reduce((e,t)=>{let n=By[t];return e[n.value]=n.label,e},{})}s(Bds,"filterValueToLabel");function Mds(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null&&!(e instanceof Date)&&Object.keys(e).length>0}s(Mds,"hasSchema");function Lds(e,t){return Object.keys(e).filter(n=>t.includes(n)).reduce((n,i)=>({...n,[i]:e[i]}),{})}s(Lds,"trimOtherProps");function sir(e){let t=[{op:"string",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(fhe(o)){for(let l of e[o].conditions)if(!sir(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(sir,"isSupportedUserSearch");function A8e(e){if(!e||e.length===0)return;let{allOr:t,onEmptyFilter:r,filters:n}=Nhe(e);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:t?"any":"all",filters:n.map(i=>{let o=(0,iir.default)(i,Nds);return o.field=khe(o.field),o})}]}}s(A8e,"processSearchFilters");function Uds(e,t){return t.reduce((r,n)=>(r[n[e]]=n,r),{})}s(Uds,"toMap");var Fds=s(e=>e?e.trim():null,"resolveWorkspaceName"),qds=s(e=>{let t,r=Fds(e);t=r?r.toLowerCase():"";let n=t?t.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),Qds=s(e=>{let t=qds(e);return jds(t)},"nameToUrl"),jds=s(e=>(e&&!e.startsWith("/")&&(e=`/${e}`),e===""?null:e),"tidyUrl");var Fx={};Go(Fx,{cancelableTimeout:()=>oir,cron:()=>TSs,deepGet:()=>y8e,duplicateName:()=>SSs,getSequentialName:()=>wSs,getUserColor:()=>Gds,getUserInitials:()=>Hds,getUserLabel:()=>Vds,isGoogleSheets:()=>Wds,isSQL:()=>Yds,lists:()=>v6e,retry:()=>Kds,roles:()=>b6e,schema:()=>eX,views:()=>E6e,wait:()=>_8e,withTimeout:()=>$ds});var y8e=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"),Hds=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"),Gds=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"),Vds=s(e=>{if(!e)return"";let{firstName:t,lastName:r,email:n}=e;return t&&r?`${t} ${r}`:t||r||n},"getUserLabel");function oir(e){let t;return[new Promise((r,n)=>{t=setTimeout(()=>{n({status:301,errno:"ETIME"})},e)}),()=>{clearTimeout(t)}]}s(oir,"cancelableTimeout");async function $ds(e,t){let[r,n]=oir(e),i=await Promise.race([t(),r]);return n(),i}s($ds,"withTimeout");Nr();function Wds(e){return e==="GOOGLE_SHEETS"}s(Wds,"isGoogleSheets");function Yds(e){return!e||!e.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(e.source)!==-1||e.isSQL===!0}s(Yds,"isSQL");async function _8e(e){return new Promise(t=>setTimeout(t,e))}s(_8e,"wait");async function Kds(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 _8e(o);try{return await e()}catch(a){n=a}}throw n}s(Kds,"retry");var Olr=ot(ew()),klr=ot(Ilr());var Rlr="(Input cron: ",Mvs={"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 Lvs(e){let t=[];for(let r of e){r.includes(Rlr)&&(r=r.split(Rlr)[0].trim());for(let[n,i]of Object.entries(Mvs))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));t.push(r)}return t}s(Lvs,"improveErrors");function Nlr(e,t=4){let r=klr.default.parseExpression(e),n=[];for(let i=0;i<t;i++)n.push(r.next().toString());return n}s(Nlr,"getNextExecutionDates");function Dlr(e){let t=(0,Olr.default)(e,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return t.isValid()?{valid:!0}:{valid:!1,err:Lvs(t.getError())}}s(Dlr,"validate");var eX={};Go(eX,{decodeNonAscii:()=>m6e,encodeNonAscii:()=>qvs,isDeprecatedSingleUserColumn:()=>Uvs,isNumeric:()=>Qvs,isRequired:()=>Fvs});Nr();function Uvs(e){return e.type==="bb_reference"&&e.subtype==="user"&&e.constraints?.type!=="array"}s(Uvs,"isDeprecatedSingleUserColumn");function Fvs(e){return!!e&&(typeof e.presence!="boolean"&&e.presence?.allowEmpty===!1||e.presence===!0)}s(Fvs,"isRequired");function qvs(e){return e.split("").map(t=>t.charCodeAt(0)>127?"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0"):t).join("")}s(qvs,"encodeNonAscii");function m6e(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}s(m6e,"decodeNonAscii");function Qvs(e){return e.type==="number"||e.type==="bigint"}s(Qvs,"isNumeric");var E6e={};Go(E6e,{basicFields:()=>ySs,calculationFields:()=>ASs,hasCalculationFields:()=>gSs,isBasicViewField:()=>hSs,isCalculationField:()=>tX,isCalculationView:()=>mSs,isV2:()=>_Ss,isVisible:()=>jlr});Nr();var _6e=ot(y6e());function tX(e){return"calculationType"in e}s(tX,"isCalculationField");function hSs(e){return!tX(e)}s(hSs,"isBasicViewField");function mSs(e){return e.type==="calculation"}s(mSs,"isCalculationView");function gSs(e){return Object.values(e.schema||{}).some(tX)}s(gSs,"hasCalculationFields");function ASs(e){return(0,_6e.default)(e.schema||{},tX)}s(ASs,"calculationFields");function jlr(e){return e.visible!==!1}s(jlr,"isVisible");function ySs(e,t){let{visible:r=!0}=t||{};return(0,_6e.default)(e.schema||{},n=>!tX(n)&&(!r||jlr(n)))}s(ySs,"basicFields");function _Ss(e){return e.version===2}s(_Ss,"isV2");var b6e={};Go(b6e,{checkForRoleInheritanceLoops:()=>bSs});Nr();function ESs(e){return`role${eo}${e}`}s(ESs,"prefixForCheck");function bSs(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=ESs(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(bSs,"checkForRoleInheritanceLoops");var v6e={};Go(v6e,{punctuateList:()=>vSs});function vSs(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(vSs,"punctuateList");var SSs=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"),wSs=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 f=l.split(o);if(f.length!==2)return;f[1].trim()===""&&(f[1]="1");let d=parseInt(f[1]);d>c&&(c=d)}),c===0?a:`${t}${i}${c+1}`},"getSequentialName");var TSs={getNextExecutionDates:Nlr,validate:Dlr};var Tme=ot(yE()),S6e=ot(EA());var qSs=/{{([^{].*?)}}/g,Vlr=Object.values(z7),QSs=[...Object.values(OH),...Object.values(rL),...Object.values($7)],jSs=s((e,t,r)=>{let n=By,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:f}=e;u==="string"?f==="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"||eX.isDeprecatedSingleUserColumn(e)?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?c=a:u==="barcodeqr"&&(c=i);let d=r?.tableId?.includes("datasource_plus");return t==="_id"&&d&&(c=[n.Equals,n.NotEquals,n.In]),c},"getValidOperatorsForType"),$lr=[By.StartsWith.value,By.Like.value,By.Equals.value,By.NotEquals.value,By.Contains.value,By.NotContains.value,By.ContainsAny.value,By.In.value];function C6e(e,t){for(let r of Vlr)e[r]&&(e[r].conditions=e[r].conditions.map(n=>t(n)));return e}s(C6e,"recurseLogicalOperators");var x6e=s(e=>{for(let t of $lr)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===""||HSs(o))&&delete e[t][i]}return e=C6e(e,x6e),e},"cleanupQuery");function HSs(e){return Array.isArray(e)&&e.length===0}s(HSs,"isEmptyArray");var khe=s(e=>I6e(e).key,"removeKeyNumbering"),I6e=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"),w6e=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}=I6e(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=m6e(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function GSs(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(qSs)||[]).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(dhe(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(dhe(r)){let l=ztr[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(QXt(r)||jXt(r)||dhe(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(GSs,"buildCondition");function Nhe(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(Nhe,"splitFiltersArray");function zlr(e){if(!e)return{};if(Array.isArray(e)&&(e=A8e(e),!e))return{};let t={};e.onEmptyFilter?t.onEmptyFilter=e.onEmptyFilter:t.onEmptyFilter="all";let r=Glr(e.logicalOperator||"all");return t[r]={conditions:(e.groups||[]).map(n=>{if(n.groups){let u=zlr(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:o,filters:a}=Nhe(n.filters||[]);o&&(t.onEmptyFilter=o);let c=i?"$or":"$and";return n.logicalOperator&&(c=Glr(n.logicalOperator)),{[c]:{conditions:a.map(GSs).filter(u=>u)}}})},t}s(zlr,"buildQuery");function Glr(e){return e==="all"?"$and":"$or"}s(Glr,"logicalOperatorFromUI");function R6e(e){if(!e)return e;for(let t of Object.values(rL)){let r=e[t];if(!(r==null||!(0,Tme.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 C6e(e,R6e),e}s(R6e,"fixupFilterArrays");function VSs(e,t){let r=Cme(e,t.query);t.sort&&(r=Wlr(r,t.sort,t.sortOrder||"ascending",t.sortType));let n=r.length;t.limit&&(r=Ylr(r,t.limit.toString()));let i={rows:r};return t.countRows&&(i.totalRows=n),i}s(VSs,"search");function Cme(e,t){if(!e||!Array.isArray(e))return[];if(!t)return e;if(t=x6e(t),t=R6e(t),!T6e(t)&&t.onEmptyFilter==="none")return[];let r=s((T,B)=>Q=>{for(let[L,G]of Object.entries(t[T]||{})){let J=fhe(T)?Q:y8e(Q,khe(L)),te=B(J,G);if(t.allOr&&te)return!0;if(!t.allOr&&!te)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,Tme.default)(B.low)&&(0,S6e.default)(B.low)&&(B.low=void 0),(0,Tme.default)(B.high)&&(0,S6e.default)(B.high)&&(B.high=void 0),B.low==null&&B.high==null))return!1;let Q=+T;if(!isNaN(Q)){let G=+B.low,J=+B.high;if(!isNaN(G)&&!isNaN(J))return Q>=G&&Q<=J;if(isNaN(G)){if(!isNaN(J))return Q<=J}else return Q>=G}let L=(0,l4.default)(T);if(L.isValid()){let G=(0,l4.default)(B.low||"0000-00-00T00:00:00.000Z"),J=(0,l4.default)(B.high||"9999-00-00T00:00:00.000Z");if(G.isValid()&&J.isValid())return L.isAfter(G)&&L.isBefore(J)||L.isSame(G)||L.isSame(J);if(G.isValid())return L.isAfter(G)||L.isSame(G);if(J.isValid())return L.isBefore(J)||L.isSame(J)}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 L of T)if(a(L,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 Q=(0,l4.default)(T);if(Q.isValid()){let L=(0,l4.default)(B);if(L.isValid())return Q.isSame(L)}return!1},"_valueMatches"),c=s(T=>(...B)=>!T(...B),"not"),u=r("equal",a),l=r("notEqual",c(a)),f=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),d=r("empty",f),p=r("notEmpty",c(f)),h=r("oneOf",(T,B)=>(typeof B=="string"&&(B=B.split(",")),typeof T=="number"&&(B=B.map(Q=>parseFloat(Q))),Array.isArray(B)?B.some(Q=>a(T,Q)):!1)),g=s(T=>(B,Q)=>!Array.isArray(B)||(typeof Q=="string"&&(Q=Q.split(","),typeof B[0]=="number"&&(Q=Q.map(L=>parseFloat(L)))),!Array.isArray(Q))?!1:Q.length===0?!0:Q[T](L=>a(B,L)),"_contains"),y=r("contains",(T,B)=>Array.isArray(B)&&B.length===0?!0:g("every")(T,B)),b=r("notContains",(T,B)=>Array.isArray(B)&&B.length===0?!0:c(g("every"))(T,B)),v=r("containsAny",g("some")),C=r("$and",(T,B)=>{if(!B.length)return!1;for(let Q of B)if(!Cme([T],Q).length)return!1;return!0}),I=r("$or",(T,B)=>{if(!B.length)return!1;for(let Q of B)if(Cme([T],{...Q,allOr:!0}).length)return!0;return!1}),N=s(T=>{let B={string:n,fuzzy:i,range:o,equal:u,notEqual:l,empty:d,notEmpty:p,oneOf:h,contains:y,containsAny:v,notContains:b,$and:C,$or:I},Q=Object.entries(t||{}).filter(([L,G])=>!["allOr","onEmptyFilter"].includes(L)&&G&&Object.keys(G).length>0).map(([L])=>B[L]?.(T)??!1);return T6e(t)?t.allOr?Q.some(L=>L===!0):Q.every(L=>L===!0):!0},"docMatch");return e.filter(N)}s(Cme,"runQuery");function Wlr(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(Wlr,"sort");function Ylr(e,t){let r=typeof t=="number"?t:parseFloat(t);return isNaN(r)?e:e.slice(0,r)}s(Ylr,"limit");var T6e=s(e=>{if(!e)return!1;let t=s(r=>{for(let n of Vlr)if(r[n])for(let i of r[n]?.conditions||[]){let o=t(i);if(o)return o}for(let n of QSs){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 SE={};Go(SE,{applications:()=>k6e,automations:()=>N6e,screens:()=>M6e,users:()=>B6e});var k6e={};Go(k6e,{getDevAppID:()=>$Ss,getProdAppID:()=>nX});Nr();var O6e=iL("app"),rX=iL("app_dev");function $Ss(e){if(!e)throw new Error("No app ID provided");if(e.startsWith(rX))return e;let t=e.split(O6e);t.shift();let r=t.join(O6e);return`${rX}${r}`}s($Ss,"getDevAppID");function nX(e){if(!e)throw new Error("No app ID provided");if(!e.startsWith(rX))return e;let t=e.split(rX);t.shift();let r=t.join(rX);return`${O6e}${r}`}s(nX,"getProdAppID");var N6e={};Go(N6e,{checkForCollectStep:()=>KSs,isAppAction:()=>YSs,isRowAction:()=>zSs,isWebhookAction:()=>WSs});Nr();function zSs(e){return e.definition.trigger?.stepId==="ROW_ACTION"}s(zSs,"isRowAction");function WSs(e){return e.definition.trigger?.stepId==="WEBHOOK"}s(WSs,"isWebhookAction");function YSs(e){return e.definition.trigger?.stepId==="APP"}s(YSs,"isAppAction");function Klr(e){if(!e||!Array.isArray(e))return!1;for(let t of e){if(t.stepId==="COLLECT")return!0;if(ter(t)&&t.inputs.children){for(let r of Object.values(t.inputs.children))if(Klr(r))return!0}}return!1}s(Klr,"hasCollectBlockRecursive");function KSs(e){return Klr(e.definition.steps)}s(KSs,"checkForCollectStep");var B6e={};Go(B6e,{canCreateApps:()=>JSs,containsUserID:()=>sws,getGlobalUserID:()=>iws,getUserAppGroups:()=>ows,hasAdminPermissions:()=>P6e,hasAppBuilderPermissions:()=>Rme,hasBuilderPermissions:()=>rws,hasCreatorPermissions:()=>Ome,isAdmin:()=>iX,isAdminOrBuilder:()=>ZSs,isAdminOrGlobalBuilder:()=>ews,isAdminOrWorkspaceBuilder:()=>XSs,isBuilder:()=>D6e,isCreator:()=>nws,isGlobalBuilder:()=>Ime,userAppAccessList:()=>aws});Nr();function D6e(e,t){return e?e.builder?.global?!0:!!(t&&e.builder?.apps?.includes(nX(t))):!1}s(D6e,"isBuilder");function Ime(e){return D6e(e)&&!Rme(e)||iX(e)}s(Ime,"isGlobalBuilder");function JSs(e){return Ime(e)||Ome(e)}s(JSs,"canCreateApps");function iX(e){return e?P6e(e):!1}s(iX,"isAdmin");function XSs(e,t){return e?!!(iX(e)||t&&e.builder?.apps?.includes(nX(t))):!1}s(XSs,"isAdminOrWorkspaceBuilder");function ZSs(e,t){return D6e(e,t)||iX(e)}s(ZSs,"isAdminOrBuilder");function ews(e){return Ime(e)||iX(e)}s(ews,"isAdminOrGlobalBuilder");function Rme(e){if(!e)return!1;let t=e.builder?.apps?.length;return!!!e.builder?.global&&t!=null&&t>0}s(Rme,"hasAppBuilderPermissions");function tws(e){return e?!!Object.values(e.roles??{}).find(t=>t==="CREATOR"):!1}s(tws,"hasAppCreatorPermissions");function rws(e){return e?e.builder?.global||Rme(e)||Ome(e):!1}s(rws,"hasBuilderPermissions");function P6e(e){return e?!!e.admin?.global:!1}s(P6e,"hasAdminPermissions");function Ome(e){return e?!!e.builder?.creator:!1}s(Ome,"hasCreatorPermissions");function nws(e){return e?Ime(e)||P6e(e)||Ome(e)||Rme(e)||tws(e):!1}s(nws,"isCreator");function iws(e){if(typeof e!="string")return e;let t=`ro${eo}ta_users${eo}`;return e.startsWith(t)?e.split(t)[1]:e}s(iws,"getGlobalUserID");function sws(e){return typeof e!="string"?!1:e.includes(`us${eo}`)}s(sws,"containsUserID");function Jlr(e,t){return t?.filter(r=>r.users?.find(n=>n._id===e))||[]}s(Jlr,"getUserGroups");function ows(e,t,r){let n=nX(e);return Jlr(t,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(ows,"getUserAppGroups");function aws(e,t){let n=Jlr(e._id,t).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(e?.roles||{}),...n];return[...new Set(i)]}s(aws,"userAppAccessList");var M6e={};Go(M6e,{findInSettings:()=>cws});function cws(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(cws,"findInSettings");Nr();var L6e={by_email2:["by_email"]},G0={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"}},OL=iL("app"),lws=iL("app_dev"),dN=lws;var sX="_design/sqlite";var fws=`ro${eo}ta_users${eo}`;var qp="default";Nr();Nr();var U6e=require("crypto"),Nme=require("fs"),pws=ot(p4()),aX=require("path");var hws=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,aX.resolve)((0,aX.join)(__dirname,"..","..","..")),Zlr=!1;!Zlr&&kme()&&!F6e()&&(require("dotenv").config({path:(0,aX.join)(hws,".env")}),Zlr=!0);function F6e(){return tfr()}s(F6e,"isTest");function tfr(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(tfr,"isJest");function kme(){return process.env.NODE_ENV!=="production"}s(kme,"isDev");function mws(e){if(e)return parseInt(e)}s(mws,"parseIntSafe");var h4={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},efr=!!parseInt(process.env.SELF_HOSTED||"");function gws(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(gws,"getAPIEncryptionKey");function Aws(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Aws,"httpLogging");function yws(){function e(r){function n(c,u){let l=`${u}/${c}`;if((0,Nme.existsSync)(l))return l;let f=`${u}/..`;return f===u?null:n(c,f)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Nme.readFileSync)(i,"utf-8");return JSON.parse(o)}s(e,"getParentFile");let t;if(kme()&&!F6e())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(yws,"getPackageJsonFields");function _ws(){return pN.SERVICE_TYPE==="worker"}s(_ws,"isWorker");function Ews(){return pN.SERVICE_TYPE==="apps"}s(Ews,"isApps");function bws(){return pN.BUDIBASE_ENVIRONMENT==="QA"}s(bws,"isQA");function vws(){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(vws,"getServiceName");var pN={isTest:F6e,isJest:tfr,isDev:kme,isWorker:_ws,isApps:Ews,isQA:bws,isProd:()=>!kme(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,U6e.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,U6e.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:gws(),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_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,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:efr,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||h4.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||h4.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||h4.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||h4.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||h4.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||h4.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:vws(),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:Aws(),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:efr?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...yws(),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,pN[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:mws(process.env.BSON_BUFFER_SIZE)};for(let[e,t]of Object.entries(pN))t==="0"&&(pN[e]=0),t==="false"&&(pN[e]=0);var pt=pN;var cX="-";function q6e(){let e=pt.REDIS_PASSWORD,t=pt.REDIS_URL.split("//");t=t.length>1?t[1]:t[0],t=t.split("@"),t.length>1?(e=t[0].split(":")[1],t=t[1]):t=t[0];let[r,n]=t.split(":"),i=parseInt(n);return{host:r,password:e,port:isNaN(i)?6379:i}}s(q6e,"getRedisConnectionDetails");function rfr(){return{slotsRefreshTimeout:2e3,dnsLookup:(e,t)=>t(null,e),redisOptions:{...m4(),tls:{}}}}s(rfr,"getRedisClusterOptions");function m4(){let{host:e,password:t,port:r}=q6e();return{connectTimeout:3e4,port:r,host:e,password:t}}s(m4,"getRedisOptions");function nfr(e){let t=e.split(cX);return t.length>=2?(t.shift(),t.join(cX)):t[0]}s(nfr,"removeDbPrefix");var Z1n=ot(require("events"));pX();function iw(){return kL().replace(/-/g,"")}s(iw,"newid");var Mws=pt.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),iAl=pt.SALT_ROUNDS||10;async function Cfr(e,t){return Mws.compare(e,t)}s(Cfr,"compare");Nr();var zRa=ot(Lze());var tl={};Go(tl,{DEFAULT_TENANT_ID:()=>qp,baseGlobalDBName:()=>hwe,doInAutomationContext:()=>_Xo,doInContext:()=>jht,doInEnvironmentContext:()=>RXo,doInFeatureFlagOverrideContext:()=>Bfn,doInIPContext:()=>Dfn,doInIdentityContext:()=>pge,doInLicenseContext:()=>bXo,doInScimContext:()=>OXo,doInSelfHostTenantUsingCloud:()=>EXo,doInTenant:()=>eR,doInWorkspaceContext:()=>wXo,doInWorkspaceMigrationContext:()=>CXo,ensureSnippetContext:()=>Pfn,getAuditLogDBName:()=>kfn,getAuditLogsDB:()=>NXo,getAutomationId:()=>Hht,getCurrentContext:()=>k2,getDevWorkspaceDB:()=>PXo,getDevWorkspaceId:()=>xXo,getEnvironmentVariables:()=>kXo,getFeatureFlagOverrides:()=>Yht,getFeatureFlags:()=>zht,getGlobalDB:()=>Xh,getGlobalDBName:()=>Zre,getIP:()=>Ght,getIdentity:()=>yN,getLicense:()=>vXo,getPlatformURL:()=>Qht,getProdWorkspaceDB:()=>DXo,getProdWorkspaceId:()=>IXo,getScimDBName:()=>mXo,getSelfHostCloudDB:()=>SXo,getTableForView:()=>BXo,getTenantIDFromWorkspaceID:()=>x8,getTenantId:()=>ho,getWorkspaceDB:()=>Vht,getWorkspaceId:()=>QA,identity:()=>TX,isMultiTenant:()=>O2,isScim:()=>$ht,isSelfHostUsingCloud:()=>mwe,isTenancyEnabled:()=>AXo,isTenantIdSet:()=>gXo,setFeatureFlags:()=>Wht,setTableForView:()=>MXo});var TX={};Go(TX,{doInAccountContext:()=>QOs,doInIdentityContext:()=>Uze,doInUserContext:()=>rmr,getAccountUserId:()=>nmr,getIdentity:()=>tmr});Nr();function tmr(){return yN()}s(tmr,"getIdentity");function Uze(e,t){return pge(e,t)}s(Uze,"doInIdentityContext");function rmr(e,t,r){let n={...e,_id:e._id,type:"user",hostInfo:{ipAddress:t.request.ip,userAgent:t.userAgent.source}};return Uze(n,r)}s(rmr,"doInUserContext");function QOs(e,t){let r=nmr(e),n=e.tenantId,i={_id:r,type:"user",tenantId:n,account:e};return Uze(i,t)}s(QOs,"doInAccountContext");function nmr(e){let t;return BVe(e)?t=e.budibaseUserId:t=e.accountId,t}s(nmr,"getAccountUserId");var _N=s(e=>{let t=imr(e),r,n;if(t.auth?.username)r=t.auth.username;else if(pt.COUCH_DB_USERNAME)r=pt.COUCH_DB_USERNAME;else if(!pt.isTest())throw new Error("CouchDB username not set");if(t.auth?.password)n=t.auth.password;else if(pt.COUCH_DB_PASSWORD)n=pt.COUCH_DB_PASSWORD;else if(!pt.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=pt.COUCH_DB_SQL_URL;if(pt.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:imr(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),imr=s((e=pt.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 f=l.slice(0,-1).join("@");if(f.includes(":")){let d=f.split(":");r=d[0],n=d.slice(1).join(":")}else r=f}else i=u;t=`${c}://${i}`}return{url:t,auth:{username:r,password:n}}},"getUrlInfo");var Ifn=ot(QEr());Nr();var jEr=ot(require("node-fetch"));function oAe(e){return e.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(oAe,"checkSlashesInUrl");async function Z9e({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,jEr.default)(oAe(encodeURI(e)),i)}s(Z9e,"directCouchUrlCall");var YLs=ot(require("pouchdb"));var KLs,JLs=!1;var XLs=s(()=>{if(!JLs)throw new Error("init has not been called")},"checkInitialised");function DN(e,t){XLs();let r=new KLs(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(DN,"getPouchDB");var sl=ot(RI());var Xre=class{constructor(t){this.db=t}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(t){return sl.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 sl.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:t}),this.db.get(t)))}tryGet(t){return sl.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 sl.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 sl.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 sl.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 sl.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 sl.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:t.length}),this.db.bulkDocs(t)))}async find(t){return sl.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 sl.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 sl.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 sl.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 sl.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 sl.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 sl.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.load(...t)))}createIndex(...t){return sl.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.createIndex(...t)))}deleteIndex(...t){return sl.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.deleteIndex(...t)))}getIndexes(...t){return sl.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.getIndexes(...t)))}sql(t,r){return sl.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 sl.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 sl.default.trace("db.sqlDiskCleanup",t=>(t.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};Nr();var SWl=`${eo}${eo}`;var wWl=encodeURIComponent(" ");function Fht(e,t,r){if(!pt.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${e.toUpperCase()}] query="${t}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Fht,"sqlLog");var Tfn="Database does not exist.";function Cfn(e){return(0,Ifn.default)({url:e.url,requestDefaults:{headers:{Authorization:e.cookie}},parseUrl:!1})}s(Cfn,"buildNano");var cD=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 pwe=class e{constructor(t,r,n){this.couchInfo=_N();this.name=t,this.pouchOpts=r||{},n&&(this.couchInfo=_N(n),this.instanceNano=Cfn(this.couchInfo)),e.nano||e.init()}static{s(this,"DatabaseImpl")}static init(){let t=_N();e.nano=Cfn(t)}exists(t){return t===void 0?this.dbExists():this.docExists(t)}async dbExists(){return(await Z9e({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 cD(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===Tfn)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(t);throw new cD(`CouchDB error: ${i.message}`,i)}}async performCall(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){throw new cD(`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(f=>o(f)).map(f=>f.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(zXt(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 cD(o,{name:this.name,status:400})}async post(t,r){return t._id||(t._id=iw()),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===Tfn)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(t,r,n){t=oAe(`${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 Z9e(i),a=await o.text();if(o.status>300){let c;try{c=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new cD("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}/${sX}`;return Fht("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(sX)){let t=await this.get(sX);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 cD(t.message,t)}}async compact(){return this.performCall(t=>()=>t.compact())}async dump(t,r){return DN(this.name).dump(t,r)}async load(t){return DN(this.name).load(t)}async createIndex(t){return DN(this.name).createIndex(t)}async deleteIndex(t){return DN(this.name).deleteIndex(t)}async getIndexes(){return DN(this.name).getIndexes()}};function vv(e,t){return new Xre(new pwe(e,t))}s(vv,"getDB");function qht(e){if(!e||e.startsWith(dN))return e;let t=e.split(OL);t.shift();let r=t.join(OL);return`${dN}${r}`}s(qht,"getDevWorkspaceID");function C8(e){if(!e||!e.startsWith(dN))return e;let t=e.split(dN);t.shift();let r=t.join(dN);return`${OL}${r}`}s(C8,"getProdWorkspaceID");var Rfn=require("async_hooks");var mf=class e{static{s(this,"Context")}static{this.storage=new Rfn.AsyncLocalStorage}static run(t,r){return e.storage.run(t,()=>r())}static get(){return e.storage.getStore()}};var Ofn=null;function Zre(e){return e||(e=ho()),hwe(e)}s(Zre,"getGlobalDBName");function kfn(e){return e||(e=ho()),e===qp?G0.AUDIT_LOGS.name:`${e}${eo}${G0.AUDIT_LOGS.name}`}s(kfn,"getAuditLogDBName");function mXo(e){return e||(e=ho()),e===qp?G0.SCIM_LOGS.name:`${e}${eo}${G0.SCIM_LOGS.name}`}s(mXo,"getScimDBName");function hwe(e){return!e||e===qp?G0.GLOBAL.name:`${e}${eo}${G0.GLOBAL.name}`}s(hwe,"baseGlobalDBName");function Qht(){return pt.PLATFORM_URL}s(Qht,"getPlatformURL");function O2(){return!!pt.MULTI_TENANCY}s(O2,"isMultiTenant");function gXo(){return!!mf.get()?.tenantId}s(gXo,"isTenantIdSet");function AXo(){return pt.MULTI_TENANCY}s(AXo,"isTenancyEnabled");function x8(e){if(!e)return;if(!O2())return qp;let t=e.split(eo),r=t[1]==="dev";if(!(r&&t.length===3||!r&&t.length===2))return r?t[2]:t[1]}s(x8,"getTenantIDFromWorkspaceID");function yXo(e){let t;try{t=mf.get()}catch{t={}}return t={...t,...e},t}s(yXo,"updateContext");async function Sv(e,t){TXo();let r=yXo(e);return mf.run(r,t)}s(Sv,"newContext");async function _Xo(e){return await Pfn(),await Sv({tenantId:x8(e.workspaceId),appId:e.workspaceId,automationId:e.automationId},e.task)}s(_Xo,"doInAutomationContext");async function jht(e,t){let r=x8(e);return Sv({tenantId:r,appId:e},t)}s(jht,"doInContext");async function eR(e,t){return pt.MULTI_TENANCY||(e=e||qp),Sv(e?{tenantId:e}:{},t)}s(eR,"doInTenant");async function EXo(e,t){return Sv({tenantId:e,isSelfHostUsingCloud:!0},t)}s(EXo,"doInSelfHostTenantUsingCloud");async function bXo(e,t){return Sv({license:e},t)}s(bXo,"doInLicenseContext");function vXo(){return mf.get()?.license}s(vXo,"getLicense");function mwe(){return!!mf.get()?.isSelfHostUsingCloud}s(mwe,"isSelfHostUsingCloud");function SXo(){let e=mf.get();if(!e||!e.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return vv(G0.SELF_HOST_CLOUD.name)}s(SXo,"getSelfHostCloudDB");async function wXo(e,t){return Nfn(e,t)}s(wXo,"doInWorkspaceContext");async function Nfn(e,t,r){if(!e)throw new Error("workspaceId is required");let n=x8(e),i={appId:e,...r};return n&&(i.tenantId=n),Sv(i,t)}s(Nfn,"_doInWorkspaceContext");async function pge(e,t){if(!e)throw new Error("identity is required");let r={identity:e};return e.tenantId&&(r.tenantId=e.tenantId),Sv(r,t)}s(pge,"doInIdentityContext");function TXo(){if(mf.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(TXo,"guardMigration");async function CXo(e,t){return Nfn(e,t,{isMigrating:!0})}s(CXo,"doInWorkspaceMigrationContext");function yN(){try{return mf.get()?.identity}catch{}}s(yN,"getIdentity");function ho(){if(!O2())return qp;let t=mf.get()?.tenantId;if(!t)throw new Error("Tenant id not found");return t}s(ho,"getTenantId");function Hht(){return mf.get()?.automationId}s(Hht,"getAutomationId");function QA(){let t=mf.get()?.appId;return!t&&pt.isTest()&&Ofn?Ofn:t}s(QA,"getWorkspaceId");function Ght(){return mf.get()?.ip}s(Ght,"getIP");var xXo=s(()=>{let e=QA();if(!e)throw new Error("Could not get workspaceId");return qht(e)},"getDevWorkspaceId"),IXo=s(()=>{let e=QA();if(!e)throw new Error("Could not get workspaceId");return C8(e)},"getProdWorkspaceId");function RXo(e,t){if(!e)throw new Error("Must supply environment variables.");return Sv({environmentVariables:e},t)}s(RXo,"doInEnvironmentContext");function OXo(e){return Sv({isScim:!0},e)}s(OXo,"doInScimContext");function Dfn(e,t){return Sv({ip:e},t)}s(Dfn,"doInIPContext");async function Pfn(){let e=k2();if(!e||e.snippets)return;let t,r=Vht();r&&(t=(await r.tryGet("app_metadata"))?.snippets),e.snippets=t||[]}s(Pfn,"ensureSnippetContext");function kXo(){let e=mf.get();return e.environmentVariables?e.environmentVariables:null}s(kXo,"getEnvironmentVariables");function Xh(){let e=mf.get();if(!e||pt.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 vv(hwe(e?.tenantId))}s(Xh,"getGlobalDB");function NXo(){if(!ho())throw new Error("No tenant ID found - cannot open audit log DB");return vv(kfn())}s(NXo,"getAuditLogsDB");function Vht(e){let t=QA();if(!t)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(mwe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return vv(t,e)}s(Vht,"getWorkspaceDB");function DXo(e){let t=QA();if(!t)throw new Error("Unable to retrieve prod DB - no workspace ID.");return vv(C8(t),e)}s(DXo,"getProdWorkspaceDB");function PXo(e){let t=QA();if(!t)throw new Error("Unable to retrieve dev DB - no workspace ID.");return vv(qht(t),e)}s(PXo,"getDevWorkspaceDB");function $ht(){return!!mf.get()?.isScim}s($ht,"isScim");function k2(){try{return mf.get()}catch{return}}s(k2,"getCurrentContext");function zht(e){let t=k2();if(t)return t.featureFlagCache?.[e]}s(zht,"getFeatureFlags");function Wht(e,t){let r=k2();r&&(r.featureFlagCache??={},r.featureFlagCache[e]=t)}s(Wht,"setFeatureFlags");function Yht(){return k2()?.featureFlagOverrides||{}}s(Yht,"getFeatureFlagOverrides");async function Bfn(e,t){return await Sv({featureFlagOverrides:e},t)}s(Bfn,"doInFeatureFlagOverrideContext");function BXo(e){let t=k2();if(t)return t.viewToTableCache?.[e]}s(BXo,"getTableForView");function MXo(e,t){let r=k2();r&&(r.viewToTableCache??={},r.viewToTableCache[e]=t)}s(MXo,"setTableForView");var mxe=ot(bpn());var hxe=ot(RI()),nTn=ot(p4());var rTn;if(pt.MOCK_REDIS)try{rTn=tTn()}catch{console.log("Mock redis unavailable")}async function IRa(e=0){return await hxe.tracer.trace("Redis.init",async t=>{if(pt.MOCK_REDIS)return t.addTags({mock:!0}),new rTn(m4());let r;if(pt.REDIS_CLUSTERED){t.addTags({clustered:!0});let{host:n,port:i}=q6e();r=new mxe.Cluster([{host:n,port:i}],rfr())}else r=new mxe.default(m4());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(IRa,"init");function RRa(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:nfr(a),value:c}});r(await Promise.all(o))}catch(o){n(o)}})})}s(RRa,"promisifyStream");function ORa(e){return e.isCluster}s(ORa,"isCluster");var Ybt=class e{static{s(this,"RedisWrapper")}constructor(t,r){this.client=t,this.db=r}static async init(t,r=0){return await hxe.tracer.trace("RedisWrapper.init",async n=>{let i=await IRa(r);return r&&!pt.isTest()&&(n.addTags({db:t}),i.select(r)),new e(i,t)})}trace(t,r){return hxe.tracer.trace(t,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(t){return t.includes(this.db)?t:`${this.db}${cX}${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}${cX}${t}`;let n;ORa(this.client)?n=this.client.nodes("master")[0].scanStream({match:t+"*",count:100}):n=this.client.scanStream({match:t+"*",count:100});let i=await RRa(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,nTn.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=`
|
|
1496
|
+
`),i=n[2]&&n[2].indexOf("Up")!==-1;i&&(console.log(Ps("Stopping services, this may take a moment.")),await bhe.default.stop()),console.log(Ps("Beginning update, this may take a few minutes."));let o;t?o=Hcs:o=jcs,await bhe.default.pullMany(o,{log:!0}),i&&(console.log(Mc("Update complete, restarting services...")),await PH())})}s(Htr,"update");var Gtr=new KS("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'.",Ehe).addSubOption("--start","Start the configured platform in current directory.",PH).addSubOption("--status","Check the status of currently running services.",jtr).addSubOption("--stop","Stop the configured platform in the current directory.",qtr).addSubOption("--update","Update the Budibase images to the latest version.",Htr).addSubOption("--watch-plugin-dir [directory]","Add plugin directory watching to a Budibase install.",yhe).addSubOption("--gen-user","Create an admin user automatically as part of first start.",_he).addSubOption("--single","Specify this with init to use the single image.");Jk();var x0=ot(require("fs")),J3=require("path");var vhe=ot(require("pouchdb"));Ud();var Vtr=ot(require("node-fetch"));function She(e){let t;e?t={prefix:e}:t={prefix:void 0,adapter:"leveldb"};let r=require("@budibase/pouchdb-replication-stream");return vhe.default.plugin(r.plugin),vhe.default.adapter("writableStream",r.adapters.writableStream),vhe.default.defaults(t)}s(She,"getPouch");async function $tr(e){let t=await(0,Vtr.default)(CVe(encodeURI(`${e}/_all_dbs`)),{method:"GET"});if(t.status===200)return await t.json();throw"Cannot connect to CouchDB instance"}s($tr,"getAllDbs");Ud();var gYi=ot(require("dotenv")),A9t=ot(require("fs"));oL();Nr();Nr();var By={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"}},ztr={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var f4={};Go(f4,{ColumnSplitter:()=>w6e,NoEmptyFilterStrings:()=>$lr,buildQuery:()=>zlr,cleanupQuery:()=>x6e,fixupFilterArrays:()=>R6e,getKeyNumbering:()=>I6e,getValidOperatorsForType:()=>jSs,hasFilters:()=>T6e,limit:()=>Ylr,recurseLogicalOperators:()=>C6e,removeKeyNumbering:()=>khe,runQuery:()=>Cme,search:()=>VSs,sort:()=>Wlr,splitFiltersArray:()=>Nhe});Nr();var l4=ot(n8e());var rN={};Go(rN,{filterValueToLabel:()=>Bds,hasSchema:()=>Mds,isSupportedUserSearch:()=>sir,nameToUrl:()=>Qds,parallelForeach:()=>Pds,processSearchFilters:()=>A8e,toMap:()=>Uds,trimOtherProps:()=>Lds,unreachable:()=>Dds});Nr();var iir=ot(rir());var Nds=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function Dds(e,t){let r=t?.message||`No such case in exhaustive switch: ${e}`;if(!!!t?.doNotThrow)throw new Error(r)}s(Dds,"unreachable");async function Pds(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(Pds,"parallelForeach");function Bds(){return Object.keys(By).reduce((e,t)=>{let n=By[t];return e[n.value]=n.label,e},{})}s(Bds,"filterValueToLabel");function Mds(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null&&!(e instanceof Date)&&Object.keys(e).length>0}s(Mds,"hasSchema");function Lds(e,t){return Object.keys(e).filter(n=>t.includes(n)).reduce((n,i)=>({...n,[i]:e[i]}),{})}s(Lds,"trimOtherProps");function sir(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(fhe(o)){for(let l of e[o].conditions)if(!sir(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(sir,"isSupportedUserSearch");function A8e(e){if(!e||e.length===0)return;let{allOr:t,onEmptyFilter:r,filters:n}=Nhe(e);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:t?"any":"all",filters:n.map(i=>{let o=(0,iir.default)(i,Nds);return o.field=khe(o.field),o})}]}}s(A8e,"processSearchFilters");function Uds(e,t){return t.reduce((r,n)=>(r[n[e]]=n,r),{})}s(Uds,"toMap");var Fds=s(e=>e?e.trim():null,"resolveWorkspaceName"),qds=s(e=>{let t,r=Fds(e);t=r?r.toLowerCase():"";let n=t?t.replace(/\s+/g,"-"):"";return encodeURI(n)},"resolveWorkspaceUrl"),Qds=s(e=>{let t=qds(e);return jds(t)},"nameToUrl"),jds=s(e=>(e&&!e.startsWith("/")&&(e=`/${e}`),e===""?null:e),"tidyUrl");var Fx={};Go(Fx,{cancelableTimeout:()=>oir,cron:()=>TSs,deepGet:()=>y8e,duplicateName:()=>SSs,getSequentialName:()=>wSs,getUserColor:()=>Gds,getUserInitials:()=>Hds,getUserLabel:()=>Vds,isGoogleSheets:()=>Wds,isSQL:()=>Yds,lists:()=>v6e,retry:()=>Kds,roles:()=>b6e,schema:()=>eX,views:()=>E6e,wait:()=>_8e,withTimeout:()=>$ds});var y8e=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"),Hds=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"),Gds=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"),Vds=s(e=>{if(!e)return"";let{firstName:t,lastName:r,email:n}=e;return t&&r?`${t} ${r}`:t||r||n},"getUserLabel");function oir(e){let t;return[new Promise((r,n)=>{t=setTimeout(()=>{n({status:301,errno:"ETIME"})},e)}),()=>{clearTimeout(t)}]}s(oir,"cancelableTimeout");async function $ds(e,t){let[r,n]=oir(e),i=await Promise.race([t(),r]);return n(),i}s($ds,"withTimeout");Nr();function Wds(e){return e==="GOOGLE_SHEETS"}s(Wds,"isGoogleSheets");function Yds(e){return!e||!e.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(e.source)!==-1||e.isSQL===!0}s(Yds,"isSQL");async function _8e(e){return new Promise(t=>setTimeout(t,e))}s(_8e,"wait");async function Kds(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 _8e(o);try{return await e()}catch(a){n=a}}throw n}s(Kds,"retry");var Olr=ot(ew()),klr=ot(Ilr());var Rlr="(Input cron: ",Mvs={"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 Lvs(e){let t=[];for(let r of e){r.includes(Rlr)&&(r=r.split(Rlr)[0].trim());for(let[n,i]of Object.entries(Mvs))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));t.push(r)}return t}s(Lvs,"improveErrors");function Nlr(e,t=4){let r=klr.default.parseExpression(e),n=[];for(let i=0;i<t;i++)n.push(r.next().toString());return n}s(Nlr,"getNextExecutionDates");function Dlr(e){let t=(0,Olr.default)(e,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return t.isValid()?{valid:!0}:{valid:!1,err:Lvs(t.getError())}}s(Dlr,"validate");var eX={};Go(eX,{decodeNonAscii:()=>m6e,encodeNonAscii:()=>qvs,isDeprecatedSingleUserColumn:()=>Uvs,isNumeric:()=>Qvs,isRequired:()=>Fvs});Nr();function Uvs(e){return e.type==="bb_reference"&&e.subtype==="user"&&e.constraints?.type!=="array"}s(Uvs,"isDeprecatedSingleUserColumn");function Fvs(e){return!!e&&(typeof e.presence!="boolean"&&e.presence?.allowEmpty===!1||e.presence===!0)}s(Fvs,"isRequired");function qvs(e){return e.split("").map(t=>t.charCodeAt(0)>127?"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0"):t).join("")}s(qvs,"encodeNonAscii");function m6e(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}s(m6e,"decodeNonAscii");function Qvs(e){return e.type==="number"||e.type==="bigint"}s(Qvs,"isNumeric");var E6e={};Go(E6e,{basicFields:()=>ySs,calculationFields:()=>ASs,hasCalculationFields:()=>gSs,isBasicViewField:()=>hSs,isCalculationField:()=>tX,isCalculationView:()=>mSs,isV2:()=>_Ss,isVisible:()=>jlr});Nr();var _6e=ot(y6e());function tX(e){return"calculationType"in e}s(tX,"isCalculationField");function hSs(e){return!tX(e)}s(hSs,"isBasicViewField");function mSs(e){return e.type==="calculation"}s(mSs,"isCalculationView");function gSs(e){return Object.values(e.schema||{}).some(tX)}s(gSs,"hasCalculationFields");function ASs(e){return(0,_6e.default)(e.schema||{},tX)}s(ASs,"calculationFields");function jlr(e){return e.visible!==!1}s(jlr,"isVisible");function ySs(e,t){let{visible:r=!0}=t||{};return(0,_6e.default)(e.schema||{},n=>!tX(n)&&(!r||jlr(n)))}s(ySs,"basicFields");function _Ss(e){return e.version===2}s(_Ss,"isV2");var b6e={};Go(b6e,{checkForRoleInheritanceLoops:()=>bSs});Nr();function ESs(e){return`role${eo}${e}`}s(ESs,"prefixForCheck");function bSs(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=ESs(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(bSs,"checkForRoleInheritanceLoops");var v6e={};Go(v6e,{punctuateList:()=>vSs});function vSs(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(vSs,"punctuateList");var SSs=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"),wSs=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 f=l.split(o);if(f.length!==2)return;f[1].trim()===""&&(f[1]="1");let d=parseInt(f[1]);d>c&&(c=d)}),c===0?a:`${t}${i}${c+1}`},"getSequentialName");var TSs={getNextExecutionDates:Nlr,validate:Dlr};var Tme=ot(yE()),S6e=ot(EA());var qSs=/{{([^{].*?)}}/g,Vlr=Object.values(z7),QSs=[...Object.values(OH),...Object.values(rL),...Object.values($7)],jSs=s((e,t,r)=>{let n=By,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:f}=e;u==="string"?f==="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"||eX.isDeprecatedSingleUserColumn(e)?c=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?c=a:u==="barcodeqr"&&(c=i);let d=r?.tableId?.includes("datasource_plus");return t==="_id"&&d&&(c=[n.Equals,n.NotEquals,n.In]),c},"getValidOperatorsForType"),$lr=[By.StartsWith.value,By.Like.value,By.Equals.value,By.NotEquals.value,By.Contains.value,By.NotContains.value,By.ContainsAny.value,By.In.value];function C6e(e,t){for(let r of Vlr)e[r]&&(e[r].conditions=e[r].conditions.map(n=>t(n)));return e}s(C6e,"recurseLogicalOperators");var x6e=s(e=>{for(let t of $lr)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===""||HSs(o))&&delete e[t][i]}return e=C6e(e,x6e),e},"cleanupQuery");function HSs(e){return Array.isArray(e)&&e.length===0}s(HSs,"isEmptyArray");var khe=s(e=>I6e(e).key,"removeKeyNumbering"),I6e=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"),w6e=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}=I6e(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=m6e(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function GSs(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(qSs)||[]).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(dhe(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(dhe(r)){let l=ztr[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(QXt(r)||jXt(r)||dhe(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(GSs,"buildCondition");function Nhe(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(Nhe,"splitFiltersArray");function zlr(e){if(!e)return{};if(Array.isArray(e)&&(e=A8e(e),!e))return{};let t={};e.onEmptyFilter?t.onEmptyFilter=e.onEmptyFilter:t.onEmptyFilter="all";let r=Glr(e.logicalOperator||"all");return t[r]={conditions:(e.groups||[]).map(n=>{if(n.groups){let u=zlr(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:o,filters:a}=Nhe(n.filters||[]);o&&(t.onEmptyFilter=o);let c=i?"$or":"$and";return n.logicalOperator&&(c=Glr(n.logicalOperator)),{[c]:{conditions:a.map(GSs).filter(u=>u)}}})},t}s(zlr,"buildQuery");function Glr(e){return e==="all"?"$and":"$or"}s(Glr,"logicalOperatorFromUI");function R6e(e){if(!e)return e;for(let t of Object.values(rL)){let r=e[t];if(!(r==null||!(0,Tme.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 C6e(e,R6e),e}s(R6e,"fixupFilterArrays");function VSs(e,t){let r=Cme(e,t.query);t.sort&&(r=Wlr(r,t.sort,t.sortOrder||"ascending",t.sortType));let n=r.length;t.limit&&(r=Ylr(r,t.limit.toString()));let i={rows:r};return t.countRows&&(i.totalRows=n),i}s(VSs,"search");function Cme(e,t){if(!e||!Array.isArray(e))return[];if(!t)return e;if(t=x6e(t),t=R6e(t),!T6e(t)&&t.onEmptyFilter==="none")return[];let r=s((T,B)=>Q=>{for(let[L,G]of Object.entries(t[T]||{})){let J=fhe(T)?Q:y8e(Q,khe(L)),te=B(J,G);if(t.allOr&&te)return!0;if(!t.allOr&&!te)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,Tme.default)(B.low)&&(0,S6e.default)(B.low)&&(B.low=void 0),(0,Tme.default)(B.high)&&(0,S6e.default)(B.high)&&(B.high=void 0),B.low==null&&B.high==null))return!1;let Q=+T;if(!isNaN(Q)){let G=+B.low,J=+B.high;if(!isNaN(G)&&!isNaN(J))return Q>=G&&Q<=J;if(isNaN(G)){if(!isNaN(J))return Q<=J}else return Q>=G}let L=(0,l4.default)(T);if(L.isValid()){let G=(0,l4.default)(B.low||"0000-00-00T00:00:00.000Z"),J=(0,l4.default)(B.high||"9999-00-00T00:00:00.000Z");if(G.isValid()&&J.isValid())return L.isAfter(G)&&L.isBefore(J)||L.isSame(G)||L.isSame(J);if(G.isValid())return L.isAfter(G)||L.isSame(G);if(J.isValid())return L.isBefore(J)||L.isSame(J)}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 L of T)if(a(L,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 Q=(0,l4.default)(T);if(Q.isValid()){let L=(0,l4.default)(B);if(L.isValid())return Q.isSame(L)}return!1},"_valueMatches"),c=s(T=>(...B)=>!T(...B),"not"),u=r("equal",a),l=r("notEqual",c(a)),f=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),d=r("empty",f),p=r("notEmpty",c(f)),h=r("oneOf",(T,B)=>(typeof B=="string"&&(B=B.split(",")),typeof T=="number"&&(B=B.map(Q=>parseFloat(Q))),Array.isArray(B)?B.some(Q=>a(T,Q)):!1)),g=s(T=>(B,Q)=>!Array.isArray(B)||(typeof Q=="string"&&(Q=Q.split(","),typeof B[0]=="number"&&(Q=Q.map(L=>parseFloat(L)))),!Array.isArray(Q))?!1:Q.length===0?!0:Q[T](L=>a(B,L)),"_contains"),y=r("contains",(T,B)=>Array.isArray(B)&&B.length===0?!0:g("every")(T,B)),b=r("notContains",(T,B)=>Array.isArray(B)&&B.length===0?!0:c(g("every"))(T,B)),v=r("containsAny",g("some")),C=r("$and",(T,B)=>{if(!B.length)return!1;for(let Q of B)if(!Cme([T],Q).length)return!1;return!0}),I=r("$or",(T,B)=>{if(!B.length)return!1;for(let Q of B)if(Cme([T],{...Q,allOr:!0}).length)return!0;return!1}),N=s(T=>{let B={string:n,fuzzy:i,range:o,equal:u,notEqual:l,empty:d,notEmpty:p,oneOf:h,contains:y,containsAny:v,notContains:b,$and:C,$or:I},Q=Object.entries(t||{}).filter(([L,G])=>!["allOr","onEmptyFilter"].includes(L)&&G&&Object.keys(G).length>0).map(([L])=>B[L]?.(T)??!1);return T6e(t)?t.allOr?Q.some(L=>L===!0):Q.every(L=>L===!0):!0},"docMatch");return e.filter(N)}s(Cme,"runQuery");function Wlr(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(Wlr,"sort");function Ylr(e,t){let r=typeof t=="number"?t:parseFloat(t);return isNaN(r)?e:e.slice(0,r)}s(Ylr,"limit");var T6e=s(e=>{if(!e)return!1;let t=s(r=>{for(let n of Vlr)if(r[n])for(let i of r[n]?.conditions||[]){let o=t(i);if(o)return o}for(let n of QSs){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 SE={};Go(SE,{applications:()=>k6e,automations:()=>N6e,screens:()=>M6e,users:()=>B6e});var k6e={};Go(k6e,{getDevAppID:()=>$Ss,getProdAppID:()=>nX});Nr();var O6e=iL("app"),rX=iL("app_dev");function $Ss(e){if(!e)throw new Error("No app ID provided");if(e.startsWith(rX))return e;let t=e.split(O6e);t.shift();let r=t.join(O6e);return`${rX}${r}`}s($Ss,"getDevAppID");function nX(e){if(!e)throw new Error("No app ID provided");if(!e.startsWith(rX))return e;let t=e.split(rX);t.shift();let r=t.join(rX);return`${O6e}${r}`}s(nX,"getProdAppID");var N6e={};Go(N6e,{checkForCollectStep:()=>KSs,isAppAction:()=>YSs,isRowAction:()=>zSs,isWebhookAction:()=>WSs});Nr();function zSs(e){return e.definition.trigger?.stepId==="ROW_ACTION"}s(zSs,"isRowAction");function WSs(e){return e.definition.trigger?.stepId==="WEBHOOK"}s(WSs,"isWebhookAction");function YSs(e){return e.definition.trigger?.stepId==="APP"}s(YSs,"isAppAction");function Klr(e){if(!e||!Array.isArray(e))return!1;for(let t of e){if(t.stepId==="COLLECT")return!0;if(ter(t)&&t.inputs.children){for(let r of Object.values(t.inputs.children))if(Klr(r))return!0}}return!1}s(Klr,"hasCollectBlockRecursive");function KSs(e){return Klr(e.definition.steps)}s(KSs,"checkForCollectStep");var B6e={};Go(B6e,{canCreateApps:()=>JSs,containsUserID:()=>sws,getGlobalUserID:()=>iws,getUserAppGroups:()=>ows,hasAdminPermissions:()=>P6e,hasAppBuilderPermissions:()=>Rme,hasBuilderPermissions:()=>rws,hasCreatorPermissions:()=>Ome,isAdmin:()=>iX,isAdminOrBuilder:()=>ZSs,isAdminOrGlobalBuilder:()=>ews,isAdminOrWorkspaceBuilder:()=>XSs,isBuilder:()=>D6e,isCreator:()=>nws,isGlobalBuilder:()=>Ime,userAppAccessList:()=>aws});Nr();function D6e(e,t){return e?e.builder?.global?!0:!!(t&&e.builder?.apps?.includes(nX(t))):!1}s(D6e,"isBuilder");function Ime(e){return D6e(e)&&!Rme(e)||iX(e)}s(Ime,"isGlobalBuilder");function JSs(e){return Ime(e)||Ome(e)}s(JSs,"canCreateApps");function iX(e){return e?P6e(e):!1}s(iX,"isAdmin");function XSs(e,t){return e?!!(iX(e)||t&&e.builder?.apps?.includes(nX(t))):!1}s(XSs,"isAdminOrWorkspaceBuilder");function ZSs(e,t){return D6e(e,t)||iX(e)}s(ZSs,"isAdminOrBuilder");function ews(e){return Ime(e)||iX(e)}s(ews,"isAdminOrGlobalBuilder");function Rme(e){if(!e)return!1;let t=e.builder?.apps?.length;return!!!e.builder?.global&&t!=null&&t>0}s(Rme,"hasAppBuilderPermissions");function tws(e){return e?!!Object.values(e.roles??{}).find(t=>t==="CREATOR"):!1}s(tws,"hasAppCreatorPermissions");function rws(e){return e?e.builder?.global||Rme(e)||Ome(e):!1}s(rws,"hasBuilderPermissions");function P6e(e){return e?!!e.admin?.global:!1}s(P6e,"hasAdminPermissions");function Ome(e){return e?!!e.builder?.creator:!1}s(Ome,"hasCreatorPermissions");function nws(e){return e?Ime(e)||P6e(e)||Ome(e)||Rme(e)||tws(e):!1}s(nws,"isCreator");function iws(e){if(typeof e!="string")return e;let t=`ro${eo}ta_users${eo}`;return e.startsWith(t)?e.split(t)[1]:e}s(iws,"getGlobalUserID");function sws(e){return typeof e!="string"?!1:e.includes(`us${eo}`)}s(sws,"containsUserID");function Jlr(e,t){return t?.filter(r=>r.users?.find(n=>n._id===e))||[]}s(Jlr,"getUserGroups");function ows(e,t,r){let n=nX(e);return Jlr(t,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(ows,"getUserAppGroups");function aws(e,t){let n=Jlr(e._id,t).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(e?.roles||{}),...n];return[...new Set(i)]}s(aws,"userAppAccessList");var M6e={};Go(M6e,{findInSettings:()=>cws});function cws(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(cws,"findInSettings");Nr();var L6e={by_email2:["by_email"]},G0={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"}},OL=iL("app"),lws=iL("app_dev"),dN=lws;var sX="_design/sqlite";var fws=`ro${eo}ta_users${eo}`;var qp="default";Nr();Nr();var U6e=require("crypto"),Nme=require("fs"),pws=ot(p4()),aX=require("path");var hws=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,aX.resolve)((0,aX.join)(__dirname,"..","..","..")),Zlr=!1;!Zlr&&kme()&&!F6e()&&(require("dotenv").config({path:(0,aX.join)(hws,".env")}),Zlr=!0);function F6e(){return tfr()}s(F6e,"isTest");function tfr(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(tfr,"isJest");function kme(){return process.env.NODE_ENV!=="production"}s(kme,"isDev");function mws(e){if(e)return parseInt(e)}s(mws,"parseIntSafe");var h4={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},efr=!!parseInt(process.env.SELF_HOSTED||"");function gws(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(gws,"getAPIEncryptionKey");function Aws(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(Aws,"httpLogging");function yws(){function e(r){function n(c,u){let l=`${u}/${c}`;if((0,Nme.existsSync)(l))return l;let f=`${u}/..`;return f===u?null:n(c,f)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Nme.readFileSync)(i,"utf-8");return JSON.parse(o)}s(e,"getParentFile");let t;if(kme()&&!F6e())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(yws,"getPackageJsonFields");function _ws(){return pN.SERVICE_TYPE==="worker"}s(_ws,"isWorker");function Ews(){return pN.SERVICE_TYPE==="apps"}s(Ews,"isApps");function bws(){return pN.BUDIBASE_ENVIRONMENT==="QA"}s(bws,"isQA");function vws(){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(vws,"getServiceName");var pN={isTest:F6e,isJest:tfr,isDev:kme,isWorker:_ws,isApps:Ews,isQA:bws,isProd:()=>!kme(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,U6e.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,U6e.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:gws(),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_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,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:efr,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||h4.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||h4.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||h4.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||h4.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||h4.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||h4.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:vws(),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:Aws(),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:efr?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...yws(),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,pN[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:mws(process.env.BSON_BUFFER_SIZE)};for(let[e,t]of Object.entries(pN))t==="0"&&(pN[e]=0),t==="false"&&(pN[e]=0);var pt=pN;var cX="-";function q6e(){let e=pt.REDIS_PASSWORD,t=pt.REDIS_URL.split("//");t=t.length>1?t[1]:t[0],t=t.split("@"),t.length>1?(e=t[0].split(":")[1],t=t[1]):t=t[0];let[r,n]=t.split(":"),i=parseInt(n);return{host:r,password:e,port:isNaN(i)?6379:i}}s(q6e,"getRedisConnectionDetails");function rfr(){return{slotsRefreshTimeout:2e3,dnsLookup:(e,t)=>t(null,e),redisOptions:{...m4(),tls:{}}}}s(rfr,"getRedisClusterOptions");function m4(){let{host:e,password:t,port:r}=q6e();return{connectTimeout:3e4,port:r,host:e,password:t}}s(m4,"getRedisOptions");function nfr(e){let t=e.split(cX);return t.length>=2?(t.shift(),t.join(cX)):t[0]}s(nfr,"removeDbPrefix");var Z1n=ot(require("events"));pX();function iw(){return kL().replace(/-/g,"")}s(iw,"newid");var Mws=pt.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),iAl=pt.SALT_ROUNDS||10;async function Cfr(e,t){return Mws.compare(e,t)}s(Cfr,"compare");Nr();var zRa=ot(Lze());var tl={};Go(tl,{DEFAULT_TENANT_ID:()=>qp,baseGlobalDBName:()=>hwe,doInAutomationContext:()=>_Xo,doInContext:()=>jht,doInEnvironmentContext:()=>RXo,doInFeatureFlagOverrideContext:()=>Bfn,doInIPContext:()=>Dfn,doInIdentityContext:()=>pge,doInLicenseContext:()=>bXo,doInScimContext:()=>OXo,doInSelfHostTenantUsingCloud:()=>EXo,doInTenant:()=>eR,doInWorkspaceContext:()=>wXo,doInWorkspaceMigrationContext:()=>CXo,ensureSnippetContext:()=>Pfn,getAuditLogDBName:()=>kfn,getAuditLogsDB:()=>NXo,getAutomationId:()=>Hht,getCurrentContext:()=>k2,getDevWorkspaceDB:()=>PXo,getDevWorkspaceId:()=>xXo,getEnvironmentVariables:()=>kXo,getFeatureFlagOverrides:()=>Yht,getFeatureFlags:()=>zht,getGlobalDB:()=>Xh,getGlobalDBName:()=>Zre,getIP:()=>Ght,getIdentity:()=>yN,getLicense:()=>vXo,getPlatformURL:()=>Qht,getProdWorkspaceDB:()=>DXo,getProdWorkspaceId:()=>IXo,getScimDBName:()=>mXo,getSelfHostCloudDB:()=>SXo,getTableForView:()=>BXo,getTenantIDFromWorkspaceID:()=>x8,getTenantId:()=>ho,getWorkspaceDB:()=>Vht,getWorkspaceId:()=>QA,identity:()=>TX,isMultiTenant:()=>O2,isScim:()=>$ht,isSelfHostUsingCloud:()=>mwe,isTenancyEnabled:()=>AXo,isTenantIdSet:()=>gXo,setFeatureFlags:()=>Wht,setTableForView:()=>MXo});var TX={};Go(TX,{doInAccountContext:()=>QOs,doInIdentityContext:()=>Uze,doInUserContext:()=>rmr,getAccountUserId:()=>nmr,getIdentity:()=>tmr});Nr();function tmr(){return yN()}s(tmr,"getIdentity");function Uze(e,t){return pge(e,t)}s(Uze,"doInIdentityContext");function rmr(e,t,r){let n={...e,_id:e._id,type:"user",hostInfo:{ipAddress:t.request.ip,userAgent:t.userAgent.source}};return Uze(n,r)}s(rmr,"doInUserContext");function QOs(e,t){let r=nmr(e),n=e.tenantId,i={_id:r,type:"user",tenantId:n,account:e};return Uze(i,t)}s(QOs,"doInAccountContext");function nmr(e){let t;return BVe(e)?t=e.budibaseUserId:t=e.accountId,t}s(nmr,"getAccountUserId");var _N=s(e=>{let t=imr(e),r,n;if(t.auth?.username)r=t.auth.username;else if(pt.COUCH_DB_USERNAME)r=pt.COUCH_DB_USERNAME;else if(!pt.isTest())throw new Error("CouchDB username not set");if(t.auth?.password)n=t.auth.password;else if(pt.COUCH_DB_PASSWORD)n=pt.COUCH_DB_PASSWORD;else if(!pt.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=pt.COUCH_DB_SQL_URL;if(pt.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:imr(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),imr=s((e=pt.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 f=l.slice(0,-1).join("@");if(f.includes(":")){let d=f.split(":");r=d[0],n=d.slice(1).join(":")}else r=f}else i=u;t=`${c}://${i}`}return{url:t,auth:{username:r,password:n}}},"getUrlInfo");var Ifn=ot(QEr());Nr();var jEr=ot(require("node-fetch"));function oAe(e){return e.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(oAe,"checkSlashesInUrl");async function Z9e({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,jEr.default)(oAe(encodeURI(e)),i)}s(Z9e,"directCouchUrlCall");var YLs=ot(require("pouchdb"));var KLs,JLs=!1;var XLs=s(()=>{if(!JLs)throw new Error("init has not been called")},"checkInitialised");function DN(e,t){XLs();let r=new KLs(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(DN,"getPouchDB");var sl=ot(RI());var Xre=class{constructor(t){this.db=t}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(t){return sl.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 sl.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:t}),this.db.get(t)))}tryGet(t){return sl.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 sl.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 sl.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 sl.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 sl.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 sl.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:t.length}),this.db.bulkDocs(t)))}async find(t){return sl.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 sl.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 sl.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 sl.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 sl.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 sl.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 sl.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.load(...t)))}createIndex(...t){return sl.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.createIndex(...t)))}deleteIndex(...t){return sl.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.deleteIndex(...t)))}getIndexes(...t){return sl.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:t.length}),this.db.getIndexes(...t)))}sql(t,r){return sl.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 sl.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 sl.default.trace("db.sqlDiskCleanup",t=>(t.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};Nr();var SWl=`${eo}${eo}`;var wWl=encodeURIComponent(" ");function Fht(e,t,r){if(!pt.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${e.toUpperCase()}] query="${t}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Fht,"sqlLog");var Tfn="Database does not exist.";function Cfn(e){return(0,Ifn.default)({url:e.url,requestDefaults:{headers:{Authorization:e.cookie}},parseUrl:!1})}s(Cfn,"buildNano");var cD=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 pwe=class e{constructor(t,r,n){this.couchInfo=_N();this.name=t,this.pouchOpts=r||{},n&&(this.couchInfo=_N(n),this.instanceNano=Cfn(this.couchInfo)),e.nano||e.init()}static{s(this,"DatabaseImpl")}static init(){let t=_N();e.nano=Cfn(t)}exists(t){return t===void 0?this.dbExists():this.docExists(t)}async dbExists(){return(await Z9e({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 cD(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===Tfn)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(t);throw new cD(`CouchDB error: ${i.message}`,i)}}async performCall(t){let r=this.getDb(),n=await t(r);try{return await n()}catch(i){throw new cD(`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(f=>o(f)).map(f=>f.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(zXt(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 cD(o,{name:this.name,status:400})}async post(t,r){return t._id||(t._id=iw()),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===Tfn)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(t,r,n){t=oAe(`${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 Z9e(i),a=await o.text();if(o.status>300){let c;try{c=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new cD("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}/${sX}`;return Fht("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(sX)){let t=await this.get(sX);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 cD(t.message,t)}}async compact(){return this.performCall(t=>()=>t.compact())}async dump(t,r){return DN(this.name).dump(t,r)}async load(t){return DN(this.name).load(t)}async createIndex(t){return DN(this.name).createIndex(t)}async deleteIndex(t){return DN(this.name).deleteIndex(t)}async getIndexes(){return DN(this.name).getIndexes()}};function vv(e,t){return new Xre(new pwe(e,t))}s(vv,"getDB");function qht(e){if(!e||e.startsWith(dN))return e;let t=e.split(OL);t.shift();let r=t.join(OL);return`${dN}${r}`}s(qht,"getDevWorkspaceID");function C8(e){if(!e||!e.startsWith(dN))return e;let t=e.split(dN);t.shift();let r=t.join(dN);return`${OL}${r}`}s(C8,"getProdWorkspaceID");var Rfn=require("async_hooks");var mf=class e{static{s(this,"Context")}static{this.storage=new Rfn.AsyncLocalStorage}static run(t,r){return e.storage.run(t,()=>r())}static get(){return e.storage.getStore()}};var Ofn=null;function Zre(e){return e||(e=ho()),hwe(e)}s(Zre,"getGlobalDBName");function kfn(e){return e||(e=ho()),e===qp?G0.AUDIT_LOGS.name:`${e}${eo}${G0.AUDIT_LOGS.name}`}s(kfn,"getAuditLogDBName");function mXo(e){return e||(e=ho()),e===qp?G0.SCIM_LOGS.name:`${e}${eo}${G0.SCIM_LOGS.name}`}s(mXo,"getScimDBName");function hwe(e){return!e||e===qp?G0.GLOBAL.name:`${e}${eo}${G0.GLOBAL.name}`}s(hwe,"baseGlobalDBName");function Qht(){return pt.PLATFORM_URL}s(Qht,"getPlatformURL");function O2(){return!!pt.MULTI_TENANCY}s(O2,"isMultiTenant");function gXo(){return!!mf.get()?.tenantId}s(gXo,"isTenantIdSet");function AXo(){return pt.MULTI_TENANCY}s(AXo,"isTenancyEnabled");function x8(e){if(!e)return;if(!O2())return qp;let t=e.split(eo),r=t[1]==="dev";if(!(r&&t.length===3||!r&&t.length===2))return r?t[2]:t[1]}s(x8,"getTenantIDFromWorkspaceID");function yXo(e){let t;try{t=mf.get()}catch{t={}}return t={...t,...e},t}s(yXo,"updateContext");async function Sv(e,t){TXo();let r=yXo(e);return mf.run(r,t)}s(Sv,"newContext");async function _Xo(e){return await Pfn(),await Sv({tenantId:x8(e.workspaceId),appId:e.workspaceId,automationId:e.automationId},e.task)}s(_Xo,"doInAutomationContext");async function jht(e,t){let r=x8(e);return Sv({tenantId:r,appId:e},t)}s(jht,"doInContext");async function eR(e,t){return pt.MULTI_TENANCY||(e=e||qp),Sv(e?{tenantId:e}:{},t)}s(eR,"doInTenant");async function EXo(e,t){return Sv({tenantId:e,isSelfHostUsingCloud:!0},t)}s(EXo,"doInSelfHostTenantUsingCloud");async function bXo(e,t){return Sv({license:e},t)}s(bXo,"doInLicenseContext");function vXo(){return mf.get()?.license}s(vXo,"getLicense");function mwe(){return!!mf.get()?.isSelfHostUsingCloud}s(mwe,"isSelfHostUsingCloud");function SXo(){let e=mf.get();if(!e||!e.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return vv(G0.SELF_HOST_CLOUD.name)}s(SXo,"getSelfHostCloudDB");async function wXo(e,t){return Nfn(e,t)}s(wXo,"doInWorkspaceContext");async function Nfn(e,t,r){if(!e)throw new Error("workspaceId is required");let n=x8(e),i={appId:e,...r};return n&&(i.tenantId=n),Sv(i,t)}s(Nfn,"_doInWorkspaceContext");async function pge(e,t){if(!e)throw new Error("identity is required");let r={identity:e};return e.tenantId&&(r.tenantId=e.tenantId),Sv(r,t)}s(pge,"doInIdentityContext");function TXo(){if(mf.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(TXo,"guardMigration");async function CXo(e,t){return Nfn(e,t,{isMigrating:!0})}s(CXo,"doInWorkspaceMigrationContext");function yN(){try{return mf.get()?.identity}catch{}}s(yN,"getIdentity");function ho(){if(!O2())return qp;let t=mf.get()?.tenantId;if(!t)throw new Error("Tenant id not found");return t}s(ho,"getTenantId");function Hht(){return mf.get()?.automationId}s(Hht,"getAutomationId");function QA(){let t=mf.get()?.appId;return!t&&pt.isTest()&&Ofn?Ofn:t}s(QA,"getWorkspaceId");function Ght(){return mf.get()?.ip}s(Ght,"getIP");var xXo=s(()=>{let e=QA();if(!e)throw new Error("Could not get workspaceId");return qht(e)},"getDevWorkspaceId"),IXo=s(()=>{let e=QA();if(!e)throw new Error("Could not get workspaceId");return C8(e)},"getProdWorkspaceId");function RXo(e,t){if(!e)throw new Error("Must supply environment variables.");return Sv({environmentVariables:e},t)}s(RXo,"doInEnvironmentContext");function OXo(e){return Sv({isScim:!0},e)}s(OXo,"doInScimContext");function Dfn(e,t){return Sv({ip:e},t)}s(Dfn,"doInIPContext");async function Pfn(){let e=k2();if(!e||e.snippets)return;let t,r=Vht();r&&(t=(await r.tryGet("app_metadata"))?.snippets),e.snippets=t||[]}s(Pfn,"ensureSnippetContext");function kXo(){let e=mf.get();return e.environmentVariables?e.environmentVariables:null}s(kXo,"getEnvironmentVariables");function Xh(){let e=mf.get();if(!e||pt.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 vv(hwe(e?.tenantId))}s(Xh,"getGlobalDB");function NXo(){if(!ho())throw new Error("No tenant ID found - cannot open audit log DB");return vv(kfn())}s(NXo,"getAuditLogsDB");function Vht(e){let t=QA();if(!t)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(mwe())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return vv(t,e)}s(Vht,"getWorkspaceDB");function DXo(e){let t=QA();if(!t)throw new Error("Unable to retrieve prod DB - no workspace ID.");return vv(C8(t),e)}s(DXo,"getProdWorkspaceDB");function PXo(e){let t=QA();if(!t)throw new Error("Unable to retrieve dev DB - no workspace ID.");return vv(qht(t),e)}s(PXo,"getDevWorkspaceDB");function $ht(){return!!mf.get()?.isScim}s($ht,"isScim");function k2(){try{return mf.get()}catch{return}}s(k2,"getCurrentContext");function zht(e){let t=k2();if(t)return t.featureFlagCache?.[e]}s(zht,"getFeatureFlags");function Wht(e,t){let r=k2();r&&(r.featureFlagCache??={},r.featureFlagCache[e]=t)}s(Wht,"setFeatureFlags");function Yht(){return k2()?.featureFlagOverrides||{}}s(Yht,"getFeatureFlagOverrides");async function Bfn(e,t){return await Sv({featureFlagOverrides:e},t)}s(Bfn,"doInFeatureFlagOverrideContext");function BXo(e){let t=k2();if(t)return t.viewToTableCache?.[e]}s(BXo,"getTableForView");function MXo(e,t){let r=k2();r&&(r.viewToTableCache??={},r.viewToTableCache[e]=t)}s(MXo,"setTableForView");var mxe=ot(bpn());var hxe=ot(RI()),nTn=ot(p4());var rTn;if(pt.MOCK_REDIS)try{rTn=tTn()}catch{console.log("Mock redis unavailable")}async function IRa(e=0){return await hxe.tracer.trace("Redis.init",async t=>{if(pt.MOCK_REDIS)return t.addTags({mock:!0}),new rTn(m4());let r;if(pt.REDIS_CLUSTERED){t.addTags({clustered:!0});let{host:n,port:i}=q6e();r=new mxe.Cluster([{host:n,port:i}],rfr())}else r=new mxe.default(m4());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(IRa,"init");function RRa(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:nfr(a),value:c}});r(await Promise.all(o))}catch(o){n(o)}})})}s(RRa,"promisifyStream");function ORa(e){return e.isCluster}s(ORa,"isCluster");var Ybt=class e{static{s(this,"RedisWrapper")}constructor(t,r){this.client=t,this.db=r}static async init(t,r=0){return await hxe.tracer.trace("RedisWrapper.init",async n=>{let i=await IRa(r);return r&&!pt.isTest()&&(n.addTags({db:t}),i.select(r)),new e(i,t)})}trace(t,r){return hxe.tracer.trace(t,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(t){return t.includes(this.db)?t:`${this.db}${cX}${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}${cX}${t}`;let n;ORa(this.client)?n=this.client.nodes("master")[0].scanStream({match:t+"*",count:100}):n=this.client.scanStream({match:t+"*",count:100});let i=await RRa(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,nTn.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=`
|
|
1497
1497
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
1498
1498
|
redis.call('DEL', KEYS[1])
|
|
1499
1499
|
end
|
|
@@ -1547,7 +1547,7 @@ ${e}
|
|
|
1547
1547
|
</style>
|
|
1548
1548
|
`;na.default.writeFileSync(e,n);let i=Iy.default.join(Iy.default.dirname(e),"Boundary.js");if(na.default.existsSync(i))try{na.default.unlinkSync(i)}catch(o){console.log("Failed to delete legacy Boundary.js:",o instanceof Error?o.message:o)}return{changed:!0,before:t,after:n,message:`Updated ${e} to use <svelte:boundary> and $$restProps.`}}s($Xu,"migrateWrapper");function zXu(){let e=Iy.default.join(process.cwd(),"package.json");if(!na.default.existsSync(e))return{changed:!1,message:"package.json not found"};let t=na.default.readFileSync(e,"utf8"),r;try{r=JSON.parse(t)}catch(f){return{changed:!1,message:`Invalid package.json: ${f?.message||"parse error"}`}}let n=JSON.stringify(r,null,2),i=typeof r.version=="string"?r.version.trim():void 0,o=its(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["npm-run-all"]&&delete a["npm-run-all"],r.devDependencies=a,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."};na.default.writeFileSync(`${e}.pre-svelte5`,t),na.default.writeFileSync(e,`${c}
|
|
1549
1549
|
`);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(zXu,"migratePackageJson");function WXu(){let e=Iy.default.join(process.cwd(),"schema.json");if(!na.default.existsSync(e))return{changed:!1,message:"schema.json not found - skipping schema metadata migration."};let t=na.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 na.default.writeFileSync(`${e}.pre-svelte5`,t),na.default.writeFileSync(e,`${c}
|
|
1550
|
-
`),{changed:!0,before:o,after:c,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(WXu,"migrateSchemaJson");async function uts(){let e=[],t=na.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=its(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."),o&&i&&o!==i&&e.push(`Will bump package.json version from ${i} to ${o}.`);let a=sts(),c="unknown";if(a){let p=na.default.readFileSync(a,"utf8");ots(p)?(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=cts(),l="not-found";u?na.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 f="unknown";if(na.default.existsSync("schema.json"))try{let p=na.default.readFileSync("schema.json","utf8"),h=JSON.parse(p);(h&&typeof h.metadata=="object"&&!Array.isArray(h.metadata)?h.metadata:{}).svelteMajor===5?(f="looks-new",e.push("schema.json metadata already declares svelteMajor: 5.")):(f="needs-migration",e.push("Will update schema.json metadata to set svelteMajor: 5."))}catch(p){f="unknown",e.push(`schema.json could not be parsed - please fix JSON before migration (${p?.message||"parse error"}).`)}else f="not-found",e.push("schema.json not found - cannot update metadata.");return{report:e,rollup:c,packageJson:n?"looks-new":"needs-migration",wrapper:l,schema:f,canBuildAfter:!0,rollupFile:a,wrapperFile:u,pkg:r}}s(uts,"analysePluginForSvelte5");async function lts(){let e=zXu(),t=WXu(),r=await VXu(),n=$Xu();return{pkgRes:e,schemaRes:t,rollupRes:r,wrapperRes:n}}s(lts,"runSvelte5Migration");var fts=require("child_process");var YXu=require("find-free-port");function dts(){if(!AH.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!AH.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(dts,"checkInPlugin");async function KXu(e){return AH.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(Ps(`By default the plugin will be created in the directory "${e}"`)),console.log(Ps("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),JS("Create top level directory?"))}s(KXu,"askAboutTopLevel");async function JXu(e){let t=e.init||e;if(!t||!BZt.includes(t)){console.log(Bc("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(Ps("Lets get some details about your new plugin:"));let r=await sL("Name",`budibase-${t}`);if(AH.default.existsSync(r)){console.log(Bc("Directory by plugin name already exists, pick a new name."));return}let n=await sL("Description",`An amazing Budibase ${t}!`),i=await sL("Version","1.0.0"),o=await KXu(r);console.log(Ps("Retrieving project...")),await SGe(t,r),await Xes(t,r,n,i),console.log(Ps("Installing dependencies...")),await T7("install",(0,wGe.join)(process.cwd(),r)),o?console.log(Ps(`Plugin created in directory "${r}"`)):(xVe(r,process.cwd()),console.log(Ps("Plugin created in current directory."))),mhe(Cx.PluginInit,{type:t,name:r,description:n,version:i})}s(JXu,"init");async function DYt(){dts(),console.log(Ps("Verifying plugin..."));let e=AH.default.readFileSync("schema.json","utf8"),t=AH.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,O2e.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Bc(`schema.json is not valid JSON: ${i.message}`)):console.log(Bc(`Invalid schema/package.json: ${i.message}`))}}s(DYt,"verify");async function XXu(){let e=await DYt();if(!e?.name)return;console.log(Mc("Verified!")),console.log(Ps("Building plugin...")),await T7("build");let t=(0,wGe.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(Mc(`Build complete - output in: ${t}`))}s(XXu,"build");async function ZXu(){let e=await DYt();if(!e?.name)return;let t=(0,wGe.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(Ps(`Watching - build in: ${t}`));try{await T7("watch")}catch{console.log(Mc("Watch exited."))}}s(ZXu,"watch");async function eZu(){let e=await sL("Directory to watch","./"),[t]=await YXu(1e4),r="admin";await Ehe({init:"quick",single:!0,watchPluginDir:e,genUser:r,port:t,silent:!0}),await PH(),console.log(Mc("Configuration has been written to docker-compose.yaml")),console.log(Mc("Development environment started successfully - connect at: ")+Ps(`http://localhost:${t}`)),console.log(Mc("Use the following credentials to login:")),console.log(Mc("Email: ")+Ps(HVe)),console.log(Mc("Password: ")+Ps(r))}s(eZu,"dev");async function tZu(){dts();let e=!1;try{e=!!(0,fts.execSync)("git status --porcelain",{encoding:"utf8"}).trim()}catch{}if(e&&!process.argv.includes("--force")&&(console.log(Ps("Your git working directory is not clean. Commit or stash changes, or re-run with --force.")),!await JS("Proceed with migration anyway?"))){console.log(Ps("Migration aborted."));return}console.log(Ps("Analyzing plugin for Svelte 5 migration..."));let t=await uts();console.log(Ps("Proposed changes:"));for(let i of t.report)console.log(Ps(" - "+i));if(!process.argv.includes("--yes")&&!await JS("Apply these changes now?")){console.log(Ps("Migration aborted by user."));return}console.log(Ps("Applying migrations..."));let r=await lts();if(r.pkgRes?.message&&console.log(Ps(r.pkgRes.message)),r.schemaRes?.message&&console.log(Ps(r.schemaRes.message)),r.rollupRes?.message&&console.log(Ps(r.rollupRes.message)),r.wrapperRes?.message&&console.log(Ps(r.wrapperRes.message)),console.log(Ps("Installing updated dependencies...")),await T7("install"),console.log(Ps("Re-verifying plugin...")),!(await DYt())?.name){console.log(Bc("Verification failed after migration."));return}console.log(Ps("Attempting build..."));try{await T7("build"),console.log(Mc("Migration completed. Your plugin was migrated to Svelte 5 and built successfully."))}catch(i){console.log(Bc(`Build failed after migration. Please review the errors above. ${i?.message||""}`))}}s(tZu,"migrateSvelte5");var pts=new KS("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.",JXu).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",XXu).addSubOption("--watch","Automatically build any changes to your plugin.",ZXu).addSubOption("--dev","Run a development environment which automatically watches the current directory.",eZu).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",tZu);function hts(){return[Gtr,_tr,CYi,pts]}s(hts,"getCommands");var gts=require("commander");Ud();var mts="3.23.
|
|
1550
|
+
`),{changed:!0,before:o,after:c,message:"Updated schema.json metadata to include svelteMajor: 5."}}s(WXu,"migrateSchemaJson");async function uts(){let e=[],t=na.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=its(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."),o&&i&&o!==i&&e.push(`Will bump package.json version from ${i} to ${o}.`);let a=sts(),c="unknown";if(a){let p=na.default.readFileSync(a,"utf8");ots(p)?(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=cts(),l="not-found";u?na.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 f="unknown";if(na.default.existsSync("schema.json"))try{let p=na.default.readFileSync("schema.json","utf8"),h=JSON.parse(p);(h&&typeof h.metadata=="object"&&!Array.isArray(h.metadata)?h.metadata:{}).svelteMajor===5?(f="looks-new",e.push("schema.json metadata already declares svelteMajor: 5.")):(f="needs-migration",e.push("Will update schema.json metadata to set svelteMajor: 5."))}catch(p){f="unknown",e.push(`schema.json could not be parsed - please fix JSON before migration (${p?.message||"parse error"}).`)}else f="not-found",e.push("schema.json not found - cannot update metadata.");return{report:e,rollup:c,packageJson:n?"looks-new":"needs-migration",wrapper:l,schema:f,canBuildAfter:!0,rollupFile:a,wrapperFile:u,pkg:r}}s(uts,"analysePluginForSvelte5");async function lts(){let e=zXu(),t=WXu(),r=await VXu(),n=$Xu();return{pkgRes:e,schemaRes:t,rollupRes:r,wrapperRes:n}}s(lts,"runSvelte5Migration");var fts=require("child_process");var YXu=require("find-free-port");function dts(){if(!AH.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!AH.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(dts,"checkInPlugin");async function KXu(e){return AH.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(Ps(`By default the plugin will be created in the directory "${e}"`)),console.log(Ps("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),JS("Create top level directory?"))}s(KXu,"askAboutTopLevel");async function JXu(e){let t=e.init||e;if(!t||!BZt.includes(t)){console.log(Bc("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(Ps("Lets get some details about your new plugin:"));let r=await sL("Name",`budibase-${t}`);if(AH.default.existsSync(r)){console.log(Bc("Directory by plugin name already exists, pick a new name."));return}let n=await sL("Description",`An amazing Budibase ${t}!`),i=await sL("Version","1.0.0"),o=await KXu(r);console.log(Ps("Retrieving project...")),await SGe(t,r),await Xes(t,r,n,i),console.log(Ps("Installing dependencies...")),await T7("install",(0,wGe.join)(process.cwd(),r)),o?console.log(Ps(`Plugin created in directory "${r}"`)):(xVe(r,process.cwd()),console.log(Ps("Plugin created in current directory."))),mhe(Cx.PluginInit,{type:t,name:r,description:n,version:i})}s(JXu,"init");async function DYt(){dts(),console.log(Ps("Verifying plugin..."));let e=AH.default.readFileSync("schema.json","utf8"),t=AH.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,O2e.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Bc(`schema.json is not valid JSON: ${i.message}`)):console.log(Bc(`Invalid schema/package.json: ${i.message}`))}}s(DYt,"verify");async function XXu(){let e=await DYt();if(!e?.name)return;console.log(Mc("Verified!")),console.log(Ps("Building plugin...")),await T7("build");let t=(0,wGe.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(Mc(`Build complete - output in: ${t}`))}s(XXu,"build");async function ZXu(){let e=await DYt();if(!e?.name)return;let t=(0,wGe.join)("dist",`${e.name}-${e.version}.tar.gz`);console.log(Ps(`Watching - build in: ${t}`));try{await T7("watch")}catch{console.log(Mc("Watch exited."))}}s(ZXu,"watch");async function eZu(){let e=await sL("Directory to watch","./"),[t]=await YXu(1e4),r="admin";await Ehe({init:"quick",single:!0,watchPluginDir:e,genUser:r,port:t,silent:!0}),await PH(),console.log(Mc("Configuration has been written to docker-compose.yaml")),console.log(Mc("Development environment started successfully - connect at: ")+Ps(`http://localhost:${t}`)),console.log(Mc("Use the following credentials to login:")),console.log(Mc("Email: ")+Ps(HVe)),console.log(Mc("Password: ")+Ps(r))}s(eZu,"dev");async function tZu(){dts();let e=!1;try{e=!!(0,fts.execSync)("git status --porcelain",{encoding:"utf8"}).trim()}catch{}if(e&&!process.argv.includes("--force")&&(console.log(Ps("Your git working directory is not clean. Commit or stash changes, or re-run with --force.")),!await JS("Proceed with migration anyway?"))){console.log(Ps("Migration aborted."));return}console.log(Ps("Analyzing plugin for Svelte 5 migration..."));let t=await uts();console.log(Ps("Proposed changes:"));for(let i of t.report)console.log(Ps(" - "+i));if(!process.argv.includes("--yes")&&!await JS("Apply these changes now?")){console.log(Ps("Migration aborted by user."));return}console.log(Ps("Applying migrations..."));let r=await lts();if(r.pkgRes?.message&&console.log(Ps(r.pkgRes.message)),r.schemaRes?.message&&console.log(Ps(r.schemaRes.message)),r.rollupRes?.message&&console.log(Ps(r.rollupRes.message)),r.wrapperRes?.message&&console.log(Ps(r.wrapperRes.message)),console.log(Ps("Installing updated dependencies...")),await T7("install"),console.log(Ps("Re-verifying plugin...")),!(await DYt())?.name){console.log(Bc("Verification failed after migration."));return}console.log(Ps("Attempting build..."));try{await T7("build"),console.log(Mc("Migration completed. Your plugin was migrated to Svelte 5 and built successfully."))}catch(i){console.log(Bc(`Build failed after migration. Please review the errors above. ${i?.message||""}`))}}s(tZu,"migrateSvelte5");var pts=new KS("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.",JXu).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",XXu).addSubOption("--watch","Automatically build any changes to your plugin.",ZXu).addSubOption("--dev","Run a development environment which automatically watches the current directory.",eZu).addSubOption("--migrate-svelte5","Migrate this plugin to the Svelte 5-compatible Budibase plugin format.",tZu);function hts(){return[Gtr,_tr,CYi,pts]}s(hts,"getCommands");var gts=require("commander");Ud();var mts="3.23.19";async function nZu(){let e=new gts.Command().addHelpCommand("help",j7("Help with Budibase commands.")).helpOption(!1).version(mts);for(let t of hts())t.configure(e);await e.parseAsync(process.argv)}s(nZu,"init");var iZu=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];iZu.forEach(e=>{process.on(e,t=>{t&&!isNaN(t)||t&&(console.error(Bc("Failed to run CLI command - please report with the following message:")),console.error(Bc(t)))})});nZu().catch(e=>{console.error("Unexpected error - ",e)});
|
|
1551
1551
|
/*! Bundled license information:
|
|
1552
1552
|
|
|
1553
1553
|
lodash/lodash.js:
|