@budibase/backend-core 3.19.2 → 3.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var E_=Object.create;var Ai=Object.defineProperty;var g_=Object.getOwnPropertyDescriptor;var y_=Object.getOwnPropertyNames;var T_=Object.getPrototypeOf,S_=Object.prototype.hasOwnProperty;var s=(t,e)=>Ai(t,"name",{value:e,configurable:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Ai(t,r,{get:e[r],enumerable:!0})},Dm=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of y_(e))!S_.call(t,i)&&i!==r&&Ai(t,i,{get:()=>e[i],enumerable:!(n=g_(e,i))||n.enumerable});return t};var F=(t,e,r)=>(r=t!=null?E_(T_(t)):{},Dm(e||!t||!t.__esModule?Ai(r,"default",{value:t,enumerable:!0}):r,t)),A_=t=>Dm(Ai({},"__esModule",{value:!0}),t);var Mm=q((bc,xc)=>{"use strict";(function(t,e){typeof bc=="object"&&typeof xc<"u"?xc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(bc,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",p="date",h="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|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,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(B){var L=["th","st","nd","rd"],v=B%100;return"["+B+(L[(v-20)%10]||L[v]||L[0])+"]"}},S=s(function(B,L,v){var $=String(B);return!$||$.length>=L?B:""+Array(L+1-$.length).join(v)+B},"m"),O={s:S,z:function(B){var L=-B.utcOffset(),v=Math.abs(L),$=Math.floor(v/60),w=v%60;return(L<=0?"+":"-")+S($,2,"0")+":"+S(w,2,"0")},m:s(function B(L,v){if(L.date()<v.date())return-B(v,L);var $=12*(v.year()-L.year())+(v.month()-L.month()),w=L.clone().add($,l),K=v-w<0,W=L.clone().add($+(K?-1:1),l);return+(-($+(v-w)/(K?w-W:W-w))||0)},"t"),a:function(B){return B<0?Math.ceil(B)||0:Math.floor(B)},p:function(B){return{M:l,y:f,w:c,d:u,D:p,h:a,m:o,s:i,ms:n,Q:d}[B]||String(B||"").toLowerCase().replace(/s$/,"")},u:function(B){return B===void 0}},_="en",D={};D[_]=y;var T="$isDayjsObject",I=s(function(B){return B instanceof Y||!(!B||!B[T])},"S"),M=s(function B(L,v,$){var w;if(!L)return _;if(typeof L=="string"){var K=L.toLowerCase();D[K]&&(w=K),v&&(D[K]=v,w=K);var W=L.split("-");if(!w&&W.length>1)return B(W[0])}else{var J=L.name;D[J]=L,w=J}return!$&&w&&(_=w),w||!$&&_},"t"),P=s(function(B,L){if(I(B))return B.clone();var v=typeof L=="object"?L:{};return v.date=B,v.args=arguments,new Y(v)},"O"),k=O;k.l=M,k.i=I,k.w=function(B,L){return P(B,{locale:L.$L,utc:L.$u,x:L.$x,$offset:L.$offset})};var Y=function(){function B(v){this.$L=M(v.locale,null,!0),this.parse(v),this.$x=this.$x||v.x||{},this[T]=!0}s(B,"M");var L=B.prototype;return L.parse=function(v){this.$d=function($){var w=$.date,K=$.utc;if(w===null)return new Date(NaN);if(k.u(w))return new Date;if(w instanceof Date)return new Date(w);if(typeof w=="string"&&!/Z$/i.test(w)){var W=w.match(m);if(W){var J=W[2]-1||0,de=(W[7]||"0").substring(0,3);return K?new Date(Date.UTC(W[1],J,W[3]||1,W[4]||0,W[5]||0,W[6]||0,de)):new Date(W[1],J,W[3]||1,W[4]||0,W[5]||0,W[6]||0,de)}}return new Date(w)}(v),this.init()},L.init=function(){var v=this.$d;this.$y=v.getFullYear(),this.$M=v.getMonth(),this.$D=v.getDate(),this.$W=v.getDay(),this.$H=v.getHours(),this.$m=v.getMinutes(),this.$s=v.getSeconds(),this.$ms=v.getMilliseconds()},L.$utils=function(){return k},L.isValid=function(){return this.$d.toString()!==h},L.isSame=function(v,$){var w=P(v);return this.startOf($)<=w&&w<=this.endOf($)},L.isAfter=function(v,$){return P(v)<this.startOf($)},L.isBefore=function(v,$){return this.endOf($)<P(v)},L.$g=function(v,$,w){return k.u(v)?this[$]:this.set(w,v)},L.unix=function(){return Math.floor(this.valueOf()/1e3)},L.valueOf=function(){return this.$d.getTime()},L.startOf=function(v,$){var w=this,K=!!k.u($)||$,W=k.p(v),J=s(function(Pr,xe){var zt=k.w(w.$u?Date.UTC(w.$y,xe,Pr):new Date(w.$y,xe,Pr),w);return K?zt:zt.endOf(u)},"l"),de=s(function(Pr,xe){return k.w(w.toDate()[Pr].apply(w.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(xe)),w)},"$"),Te=this.$W,Ie=this.$M,G=this.$D,On="set"+(this.$u?"UTC":"");switch(W){case f:return K?J(1,0):J(31,11);case l:return K?J(1,Ie):J(0,Ie+1);case c:var vr=this.$locale().weekStart||0,Ti=(Te<vr?Te+7:Te)-vr;return J(K?G-Ti:G+(6-Ti),Ie);case u:case p:return de(On+"Hours",0);case a:return de(On+"Minutes",1);case o:return de(On+"Seconds",2);case i:return de(On+"Milliseconds",3);default:return this.clone()}},L.endOf=function(v){return this.startOf(v,!1)},L.$set=function(v,$){var w,K=k.p(v),W="set"+(this.$u?"UTC":""),J=(w={},w[u]=W+"Date",w[p]=W+"Date",w[l]=W+"Month",w[f]=W+"FullYear",w[a]=W+"Hours",w[o]=W+"Minutes",w[i]=W+"Seconds",w[n]=W+"Milliseconds",w)[K],de=K===u?this.$D+($-this.$W):$;if(K===l||K===f){var Te=this.clone().set(p,1);Te.$d[J](de),Te.init(),this.$d=Te.set(p,Math.min(this.$D,Te.daysInMonth())).$d}else J&&this.$d[J](de);return this.init(),this},L.set=function(v,$){return this.clone().$set(v,$)},L.get=function(v){return this[k.p(v)]()},L.add=function(v,$){var w,K=this;v=Number(v);var W=k.p($),J=s(function(Ie){var G=P(K);return k.w(G.date(G.date()+Math.round(Ie*v)),K)},"y");if(W===l)return this.set(l,this.$M+v);if(W===f)return this.set(f,this.$y+v);if(W===u)return J(1);if(W===c)return J(7);var de=(w={},w[o]=e,w[a]=r,w[i]=t,w)[W]||1,Te=this.$d.getTime()+v*de;return k.w(Te,this)},L.subtract=function(v,$){return this.add(-1*v,$)},L.format=function(v){var $=this,w=this.$locale();if(!this.isValid())return w.invalidDate||h;var K=v||"YYYY-MM-DDTHH:mm:ssZ",W=k.z(this),J=this.$H,de=this.$m,Te=this.$M,Ie=w.weekdays,G=w.months,On=w.meridiem,vr=s(function(xe,zt,Si,Uo){return xe&&(xe[zt]||xe($,K))||Si[zt].slice(0,Uo)},"h"),Ti=s(function(xe){return k.s(J%12||12,xe,"0")},"d"),Pr=On||function(xe,zt,Si){var Uo=xe<12?"AM":"PM";return Si?Uo.toLowerCase():Uo};return K.replace(g,function(xe,zt){return zt||function(Si){switch(Si){case"YY":return String($.$y).slice(-2);case"YYYY":return k.s($.$y,4,"0");case"M":return Te+1;case"MM":return k.s(Te+1,2,"0");case"MMM":return vr(w.monthsShort,Te,G,3);case"MMMM":return vr(G,Te);case"D":return $.$D;case"DD":return k.s($.$D,2,"0");case"d":return String($.$W);case"dd":return vr(w.weekdaysMin,$.$W,Ie,2);case"ddd":return vr(w.weekdaysShort,$.$W,Ie,3);case"dddd":return Ie[$.$W];case"H":return String(J);case"HH":return k.s(J,2,"0");case"h":return Ti(1);case"hh":return Ti(2);case"a":return Pr(J,de,!0);case"A":return Pr(J,de,!1);case"m":return String(de);case"mm":return k.s(de,2,"0");case"s":return String($.$s);case"ss":return k.s($.$s,2,"0");case"SSS":return k.s($.$ms,3,"0");case"Z":return W}return null}(xe)||W.replace(":","")})},L.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},L.diff=function(v,$,w){var K,W=this,J=k.p($),de=P(v),Te=(de.utcOffset()-this.utcOffset())*e,Ie=this-de,G=s(function(){return k.m(W,de)},"D");switch(J){case f:K=G()/12;break;case l:K=G();break;case d:K=G()/3;break;case c:K=(Ie-Te)/6048e5;break;case u:K=(Ie-Te)/864e5;break;case a:K=Ie/r;break;case o:K=Ie/e;break;case i:K=Ie/t;break;default:K=Ie}return w?K:k.a(K)},L.daysInMonth=function(){return this.endOf(l).$D},L.$locale=function(){return D[this.$L]},L.locale=function(v,$){if(!v)return this.$L;var w=this.clone(),K=M(v,$,!0);return K&&(w.$L=K),w},L.clone=function(){return k.w(this.$d,this)},L.toDate=function(){return new Date(this.valueOf())},L.toJSON=function(){return this.isValid()?this.toISOString():null},L.toISOString=function(){return this.$d.toISOString()},L.toString=function(){return this.$d.toUTCString()},B}(),Dt=Y.prototype;return P.prototype=Dt,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",p]].forEach(function(B){Dt[B[1]]=function(L){return this.$g(L,B[0],B[1])}}),P.extend=function(B,L){return B.$i||(B(L,Y,P),B.$i=!0),P},P.locale=M,P.isDayjs=I,P.unix=function(B){return P(1e3*B)},P.en=D[_],P.Ls=D,P.p={},P})});var it=q(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.Err=Pe.Valid=Pe.err=Pe.valid=void 0;var $_=s(t=>new qo(t),"valid");Pe.valid=$_;var G_=s(t=>new Ko(t),"err");Pe.err=G_;var qo=class{static{s(this,"Valid")}constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Pe.valid)(e(this.value))}mapErr(e){return(0,Pe.valid)(this.value)}};Pe.Valid=qo;var Ko=class{static{s(this,"Err")}constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Pe.err)(this.error)}mapErr(e){return(0,Pe.err)(e(this.error))}};Pe.Err=Ko});var st=q(Gm=>{"use strict";Object.defineProperty(Gm,"__esModule",{value:!0})});var er=q(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Tt();var z=it();st();var V_=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],q_=["sun","mon","tue","wed","thu","fri","sat"],K_=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),wi=s((t,e,r)=>{if(e==="months"&&r.useAliases&&V_.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&q_.indexOf(t.toLowerCase())!==-1)return(0,z.valid)(!0);let n=Number(t);if(isNaN(n))return(0,z.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,z.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,z.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,z.valid)(!0)},"checkSingleElementWithinLimits"),Q_=s((t,e,r)=>{if(t==="*")return K_(e,r)?(0,z.valid)(!0):(0,z.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,z.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,z.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,z.valid)(!0):wi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,z.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,z.valid)(!0):wi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,z.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,z.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,z.err)("Number of occurrence of the day of the week cannot be greater than 5."):wi(n,e,r)}return wi(t,e,r)},"checkSingleElement"),Vm=s((t,e,r,n)=>t==="*"?(0,z.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,z.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,z.valid)(!0):wi(t,e,r),"checkRangeElement"),j_=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Q_(n[0],e,r);if(n.length===2){let i=Vm(n[0],e,r,0),o=Vm(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,z.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,z.valid)(!0)}return(0,z.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),Y_=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '/')`);let i=j_(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,z.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,z.valid)(!0)},"checkListElement"),H_=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,z.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,z.valid)(!0):(0,z.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,z.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(Y_(a,e,r))}),i.every(a=>a.isValid()))return(0,z.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,z.err)(o)},"checkField");Uc.default=H_});var qm=q(Di=>{"use strict";var z_=Di&&Di.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Di,"__esModule",{value:!0});Tt();var J_=it(),Z_=z_(er());st();var X_=s((t,e)=>{if(!t.seconds)return(0,J_.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Z_.default)(r,"seconds",e)},"checkSeconds");Di.default=X_});var Km=q(Ri=>{"use strict";var eO=Ri&&Ri.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ri,"__esModule",{value:!0});Tt();var tO=it(),rO=eO(er());st();var nO=s((t,e)=>{if(!t.minutes)return(0,tO.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,rO.default)(r,"minutes",e)},"checkMinutes");Ri.default=nO});var Qm=q(Ci=>{"use strict";var iO=Ci&&Ci.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ci,"__esModule",{value:!0});Tt();var sO=it(),oO=iO(er());st();var aO=s((t,e)=>{if(!t.hours)return(0,sO.err)(["hours field is undefined."]);let{hours:r}=t;return(0,oO.default)(r,"hours",e)},"checkHours");Ci.default=aO});var jm=q(xi=>{"use strict";var uO=xi&&xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xi,"__esModule",{value:!0});Tt();var bi=it(),cO=uO(er());st();var lO=s((t,e)=>{if(!t.daysOfMonth)return(0,bi.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,bi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,bi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,bi.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,bi.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,cO.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");xi.default=lO});var Ym=q(vi=>{"use strict";var dO=vi&&vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vi,"__esModule",{value:!0});Tt();var fO=it(),pO=dO(er());st();var mO=s((t,e)=>{if(!t.months)return(0,fO.err)(["months field is undefined."]);let{months:r}=t;return(0,pO.default)(r,"months",e)},"checkMonths");vi.default=mO});var Hm=q(Ni=>{"use strict";var hO=Ni&&Ni.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ni,"__esModule",{value:!0});Tt();var Pi=it(),EO=hO(er());st();var gO=s((t,e)=>{if(!t.daysOfWeek)return(0,Pi.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Pi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Pi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Pi.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Pi.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,EO.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Ni.default=gO});var zm=q(Ui=>{"use strict";var yO=Ui&&Ui.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ui,"__esModule",{value:!0});Tt();var TO=it(),SO=yO(er());st();var AO=s((t,e)=>{if(!t.years)return(0,TO.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,SO.default)(r,"years",e)},"checkYears");Ui.default=AO});var eh=q((Vk,Xm)=>{"use strict";var Lc;try{Lc=Map}catch{}var kc;try{kc=Set}catch{}function Jm(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(Zm);if(Lc&&t instanceof Lc)return new Map(Array.from(t.entries()));if(kc&&t instanceof kc)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var o=e.findIndex(function(a){return a===t[i]});n[i]=o>-1?r[o]:Jm(t[i],e,r)}return n}return t}s(Jm,"baseClone");function Zm(t){return Jm(t,[],[])}s(Zm,"clone");Xm.exports=Zm});var Li=q(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});Mc.default=CO;var _O=Object.prototype.toString,OO=Error.prototype.toString,IO=RegExp.prototype.toString,wO=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",DO=/^Symbol\((.*)\)(.*)$/;function RO(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(RO,"printNumber");function th(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return RO(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return wO.call(t).replace(DO,"Symbol($1)");let n=_O.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+OO.call(t)+"]":n==="RegExp"?IO.call(t):null}s(th,"printSimpleValue");function CO(t,e){let r=th(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=th(this[n],e);return o!==null?o:i},2)}s(CO,"printValue")});var Ct=q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var rh=bO(Li());function bO(t){return t&&t.__esModule?t:{default:t}}s(bO,"_interopRequireDefault");var nh={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,rh.default)(r,!0)}\``+(i?` (cast from the value \`${(0,rh.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},defined:"${path} must be defined"};Se.mixed=nh;var ih={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Se.string=ih;var sh={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Se.number=sh;var oh={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=oh;var ah={isValue:"${path} field must be ${value}"};Se.boolean=ah;var uh={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=uh;var ch={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Se.array=ch;var xO=Object.assign(Object.create(null),{mixed:nh,string:ih,number:sh,date:oh,object:uh,array:ch,boolean:ah});Se.default=xO});var Dn=q(Qo=>{"use strict";Object.defineProperty(Qo,"__esModule",{value:!0});Qo.default=void 0;var vO=s(t=>t&&t.__isYupSchema__,"_default");Qo.default=vO});var dh=q(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.default=void 0;var PO=lh(require("lodash/has")),NO=lh(Dn());function lh(t){return t&&t.__esModule?t:{default:t}}s(lh,"_interopRequireDefault");var Fc=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,PO.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:o}=r,a=typeof n=="function"?n:(...u)=>u.every(c=>c===n);this.fn=function(...u){let c=u.pop(),l=u.pop(),d=a(...u)?i:o;if(d)return typeof d=="function"?d(l):l.concat(d.resolve(c))}}resolve(e,r){let n=this.refs.map(o=>o.getValue(r?.value,r?.parent,r?.context)),i=this.fn.apply(e,n.concat(e,r));if(i===void 0||i===e)return e;if(!(0,NO.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},UO=Fc;jo.default=UO});var Wc=q(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.default=LO;function LO(t){return t==null?[]:[].concat(t)}s(LO,"toArray")});var Ur=q(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.default=void 0;var kO=fh(Li()),MO=fh(Wc());function fh(t){return t&&t.__esModule?t:{default:t}}s(fh,"_interopRequireDefault");function $c(){return $c=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},$c.apply(this,arguments)}s($c,"_extends");var FO=/\$\{\s*(\w+)\s*\}/g,Gc=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=$c({},r,{path:n})),typeof e=="string"?e.replace(FO,(i,o)=>(0,kO.default)(r[o])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,n,i){super(),this.name="ValidationError",this.value=r,this.path=n,this.type=i,this.errors=[],this.inner=[],(0,MO.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};Yo.default=Gc});var Ho=q(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});qc.default=$O;var Vc=BO(Ur());function BO(t){return t&&t.__esModule?t:{default:t}}s(BO,"_interopRequireDefault");var WO=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function $O(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=WO(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new Vc.default(a,o,c)):l(null,o);for(let p=0;p<n.length;p++){let h=n[p];h(i,s(function(g){if(g){if(!Vc.default.isError(g))return l(g,o);if(r)return g.value=o,l(g,o);f.push(g)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new Vc.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s($O,"runTests")});var ki=q((sM,gh)=>{"use strict";function Lr(t){this._maxSize=t,this.clear()}s(Lr,"Cache");Lr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Lr.prototype.get=function(t){return this._values[t]};Lr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var GO=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Eh=/^\d+$/,VO=/^\d/,qO=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,KO=/^\s*(['"]?)(.*?)(\1)\s*$/,jc=512,ph=new Lr(jc),mh=new Lr(jc),hh=new Lr(jc);gh.exports={Cache:Lr,split:Qc,normalizePath:Kc,setter:function(t){var e=Kc(t);return mh.get(t)||mh.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},getter:function(t,e){var r=Kc(t);return hh.get(t)||hh.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},join:function(t){return t.reduce(function(e,r){return e+(Yc(r)||Eh.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){QO(Array.isArray(t)?t:Qc(t),e,r)}};function Kc(t){return ph.get(t)||ph.set(t,Qc(t).map(function(e){return e.replace(KO,"$2")}))}s(Kc,"normalizePath");function Qc(t){return t.match(GO)||[""]}s(Qc,"split");function QO(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(HO(i)&&(i='"'+i+'"'),u=Yc(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(QO,"forEach");function Yc(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(Yc,"isQuoted");function jO(t){return t.match(VO)&&!t.match(Eh)}s(jO,"hasLeadingNumber");function YO(t){return qO.test(t)}s(YO,"hasSpecialChars");function HO(t){return!Yc(t)&&(jO(t)||YO(t))}s(HO,"shouldBeQuoted")});var kr=q(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.create=JO;Fi.default=void 0;var zO=ki(),zo={context:"$",value:"."};function JO(t,e){return new Mi(t,e)}s(JO,"create");var Mi=class{static{s(this,"Reference")}constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===zo.context,this.isValue=this.key[0]===zo.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?zo.context:this.isValue?zo.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,zO.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Fi.default=Mi;Mi.prototype.__isYupRef=!0});var yh=q(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.default=tI;var ZO=Hc(require("lodash/mapValues")),Jo=Hc(Ur()),XO=Hc(kr());function Hc(t){return t&&t.__esModule?t:{default:t}}s(Hc,"_interopRequireDefault");function Zo(){return Zo=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Zo.apply(this,arguments)}s(Zo,"_extends");function eI(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,o;for(o=0;o<n.length;o++)i=n[o],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}s(eI,"_objectWithoutPropertiesLoose");function tI(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=eI(r,["value","path","label","options","originalValue","sync"]),{name:f,test:p,params:h,message:m}=t,{parent:g,context:y}=u;function S(I){return XO.default.isRef(I)?I.getValue(i,g,y):I}s(S,"resolve");function O(I={}){let M=(0,ZO.default)(Zo({value:i,originalValue:c,label:a,path:I.path||o},h,I.params),S),P=new Jo.default(Jo.default.formatError(I.message||m,M),i,M.path,I.type||f);return P.params=M,P}s(O,"createError");let _=Zo({path:o,parent:g,type:f,createError:O,resolve:S,options:u,originalValue:c},d);if(!l){try{Promise.resolve(p.call(_,i,_)).then(I=>{Jo.default.isError(I)?n(I):I?n(null,I):n(O())})}catch(I){n(I)}return}let D;try{var T;if(D=p.call(_,i,_),typeof((T=D)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}Jo.default.isError(D)?n(D):D?n(null,D):n(O())}return s(e,"validate"),e.OPTIONS=t,e}s(tI,"createValidation")});var Jc=q(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.getIn=Th;Bi.default=void 0;var rI=ki(),nI=s(t=>t.substr(0,t.length-1).substr(1),"trim");function Th(t,e,r,n=r){let i,o,a;return e?((0,rI.forEach)(e,(u,c,l)=>{let d=c?nI(u):u;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=l?parseInt(d,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${u}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!l){if(!t.fields||!t.fields[d])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${a} which is a type: "${t._type}")`);i=r,r=r&&r[d],t=t.fields[d]}o=d,a=c?"["+u+"]":"."+u}),{schema:t,parent:i,parentPath:o}):{parent:i,parentPath:e,schema:t}}s(Th,"getIn");var iI=s((t,e,r,n)=>Th(t,e,r,n).schema,"reach"),sI=iI;Bi.default=sI});var Ah=q(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var Sh=oI(kr());function oI(t){return t&&t.__esModule?t:{default:t}}s(oI,"_interopRequireDefault");var Zc=class t{static{s(this,"ReferenceSet")}constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){Sh.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Sh.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};Xo.default=Zc});var xt=q(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.default=void 0;var _h=bt(eh()),Rn=Ct(),aI=bt(dh()),Oh=bt(Ho()),ea=bt(yh()),Ih=bt(Li()),uI=bt(kr()),cI=Jc(),lI=bt(Wc()),wh=bt(Ur()),Dh=bt(Ah());function bt(t){return t&&t.__esModule?t:{default:t}}s(bt,"_interopRequireDefault");function Qe(){return Qe=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Qe.apply(this,arguments)}s(Qe,"_extends");var ot=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Dh.default,this._blacklist=new Dh.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Rn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Qe({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=Qe({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,_h.default)(Qe({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=Qe({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(o=>{e.tests.forEach(a=>{o.test(a.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,o)=>o.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(Qe({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,Ih.default)(e),a=(0,Ih.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
1
+ "use strict";var E_=Object.create;var Ai=Object.defineProperty;var g_=Object.getOwnPropertyDescriptor;var y_=Object.getOwnPropertyNames;var T_=Object.getPrototypeOf,S_=Object.prototype.hasOwnProperty;var s=(t,e)=>Ai(t,"name",{value:e,configurable:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Ai(t,r,{get:e[r],enumerable:!0})},Rm=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of y_(e))!S_.call(t,i)&&i!==r&&Ai(t,i,{get:()=>e[i],enumerable:!(n=g_(e,i))||n.enumerable});return t};var F=(t,e,r)=>(r=t!=null?E_(T_(t)):{},Rm(e||!t||!t.__esModule?Ai(r,"default",{value:t,enumerable:!0}):r,t)),A_=t=>Rm(Ai({},"__esModule",{value:!0}),t);var Fm=q((bc,xc)=>{"use strict";(function(t,e){typeof bc=="object"&&typeof xc<"u"?xc.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(bc,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",o="minute",a="hour",u="day",c="week",l="month",d="quarter",f="year",p="date",h="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|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,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(B){var L=["th","st","nd","rd"],v=B%100;return"["+B+(L[(v-20)%10]||L[v]||L[0])+"]"}},S=s(function(B,L,v){var $=String(B);return!$||$.length>=L?B:""+Array(L+1-$.length).join(v)+B},"m"),O={s:S,z:function(B){var L=-B.utcOffset(),v=Math.abs(L),$=Math.floor(v/60),w=v%60;return(L<=0?"+":"-")+S($,2,"0")+":"+S(w,2,"0")},m:s(function B(L,v){if(L.date()<v.date())return-B(v,L);var $=12*(v.year()-L.year())+(v.month()-L.month()),w=L.clone().add($,l),K=v-w<0,W=L.clone().add($+(K?-1:1),l);return+(-($+(v-w)/(K?w-W:W-w))||0)},"t"),a:function(B){return B<0?Math.ceil(B)||0:Math.floor(B)},p:function(B){return{M:l,y:f,w:c,d:u,D:p,h:a,m:o,s:i,ms:n,Q:d}[B]||String(B||"").toLowerCase().replace(/s$/,"")},u:function(B){return B===void 0}},_="en",D={};D[_]=y;var T="$isDayjsObject",I=s(function(B){return B instanceof Y||!(!B||!B[T])},"S"),M=s(function B(L,v,$){var w;if(!L)return _;if(typeof L=="string"){var K=L.toLowerCase();D[K]&&(w=K),v&&(D[K]=v,w=K);var W=L.split("-");if(!w&&W.length>1)return B(W[0])}else{var J=L.name;D[J]=L,w=J}return!$&&w&&(_=w),w||!$&&_},"t"),P=s(function(B,L){if(I(B))return B.clone();var v=typeof L=="object"?L:{};return v.date=B,v.args=arguments,new Y(v)},"O"),k=O;k.l=M,k.i=I,k.w=function(B,L){return P(B,{locale:L.$L,utc:L.$u,x:L.$x,$offset:L.$offset})};var Y=function(){function B(v){this.$L=M(v.locale,null,!0),this.parse(v),this.$x=this.$x||v.x||{},this[T]=!0}s(B,"M");var L=B.prototype;return L.parse=function(v){this.$d=function($){var w=$.date,K=$.utc;if(w===null)return new Date(NaN);if(k.u(w))return new Date;if(w instanceof Date)return new Date(w);if(typeof w=="string"&&!/Z$/i.test(w)){var W=w.match(m);if(W){var J=W[2]-1||0,de=(W[7]||"0").substring(0,3);return K?new Date(Date.UTC(W[1],J,W[3]||1,W[4]||0,W[5]||0,W[6]||0,de)):new Date(W[1],J,W[3]||1,W[4]||0,W[5]||0,W[6]||0,de)}}return new Date(w)}(v),this.init()},L.init=function(){var v=this.$d;this.$y=v.getFullYear(),this.$M=v.getMonth(),this.$D=v.getDate(),this.$W=v.getDay(),this.$H=v.getHours(),this.$m=v.getMinutes(),this.$s=v.getSeconds(),this.$ms=v.getMilliseconds()},L.$utils=function(){return k},L.isValid=function(){return this.$d.toString()!==h},L.isSame=function(v,$){var w=P(v);return this.startOf($)<=w&&w<=this.endOf($)},L.isAfter=function(v,$){return P(v)<this.startOf($)},L.isBefore=function(v,$){return this.endOf($)<P(v)},L.$g=function(v,$,w){return k.u(v)?this[$]:this.set(w,v)},L.unix=function(){return Math.floor(this.valueOf()/1e3)},L.valueOf=function(){return this.$d.getTime()},L.startOf=function(v,$){var w=this,K=!!k.u($)||$,W=k.p(v),J=s(function(Pr,xe){var Jt=k.w(w.$u?Date.UTC(w.$y,xe,Pr):new Date(w.$y,xe,Pr),w);return K?Jt:Jt.endOf(u)},"l"),de=s(function(Pr,xe){return k.w(w.toDate()[Pr].apply(w.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(xe)),w)},"$"),Te=this.$W,Ie=this.$M,G=this.$D,On="set"+(this.$u?"UTC":"");switch(W){case f:return K?J(1,0):J(31,11);case l:return K?J(1,Ie):J(0,Ie+1);case c:var vr=this.$locale().weekStart||0,Ti=(Te<vr?Te+7:Te)-vr;return J(K?G-Ti:G+(6-Ti),Ie);case u:case p:return de(On+"Hours",0);case a:return de(On+"Minutes",1);case o:return de(On+"Seconds",2);case i:return de(On+"Milliseconds",3);default:return this.clone()}},L.endOf=function(v){return this.startOf(v,!1)},L.$set=function(v,$){var w,K=k.p(v),W="set"+(this.$u?"UTC":""),J=(w={},w[u]=W+"Date",w[p]=W+"Date",w[l]=W+"Month",w[f]=W+"FullYear",w[a]=W+"Hours",w[o]=W+"Minutes",w[i]=W+"Seconds",w[n]=W+"Milliseconds",w)[K],de=K===u?this.$D+($-this.$W):$;if(K===l||K===f){var Te=this.clone().set(p,1);Te.$d[J](de),Te.init(),this.$d=Te.set(p,Math.min(this.$D,Te.daysInMonth())).$d}else J&&this.$d[J](de);return this.init(),this},L.set=function(v,$){return this.clone().$set(v,$)},L.get=function(v){return this[k.p(v)]()},L.add=function(v,$){var w,K=this;v=Number(v);var W=k.p($),J=s(function(Ie){var G=P(K);return k.w(G.date(G.date()+Math.round(Ie*v)),K)},"y");if(W===l)return this.set(l,this.$M+v);if(W===f)return this.set(f,this.$y+v);if(W===u)return J(1);if(W===c)return J(7);var de=(w={},w[o]=e,w[a]=r,w[i]=t,w)[W]||1,Te=this.$d.getTime()+v*de;return k.w(Te,this)},L.subtract=function(v,$){return this.add(-1*v,$)},L.format=function(v){var $=this,w=this.$locale();if(!this.isValid())return w.invalidDate||h;var K=v||"YYYY-MM-DDTHH:mm:ssZ",W=k.z(this),J=this.$H,de=this.$m,Te=this.$M,Ie=w.weekdays,G=w.months,On=w.meridiem,vr=s(function(xe,Jt,Si,Uo){return xe&&(xe[Jt]||xe($,K))||Si[Jt].slice(0,Uo)},"h"),Ti=s(function(xe){return k.s(J%12||12,xe,"0")},"d"),Pr=On||function(xe,Jt,Si){var Uo=xe<12?"AM":"PM";return Si?Uo.toLowerCase():Uo};return K.replace(g,function(xe,Jt){return Jt||function(Si){switch(Si){case"YY":return String($.$y).slice(-2);case"YYYY":return k.s($.$y,4,"0");case"M":return Te+1;case"MM":return k.s(Te+1,2,"0");case"MMM":return vr(w.monthsShort,Te,G,3);case"MMMM":return vr(G,Te);case"D":return $.$D;case"DD":return k.s($.$D,2,"0");case"d":return String($.$W);case"dd":return vr(w.weekdaysMin,$.$W,Ie,2);case"ddd":return vr(w.weekdaysShort,$.$W,Ie,3);case"dddd":return Ie[$.$W];case"H":return String(J);case"HH":return k.s(J,2,"0");case"h":return Ti(1);case"hh":return Ti(2);case"a":return Pr(J,de,!0);case"A":return Pr(J,de,!1);case"m":return String(de);case"mm":return k.s(de,2,"0");case"s":return String($.$s);case"ss":return k.s($.$s,2,"0");case"SSS":return k.s($.$ms,3,"0");case"Z":return W}return null}(xe)||W.replace(":","")})},L.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},L.diff=function(v,$,w){var K,W=this,J=k.p($),de=P(v),Te=(de.utcOffset()-this.utcOffset())*e,Ie=this-de,G=s(function(){return k.m(W,de)},"D");switch(J){case f:K=G()/12;break;case l:K=G();break;case d:K=G()/3;break;case c:K=(Ie-Te)/6048e5;break;case u:K=(Ie-Te)/864e5;break;case a:K=Ie/r;break;case o:K=Ie/e;break;case i:K=Ie/t;break;default:K=Ie}return w?K:k.a(K)},L.daysInMonth=function(){return this.endOf(l).$D},L.$locale=function(){return D[this.$L]},L.locale=function(v,$){if(!v)return this.$L;var w=this.clone(),K=M(v,$,!0);return K&&(w.$L=K),w},L.clone=function(){return k.w(this.$d,this)},L.toDate=function(){return new Date(this.valueOf())},L.toJSON=function(){return this.isValid()?this.toISOString():null},L.toISOString=function(){return this.$d.toISOString()},L.toString=function(){return this.$d.toUTCString()},B}(),Dt=Y.prototype;return P.prototype=Dt,[["$ms",n],["$s",i],["$m",o],["$H",a],["$W",u],["$M",l],["$y",f],["$D",p]].forEach(function(B){Dt[B[1]]=function(L){return this.$g(L,B[0],B[1])}}),P.extend=function(B,L){return B.$i||(B(L,Y,P),B.$i=!0),P},P.locale=M,P.isDayjs=I,P.unix=function(B){return P(1e3*B)},P.en=D[_],P.Ls=D,P.p={},P})});var it=q(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.Err=Pe.Valid=Pe.err=Pe.valid=void 0;var $_=s(t=>new qo(t),"valid");Pe.valid=$_;var G_=s(t=>new Ko(t),"err");Pe.err=G_;var qo=class{static{s(this,"Valid")}constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Pe.valid)(e(this.value))}mapErr(e){return(0,Pe.valid)(this.value)}};Pe.Valid=qo;var Ko=class{static{s(this,"Err")}constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Pe.err)(this.error)}mapErr(e){return(0,Pe.err)(e(this.error))}};Pe.Err=Ko});var st=q(Vm=>{"use strict";Object.defineProperty(Vm,"__esModule",{value:!0})});var er=q(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Tt();var z=it();st();var V_=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],q_=["sun","mon","tue","wed","thu","fri","sat"],K_=s((t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,"checkWildcardLimit"),wi=s((t,e,r)=>{if(e==="months"&&r.useAliases&&V_.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&q_.indexOf(t.toLowerCase())!==-1)return(0,z.valid)(!0);let n=Number(t);if(isNaN(n))return(0,z.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:o}=r[e];return i&&n<i?(0,z.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):o&&n>o?(0,z.err)(`Number ${n} of ${e} field is bigger than upper limit '${o}'`):(0,z.valid)(!0)},"checkSingleElementWithinLimits"),Q_=s((t,e,r)=>{if(t==="*")return K_(e,r)?(0,z.valid)(!0):(0,z.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,z.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,z.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,z.valid)(!0):wi(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,z.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,z.valid)(!0):wi(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...o]=t.split("#");if(o.length!==0)return(0,z.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let a=Number(i);return!i||isNaN(a)?(0,z.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):a>5?(0,z.err)("Number of occurrence of the day of the week cannot be greater than 5."):wi(n,e,r)}return wi(t,e,r)},"checkSingleElement"),qm=s((t,e,r,n)=>t==="*"?(0,z.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,z.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,z.valid)(!0):wi(t,e,r),"checkRangeElement"),j_=s((t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Q_(n[0],e,r);if(n.length===2){let i=qm(n[0],e,r,0),o=qm(n[1],e,r,1);return i.isError()?i:o.isError()?o:Number(n[0])>Number(n[1])?(0,z.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,z.valid)(!0)}return(0,z.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},"checkFirstStepElement"),Y_=s((t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,z.err)(`List element '${t}' is not valid. (More than one '/')`);let i=j_(n[0],e,r);if(i.isError())return i;if(n.length===2){let o=n[1];if(!o)return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(o)))return(0,z.err)(`Second step element '${o}' of '${t}' is not valid (not a number).`);if(Number(o)===0)return(0,z.err)(`Second step element '${o}' of '${t}' cannot be zero.`)}return(0,z.valid)(!0)},"checkListElement"),H_=s((t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,z.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,z.valid)(!0):(0,z.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,z.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(a=>{i.push(Y_(a,e,r))}),i.every(a=>a.isValid()))return(0,z.valid)(!0);let o=[];return i.forEach(a=>{a.isError()&&o.push(a.getError())}),(0,z.err)(o)},"checkField");Uc.default=H_});var Km=q(Di=>{"use strict";var z_=Di&&Di.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Di,"__esModule",{value:!0});Tt();var J_=it(),Z_=z_(er());st();var X_=s((t,e)=>{if(!t.seconds)return(0,J_.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Z_.default)(r,"seconds",e)},"checkSeconds");Di.default=X_});var Qm=q(Ri=>{"use strict";var eO=Ri&&Ri.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ri,"__esModule",{value:!0});Tt();var tO=it(),rO=eO(er());st();var nO=s((t,e)=>{if(!t.minutes)return(0,tO.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,rO.default)(r,"minutes",e)},"checkMinutes");Ri.default=nO});var jm=q(Ci=>{"use strict";var iO=Ci&&Ci.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ci,"__esModule",{value:!0});Tt();var sO=it(),oO=iO(er());st();var aO=s((t,e)=>{if(!t.hours)return(0,sO.err)(["hours field is undefined."]);let{hours:r}=t;return(0,oO.default)(r,"hours",e)},"checkHours");Ci.default=aO});var Ym=q(xi=>{"use strict";var uO=xi&&xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xi,"__esModule",{value:!0});Tt();var bi=it(),cO=uO(er());st();var lO=s((t,e)=>{if(!t.daysOfMonth)return(0,bi.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,bi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,bi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,bi.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,bi.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,cO.default)(r,"daysOfMonth",e)},"checkDaysOfMonth");xi.default=lO});var Hm=q(vi=>{"use strict";var dO=vi&&vi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vi,"__esModule",{value:!0});Tt();var fO=it(),pO=dO(er());st();var mO=s((t,e)=>{if(!t.months)return(0,fO.err)(["months field is undefined."]);let{months:r}=t;return(0,pO.default)(r,"months",e)},"checkMonths");vi.default=mO});var zm=q(Ni=>{"use strict";var hO=Ni&&Ni.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ni,"__esModule",{value:!0});Tt();var Pi=it(),EO=hO(er());st();var gO=s((t,e)=>{if(!t.daysOfWeek)return(0,Pi.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Pi.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Pi.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Pi.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Pi.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,EO.default)(r,"daysOfWeek",e)},"checkDaysOfWeek");Ni.default=gO});var Jm=q(Ui=>{"use strict";var yO=Ui&&Ui.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ui,"__esModule",{value:!0});Tt();var TO=it(),SO=yO(er());st();var AO=s((t,e)=>{if(!t.years)return(0,TO.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,SO.default)(r,"years",e)},"checkYears");Ui.default=AO});var th=q((qk,eh)=>{"use strict";var Lc;try{Lc=Map}catch{}var kc;try{kc=Set}catch{}function Zm(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(Xm);if(Lc&&t instanceof Lc)return new Map(Array.from(t.entries()));if(kc&&t instanceof kc)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var o=e.findIndex(function(a){return a===t[i]});n[i]=o>-1?r[o]:Zm(t[i],e,r)}return n}return t}s(Zm,"baseClone");function Xm(t){return Zm(t,[],[])}s(Xm,"clone");eh.exports=Xm});var Li=q(Mc=>{"use strict";Object.defineProperty(Mc,"__esModule",{value:!0});Mc.default=CO;var _O=Object.prototype.toString,OO=Error.prototype.toString,IO=RegExp.prototype.toString,wO=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",DO=/^Symbol\((.*)\)(.*)$/;function RO(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}s(RO,"printNumber");function rh(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return RO(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return wO.call(t).replace(DO,"Symbol($1)");let n=_O.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+OO.call(t)+"]":n==="RegExp"?IO.call(t):null}s(rh,"printSimpleValue");function CO(t,e){let r=rh(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let o=rh(this[n],e);return o!==null?o:i},2)}s(CO,"printValue")});var bt=q(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.default=Se.array=Se.object=Se.boolean=Se.date=Se.number=Se.string=Se.mixed=void 0;var nh=bO(Li());function bO(t){return t&&t.__esModule?t:{default:t}}s(bO,"_interopRequireDefault");var ih={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,o=`${t} must be a \`${e}\` type, but the final value was: \`${(0,nh.default)(r,!0)}\``+(i?` (cast from the value \`${(0,nh.default)(n,!0)}\`).`:".");return r===null&&(o+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),o},defined:"${path} must be defined"};Se.mixed=ih;var sh={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Se.string=sh;var oh={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Se.number=oh;var ah={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Se.date=ah;var uh={isValue:"${path} field must be ${value}"};Se.boolean=uh;var ch={noUnknown:"${path} field has unspecified keys: ${unknown}"};Se.object=ch;var lh={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Se.array=lh;var xO=Object.assign(Object.create(null),{mixed:ih,string:sh,number:oh,date:ah,object:ch,array:lh,boolean:uh});Se.default=xO});var Dn=q(Qo=>{"use strict";Object.defineProperty(Qo,"__esModule",{value:!0});Qo.default=void 0;var vO=s(t=>t&&t.__isYupSchema__,"_default");Qo.default=vO});var fh=q(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.default=void 0;var PO=dh(require("lodash/has")),NO=dh(Dn());function dh(t){return t&&t.__esModule?t:{default:t}}s(dh,"_interopRequireDefault");var Fc=class{static{s(this,"Condition")}constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,PO.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:o}=r,a=typeof n=="function"?n:(...u)=>u.every(c=>c===n);this.fn=function(...u){let c=u.pop(),l=u.pop(),d=a(...u)?i:o;if(d)return typeof d=="function"?d(l):l.concat(d.resolve(c))}}resolve(e,r){let n=this.refs.map(o=>o.getValue(r?.value,r?.parent,r?.context)),i=this.fn.apply(e,n.concat(e,r));if(i===void 0||i===e)return e;if(!(0,NO.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},UO=Fc;jo.default=UO});var Wc=q(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.default=LO;function LO(t){return t==null?[]:[].concat(t)}s(LO,"toArray")});var Ur=q(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.default=void 0;var kO=ph(Li()),MO=ph(Wc());function ph(t){return t&&t.__esModule?t:{default:t}}s(ph,"_interopRequireDefault");function $c(){return $c=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},$c.apply(this,arguments)}s($c,"_extends");var FO=/\$\{\s*(\w+)\s*\}/g,Gc=class t extends Error{static{s(this,"ValidationError")}static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=$c({},r,{path:n})),typeof e=="string"?e.replace(FO,(i,o)=>(0,kO.default)(r[o])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,n,i){super(),this.name="ValidationError",this.value=r,this.path=n,this.type=i,this.errors=[],this.inner=[],(0,MO.default)(e).forEach(o=>{t.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};Yo.default=Gc});var Ho=q(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});qc.default=$O;var Vc=BO(Ur());function BO(t){return t&&t.__esModule?t:{default:t}}s(BO,"_interopRequireDefault");var WO=s(t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}},"once");function $O(t,e){let{endEarly:r,tests:n,args:i,value:o,errors:a,sort:u,path:c}=t,l=WO(e),d=n.length,f=[];if(a=a||[],!d)return a.length?l(new Vc.default(a,o,c)):l(null,o);for(let p=0;p<n.length;p++){let h=n[p];h(i,s(function(g){if(g){if(!Vc.default.isError(g))return l(g,o);if(r)return g.value=o,l(g,o);f.push(g)}if(--d<=0){if(f.length&&(u&&f.sort(u),a.length&&f.push(...a),a=f),a.length){l(new Vc.default(a,o,c),o);return}l(null,o)}},"finishTestRun"))}}s($O,"runTests")});var ki=q((oM,yh)=>{"use strict";function Lr(t){this._maxSize=t,this.clear()}s(Lr,"Cache");Lr.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Lr.prototype.get=function(t){return this._values[t]};Lr.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var GO=/[^.^\]^[]+|(?=\[\]|\.\.)/g,gh=/^\d+$/,VO=/^\d/,qO=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,KO=/^\s*(['"]?)(.*?)(\1)\s*$/,jc=512,mh=new Lr(jc),hh=new Lr(jc),Eh=new Lr(jc);yh.exports={Cache:Lr,split:Qc,normalizePath:Kc,setter:function(t){var e=Kc(t);return hh.get(t)||hh.set(t,s(function(n,i){for(var o=0,a=e.length,u=n;o<a-1;){var c=e[o];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;u=u[e[o++]]}u[e[o]]=i},"setter"))},getter:function(t,e){var r=Kc(t);return Eh.get(t)||Eh.set(t,s(function(i){for(var o=0,a=r.length;o<a;)if(i!=null||!e)i=i[r[o++]];else return;return i},"getter"))},join:function(t){return t.reduce(function(e,r){return e+(Yc(r)||gh.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){QO(Array.isArray(t)?t:Qc(t),e,r)}};function Kc(t){return mh.get(t)||mh.set(t,Qc(t).map(function(e){return e.replace(KO,"$2")}))}s(Kc,"normalizePath");function Qc(t){return t.match(GO)||[""]}s(Qc,"split");function QO(t,e,r){var n=t.length,i,o,a,u;for(o=0;o<n;o++)i=t[o],i&&(HO(i)&&(i='"'+i+'"'),u=Yc(i),a=!u&&/^\d+$/.test(i),e.call(r,i,u,a,o,t))}s(QO,"forEach");function Yc(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}s(Yc,"isQuoted");function jO(t){return t.match(VO)&&!t.match(gh)}s(jO,"hasLeadingNumber");function YO(t){return qO.test(t)}s(YO,"hasSpecialChars");function HO(t){return!Yc(t)&&(jO(t)||YO(t))}s(HO,"shouldBeQuoted")});var kr=q(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.create=JO;Fi.default=void 0;var zO=ki(),zo={context:"$",value:"."};function JO(t,e){return new Mi(t,e)}s(JO,"create");var Mi=class{static{s(this,"Reference")}constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===zo.context,this.isValue=this.key[0]===zo.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?zo.context:this.isValue?zo.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,zO.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Fi.default=Mi;Mi.prototype.__isYupRef=!0});var Th=q(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.default=tI;var ZO=Hc(require("lodash/mapValues")),Jo=Hc(Ur()),XO=Hc(kr());function Hc(t){return t&&t.__esModule?t:{default:t}}s(Hc,"_interopRequireDefault");function Zo(){return Zo=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Zo.apply(this,arguments)}s(Zo,"_extends");function eI(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,o;for(o=0;o<n.length;o++)i=n[o],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}s(eI,"_objectWithoutPropertiesLoose");function tI(t){function e(r,n){let{value:i,path:o="",label:a,options:u,originalValue:c,sync:l}=r,d=eI(r,["value","path","label","options","originalValue","sync"]),{name:f,test:p,params:h,message:m}=t,{parent:g,context:y}=u;function S(I){return XO.default.isRef(I)?I.getValue(i,g,y):I}s(S,"resolve");function O(I={}){let M=(0,ZO.default)(Zo({value:i,originalValue:c,label:a,path:I.path||o},h,I.params),S),P=new Jo.default(Jo.default.formatError(I.message||m,M),i,M.path,I.type||f);return P.params=M,P}s(O,"createError");let _=Zo({path:o,parent:g,type:f,createError:O,resolve:S,options:u,originalValue:c},d);if(!l){try{Promise.resolve(p.call(_,i,_)).then(I=>{Jo.default.isError(I)?n(I):I?n(null,I):n(O())})}catch(I){n(I)}return}let D;try{var T;if(D=p.call(_,i,_),typeof((T=D)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}Jo.default.isError(D)?n(D):D?n(null,D):n(O())}return s(e,"validate"),e.OPTIONS=t,e}s(tI,"createValidation")});var Jc=q(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.getIn=Sh;Bi.default=void 0;var rI=ki(),nI=s(t=>t.substr(0,t.length-1).substr(1),"trim");function Sh(t,e,r,n=r){let i,o,a;return e?((0,rI.forEach)(e,(u,c,l)=>{let d=c?nI(u):u;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=l?parseInt(d,10):0;if(r&&f>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${u}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[f],t=t.innerType}if(!l){if(!t.fields||!t.fields[d])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${a} which is a type: "${t._type}")`);i=r,r=r&&r[d],t=t.fields[d]}o=d,a=c?"["+u+"]":"."+u}),{schema:t,parent:i,parentPath:o}):{parent:i,parentPath:e,schema:t}}s(Sh,"getIn");var iI=s((t,e,r,n)=>Sh(t,e,r,n).schema,"reach"),sI=iI;Bi.default=sI});var _h=q(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.default=void 0;var Ah=oI(kr());function oI(t){return t&&t.__esModule?t:{default:t}}s(oI,"_interopRequireDefault");var Zc=class t{static{s(this,"ReferenceSet")}constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){Ah.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Ah.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};Xo.default=Zc});var vt=q(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.default=void 0;var Oh=xt(th()),Rn=bt(),aI=xt(fh()),Ih=xt(Ho()),ea=xt(Th()),wh=xt(Li()),uI=xt(kr()),cI=Jc(),lI=xt(Wc()),Dh=xt(Ur()),Rh=xt(_h());function xt(t){return t&&t.__esModule?t:{default:t}}s(xt,"_interopRequireDefault");function Qe(){return Qe=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Qe.apply(this,arguments)}s(Qe,"_extends");var ot=class{static{s(this,"BaseSchema")}constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Rh.default,this._blacklist=new Rh.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Rn.mixed.notType)}),this.type=e?.type||"mixed",this.spec=Qe({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=Qe({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Oh.default)(Qe({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=Qe({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(o=>{e.tests.forEach(a=>{o.test(a.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,o)=>o.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(Qe({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let o=(0,wh.default)(e),a=(0,wh.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
2
2
 
3
3
  attempted value: ${o}
4
- `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,o)=>o.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:o,from:a=[],originalValue:u=e,strict:c=this.spec.strict,abortEarly:l=this.spec.abortEarly}=r,d=e;c||(d=this._cast(d,Qe({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,Oh.default)({args:f,value:d,path:o,sync:i,tests:p,endEarly:l},h=>{if(h)return void n(h,d);(0,Oh.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(Qe({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((o,a)=>i._validate(e,r,(u,c)=>{u?a(u):o(c)}))}validateSync(e,r){let n=this.resolve(Qe({},r,{value:e})),i;return n._validate(e,Qe({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(wh.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(wh.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,_h.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Rn.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Rn.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Rn.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,ea.default)(r),o=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(a=>!(a.OPTIONS.name===r.name&&(o||a.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,lI.default)(e).map(o=>new uI.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new aI.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,ea.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Rn.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,ea.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=Rn.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,ea.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};ta.default=ot;ot.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])ot.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,cI.getIn)(this,e,r,n.context);return a[t](i&&i[o],Qe({},n,{parent:i,path:e}))};for(let t of["equals","is"])ot.prototype[t]=ot.prototype.oneOf;for(let t of["not","nope"])ot.prototype[t]=ot.prototype.notOneOf;ot.prototype.optional=ot.prototype.notRequired});var Ch=q(Wi=>{"use strict";Object.defineProperty(Wi,"__esModule",{value:!0});Wi.create=Rh;Wi.default=void 0;var dI=fI(xt());function fI(t){return t&&t.__esModule?t:{default:t}}s(fI,"_interopRequireDefault");var Xc=dI.default,pI=Xc;Wi.default=pI;function Rh(){return new Xc}s(Rh,"create");Rh.prototype=Xc.prototype});var Cn=q(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.default=void 0;var mI=s(t=>t==null,"_default");ra.default=mI});var Nh=q(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.create=Ph;Gi.default=void 0;var hI=vh(xt()),bh=Ct(),xh=vh(Cn());function vh(t){return t&&t.__esModule?t:{default:t}}s(vh,"_interopRequireDefault");function Ph(){return new $i}s(Ph,"create");var $i=class extends hI.default{static{s(this,"BooleanSchema")}constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=bh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,xh.default)(r)||r===!0}})}isFalse(e=bh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,xh.default)(r)||r===!1}})}};Gi.default=$i;Ph.prototype=$i.prototype});var kh=q(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.create=Lh;qi.default=void 0;var St=Ct(),vt=Uh(Cn()),EI=Uh(xt());function Uh(t){return t&&t.__esModule?t:{default:t}}s(Uh,"_interopRequireDefault");var gI=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,yI=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,TI=/^(?:[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,SI=s(t=>(0,vt.default)(t)||t===t.trim(),"isTrimmed"),AI={}.toString();function Lh(){return new Vi}s(Lh,"create");var Vi=class extends EI.default{static{s(this,"StringSchema")}constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===AI?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=St.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,vt.default)(n)||n.length===this.resolve(e)}})}min(e,r=St.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,vt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=St.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,vt.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,o;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:o}=r:i=r),this.test({name:o||"matches",message:i||St.string.matches,params:{regex:e},test:a=>(0,vt.default)(a)||a===""&&n||a.search(e)!==-1})}email(e=St.string.email){return this.matches(gI,{name:"email",message:e,excludeEmptyString:!0})}url(e=St.string.url){return this.matches(yI,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=St.string.uuid){return this.matches(TI,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=St.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:SI})}lowercase(e=St.string.lowercase){return this.transform(r=>(0,vt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,vt.default)(r)||r===r.toLowerCase()})}uppercase(e=St.string.uppercase){return this.transform(r=>(0,vt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,vt.default)(r)||r===r.toUpperCase()})}};qi.default=Vi;Lh.prototype=Vi.prototype});var Bh=q(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.create=Fh;Qi.default=void 0;var Mr=Ct(),Fr=Mh(Cn()),_I=Mh(xt());function Mh(t){return t&&t.__esModule?t:{default:t}}s(Mh,"_interopRequireDefault");var OI=s(t=>t!=+t,"isNaN");function Fh(){return new Ki}s(Fh,"create");var Ki=class extends _I.default{static{s(this,"NumberSchema")}constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!OI(e)}min(e,r=Mr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Fr.default)(n)||n>=this.resolve(e)}})}max(e,r=Mr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Fr.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Mr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Fr.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Mr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Fr.default)(n)||n>this.resolve(e)}})}positive(e=Mr.number.positive){return this.moreThan(0,e)}negative(e=Mr.number.negative){return this.lessThan(0,e)}integer(e=Mr.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Fr.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Fr.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Fr.default)(i)?i:Math[e](i))}};Qi.default=Ki;Fh.prototype=Ki.prototype});var Wh=q(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});el.default=wI;var II=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function wI(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=II.exec(t)){for(var o=0,a;a=e[o];++o)i[a]=+i[a]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}s(wI,"parseIsoDate")});var Vh=q(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.create=rl;ji.default=void 0;var DI=na(Wh()),$h=Ct(),Gh=na(Cn()),RI=na(kr()),CI=na(xt());function na(t){return t&&t.__esModule?t:{default:t}}s(na,"_interopRequireDefault");var tl=new Date(""),bI=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function rl(){return new bn}s(rl,"create");var bn=class extends CI.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,DI.default)(e),isNaN(e)?tl:new Date(e))})})}_typeCheck(e){return bI(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(RI.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=$h.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Gh.default)(i)||i>=this.resolve(n)}})}max(e,r=$h.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Gh.default)(i)||i<=this.resolve(n)}})}};ji.default=bn;bn.INVALID_DATE=tl;rl.prototype=bn.prototype;rl.INVALID_DATE=tl});var Kh=q((vM,nl)=>{"use strict";nl.exports=function(t){return qh(xI(t),t)};nl.exports.array=qh;function qh(t,e){var r=t.length,n=new Array(r),i={},o=r,a=vI(e),u=PI(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var p;try{p=", node was:"+JSON.stringify(l)}catch{p=""}throw new Error("Cyclic dependency"+p)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var h=a.get(l)||new Set;if(h=Array.from(h),d=h.length){f.add(l);do{var m=h[--d];c(m,u.get(m),f)}while(d);f.delete(l)}n[--r]=l}}}s(qh,"toposort");function xI(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}s(xI,"uniqueNodes");function vI(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}s(vI,"makeOutgoingEdges");function PI(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(PI,"makeNodesHash")});var Qh=q(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.default=FI;var NI=ia(require("lodash/has")),UI=ia(Kh()),LI=ki(),kI=ia(kr()),MI=ia(Dn());function ia(t){return t&&t.__esModule?t:{default:t}}s(ia,"_interopRequireDefault");function FI(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,LI.split)(o)[0];~n.indexOf(u)||n.push(u),~e.indexOf(`${a}-${u}`)||r.push([a,u])}s(i,"addNode");for(let o in t)if((0,NI.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),kI.default.isRef(a)&&a.isSibling?i(a.path,o):(0,MI.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return UI.default.array(n,r).reverse()}s(FI,"sortFields")});var Yh=q(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.default=BI;function jh(t,e){let r=1/0;return t.some((n,i)=>{var o;if(((o=e.path)==null?void 0:o.indexOf(n))!==-1)return r=i,!0}),r}s(jh,"findIndex");function BI(t){return(e,r)=>jh(t,e)-jh(t,r)}s(BI,"sortByKeyOrder")});var tE=q(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.create=eE;Hi.default=void 0;var Hh=At(require("lodash/has")),zh=At(require("lodash/snakeCase")),WI=At(require("lodash/camelCase")),$I=At(require("lodash/mapKeys")),GI=At(require("lodash/mapValues")),VI=ki(),Jh=Ct(),qI=At(Qh()),Xh=At(Yh()),KI=At(Ho()),QI=At(Ur()),ol=At(xt());function At(t){return t&&t.__esModule?t:{default:t}}s(At,"_interopRequireDefault");function xn(){return xn=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},xn.apply(this,arguments)}s(xn,"_extends");var Zh=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function jI(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(jI,"unknown");var YI=(0,Xh.default)([]),Yi=class extends ol.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=YI,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(s(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null},"coerce")),e&&this.shape(e)})}_typeCheck(e){return Zh(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=xn({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let p=o[f],h=(0,Hh.default)(i,f);if(p){let m,g=i[f];l.path=(r.path?`${r.path}.`:"")+f,p=p.resolve({value:g,context:r.context,parent:c});let y="spec"in p?p.spec:void 0,S=y?.strict;if(y?.strip){d=d||f in i;continue}m=!r.__validating||!S?p.cast(i[f],l):i[f],m!==void 0&&(c[f]=m)}else h&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!QI.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!Zh(f)){n(i[0]||null,f);return}u=u||f;let p=this._nodes.map(h=>(m,g)=>{let y=h.indexOf(".")===-1?(r.path?`${r.path}.`:"")+h:`${r.path||""}["${h}"]`,S=this.fields[h];if(S&&"validate"in S){S.validate(f[h],xn({},r,{path:y,from:a,strict:!0,parent:f,originalValue:u[h]}),g);return}g(null)});(0,KI.default)({sync:o,tests:p,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=xn({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof ol.default&&o instanceof ol.default&&(n[i]=o.concat(a))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,Xh.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let o=r.map(([a,u])=>`${a}-${u}`);n._excludedEdges=n._excludedEdges.concat(o)}return n._nodes=(0,qI.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,VI.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,Hh.default)(o,e)&&(a=xn({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Jh.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let o=jI(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Jh.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,$I.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(WI.default)}snakeCase(){return this.transformKeys(zh.default)}constantCase(){return this.transformKeys(e=>(0,zh.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,GI.default)(this.fields,r=>r.describe()),e}};Hi.default=Yi;function eE(t){return new Yi(t)}s(eE,"create");eE.prototype=Yi.prototype});var nE=q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=rE;Ji.default=void 0;var al=vn(Cn()),HI=vn(Dn()),zI=vn(Li()),ul=Ct(),JI=vn(Ho()),ZI=vn(Ur()),XI=vn(xt());function vn(t){return t&&t.__esModule?t:{default:t}}s(vn,"_interopRequireDefault");function sa(){return sa=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},sa.apply(this,arguments)}s(sa,"_extends");function rE(t){return new zi(t)}s(rE,"create");var zi=class extends XI.default{static{s(this,"ArraySchema")}constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,o=n.map((a,u)=>{let c=this.innerType.cast(a,sa({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(h,m)=>{if(h){if(!ZI.default.isError(h)||d)return void n(h,m);a.push(h)}if(!f||!l||!this._typeCheck(m)){n(a[0]||null,m);return}p=p||m;let g=new Array(m.length);for(let y=0;y<m.length;y++){let S=m[y],O=`${r.path||""}[${y}]`,_=sa({},r,{path:O,strict:!0,parent:m,index:y,originalValue:p[y]});g[y]=(D,T)=>l.validate(S,_,T)}(0,JI.default)({sync:u,path:c,value:m,errors:a,endEarly:d,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,HI.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,zI.default)(e));return r.innerType=e,r}length(e,r=ul.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,al.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ul.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,al.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ul.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,al.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,o)=>!e(n,i,o):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Ji.default=zi;rE.prototype=zi.prototype});var iE=q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=rw;Zi.default=void 0;var ew=tw(Dn());function tw(t){return t&&t.__esModule?t:{default:t}}s(tw,"_interopRequireDefault");function rw(t){return new oa(t)}s(rw,"create");var oa=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,ew.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},nw=oa;Zi.default=nw});var sE=q(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.default=ow;var iw=sw(Ct());function sw(t){return t&&t.__esModule?t:{default:t}}s(sw,"_interopRequireDefault");function ow(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{iw.default[e][r]=t[e][r]})})}s(ow,"setLocale")});var dl=q(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.addMethod=pw;Object.defineProperty(te,"MixedSchema",{enumerable:!0,get:function(){return oE.default}});Object.defineProperty(te,"mixed",{enumerable:!0,get:function(){return oE.create}});Object.defineProperty(te,"BooleanSchema",{enumerable:!0,get:function(){return ll.default}});Object.defineProperty(te,"bool",{enumerable:!0,get:function(){return ll.create}});Object.defineProperty(te,"boolean",{enumerable:!0,get:function(){return ll.create}});Object.defineProperty(te,"StringSchema",{enumerable:!0,get:function(){return aE.default}});Object.defineProperty(te,"string",{enumerable:!0,get:function(){return aE.create}});Object.defineProperty(te,"NumberSchema",{enumerable:!0,get:function(){return uE.default}});Object.defineProperty(te,"number",{enumerable:!0,get:function(){return uE.create}});Object.defineProperty(te,"DateSchema",{enumerable:!0,get:function(){return cE.default}});Object.defineProperty(te,"date",{enumerable:!0,get:function(){return cE.create}});Object.defineProperty(te,"ObjectSchema",{enumerable:!0,get:function(){return lE.default}});Object.defineProperty(te,"object",{enumerable:!0,get:function(){return lE.create}});Object.defineProperty(te,"ArraySchema",{enumerable:!0,get:function(){return dE.default}});Object.defineProperty(te,"array",{enumerable:!0,get:function(){return dE.create}});Object.defineProperty(te,"ref",{enumerable:!0,get:function(){return aw.create}});Object.defineProperty(te,"lazy",{enumerable:!0,get:function(){return uw.create}});Object.defineProperty(te,"ValidationError",{enumerable:!0,get:function(){return cw.default}});Object.defineProperty(te,"reach",{enumerable:!0,get:function(){return lw.default}});Object.defineProperty(te,"isSchema",{enumerable:!0,get:function(){return fE.default}});Object.defineProperty(te,"setLocale",{enumerable:!0,get:function(){return dw.default}});Object.defineProperty(te,"BaseSchema",{enumerable:!0,get:function(){return fw.default}});var oE=Br(Ch()),ll=Br(Nh()),aE=Br(kh()),uE=Br(Bh()),cE=Br(Vh()),lE=Br(tE()),dE=Br(nE()),aw=kr(),uw=iE(),cw=Xi(Ur()),lw=Xi(Jc()),fE=Xi(Dn()),dw=Xi(sE()),fw=Xi(xt());function Xi(t){return t&&t.__esModule?t:{default:t}}s(Xi,"_interopRequireDefault");function pE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return pE=s(function(){return t},"_getRequireWildcardCache"),t}s(pE,"_getRequireWildcardCache");function Br(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=pE();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Br,"_interopRequireWildcard");function pw(t,e,r){if(!t||!(0,fE.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}s(pw,"addMethod")});var mE=q(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var fl=ml();pl.default=()=>{(0,fl.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,fl.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,fl.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var ml=q(Ae=>{"use strict";var mw=Ae&&Ae.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),hw=Ae&&Ae.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ew=Ae&&Ae.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&mw(e,t,r);return hw(e,t),e},gw=Ae&&Ae.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.validateOptions=Ae.registerOptionPreset=Ae.getOptionPresets=Ae.getOptionPreset=void 0;var R=Ew(dl());dl();var es=it(),yw=gw(mE());st();var Wr={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},hE=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),Tw=s(t=>Wr[t]?(0,es.valid)(Wr[t]):(0,es.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=Tw;var Sw=s(()=>Wr,"getOptionPresets");Ae.getOptionPresets=Sw;var Aw=s((t,e)=>{Wr[t]=hE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=Aw;var _w=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,p,h,m,g,y,S,O,_,D;try{(0,yw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Wr[t.preset])return(0,es.err)([`Option preset ${t.preset} does not exist.`]);T=Wr[t.preset]}else T=t.preset;else T=Wr.default;let I=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=T.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=T.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=T.seconds.lowerLimit)!==null&&u!==void 0?u:T.seconds.minValue,upperLimit:(c=T.seconds.upperLimit)!==null&&c!==void 0?c:T.seconds.maxValue},minutes:{lowerLimit:(l=T.minutes.lowerLimit)!==null&&l!==void 0?l:T.minutes.minValue,upperLimit:(d=T.minutes.upperLimit)!==null&&d!==void 0?d:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f:T.hours.minValue,upperLimit:(p=T.hours.upperLimit)!==null&&p!==void 0?p:T.hours.maxValue},daysOfMonth:{lowerLimit:(h=T.daysOfMonth.lowerLimit)!==null&&h!==void 0?h:T.daysOfMonth.minValue,upperLimit:(m=T.daysOfMonth.upperLimit)!==null&&m!==void 0?m:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(y=T.months.upperLimit)!==null&&y!==void 0?y:T.months.maxValue},daysOfWeek:{lowerLimit:(S=T.daysOfWeek.lowerLimit)!==null&&S!==void 0?S:T.daysOfWeek.minValue,upperLimit:(O=T.daysOfWeek.upperLimit)!==null&&O!==void 0?O:T.daysOfWeek.maxValue},years:{lowerLimit:(_=T.years.lowerLimit)!==null&&_!==void 0?_:T.years.minValue,upperLimit:(D=T.years.upperLimit)!==null&&D!==void 0?D:T.years.maxValue}}),t.override),P=R.object({presetId:R.string().required(),preset:hE.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,es.valid)(P)}catch(T){return(0,es.err)(T.errors)}},"validateOptions");Ae.validateOptions=_w});var Tt=q((ts,El)=>{"use strict";var Gr=ts&&ts.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ts,"__esModule",{value:!0});var $r=it(),Ow=Gr(qm()),Iw=Gr(Km()),ww=Gr(Qm()),Dw=Gr(jm()),Rw=Gr(Ym()),Cw=Gr(Hm()),bw=Gr(zm()),xw=ml();st();var vw=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,$r.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,$r.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,$r.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,$r.valid)(n)},"splitCronString"),hl=s((t,e={})=>{let r=(0,xw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=vw(t,n);if(i.isError())return(0,$r.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,Ow.default)(o,n)),a.push((0,Iw.default)(o,n)),a.push((0,ww.default)(o,n)),a.push((0,Dw.default)(o,n)),a.push((0,Rw.default)(o,n)),a.push((0,Cw.default)(o,n)),n.useYears&&a.push((0,bw.default)(o,n)),a.every(c=>c.isValid()))return(0,$r.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,$r.err)(u)},"cron");ts.default=hl;El.exports=hl;El.exports.default=hl});var Kg=q(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});var Nt=class extends Error{static{s(this,"LuxonError")}},Dl=class extends Nt{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Rl=class extends Nt{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Cl=class extends Nt{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},nr=class extends Nt{static{s(this,"ConflictingSpecificationError")}},ma=class extends Nt{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends Nt{static{s(this,"InvalidArgumentError")}},_t=class extends Nt{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},x="numeric",ct="short",We="long",ha={year:x,month:x,day:x},QE={year:x,month:ct,day:x},Pw={year:x,month:ct,day:x,weekday:ct},jE={year:x,month:We,day:x},YE={year:x,month:We,day:x,weekday:We},HE={hour:x,minute:x},zE={hour:x,minute:x,second:x},JE={hour:x,minute:x,second:x,timeZoneName:ct},ZE={hour:x,minute:x,second:x,timeZoneName:We},XE={hour:x,minute:x,hourCycle:"h23"},eg={hour:x,minute:x,second:x,hourCycle:"h23"},tg={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:ct},rg={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:We},ng={year:x,month:x,day:x,hour:x,minute:x},ig={year:x,month:x,day:x,hour:x,minute:x,second:x},sg={year:x,month:ct,day:x,hour:x,minute:x},og={year:x,month:ct,day:x,hour:x,minute:x,second:x},Nw={year:x,month:ct,day:x,weekday:ct,hour:x,minute:x},ag={year:x,month:We,day:x,hour:x,minute:x,timeZoneName:ct},ug={year:x,month:We,day:x,hour:x,minute:x,second:x,timeZoneName:ct},cg={year:x,month:We,day:x,weekday:We,hour:x,minute:x,timeZoneName:We},lg={year:x,month:We,day:x,weekday:We,hour:x,minute:x,second:x,timeZoneName:We},sr=class{static{s(this,"Zone")}get type(){throw new _t}get name(){throw new _t}get ianaName(){return this.name}get isUniversal(){throw new _t}offsetName(e,r){throw new _t}formatOffset(e,r){throw new _t}offset(e){throw new _t}equals(e){throw new _t}get isValid(){throw new _t}},gl=null,as=class t extends sr{static{s(this,"SystemZone")}static get instance(){return gl===null&&(gl=new t),gl}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return Ag(e,r,n)}formatOffset(e,r){return os(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},bl=new Map;function Uw(t){let e=bl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),bl.set(t,e)),e}s(Uw,"makeDTF");var Lw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function kw(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,o,a,u,c,l,d]=n;return[a,i,o,u,c,l,d]}s(kw,"hackyOffset");function Mw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=Lw[o];o==="era"?n[u]=a:Q(u)||(n[u]=parseInt(a,10))}return n}s(Mw,"partsOffset");var yl=new Map,Ut=class t extends sr{static{s(this,"IANAZone")}static create(e){let r=yl.get(e);return r===void 0&&yl.set(e,r=new t(e)),r}static resetCache(){yl.clear(),bl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return Ag(e,r,n,this.name)}formatOffset(e,r){return os(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=Uw(this.name),[i,o,a,u,c,l,d]=n.formatToParts?Mw(n,r):kw(n,r);u==="BC"&&(i=-Math.abs(i)+1);let p=_a({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),h=+r,m=h%1e3;return h-=m>=0?m:1e3+m,(p-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},EE={};function Fw(t,e={}){let r=JSON.stringify([t,e]),n=EE[r];return n||(n=new Intl.ListFormat(t,e),EE[r]=n),n}s(Fw,"getCachedLF");var xl=new Map;function vl(t,e={}){let r=JSON.stringify([t,e]),n=xl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),xl.set(r,n)),n}s(vl,"getCachedDTF");var Pl=new Map;function Bw(t,e={}){let r=JSON.stringify([t,e]),n=Pl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Pl.set(r,n)),n}s(Bw,"getCachedINF");var Nl=new Map;function Ww(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=Nl.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),Nl.set(i,o)),o}s(Ww,"getCachedRTF");var ns=null;function $w(){return ns||(ns=new Intl.DateTimeFormat().resolvedOptions().locale,ns)}s($w,"systemLocale");var Ul=new Map;function dg(t){let e=Ul.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Ul.set(t,e)),e}s(dg,"getCachedIntResolvedOptions");var Ll=new Map;function Gw(t){let e=Ll.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...fg,...e}),Ll.set(t,e)}return e}s(Gw,"getCachedWeekInfo");function Vw(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=vl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=vl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(Vw,"parseLocaleString");function qw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(qw,"intlConfigString");function Kw(t){let e=[];for(let r=1;r<=12;r++){let n=oe.utc(2009,r,1);e.push(t(n))}return e}s(Kw,"mapMonths");function Qw(t){let e=[];for(let r=1;r<=7;r++){let n=oe.utc(2016,11,13+r);e.push(t(n))}return e}s(Qw,"mapWeekdays");function aa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(aa,"listStuff");function jw(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||dg(t.locale).numberingSystem==="latn"}s(jw,"supportsFastNumbers");var kl=class{static{s(this,"PolyNumberFormatter")}constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:o,...a}=n;if(!r||Object.keys(a).length>0){let u={useGrouping:!1,...n};n.padTo>0&&(u.minimumIntegerDigits=n.padTo),this.inf=Bw(e,u)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):jl(e,3);return pe(r,this.padTo)}}},Ml=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Ut.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=vl(r,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Fl=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&Tg()&&(this.rtf=Ww(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):mD(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},fg={firstDay:1,minimalDays:4,weekend:[6,7]},ee=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||re.defaultLocale,u=a||(o?"en-US":$w()),c=r||re.defaultNumberingSystem,l=n||re.defaultOutputCalendar,d=Wl(i)||re.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){ns=null,xl.clear(),Pl.clear(),Nl.clear(),Ul.clear(),Ll.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,o){let[a,u,c]=Vw(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=qw(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=jw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Wl(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return aa(this,e,Ig,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},o=r?"format":"standalone";if(!this.monthsCache[o][e]){let a=n?u=>this.dtFormatter(u,i).format():u=>this.extract(u,i,"month");this.monthsCache[o][e]=Kw(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return aa(this,e,Rg,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=Qw(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return aa(this,void 0,()=>Cg,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[oe.utc(2016,11,13,9),oe.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return aa(this,e,bg,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[oe.utc(-40,1,1),oe.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new kl(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Ml(e,this.intl,r)}relFormatter(e={}){return new Fl(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Fw(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||dg(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Sg()?Gw(this.locale):fg}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Tl=null,$e=class t extends sr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Tl===null&&(Tl=new t(0)),Tl}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Oa(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${os(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${os(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return os(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Ea=class extends sr{static{s(this,"InvalidZone")}constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function rr(t,e){if(Q(t)||t===null)return e;if(t instanceof sr)return t;if(Xw(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?as.instance:r==="utc"||r==="gmt"?$e.utcInstance:$e.parseSpecifier(r)||Ut.create(t)}else return ir(t)?$e.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Ea(t)}s(rr,"normalizeZone");var Vl={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},gE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Yw=Vl.hanidec.replace(/[\[|\]]/g,"").split("");function Hw(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(Vl.hanidec)!==-1)e+=Yw.indexOf(t[r]);else for(let i in gE){let[o,a]=gE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(Hw,"parseDigits");var Bl=new Map;function zw(){Bl.clear()}s(zw,"resetDigitRegexCache");function at({numberingSystem:t},e=""){let r=t||"latn",n=Bl.get(r);n===void 0&&(n=new Map,Bl.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${Vl[r]}${e}`),n.set(e,i)),i}s(at,"digitRegex");var yE=s(()=>Date.now(),"now"),TE="system",SE=null,AE=null,_E=null,OE=60,IE,wE=null,re=class{static{s(this,"Settings")}static get now(){return yE}static set now(e){yE=e}static set defaultZone(e){TE=e}static get defaultZone(){return rr(TE,as.instance)}static get defaultLocale(){return SE}static set defaultLocale(e){SE=e}static get defaultNumberingSystem(){return AE}static set defaultNumberingSystem(e){AE=e}static get defaultOutputCalendar(){return _E}static set defaultOutputCalendar(e){_E=e}static get defaultWeekSettings(){return wE}static set defaultWeekSettings(e){wE=Wl(e)}static get twoDigitCutoffYear(){return OE}static set twoDigitCutoffYear(e){OE=e%100}static get throwOnInvalid(){return IE}static set throwOnInvalid(e){IE=e}static resetCaches(){ee.resetCache(),Ut.resetCache(),oe.resetCache(),zw()}},Be=class{static{s(this,"Invalid")}constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},pg=[0,31,59,90,120,151,181,212,243,273,304,334],mg=[0,31,60,91,121,152,182,213,244,274,305,335];function Ye(t,e){return new Be("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(Ye,"unitOutOfRange");function ql(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}s(ql,"dayOfWeek");function hg(t,e,r){return r+(cs(t)?mg:pg)[e-1]}s(hg,"computeOrdinal");function Eg(t,e){let r=cs(t)?mg:pg,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(Eg,"uncomputeOrdinal");function Kl(t,e){return(t-e+7)%7+1}s(Kl,"isoWeekdayToLocal");function ga(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=hg(n,i,o),u=Kl(ql(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=us(l,e,r)):c>us(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...Ia(t)}}s(ga,"gregorianToWeek");function DE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=Kl(ql(n,1,e),r),u=Ln(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Ln(l)):c>u?(l=n+1,c-=Ln(n)):l=n;let{month:d,day:f}=Eg(l,c);return{year:l,month:d,day:f,...Ia(t)}}s(DE,"weekToGregorian");function Sl(t){let{year:e,month:r,day:n}=t,i=hg(e,r,n);return{year:e,ordinal:i,...Ia(t)}}s(Sl,"gregorianToOrdinal");function RE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=Eg(e,r);return{year:e,month:n,day:i,...Ia(t)}}s(RE,"ordinalToGregorian");function CE(t,e){if(!Q(t.localWeekday)||!Q(t.localWeekNumber)||!Q(t.localWeekYear)){if(!Q(t.weekday)||!Q(t.weekNumber)||!Q(t.weekYear))throw new nr("Cannot mix locale-based week fields with ISO-based week fields");return Q(t.localWeekday)||(t.weekday=t.localWeekday),Q(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Q(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(CE,"usesLocalWeekValues");function Jw(t,e=4,r=1){let n=Aa(t.weekYear),i=He(t.weekNumber,1,us(t.weekYear,e,r)),o=He(t.weekday,1,7);return n?i?o?!1:Ye("weekday",t.weekday):Ye("week",t.weekNumber):Ye("weekYear",t.weekYear)}s(Jw,"hasInvalidWeekData");function Zw(t){let e=Aa(t.year),r=He(t.ordinal,1,Ln(t.year));return e?r?!1:Ye("ordinal",t.ordinal):Ye("year",t.year)}s(Zw,"hasInvalidOrdinalData");function gg(t){let e=Aa(t.year),r=He(t.month,1,12),n=He(t.day,1,ya(t.year,t.month));return e?r?n?!1:Ye("day",t.day):Ye("month",t.month):Ye("year",t.year)}s(gg,"hasInvalidGregorianData");function yg(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=He(e,0,23)||e===24&&r===0&&n===0&&i===0,a=He(r,0,59),u=He(n,0,59),c=He(i,0,999);return o?a?u?c?!1:Ye("millisecond",i):Ye("second",n):Ye("minute",r):Ye("hour",e)}s(yg,"hasInvalidTimeData");function Q(t){return typeof t>"u"}s(Q,"isUndefined");function ir(t){return typeof t=="number"}s(ir,"isNumber");function Aa(t){return typeof t=="number"&&t%1===0}s(Aa,"isInteger");function Xw(t){return typeof t=="string"}s(Xw,"isString");function eD(t){return Object.prototype.toString.call(t)==="[object Date]"}s(eD,"isDate");function Tg(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(Tg,"hasRelative");function Sg(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(Sg,"hasLocaleWeekInfo");function tD(t){return Array.isArray(t)?t:[t]}s(tD,"maybeArray");function bE(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let o=[e(i),i];return n&&r(n[0],o[0])===n[0]?n:o},null)[1]}s(bE,"bestBy");function rD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(rD,"pick");function Mn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s(Mn,"hasOwnProperty");function Wl(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!He(t.firstDay,1,7)||!He(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!He(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(Wl,"validateWeekSettings");function He(t,e,r){return Aa(t)&&t>=e&&t<=r}s(He,"integerBetween");function nD(t,e){return t-e*Math.floor(t/e)}s(nD,"floorMod");function pe(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(pe,"padStart");function tr(t){if(!(Q(t)||t===null||t===""))return parseInt(t,10)}s(tr,"parseInteger");function Vr(t){if(!(Q(t)||t===null||t===""))return parseFloat(t)}s(Vr,"parseFloating");function Ql(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(Ql,"parseMillis");function jl(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}s(jl,"roundTo");function cs(t){return t%4===0&&(t%100!==0||t%400===0)}s(cs,"isLeapYear");function Ln(t){return cs(t)?366:365}s(Ln,"daysInYear");function ya(t,e){let r=nD(e-1,12)+1,n=t+(e-r)/12;return r===2?cs(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(ya,"daysInMonth");function _a(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(_a,"objToLocalTS");function xE(t,e,r){return-Kl(ql(t,1,e),r)+e-1}s(xE,"firstWeekOffset");function us(t,e=4,r=1){let n=xE(t,e,r),i=xE(t+1,e,r);return(Ln(t)-n+i)/7}s(us,"weeksInWeekYear");function $l(t){return t>99?t:t>re.twoDigitCutoffYear?1900+t:2e3+t}s($l,"untruncateYear");function Ag(t,e,r,n=null){let i=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(o.timeZone=n);let a={timeZoneName:e,...o},u=new Intl.DateTimeFormat(r,a).formatToParts(i).find(c=>c.type.toLowerCase()==="timezonename");return u?u.value:null}s(Ag,"parseZoneInfo");function Oa(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}s(Oa,"signedOffset");function _g(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(_g,"asNumber");function Ta(t,e){let r={};for(let n in t)if(Mn(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=_g(i)}return r}s(Ta,"normalizeObject");function os(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${pe(r,2)}:${pe(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${pe(r,2)}${pe(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(os,"formatOffset");function Ia(t){return rD(t,["hour","minute","second","millisecond"])}s(Ia,"timeObject");var iD=["January","February","March","April","May","June","July","August","September","October","November","December"],Og=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],sD=["J","F","M","A","M","J","J","A","S","O","N","D"];function Ig(t){switch(t){case"narrow":return[...sD];case"short":return[...Og];case"long":return[...iD];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}s(Ig,"months");var wg=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Dg=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],oD=["M","T","W","T","F","S","S"];function Rg(t){switch(t){case"narrow":return[...oD];case"short":return[...Dg];case"long":return[...wg];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(Rg,"weekdays");var Cg=["AM","PM"],aD=["Before Christ","Anno Domini"],uD=["BC","AD"],cD=["B","A"];function bg(t){switch(t){case"narrow":return[...cD];case"short":return[...uD];case"long":return[...aD];default:return null}}s(bg,"eras");function lD(t){return Cg[t.hour<12?0:1]}s(lD,"meridiemForDateTime");function dD(t,e){return Rg(e)[t.weekday-1]}s(dD,"weekdayForDateTime");function fD(t,e){return Ig(e)[t.month-1]}s(fD,"monthForDateTime");function pD(t,e){return bg(e)[t.year<0?0:1]}s(pD,"eraForDateTime");function mD(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&o){let f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}let a=Object.is(e,-0)||e<0,u=Math.abs(e),c=u===1,l=i[t],d=n?c?l[1]:l[2]||l[1]:c?i[t][0]:t;return a?`${u} ${d} ago`:`in ${u} ${d}`}s(mD,"formatRelativeTime");function vE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(vE,"stringifyTokens");var hD={D:ha,DD:QE,DDD:jE,DDDD:YE,t:HE,tt:zE,ttt:JE,tttt:ZE,T:XE,TT:eg,TTT:tg,TTTT:rg,f:ng,ff:sg,fff:ag,ffff:cg,F:ig,FF:og,FFF:ug,FFFF:lg},Fe=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return hD[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return pe(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=s((h,m)=>this.loc.extract(e,h,m),"string"),a=s(h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"","formatOffset"),u=s(()=>n?lD(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((h,m)=>n?fD(e,h):o(m?{month:h}:{month:h,day:"numeric"},"month"),"month"),l=s((h,m)=>n?dD(e,h):o(m?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(h=>{let m=t.macroTokenToFormatOpts(h);return m?this.formatWithSystemDefault(e,m):h},"maybeMacro"),f=s(h=>n?pD(e,h):o({era:h},"era"),"era"),p=s(h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(h)}},"tokenToString");return vE(t.parseFormat(r),p)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>p=>{let h=i(p);if(h){let m=f.isNegativeDuration&&h!==f.largestUnit?n:1,g;return this.opts.signMode==="negativeLargestOnly"&&h!==f.largestUnit?g="never":this.opts.signMode==="all"?g="always":g="auto",this.num(d.get(h)*m,p.length,g)}else return p},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return vE(a,o(c,l))}},xg=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Fn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Fn,"combineRegexes");function Bn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(Bn,"combineExtractors");function Wn(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}s(Wn,"parse");function vg(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=tr(e[r+i]);return[n,null,r+i]}}s(vg,"simpleParse");var Pg=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,ED=`(?:${Pg.source}?(?:\\[(${xg.source})\\])?)?`,Yl=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ng=RegExp(`${Yl.source}${ED}`),Hl=RegExp(`(?:[Tt]${Ng.source})?`),gD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,yD=/(\d{4})-?W(\d\d)(?:-?(\d))?/,TD=/(\d{4})-?(\d{3})/,SD=vg("weekYear","weekNumber","weekDay"),AD=vg("year","ordinal"),_D=/(\d{4})-(\d\d)-(\d\d)/,Ug=RegExp(`${Yl.source} ?(?:${Pg.source}|(${xg.source}))?`),OD=RegExp(`(?: ${Ug.source})?`);function kn(t,e,r){let n=t[e];return Q(n)?r:tr(n)}s(kn,"int");function ID(t,e){return[{year:kn(t,e),month:kn(t,e+1,1),day:kn(t,e+2,1)},null,e+3]}s(ID,"extractISOYmd");function $n(t,e){return[{hours:kn(t,e,0),minutes:kn(t,e+1,0),seconds:kn(t,e+2,0),milliseconds:Ql(t[e+3])},null,e+4]}s($n,"extractISOTime");function ls(t,e){let r=!t[e]&&!t[e+1],n=Oa(t[e+1],t[e+2]),i=r?null:$e.instance(n);return[{},i,e+3]}s(ls,"extractISOOffset");function ds(t,e){let r=t[e]?Ut.create(t[e]):null;return[{},r,e+1]}s(ds,"extractIANAZone");var wD=RegExp(`^T?${Yl.source}$`),DD=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function RD(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",p=s((h,m=!1)=>h!==void 0&&(m||h&&d)?-h:h,"maybeNegate");return[{years:p(Vr(r)),months:p(Vr(n)),weeks:p(Vr(i)),days:p(Vr(o)),hours:p(Vr(a)),minutes:p(Vr(u)),seconds:p(Vr(c),c==="-0"),milliseconds:p(Ql(l),f)}]}s(RD,"extractISODuration");var CD={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function zl(t,e,r,n,i,o,a){let u={year:e.length===2?$l(tr(e)):tr(e),month:Og.indexOf(r)+1,day:tr(n),hour:tr(i),minute:tr(o)};return a&&(u.second=tr(a)),t&&(u.weekday=t.length>3?wg.indexOf(t)+1:Dg.indexOf(t)+1),u}s(zl,"fromStrings");var bD=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function xD(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,p=zl(e,i,n,r,o,a,u),h;return c?h=CD[c]:l?h=0:h=Oa(d,f),[p,new $e(h)]}s(xD,"extractRFC2822");function vD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(vD,"preprocessRFC2822");var PD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,ND=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,UD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function PE(t){let[,e,r,n,i,o,a,u]=t;return[zl(e,i,n,r,o,a,u),$e.utcInstance]}s(PE,"extractRFC1123Or850");function LD(t){let[,e,r,n,i,o,a,u]=t;return[zl(e,u,r,n,i,o,a),$e.utcInstance]}s(LD,"extractASCII");var kD=Fn(gD,Hl),MD=Fn(yD,Hl),FD=Fn(TD,Hl),BD=Fn(Ng),Lg=Bn(ID,$n,ls,ds),WD=Bn(SD,$n,ls,ds),$D=Bn(AD,$n,ls,ds),GD=Bn($n,ls,ds);function VD(t){return Wn(t,[kD,Lg],[MD,WD],[FD,$D],[BD,GD])}s(VD,"parseISODate");function qD(t){return Wn(vD(t),[bD,xD])}s(qD,"parseRFC2822Date");function KD(t){return Wn(t,[PD,PE],[ND,PE],[UD,LD])}s(KD,"parseHTTPDate");function QD(t){return Wn(t,[DD,RD])}s(QD,"parseISODuration");var jD=Bn($n);function YD(t){return Wn(t,[wD,jD])}s(YD,"parseISOTimeOnly");var HD=Fn(_D,OD),zD=Fn(Ug),JD=Bn($n,ls,ds);function ZD(t){return Wn(t,[HD,Lg],[zD,JD])}s(ZD,"parseSQL");var NE="Invalid Duration",kg={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},XD={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...kg},je=146097/400,Pn=146097/4800,eR={years:{quarters:4,months:12,weeks:je/7,days:je,hours:je*24,minutes:je*24*60,seconds:je*24*60*60,milliseconds:je*24*60*60*1e3},quarters:{months:3,weeks:je/28,days:je/4,hours:je*24/4,minutes:je*24*60/4,seconds:je*24*60*60/4,milliseconds:je*24*60*60*1e3/4},months:{weeks:Pn/7,days:Pn,hours:Pn*24,minutes:Pn*24*60,seconds:Pn*24*60*60,milliseconds:Pn*24*60*60*1e3},...kg},Kr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],tR=Kr.slice(0).reverse();function Pt(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new ge(n)}s(Pt,"clone$1");function Mg(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of tR.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(Mg,"durationToMillis");function UE(t,e){let r=Mg(t,e)<0?-1:1;Kr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),Kr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(UE,"normalizeValues");function LE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(LE,"removeZeroes");var ge=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?eR:XD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ee.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Ta(e,t.normalizeUnit),loc:ee.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(ir(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=QD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=YD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Duration is invalid");let n=e instanceof Be?e:new Be(e,r);if(re.throwOnInvalid)throw new Cl(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new ma(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?Fe.create(this.loc,n).formatDurationFromString(this,e):NE}toHuman(e={}){if(!this.isValid)return NE;let r=e.showZeros!==!1,n=Kr.map(i=>{let o=this.values[i];return Q(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=jl(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},oe.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Mg(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Kr)(Mn(r.values,i)||Mn(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Pt(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=_g(e(this.values[n],n));return Pt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Ta(e,t.normalizeUnit)};return Pt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Pt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return UE(this.matrix,e),Pt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=LE(this.normalize().shiftToAll().toObject());return Pt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of Kr)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;ir(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else ir(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return UE(this.matrix,r),Pt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Pt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=LE(this.values);return Pt(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}s(r,"eq");for(let n of Kr)if(!r(this.values[n],e.values[n]))return!1;return!0}},Nn="Invalid Interval";function rR(t,e){return!t||!t.isValid?jr.invalid("missing or invalid start"):!e||!e.isValid?jr.invalid("missing or invalid end"):e<t?jr.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}s(rR,"validateStartEnd");var jr=class t{static{s(this,"Interval")}constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Interval is invalid");let n=e instanceof Be?e:new Be(e,r);if(re.throwOnInvalid)throw new Rl(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=rs(e),i=rs(r),o=rR(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ge.fromDurationLike(r),i=rs(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ge.fromDurationLike(r),i=rs(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=oe.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=oe.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ge.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ge.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(rs).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=ge.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Nn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=ha,r={}){return this.isValid?Fe.create(this.s.loc.clone(r),e).formatInterval(this):Nn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Nn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Nn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Nn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Nn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ge.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Qr=class{static{s(this,"Info")}static hasDST(e=re.defaultZone){let r=oe.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Ut.isValidZone(e)}static normalizeZone(e){return rr(e,re.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||ee.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||ee.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||ee.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||ee.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||ee.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ee.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ee.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ee.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return ee.create(r,null,"gregory").eras(e)}static features(){return{relative:Tg(),localeWeek:Sg()}}};function kE(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ge.fromMillis(n).as("days"))}s(kE,"dayDiff");function nR(t,e,r){let n=[["years",(c,l)=>l.year-c.year],["quarters",(c,l)=>l.quarter-c.quarter+(l.year-c.year)*4],["months",(c,l)=>l.month-c.month+(l.year-c.year)*12],["weeks",(c,l)=>{let d=kE(c,l);return(d-d%7)/7}],["days",kE]],i={},o=t,a,u;for(let[c,l]of n)r.indexOf(c)>=0&&(a=c,i[c]=l(t,e),u=o.plus(i),u>e?(i[c]--,t=o.plus(i),t>e&&(u=t,i[c]--,t=o.plus(i))):t=u);return[t,i,u,a]}s(nR,"highOrderDiffs");function iR(t,e,r,n){let[i,o,a,u]=nR(t,e,r),c=e-i,l=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);l.length===0&&(a<e&&(a=i.plus({[u]:1})),a!==i&&(o[u]=(o[u]||0)+c/(a-i)));let d=ge.fromObject(o,n);return l.length>0?ge.fromMillis(c,n).shiftTo(...l).plus(d):d}s(iR,"diff");var sR="missing Intl.DateTimeFormat.formatToParts support";function X(t,e=r=>r){return{regex:t,deser:([r])=>e(Hw(r))}}s(X,"intUnit");var oR=String.fromCharCode(160),Fg=`[ ${oR}]`,Bg=new RegExp(Fg,"g");function aR(t){return t.replace(/\./g,"\\.?").replace(Bg,Fg)}s(aR,"fixListRegex");function ME(t){return t.replace(/\./g,"").replace(Bg," ").toLowerCase()}s(ME,"stripInsensitivities");function ut(t,e){return t===null?null:{regex:RegExp(t.map(aR).join("|")),deser:([r])=>t.findIndex(n=>ME(r)===ME(n))+e}}s(ut,"oneOf");function FE(t,e){return{regex:t,deser:([,r,n])=>Oa(r,n),groups:e}}s(FE,"offset");function ua(t){return{regex:t,deser:([e])=>e}}s(ua,"simple");function uR(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(uR,"escapeToken");function cR(t,e){let r=at(e),n=at(e,"{2}"),i=at(e,"{3}"),o=at(e,"{4}"),a=at(e,"{6}"),u=at(e,"{1,2}"),c=at(e,"{1,3}"),l=at(e,"{1,6}"),d=at(e,"{1,9}"),f=at(e,"{2,4}"),p=at(e,"{4,6}"),h=s(y=>({regex:RegExp(uR(y.val)),deser:([S])=>S,literal:!0}),"literal"),g=s(y=>{if(t.literal)return h(y);switch(y.val){case"G":return ut(e.eras("short"),0);case"GG":return ut(e.eras("long"),0);case"y":return X(l);case"yy":return X(f,$l);case"yyyy":return X(o);case"yyyyy":return X(p);case"yyyyyy":return X(a);case"M":return X(u);case"MM":return X(n);case"MMM":return ut(e.months("short",!0),1);case"MMMM":return ut(e.months("long",!0),1);case"L":return X(u);case"LL":return X(n);case"LLL":return ut(e.months("short",!1),1);case"LLLL":return ut(e.months("long",!1),1);case"d":return X(u);case"dd":return X(n);case"o":return X(c);case"ooo":return X(i);case"HH":return X(n);case"H":return X(u);case"hh":return X(n);case"h":return X(u);case"mm":return X(n);case"m":return X(u);case"q":return X(u);case"qq":return X(n);case"s":return X(u);case"ss":return X(n);case"S":return X(c);case"SSS":return X(i);case"u":return ua(d);case"uu":return ua(u);case"uuu":return X(r);case"a":return ut(e.meridiems(),0);case"kkkk":return X(o);case"kk":return X(f,$l);case"W":return X(u);case"WW":return X(n);case"E":case"c":return X(r);case"EEE":return ut(e.weekdays("short",!1),1);case"EEEE":return ut(e.weekdays("long",!1),1);case"ccc":return ut(e.weekdays("short",!0),1);case"cccc":return ut(e.weekdays("long",!0),1);case"Z":case"ZZ":return FE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return FE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ua(/[a-z_+-/]{1,256}?/i);case" ":return ua(/[^\S\n\r]/);default:return h(y)}},"unitate")(t)||{invalidReason:sR};return g.token=t,g}s(cR,"unitForToken");var lR={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function dR(t,e,r){let{type:n,value:i}=t;if(n==="literal"){let c=/^\s+$/.test(i);return{literal:!c,val:c?" ":i}}let o=e[n],a=n;n==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=r.hour12?"hour12":"hour24");let u=lR[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(dR,"tokenForPart");function fR(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(fR,"buildRegex");function pR(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if(Mn(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s(pR,"match");function mR(t){let e=s(o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},"toField"),r=null,n;return Q(t.z)||(r=Ut.create(t.z)),Q(t.Z)||(r||(r=new $e(t.Z)),n=t.Z),Q(t.q)||(t.M=(t.q-1)*3+1),Q(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),Q(t.u)||(t.S=Ql(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s(mR,"dateTimeFromMatches");var Al=null;function hR(){return Al||(Al=oe.fromMillis(1555555555555)),Al}s(hR,"getDummyDateTime");function ER(t,e){if(t.literal)return t;let r=Fe.macroTokenToFormatOpts(t.val),n=Gg(r,e);return n==null||n.includes(void 0)?t:n}s(ER,"maybeExpandMacroToken");function Wg(t,e){return Array.prototype.concat(...t.map(r=>ER(r,e)))}s(Wg,"expandMacroTokens");var Sa=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=Wg(Fe.parseFormat(r),e),this.units=this.tokens.map(n=>cR(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=fR(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=pR(e,this.regex,this.handlers),[i,o,a]=n?mR(n):[null,null,void 0];if(Mn(n,"a")&&Mn(n,"H"))throw new nr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function $g(t,e,r){return new Sa(t,r).explainFromTokens(e)}s($g,"explainFromTokens");function gR(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=$g(t,e,r);return[n,i,o,a]}s(gR,"parseFromTokens");function Gg(t,e){if(!t)return null;let n=Fe.create(e,t).dtFormatter(hR()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>dR(a,t,o))}s(Gg,"formatOptsToTokens");var _l="Invalid DateTime",BE=864e13;function is(t){return new Be("unsupported zone",`the zone "${t.name}" is not supported`)}s(is,"unsupportedZone");function Ol(t){return t.weekData===null&&(t.weekData=ga(t.c)),t.weekData}s(Ol,"possiblyCachedWeekData");function Il(t){return t.localWeekData===null&&(t.localWeekData=ga(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(Il,"possiblyCachedLocalWeekData");function qr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new oe({...r,...e,old:r})}s(qr,"clone");function Vg(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let o=r.offset(n);return i===o?[n,i]:[t-Math.min(i,o)*60*1e3,Math.max(i,o)]}s(Vg,"fixOffset");function ca(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}s(ca,"tsToObj");function da(t,e,r){return Vg(_a(t),e,r)}s(da,"objToTS");function WE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,ya(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=ge.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=_a(o),[c,l]=Vg(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s(WE,"adjustTime");function Un(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=oe.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return oe.invalid(new Be("unparsable",`the input "${i}" can't be parsed as ${n}`))}s(Un,"parseDataToDateTime");function la(t,e,r=!0){return t.isValid?Fe.create(ee.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(la,"toTechFormat");function wl(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=pe(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=pe(t.c.month),r==="month")return i;i+="-"}else if(i+=pe(t.c.month),r==="month")return i;return i+=pe(t.c.day),i}s(wl,"toISODate");function $E(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=pe(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=pe(t.c.minute),a==="minute")break;u&&(c+=":",c+=pe(t.c.second))}else{if(c+=pe(t.c.minute),a==="minute")break;u&&(c+=pe(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=pe(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=pe(Math.trunc(-t.o/60)),c+=":",c+=pe(Math.trunc(-t.o%60))):(c+="+",c+=pe(Math.trunc(t.o/60)),c+=":",c+=pe(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s($E,"toISOTime");var qg={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},yR={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},TR={ordinal:1,hour:0,minute:0,second:0,millisecond:0},fa=["year","month","day","hour","minute","second","millisecond"],SR=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],AR=["year","ordinal","hour","minute","second","millisecond"];function pa(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new ma(t);return e}s(pa,"normalizeUnit");function GE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return pa(t)}}s(GE,"normalizeUnitWithLocalWeeks");function _R(t){if(ss===void 0&&(ss=re.now()),t.type!=="iana")return t.offset(ss);let e=t.name,r=Gl.get(e);return r===void 0&&(r=t.offset(ss),Gl.set(e,r)),r}s(_R,"guessOffsetForZone");function VE(t,e){let r=rr(e.zone,re.defaultZone);if(!r.isValid)return oe.invalid(is(r));let n=ee.fromObject(e),i,o;if(Q(t.year))i=re.now();else{for(let c of fa)Q(t[c])&&(t[c]=qg[c]);let a=gg(t)||yg(t);if(a)return oe.invalid(a);let u=_R(r);[i,o]=da(t,u,r)}return new oe({ts:i,zone:r,loc:n,o})}s(VE,"quickDT");function qE(t,e,r){let n=Q(r.round)?!0:r.round,i=Q(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=jl(u,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(u,c)),"format"),a=s(u=>r.calendary?e.hasSame(t,u)?0:e.startOf(u).diff(t.startOf(u),u).get(u):e.diff(t,u).get(u),"differ");if(r.unit)return o(a(r.unit),r.unit);for(let u of r.units){let c=a(u);if(Math.abs(c)>=1)return o(c,u)}return o(t>e?-0:0,r.units[r.units.length-1])}s(qE,"diffRelative");function KE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}s(KE,"lastOpts");var ss,Gl=new Map,oe=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||re.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Be("invalid input"):null)||(r.isValid?null:is(r));this.ts=Q(e.ts)?re.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=ir(e.o)&&!e.old?e.o:r.offset(this.ts);i=ca(this.ts,u),n=Number.isNaN(i.year)?new Be("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||ee.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=KE(arguments),[n,i,o,a,u,c,l]=r;return VE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=KE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=$e.utcInstance,VE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=eD(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=rr(r.zone,re.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:ee.fromObject(r)}):t.invalid(is(i))}static fromMillis(e,r={}){if(ir(e))return e<-BE||e>BE?t.invalid("Timestamp out of range"):new t({ts:e,zone:rr(r.zone,re.defaultZone),loc:ee.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(ir(e))return new t({ts:e*1e3,zone:rr(r.zone,re.defaultZone),loc:ee.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=rr(r.zone,re.defaultZone);if(!n.isValid)return t.invalid(is(n));let i=ee.fromObject(r),o=Ta(e,GE),{minDaysInFirstWeek:a,startOfWeek:u}=CE(o,i),c=re.now(),l=Q(r.specificOffset)?n.offset(c):r.specificOffset,d=!Q(o.ordinal),f=!Q(o.year),p=!Q(o.month)||!Q(o.day),h=f||p,m=o.weekYear||o.weekNumber;if((h||d)&&m)throw new nr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new nr("Can't mix ordinal dates with month/day");let g=m||o.weekday&&!h,y,S,O=ca(c,l);g?(y=SR,S=yR,O=ga(O,a,u)):d?(y=AR,S=TR,O=Sl(O)):(y=fa,S=qg);let _=!1;for(let Y of y){let Dt=o[Y];Q(Dt)?_?o[Y]=S[Y]:o[Y]=O[Y]:_=!0}let D=g?Jw(o,a,u):d?Zw(o):gg(o),T=D||yg(o);if(T)return t.invalid(T);let I=g?DE(o,a,u):d?RE(o):o,[M,P]=da(I,l,n),k=new t({ts:M,zone:n,o:P,loc:i});return o.weekday&&h&&e.weekday!==k.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${k.toISO()}`):k.isValid?k:t.invalid(k.invalid)}static fromISO(e,r={}){let[n,i]=VD(e);return Un(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=qD(e);return Un(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=KD(e);return Un(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=ee.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=gR(a,e,r);return d?t.invalid(d):Un(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=ZD(e);return Un(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Be?e:new Be(e,r);if(re.throwOnInvalid)throw new Dl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=Gg(e,ee.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return Wg(Fe.parseFormat(e),ee.fromObject(r)).map(i=>i.val).join("")}static resetCache(){ss=void 0,Gl.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Ol(this).weekYear:NaN}get weekNumber(){return this.isValid?Ol(this).weekNumber:NaN}get weekday(){return this.isValid?Ol(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Il(this).weekday:NaN}get localWeekNumber(){return this.isValid?Il(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Il(this).weekYear:NaN}get ordinal(){return this.isValid?Sl(this.c).ordinal:NaN}get monthShort(){return this.isValid?Qr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Qr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Qr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Qr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=_a(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ca(c,a),f=ca(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[qr(this,{ts:c}),qr(this,{ts:l})]:[this]}get isInLeapYear(){return cs(this.year)}get daysInMonth(){return ya(this.year,this.month)}get daysInYear(){return this.isValid?Ln(this.year):NaN}get weeksInWeekYear(){return this.isValid?us(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?us(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=Fe.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone($e.instance(e),r)}toLocal(){return this.setZone(re.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=rr(e,re.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=da(a,o,e)}return qr(this,{ts:i,zone:e})}else return t.invalid(is(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return qr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ta(e,GE),{minDaysInFirstWeek:n,startOfWeek:i}=CE(r,this.loc),o=!Q(r.weekYear)||!Q(r.weekNumber)||!Q(r.weekday),a=!Q(r.ordinal),u=!Q(r.year),c=!Q(r.month)||!Q(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new nr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new nr("Can't mix ordinal dates with month/day");let f;o?f=DE({...ga(this.c,n,i),...r},n,i):Q(r.ordinal)?(f={...this.toObject(),...r},Q(r.day)&&(f.day=Math.min(ya(f.year,f.month),f.day))):f=RE({...Sl(this.c),...r});let[p,h]=da(f,this.o,this.zone);return qr(this,{ts:p,o:h})}plus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e);return qr(this,WE(this,r))}minus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e).negate();return qr(this,WE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ge.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Fe.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):_l}toLocaleString(e=ha,r={}){return this.isValid?Fe.create(this.loc.clone(r),e).formatDateTime(this):_l}toLocaleParts(e={}){return this.isValid?Fe.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=pa(a);let u=e==="extended",c=wl(this,u,a);return fa.indexOf(a)>=3&&(c+="T"),c+=$E(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?wl(this,e==="extended",pa(r)):null}toISOWeekDate(){return la(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:u="milliseconds"}={}){return this.isValid?(u=pa(u),(i&&fa.indexOf(u)>=3?"T":"")+$E(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return la(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return la(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?wl(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),la(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():_l}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return ge.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=tD(r).map(ge.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=iR(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?jr.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),qE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?qE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new _e("min requires all arguments be DateTimes");return bE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return bE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=ee.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return $g(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=ee.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Sa(o,e)}static fromFormatParser(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=ee.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):Un(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return ha}static get DATE_MED(){return QE}static get DATE_MED_WITH_WEEKDAY(){return Pw}static get DATE_FULL(){return jE}static get DATE_HUGE(){return YE}static get TIME_SIMPLE(){return HE}static get TIME_WITH_SECONDS(){return zE}static get TIME_WITH_SHORT_OFFSET(){return JE}static get TIME_WITH_LONG_OFFSET(){return ZE}static get TIME_24_SIMPLE(){return XE}static get TIME_24_WITH_SECONDS(){return eg}static get TIME_24_WITH_SHORT_OFFSET(){return tg}static get TIME_24_WITH_LONG_OFFSET(){return rg}static get DATETIME_SHORT(){return ng}static get DATETIME_SHORT_WITH_SECONDS(){return ig}static get DATETIME_MED(){return sg}static get DATETIME_MED_WITH_SECONDS(){return og}static get DATETIME_MED_WITH_WEEKDAY(){return Nw}static get DATETIME_FULL(){return ag}static get DATETIME_FULL_WITH_SECONDS(){return ug}static get DATETIME_HUGE(){return cg}static get DATETIME_HUGE_WITH_SECONDS(){return lg}};function rs(t){if(oe.isDateTime(t))return t;if(t&&t.valueOf&&ir(t.valueOf()))return oe.fromJSDate(t);if(t&&typeof t=="object")return oe.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(rs,"friendlyDateTime");var OR="3.7.1";Ge.DateTime=oe;Ge.Duration=ge;Ge.FixedOffsetZone=$e;Ge.IANAZone=Ut;Ge.Info=Qr;Ge.Interval=jr;Ge.InvalidZone=Ea;Ge.Settings=re;Ge.SystemZone=as;Ge.VERSION=OR;Ge.Zone=sr});var jg=q((XM,Qg)=>{"use strict";var Yr=Kg();j.prototype.addYear=function(){this._date=this._date.plus({years:1})};j.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};j.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};j.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};j.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};j.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};j.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};j.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.getDate=function(){return this._date.day};j.prototype.getFullYear=function(){return this._date.year};j.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};j.prototype.getMonth=function(){return this._date.month-1};j.prototype.getHours=function(){return this._date.hour};j.prototype.getMinutes=function(){return this._date.minute};j.prototype.getSeconds=function(){return this._date.second};j.prototype.getMilliseconds=function(){return this._date.millisecond};j.prototype.getTime=function(){return this._date.valueOf()};j.prototype.getUTCDate=function(){return this._getUTC().day};j.prototype.getUTCFullYear=function(){return this._getUTC().year};j.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};j.prototype.getUTCMonth=function(){return this._getUTC().month-1};j.prototype.getUTCHours=function(){return this._getUTC().hour};j.prototype.getUTCMinutes=function(){return this._getUTC().minute};j.prototype.getUTCSeconds=function(){return this._getUTC().second};j.prototype.toISOString=function(){return this._date.toUTC().toISO()};j.prototype.toJSON=function(){return this._date.toJSON()};j.prototype.setDate=function(t){this._date=this._date.set({day:t})};j.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};j.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};j.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};j.prototype.setHours=function(t){this._date=this._date.set({hour:t})};j.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};j.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};j.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};j.prototype._getUTC=function(){return this._date.toUTC()};j.prototype.toString=function(){return this.toDate().toString()};j.prototype.toDate=function(){return this._date.toJSDate()};j.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};j.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function j(t,e){var r={zone:e};if(t?t instanceof j?this._date=t._date:t instanceof Date?this._date=Yr.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Yr.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Yr.DateTime.fromISO(t,r),this._date.isValid||(this._date=Yr.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Yr.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Yr.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Yr.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}s(j,"CronDate");Qg.exports=j});var zg=q((tF,Hg)=>{"use strict";function Hr(t){return{start:t,count:1}}s(Hr,"buildRange");function Yg(t,e){t.end=e,t.step=e-t.start,t.count=2}s(Yg,"completeRangeWithItem");function Jl(t,e,r){e&&(e.count===2?(t.push(Hr(e.start)),t.push(Hr(e.end))):t.push(e)),r&&t.push(r)}s(Jl,"finalizeCurrentRange");function IR(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Jl(e,r,Hr(i)),r=void 0):r?r.count===1?Yg(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hr(r.start)),r=Hr(r.end),Yg(r,i)):(Jl(e,r),r=Hr(i)):r=Hr(i)}return Jl(e,r),e}s(IR,"compactField");Hg.exports=IR});var Zg=q((nF,Jg)=>{"use strict";var wR=zg();function DR(t,e,r){var n=wR(t);if(n.length===1){var i=n[0],o=i.step;if(o===1&&i.start===e&&i.end===r)return"*";if(o!==1&&i.start===e&&i.end===r-o+1)return"*/"+o}for(var a=[],u=0,c=n.length;u<c;++u){var l=n[u];if(l.count===1){a.push(l.start);continue}var o=l.step;if(l.step===1){a.push(l.start+"-"+l.end);continue}var d=l.start==0?l.count-1:l.count;l.step*d>l.end?a=a.concat(Array.from({length:l.end-l.start+1}).map(function(p,h){var m=l.start+h;return(m-l.start)%l.step===0?m:null}).filter(function(p){return p!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(DR,"stringifyField");Jg.exports=DR});var ty=q((sF,ey)=>{"use strict";var zr=jg(),RR=Zg(),Xg=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new zr(e.currentDate,this._tz),this._startDate=e.startDate?new zr(e.startDate,this._tz):null,this._endDate=e.endDate?new zr(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}s(U,"CronExpression");U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");U._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(m){if(m instanceof Array)for(var g=0,y=m.length;g<y;g++){var S=m[g];if(U._isValidConstraintChar(n,S)){l.push(S);continue}if(typeof S!="number"||Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);l.push(S)}else{if(U._isValidConstraintChar(n,m)){l.push(m);return}var O=+m;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+m+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),l.push(O)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(m){return m.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var p=0,h=f.length;p<h;p++)d(a(f[p]));else d(a(c));return l.sort(U._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var p=+f[0],h=+f[1];if(Number.isNaN(p)||Number.isNaN(h)||p<n.min||h>n.max)throw new Error("Constraint error, got range "+p+"-"+h+" expected range "+n.min+"-"+n.max);if(p>h)throw new Error("Invalid range: "+c);var m=+l;if(Number.isNaN(m)||m<=0)throw new Error("Constraint error, cannot repeat at every "+m+" time.");e==="dayOfWeek"&&h%7===0&&d.push(0);for(var g=p,y=h;g<=y;g++){var S=d.indexOf(g)!==-1;!S&&m>0&&m%l===0?(m=1,d.push(g)):m++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};U.prototype._findSchedule=s(function(e){function r(S,O){for(var _=0,D=O.length;_<D;_++)if(O[_]>=S)return O[_]===S;return O[0]===S}s(r,"matchSchedule");function n(S,O){if(O<6){if(S.getDate()<8&&O===1)return!0;var _=S.getDate()%7?1:0,D=S.getDate()-S.getDate()%7,T=Math.floor(D/7)+_;return T===O}return!1}s(n,"isNthDayMatch");function i(S){return S.length>0&&S.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new zr(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(S){return S.some(function(O){if(!i([O]))return!1;var _=Number.parseInt(O[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+O);return a.getDay()===_&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<Xg;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var p=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||a.isLastDayOfMonth());var h=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(h=h||f(this.fields.dayOfWeek));var m=this.fields.dayOfMonth.length>=U.daysInMonth[a.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,y=a.getHours();if(!p&&(!h||g)){this._applyTimezoneShift(a,o,"Day");continue}if(!m&&g&&!p){this._applyTimezoneShift(a,o,"Day");continue}if(m&&!g&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(y,this.fields.hour)){if(this._dstEnd===y&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==y){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(y-1,this.fields.hour)){a[o+"Hour"]();continue}if(!r(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,o,"Minute");continue}if(!r(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,o,"Second");continue}if(l===a.getTime()){o==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,o,"Second"):a.setMilliseconds(0);continue}break}if(d>=Xg)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new zr(a,this._tz),this._hasIterated=!0,a},"_findSchedule");U.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");U.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");U.prototype.reset=s(function(e){this._currentDate=new zr(e||this._options.currentDate)},"reset");U.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var o=U.map[n],a=this.fields[o],u=U.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(RR(a,u.min,u.max))}return r.join(" ")},"stringify");U.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new zr(void 0,n._tz)),U.predefined[o]&&(o=U.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=U.map.length-c.length,d=0,f=U.map.length;d<f;++d){var p=U.map[d],h=c[c.length>f?d:d-l];if(d<l||!h)u.push(U._parseField(p,U.parseDefaults[d],U.constraints[d]));else{var m=p==="dayOfWeek"?O(h):h;u.push(U._parseField(p,m,U.constraints[d]))}}for(var g={},d=0,f=U.map.length;d<f;d++){var y=U.map[d];g[y]=u[d]}var S=U._handleMaxDaysInMonth(g);return g.dayOfMonth=S||g.dayOfMonth,new U(g,a);function O(_){var D=_.split("#");if(D.length>1){var T=+D[D.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(D.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=T,D[0]}return _}s(O,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");U.fieldsToExpression=s(function(e,r){function n(p,h,m){if(!h)throw new Error("Validation error, Field "+p+" is missing");if(h.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,y=h.length;g<y;g++){var S=h[g];if(!U._isValidConstraintChar(m,S)&&(typeof S!="number"||Number.isNaN(S)||S<m.min||S>m.max))throw new Error("Constraint error, got value "+S+" expected range "+m.min+"-"+m.max)}}s(n,"validateConstraints");for(var i={},o=0,a=U.map.length;o<a;++o){var u=U.map[o],c=e[u];n(u,c,U.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(U._sortCompareFn).filter(function(p,h,m){return!h||p!==m[h-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=U._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new U(i,r||{})},"fieldsToExpression");ey.exports=U});var ny=q((aF,ry)=>{"use strict";var wa=ty();function or(){}s(or,"CronParser");or._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:wa.parse(e)};if(r.length>6)return{interval:wa.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");or.parseExpression=s(function(e,r){return wa.parse(e,r)},"parseExpression");or.fieldsToExpression=s(function(e,r){return wa.fieldsToExpression(e,r)},"fieldsToExpression");or.parseString=s(function(e){for(var r=e.split(`
5
- `),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=or._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");or.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,or.parseString(i.toString()))})},"parseFile");ry.exports=or});var _0={};N(_0,{AutomationViewMode:()=>Ua,BUDIBASE_DATASOURCE_TYPE:()=>Td,BadRequestError:()=>Fu,BudibaseError:()=>fi,Config:()=>wd,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>wn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Od,DEFAULT_EXPENSES_TABLE_ID:()=>_d,DEFAULT_INVENTORY_TABLE_ID:()=>Ad,DEFAULT_JOBS_TABLE_ID:()=>Sd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>Vn,DesignDocuments:()=>Es,DocumentType:()=>ce,Duration:()=>he,DurationType:()=>Cf,EmailUnavailableError:()=>Qt,Endpoint:()=>Sc,EndpointGroup:()=>_n,EndpointGroupList:()=>No,FeatureDisabledError:()=>Gu,ForbiddenError:()=>Bu,GlobalRole:()=>Id,HTTPError:()=>we,Header:()=>ke,InternalTable:()=>Rt,InvalidAPIKeyError:()=>pi,MAX_VALID_DATE:()=>Ma,MIN_VALID_DATE:()=>gy,NotFoundError:()=>Mu,NotImplementedError:()=>Wu,RedisClient:()=>Ce,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>Ot,SQS_DATASOURCE_INTERNAL:()=>yd,StaticDatabases:()=>fe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>hs,UnexpectedError:()=>ku,UsageLimitError:()=>$u,UserStatus:()=>ka,ViewName:()=>ur,WORKSPACE_DEV:()=>La,WORKSPACE_DEV_PREFIX:()=>Je,WORKSPACE_PREFIX:()=>ze,accounts:()=>pn,auth:()=>um,blacklist:()=>fm,cache:()=>_o,configs:()=>Gt,constants:()=>Dd,context:()=>ue,csv:()=>Im,db:()=>mr,docIds:()=>Ef,docUpdates:()=>mm,encryption:()=>sm,env:()=>E,errors:()=>qu,events:()=>ui,features:()=>Su,getPublicError:()=>Vu,init:()=>A0,installation:()=>xu,locks:()=>gi,logging:()=>to,middleware:()=>am,objectStore:()=>jf,permissions:()=>zp,platform:()=>so,plugins:()=>lm,queue:()=>Xf,redis:()=>dm,roles:()=>Hp,security:()=>Rp,sessions:()=>Yu,setEnv:()=>ys,sql:()=>Om,tenancy:()=>S0,timers:()=>uu,userUtils:()=>Tp,users:()=>li,utils:()=>Xn,withEnv:()=>_y});module.exports=A_(_0);var Gt={};N(Gt,{analyticsEnabled:()=>bu,generateConfigID:()=>Zu,getAIConfig:()=>qU,getConfig:()=>rt,getDefaultGoogleConfig:()=>Lp,getGoogleConfig:()=>Xu,getGoogleDatasourceConfig:()=>Fp,getOIDCConfig:()=>$U,getOIDCConfigById:()=>Bp,getOIDCLogosDoc:()=>BU,getPlatformUrl:()=>Ro,getRecaptchaConfig:()=>KU,getSCIMConfig:()=>VU,getSMTPConfig:()=>GU,getSMTPConfigDoc:()=>yA,getSettingsConfig:()=>Mp,getSettingsConfigDoc:()=>ri,save:()=>MU});var __=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],O_=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Rm=[...__,...O_],Cm={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0};var Ac=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ac||{}),_c=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(_c||{}),Lo=(S=>(S.AIRTABLE="AIRTABLE",S.ARANGODB="ARANGODB",S.BUDIBASE="BUDIBASE",S.COUCHDB="COUCHDB",S.DYNAMODB="DYNAMODB",S.ELASTICSEARCH="ELASTICSEARCH",S.FIRESTORE="FIRESTORE",S.GOOGLE_SHEETS="GOOGLE_SHEETS",S.MONGODB="MONGODB",S.MYSQL="MYSQL",S.ORACLE="ORACLE",S.POSTGRES="POSTGRES",S.REDIS="REDIS",S.REST="REST",S.S3="S3",S.SNOWFLAKE="SNOWFLAKE",S.SQL_SERVER="SQL_SERVER",S))(Lo||{});var Oc=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Oc||{});var I_=F(require("lodash/isPlainObject"));var Nr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Nr||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),In=(e=>(e.RANGE="range",e))(In||{}),_i=(r=>(r.AND="$and",r.OR="$or",r))(_i||{});function ko(t){return Object.values(_i).includes(t)}s(ko,"isLogicalSearchOperator");function bm(t){return Object.values(Nr).includes(t)}s(bm,"isBasicSearchOperator");function xm(t){return Object.values(Jt).includes(t)}s(xm,"isArraySearchOperator");function Mo(t){return Object.values(In).includes(t)}s(Mo,"isRangeSearchOperator");var vm=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Oi=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Oi||{});var Pm={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,USE_DYNAMIC_LOADING:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var Ii=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ii||{});var Fo=(f=>(f.WORKSPACE="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Fo||{});var Bo=s(t=>t.hosting==="cloud","isCloudAccount");var Wo=s(t=>t.authType==="sso","isSSOAccount");var b="_",ve="\uFFF0",Zt=s(t=>`${t}${b}`,"prefixed"),ce=(G=>(G.USER="us",G.GROUP="gr",G.CONFIG="config",G.TEMPLATE="template",G.WORKSPACE="app",G.DEV="dev",G.WORKSPACE_DEV="app_dev",G.WORKSPACE_METADATA="app_metadata",G.ROLE="role",G.DEV_INFO="devinfo",G.AUTOMATION_LOG="log_au",G.ACCOUNT_METADATA="acc_metadata",G.PLUGIN="plg",G.DATASOURCE="datasource",G.DATASOURCE_PLUS="datasource_plus",G.APP_BACKUP="backup",G.TABLE="ta",G.ROW="ro",G.AUTOMATION="au",G.LINK="li",G.WEBHOOK="wh",G.INSTANCE="inst",G.LAYOUT="layout",G.SCREEN="screen",G.QUERY="query",G.DEPLOYMENTS="deployments",G.METADATA="metadata",G.MEM_VIEW="view",G.USER_FLAG="flag",G.AUTOMATION_METADATA="meta_au",G.AUDIT_LOG="al",G.SCIM_LOG="scimlog",G.ROW_ACTIONS="ra",G.OAUTH2_CONFIG="oauth2",G.OAUTH2_CONFIG_LOG="oauth2log",G.AGENT_CHAT="agentchat",G.AGENT_TOOL_SOURCE="agenttoolsource",G.WORKSPACE_APP="workspace_app",G.WORKSPACE_FAVOURITE="workspace_favourite",G))(ce||{});var Rt=(e=>(e.USER_METADATA="ta_users",e))(Rt||{});function $o(t){return!!t.providerType}s($o,"isSSOUser");var Ic=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.DATETIME="datetime",d.ATTACHMENT="attachment",d.LONGFORM="longform",d))(Ic||{}),wc=(D=>(D.TABLE="table",D.ROW="row",D.ROWS="rows",D.WIDE="wide",D.QUERY="query",D.QUERY_PARAMS="queryParams",D.QUERY_LIMIT="queryLimit",D.LOOP_OPTION="loopOption",D.ITEM="item",D.CODE="code",D.FILTERS="filters",D.COLUMN="column",D.TRIGGER_SCHEMA="triggerSchema",D.CRON="cron",D.WEBHOOK_URL="webhookUrl",D.AUTOMATION="automation",D.AUTOMATION_FIELDS="automationFields",D.MULTI_ATTACHMENTS="multi_attachments",D.TRIGGER_FILTER="trigger_filter",D.CATEGORIES="categories",D))(wc||{}),Dc=(u=>(u.ROW_SAVED="ROW_SAVED",u.ROW_UPDATED="ROW_UPDATED",u.ROW_DELETED="ROW_DELETED",u.WEBHOOK="WEBHOOK",u.APP="APP",u.CRON="CRON",u.ROW_ACTION="ROW_ACTION",u))(Dc||{});var Rc=(w=>(w.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",w.CREATE_ROW="CREATE_ROW",w.UPDATE_ROW="UPDATE_ROW",w.DELETE_ROW="DELETE_ROW",w.EXECUTE_BASH="EXECUTE_BASH",w.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",w.EXECUTE_SCRIPT="EXECUTE_SCRIPT",w.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",w.EXECUTE_QUERY="EXECUTE_QUERY",w.SERVER_LOG="SERVER_LOG",w.DELAY="DELAY",w.FILTER="FILTER",w.API_REQUEST="API_REQUEST",w.QUERY_ROWS="QUERY_ROWS",w.LOOP="LOOP",w.COLLECT="COLLECT",w.OPENAI="OPENAI",w.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",w.BRANCH="BRANCH",w.CLASSIFY_CONTENT="CLASSIFY_CONTENT",w.PROMPT_LLM="PROMPT_LLM",w.TRANSLATE="TRANSLATE",w.SUMMARISE="SUMMARISE",w.GENERATE_TEXT="GENERATE_TEXT",w.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",w.EXTRACT_STATE="EXTRACT_STATE",w.LOOP_V2="LOOP_V2",w.discord="discord",w.slack="slack",w.zapier="zapier",w.integromat="integromat",w.n8n="n8n",w))(Rc||{}),Nm=[...Object.values(Rc),...Object.values(Dc)];function Um(t){return t.stepId==="BRANCH"}s(Um,"isBranchStep");var Cc="bb_internal";var Lm=["attachment_single","attachment","signature_single","bb_reference","json","array"];var Dd={};N(Dd,{AutomationViewMode:()=>Ua,BUDIBASE_DATASOURCE_TYPE:()=>Td,Config:()=>wd,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>wn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Od,DEFAULT_EXPENSES_TABLE_ID:()=>_d,DEFAULT_INVENTORY_TABLE_ID:()=>Ad,DEFAULT_JOBS_TABLE_ID:()=>Sd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>Vn,DesignDocuments:()=>Es,DocumentType:()=>ce,GlobalRole:()=>Id,Header:()=>ke,InternalTable:()=>Rt,MAX_VALID_DATE:()=>Ma,MIN_VALID_DATE:()=>gy,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>Ot,SQS_DATASOURCE_INTERNAL:()=>yd,StaticDatabases:()=>fe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>hs,UserStatus:()=>ka,ViewName:()=>ur,WORKSPACE_DEV:()=>La,WORKSPACE_DEV_PREFIX:()=>Je,WORKSPACE_PREFIX:()=>ze});var ke=(_=>(_.API_KEY="x-budibase-api-key",_.LICENSE_KEY="x-budibase-license-key",_.API_VER="x-budibase-api-version",_.APP_ID="x-budibase-app-id",_.SESSION_ID="x-budibase-session-id",_.CLIENT="x-budibase-client",_.TYPE="x-budibase-type",_.PREVIEW_ROLE="x-budibase-role",_.TENANT_ID="x-budibase-tenant-id",_.VERIFICATION_CODE="x-budibase-verification-code",_.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",_.RESET_PASSWORD_CODE="x-budibase-reset-password-code",_.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",_.TOKEN="x-budibase-token",_.CSRF_TOKEN="x-csrf-token",_.CORRELATION_ID="x-budibase-correlation-id",_.AUTHORIZATION="authorization",_.MIGRATING_APP="x-budibase-migrating-app",_.COOKIE="cookie",_))(ke||{});var Me={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"}},km={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var wn="datasource_internal_bb_default";var ar={};N(ar,{ColumnSplitter:()=>id,NoEmptyFilterStrings:()=>fy,buildQuery:()=>py,cleanupQuery:()=>ad,fixupFilterArrays:()=>cd,getKeyNumbering:()=>ud,getValidOperatorsForType:()=>HR,hasFilters:()=>sd,limit:()=>hy,recurseLogicalOperators:()=>od,removeKeyNumbering:()=>Go,runQuery:()=>Ca,search:()=>ZR,sort:()=>my,splitFiltersArray:()=>Vo});var Gn=F(Mm());var Xt={};N(Xt,{filterValueToLabel:()=>x_,hasSchema:()=>v_,isSupportedUserSearch:()=>Wm,parallelForeach:()=>b_,processSearchFilters:()=>vc,toMap:()=>N_,trimOtherProps:()=>P_,unreachable:()=>C_});var Bm=F(require("lodash/pick"));var R_=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function C_(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(C_,"unreachable");async function b_(t,e,r){let n=[],i=Symbol.asyncIterator in t,o=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),a=s(async()=>{let u=await(i?o.next():Promise.resolve(o.next()));for(;!u.done;)await e(u.value),u=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}s(b_,"parallelForeach");function x_(){return Object.keys(Me).reduce((t,e)=>{let n=Me[e];return t[n.value]=n.label,t},{})}s(x_,"filterValueToLabel");function v_(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(v_,"hasSchema");function P_(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(P_,"trimOtherProps");function Wm(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(ko(o)){for(let l of t[o].conditions)if(!Wm(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s(Wm,"isSupportedUserSearch");function vc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Vo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,Bm.default)(i,R_);return o.field=Go(o.field),o})}]}}s(vc,"processSearchFilters");function N_(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(N_,"toMap");var Ne={};N(Ne,{cancelableTimeout:()=>$m,cron:()=>KR,deepGet:()=>Pc,duplicateName:()=>VR,getSequentialName:()=>qR,getUserColor:()=>L_,getUserInitials:()=>U_,getUserLabel:()=>k_,isGoogleSheets:()=>F_,isSQL:()=>B_,lists:()=>rd,retry:()=>W_,roles:()=>td,schema:()=>fs,views:()=>ed,wait:()=>Nc,withTimeout:()=>M_});var Pc=s((t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},"deepGet"),U_=s(t=>{if(!t)return"?";let e="";return e+=t.firstName?t.firstName[0]:"",e+=t.lastName?t.lastName[0]:"",e!==""?e:t.email?.[0]||"U"},"getUserInitials"),L_=s(t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),k_=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function $m(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s($m,"cancelableTimeout");async function M_(t,e){let[r,n]=$m(t),i=await Promise.race([e(),r]);return n(),i}s(M_,"withTimeout");function F_(t){return t==="GOOGLE_SHEETS"}s(F_,"isGoogleSheets");function B_(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(B_,"isSQL");async function Nc(t){return new Promise(e=>setTimeout(e,t))}s(Nc,"wait");async function W_(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await Nc(o);try{return await t()}catch(a){n=a}}throw n}s(W_,"retry");var sy=F(Tt()),oy=F(ny());var iy="(Input cron: ",CR={"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 bR(t){let e=[];for(let r of t){r.includes(iy)&&(r=r.split(iy)[0].trim());for(let[n,i]of Object.entries(CR))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(bR,"improveErrors");function ay(t,e=4){let r=oy.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(ay,"getNextExecutionDates");function uy(t){let e=(0,sy.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:bR(e.getError())}}s(uy,"validate");var fs={};N(fs,{decodeNonAscii:()=>Zl,encodeNonAscii:()=>PR,isDeprecatedSingleUserColumn:()=>xR,isNumeric:()=>NR,isRequired:()=>vR});function xR(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(xR,"isDeprecatedSingleUserColumn");function vR(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(vR,"isRequired");function PR(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(PR,"encodeNonAscii");function Zl(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(Zl,"decodeNonAscii");function NR(t){return t.type==="number"||t.type==="bigint"}s(NR,"isNumeric");var ed={};N(ed,{basicFields:()=>FR,calculationFields:()=>MR,hasCalculationFields:()=>kR,isBasicViewField:()=>UR,isCalculationField:()=>ps,isCalculationView:()=>LR,isV2:()=>BR,isVisible:()=>cy});var Xl=F(require("lodash/pickBy"));function ps(t){return"calculationType"in t}s(ps,"isCalculationField");function UR(t){return!ps(t)}s(UR,"isBasicViewField");function LR(t){return t.type==="calculation"}s(LR,"isCalculationView");function kR(t){return Object.values(t.schema||{}).some(ps)}s(kR,"hasCalculationFields");function MR(t){return(0,Xl.default)(t.schema||{},ps)}s(MR,"calculationFields");function cy(t){return t.visible!==!1}s(cy,"isVisible");function FR(t,e){let{visible:r=!0}=e||{};return(0,Xl.default)(t.schema||{},n=>!ps(n)&&(!r||cy(n)))}s(FR,"basicFields");function BR(t){return t.version===2}s(BR,"isV2");var td={};N(td,{checkForRoleInheritanceLoops:()=>$R});function WR(t){return`role${b}${t}`}s(WR,"prefixForCheck");function $R(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=WR(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s($R,"checkForRoleInheritanceLoops");var rd={};N(rd,{punctuateList:()=>GR});function GR(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}s(GR,"punctuateList");var VR=s((t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];e.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(o.push(parseInt(c[1])),!0):!1}),o.sort((u,c)=>u-c);let a;if(o.length===0)a=1;else{for(let u=0;u<o.length;u++)if(o[u]!==u+1){a=u+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),qR=s((t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let o=e.trim(),a=n?`${e}1`:o;if(!t?.length)return a;let u=0;return t.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(o))return;let d=l.split(o);if(d.length!==2)return;d[1].trim()===""&&(d[1]="1");let f=parseInt(d[1]);f>u&&(u=f)}),u===0?a:`${e}${i}${u+1}`},"getSequentialName");var KR={getNextExecutionDates:ay,validate:uy};var Ra=F(require("lodash/isPlainObject")),nd=F(require("lodash/isEmpty"));var jR=/{{([^{].*?)}}/g,dy=Object.values(_i),YR=[...Object.values(Nr),...Object.values(Jt),...Object.values(In)],HR=s((t,e,r)=>{let n=Me,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||fs.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"&&(u=i);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),fy=[Me.StartsWith.value,Me.Like.value,Me.Equals.value,Me.NotEquals.value,Me.Contains.value,Me.NotContains.value,Me.ContainsAny.value,Me.In.value];function od(t,e){for(let r of dy)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(od,"recurseLogicalOperators");var ad=s(t=>{for(let e of fy)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||zR(o))&&delete t[e][i]}return t=od(t,ad),t},"cleanupQuery");function zR(t){return Array.isArray(t)&&t.length===0}s(zR,"isEmptyArray");var Go=s(t=>ud(t).key,"removeKeyNumbering"),ud=s(t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},"getKeyNumbering"),id=class{static{s(this,"ColumnSplitter")}constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=ud(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=Zl(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function JR(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:o}=t,{value:a}=t;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(jR)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Mo(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Mo(r)){let l=km[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(bm(r)||xm(r)||Mo(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(JR,"buildCondition");function Vo(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(Vo,"splitFiltersArray");function py(t){if(!t)return{};if(Array.isArray(t)&&(t=vc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=ly(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=py(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Vo(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=ly(n.logicalOperator)),{[u]:{conditions:a.map(JR).filter(c=>c)}}})},e}s(py,"buildQuery");function ly(t){return t==="all"?"$and":"$or"}s(ly,"logicalOperatorFromUI");function cd(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Ra.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 od(t,cd),t}s(cd,"fixupFilterArrays");function ZR(t,e){let r=Ca(t,e.query);e.sort&&(r=my(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=hy(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(ZR,"search");function Ca(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=ad(e),e=cd(e),!sd(e)&&e.onEmptyFilter==="none")return[];let r=s((T,I)=>M=>{for(let[P,k]of Object.entries(e[T]||{})){let Y=ko(T)?M:Pc(M,Go(P)),Dt=I(Y,k);if(e.allOr&&Dt)return!0;if(!e.allOr&&!Dt)return!1}return!e.allOr},"match"),n=r("string",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().includes(I.toLowerCase())),o=r("range",(T,I)=>{if(T==null||T===""||((0,Ra.default)(I.low)&&(0,nd.default)(I.low)&&(I.low=void 0),(0,Ra.default)(I.high)&&(0,nd.default)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let M=+T;if(!isNaN(M)){let k=+I.low,Y=+I.high;if(!isNaN(k)&&!isNaN(Y))return M>=k&&M<=Y;if(isNaN(k)){if(!isNaN(Y))return M<=Y}else return M>=k}let P=(0,Gn.default)(T);if(P.isValid()){let k=(0,Gn.default)(I.low||"0000-00-00T00:00:00.000Z"),Y=(0,Gn.default)(I.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&Y.isValid())return P.isAfter(k)&&P.isBefore(Y)||P.isSame(k)||P.isSame(Y);if(k.isValid())return P.isAfter(k)||P.isSame(k);if(Y.isValid())return P.isBefore(Y)||P.isSame(Y)}return I.low!=null&&I.high!=null?T>=I.low&&T<=I.high:I.low!=null?T>=I.low:I.high!=null?T<=I.high:!1}),a=s((T,I)=>{if(Array.isArray(T)){for(let P of T)if(a(P,I))return!0;return!1}if(T&&typeof T=="object"&&typeof I=="string")return T._id===I;if(T===I)return!0;if(T==null&&I!=null||T!=null&&I==null)return!1;let M=(0,Gn.default)(T);if(M.isValid()){let P=(0,Gn.default)(I);if(P.isValid())return M.isSame(P)}return!1},"_valueMatches"),u=s(T=>(...I)=>!T(...I),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),p=r("notEmpty",u(d)),h=r("oneOf",(T,I)=>(typeof I=="string"&&(I=I.split(",")),typeof T=="number"&&(I=I.map(M=>parseFloat(M))),Array.isArray(I)?I.some(M=>a(T,M)):!1)),m=s(T=>(I,M)=>!Array.isArray(I)||(typeof M=="string"&&(M=M.split(","),typeof I[0]=="number"&&(M=M.map(P=>parseFloat(P)))),!Array.isArray(M))?!1:M.length===0?!0:M[T](P=>a(I,P)),"_contains"),g=r("contains",(T,I)=>Array.isArray(I)&&I.length===0?!0:m("every")(T,I)),y=r("notContains",(T,I)=>Array.isArray(I)&&I.length===0?!0:u(m("every"))(T,I)),S=r("containsAny",m("some")),O=r("$and",(T,I)=>{if(!I.length)return!1;for(let M of I)if(!Ca([T],M).length)return!1;return!0}),_=r("$or",(T,I)=>{if(!I.length)return!1;for(let M of I)if(Ca([T],{...M,allOr:!0}).length)return!0;return!1}),D=s(T=>{let I={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:p,oneOf:h,contains:g,containsAny:S,notContains:y,$and:O,$or:_},M=Object.entries(e||{}).filter(([P,k])=>!["allOr","onEmptyFilter"].includes(P)&&k&&Object.keys(k).length>0).map(([P])=>I[P]?.(T)??!1);return sd(e)?e.allOr?M.some(P=>P===!0):M.every(P=>P===!0):!0},"docMatch");return t.filter(D)}s(Ca,"runQuery");function my(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(my,"sort");function hy(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(hy,"limit");var sd=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of dy)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of YR){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var Ve={};N(Ve,{applications:()=>dd,automations:()=>fd,screens:()=>gd,users:()=>Ed});var dd={};N(dd,{getDevAppID:()=>XR,getProdAppID:()=>ba});var ld=Zt("app"),ms=Zt("app_dev");function XR(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(ms))return t;let e=t.split(ld);e.shift();let r=e.join(ld);return`${ms}${r}`}s(XR,"getDevAppID");function ba(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(ms))return t;let e=t.split(ms);e.shift();let r=e.join(ms);return`${ld}${r}`}s(ba,"getProdAppID");var fd={};N(fd,{checkForCollectStep:()=>nC,isAppAction:()=>rC,isRowAction:()=>eC,isWebhookAction:()=>tC});function eC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(eC,"isRowAction");function tC(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(tC,"isWebhookAction");function rC(t){return t.definition.trigger?.stepId==="APP"}s(rC,"isAppAction");function Ey(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Um(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(Ey(r))return!0}}return!1}s(Ey,"hasCollectBlockRecursive");function nC(t){return Ey(t.definition.steps)}s(nC,"checkForCollectStep");var Ed={};N(Ed,{canCreateApps:()=>iC,containsUserID:()=>dC,getGlobalUserID:()=>lC,getUserAppGroups:()=>fC,getUserGroups:()=>hd,hasAdminPermissions:()=>md,hasAppBuilderPermissions:()=>Pa,hasBuilderPermissions:()=>uC,hasCreatorPermissions:()=>Na,isAdmin:()=>va,isAdminOrBuilder:()=>sC,isAdminOrGlobalBuilder:()=>oC,isBuilder:()=>pd,isCreator:()=>cC,isGlobalBuilder:()=>xa,userAppAccessList:()=>pC});function pd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ba(e))):!1}s(pd,"isBuilder");function xa(t){return pd(t)&&!Pa(t)||va(t)}s(xa,"isGlobalBuilder");function iC(t){return xa(t)||Na(t)}s(iC,"canCreateApps");function va(t){return t?md(t):!1}s(va,"isAdmin");function sC(t,e){return pd(t,e)||va(t)}s(sC,"isAdminOrBuilder");function oC(t){return xa(t)||va(t)}s(oC,"isAdminOrGlobalBuilder");function Pa(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Pa,"hasAppBuilderPermissions");function aC(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(aC,"hasAppCreatorPermissions");function uC(t){return t?t.builder?.global||Pa(t)||Na(t):!1}s(uC,"hasBuilderPermissions");function md(t){return t?!!t.admin?.global:!1}s(md,"hasAdminPermissions");function Na(t){return t?!!t.builder?.creator:!1}s(Na,"hasCreatorPermissions");function cC(t){return t?xa(t)||md(t)||Na(t)||Pa(t)||aC(t):!1}s(cC,"isCreator");function lC(t){if(typeof t!="string")return t;let e=`ro${b}ta_users${b}`;return t.startsWith(e)?t.split(e)[1]:t}s(lC,"getGlobalUserID");function dC(t){return typeof t!="string"?!1:t.includes(`us${b}`)}s(dC,"containsUserID");function hd(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}s(hd,"getUserGroups");function fC(t,e,r){let n=ba(t);return hd(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(fC,"getUserAppGroups");function pC(t,e){let n=hd(t,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(pC,"userAppAccessList");var gd={};N(gd,{findInSettings:()=>mC});function mC(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(mC,"findInSettings");var Ua=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ua||{}),ur=(d=>(d.USER_BY_WORKSPACE="by_app",d.USER_BY_EMAIL="by_email2",d.BY_API_KEY="by_api_key",d.LINK="by_link",d.ROUTING="screen_routes_2",d.AUTOMATION_LOGS="automation_logs",d.ACCOUNT_BY_EMAIL="account_by_email",d.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",d.USER_BY_GROUP="user_by_group",d.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",d))(ur||{}),Vn={by_email2:["by_email"]},fe={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"}},ze=Zt("app"),La=Zt("app_dev"),Je=La,yd="internal",Td="budibase",Ot="_design/sqlite",Sd="ta_bb_jobs",Ad="ta_bb_inventory",_d="ta_bb_expenses",Od="ta_bb_employee",hs=`ro${b}ta_users${b}`,Es=(r=>(r[r.SQLITE=Ot]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Es||{});var ka=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(ka||{}),Jr=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(Jr||{}),Id=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Id||{}),wd=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(wd||{}),gy=new Date(-2147483647e3),Ma=new Date(2147483647e3),ae="default";var _o={};N(_o,{CacheKey:()=>ye,TTL:()=>dn,bustCache:()=>si,destroy:()=>no,docWritethrough:()=>tp,generic:()=>io,get:()=>fn,invite:()=>np,keys:()=>Du,passwordReset:()=>ip,store:()=>Vt,user:()=>Dr,withCache:()=>Ar,withCacheWithDynamicTTL:()=>mS,workspace:()=>ks,writethrough:()=>Up});var tp={};N(tp,{DocWritethrough:()=>ep,DocWritethroughProcessor:()=>ro,getProcessor:()=>Qx,init:()=>pS});var Xf={};N(Xf,{BudibaseQueue:()=>ht,InMemoryQueue:()=>au,JobQueue:()=>ei,QueuedProcessor:()=>Zf,UnretriableError:()=>Iu,shutdown:()=>sx});var Rd=require("crypto"),Ba=require("fs"),Sy=require("lodash"),gs=require("path");var hC=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,gs.resolve)((0,gs.join)(__dirname,"..","..","..")),yy=!1;!yy&&Fa()&&!Cd()&&(require("dotenv").config({path:(0,gs.join)(hC,".env")}),yy=!0);function Cd(){return Ay()}s(Cd,"isTest");function Ay(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(Ay,"isJest");function Fa(){return process.env.NODE_ENV!=="production"}s(Fa,"isDev");function EC(t){if(t)return parseInt(t)}s(EC,"parseIntSafe");var qn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},Ty=!!parseInt(process.env.SELF_HOSTED||"");function gC(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(gC,"getAPIEncryptionKey");function yC(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(yC,"httpLogging");function TC(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Ba.existsSync)(l))return l;let d=`${c}/..`;return d===c?null:n(u,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Ba.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Fa()&&!Cd())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(TC,"getPackageJsonFields");function SC(){return lt.SERVICE_TYPE==="worker"}s(SC,"isWorker");function AC(){return lt.SERVICE_TYPE==="apps"}s(AC,"isApps");function _C(){return lt.BUDIBASE_ENVIRONMENT==="QA"}s(_C,"isQA");function OC(){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(OC,"getServiceName");var lt={isTest:Cd,isJest:Ay,isDev:Fa,isWorker:SC,isApps:AC,isQA:_C,isProd:()=>!Fa(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Rd.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Rd.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:gC(),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:Ty,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||qn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||qn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||qn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||qn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||qn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||qn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:OC(),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:yC(),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:Ty?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...TC(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,lt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,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:EC(process.env.BSON_BUFFER_SIZE)};function ys(t){let e=(0,Sy.cloneDeep)(lt),r;for(r in t)lt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))lt._set(n,i)}}s(ys,"setEnv");function _y(t,e){let r=ys(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}s(_y,"withEnv");var Oy=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(lt))e==="0"&&(lt[t]=0),e==="false"&&(lt[t]=0);var E=lt;var Ga={};N(Ga,{Databases:()=>bd,SEPARATOR:()=>Kn,SelectableDatabase:()=>Wa,getRedisClusterOptions:()=>xd,getRedisConnectionDetails:()=>$a,getRedisOptions:()=>Zr,removeDbPrefix:()=>vd});var Kn="-",bd=(O=>(O.PW_RESETS="pwReset",O.VERIFICATIONS="verification",O.INVITATIONS="invitation",O.DEV_LOCKS="devLocks",O.DEBOUNCE="debounce",O.SESSIONS="session",O.USER_CACHE="users",O.FLAGS="flags",O.WORKSPACE_METADATA="appMetadata",O.QUERY_VARS="queryVars",O.LICENSES="license",O.GENERIC_CACHE="data_cache",O.WRITE_THROUGH="writeThrough",O.LOCKS="locks",O.SOCKET_IO="socket_io",O.BPM_EVENTS="bpmEvents",O.DOC_WRITE_THROUGH="docWriteThrough",O.RECAPTCHA_SESSION="recaptchaSession",O))(bd||{}),Wa=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.UNUSED_2=3]="UNUSED_2",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(Wa||{});function $a(){let t=E.REDIS_PASSWORD,e=E.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}s($a,"getRedisConnectionDetails");function xd(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zr(),tls:{}}}}s(xd,"getRedisClusterOptions");function Zr(){let{host:t,password:e,port:r}=$a();return{connectTimeout:3e4,port:r,host:t,password:e}}s(Zr,"getRedisOptions");function vd(t){let e=t.split(Kn);return e.length>=2?(e.shift(),e.join(Kn)):e[0]}s(vd,"removeDbPrefix");var RT=F(require("events"));var Xn={};N(Xn,{Duration:()=>he,DurationType:()=>Cf,clearCookie:()=>hr,compare:()=>Ud,getAppIdFromCtx:()=>qs,getCookie:()=>Wt,hasCircularStructure:()=>jb,hash:()=>Nd,isAudited:()=>Df,isClient:()=>Qb,isPublicApiRequest:()=>qb,isServingApp:()=>$b,isServingBuilder:()=>Gb,isServingBuilderPreview:()=>Vb,isValidInternalAPIKey:()=>Ks,newid:()=>ne,openJwt:()=>su,setCookie:()=>DT,time:()=>Hb,timeout:()=>wf,urlHasProtocol:()=>Yb,validEmail:()=>Rf});var Iy=require("uuid");function ne(){return(0,Iy.v4)().replace(/-/g,"")}s(ne,"newid");var Pd=E.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),IC=E.SALT_ROUNDS||10;async function Nd(t){let e=await Pd.genSalt(IC);return Pd.hash(t,e)}s(Nd,"hash");async function Ud(t,e){return Pd.compare(t,e)}s(Ud,"compare");var iu=F(require("jsonwebtoken"));var ue={};N(ue,{DEFAULT_TENANT_ID:()=>ae,baseGlobalDBName:()=>ws,doInAutomationContext:()=>YC,doInContext:()=>Zd,doInEnvironmentContext:()=>ib,doInFeatureFlagOverrideContext:()=>of,doInIPContext:()=>tf,doInIdentityContext:()=>Ss,doInLicenseContext:()=>zC,doInScimContext:()=>sb,doInSelfHostTenantUsingCloud:()=>HC,doInTenant:()=>Re,doInWorkspaceContext:()=>XC,doInWorkspaceMigrationContext:()=>tb,ensureSnippetContext:()=>Wy,getAuditLogDBName:()=>Fy,getAuditLogsDB:()=>ab,getAutomationId:()=>Xd,getCurrentContext:()=>tn,getDevWorkspaceDB:()=>cb,getDevWorkspaceId:()=>rb,getEnvironmentVariables:()=>ob,getFeatureFlagOverrides:()=>sf,getFeatureFlags:()=>rf,getGlobalDB:()=>H,getGlobalDBName:()=>en,getIP:()=>ef,getIdentity:()=>Lt,getLicense:()=>JC,getPlatformURL:()=>Jd,getProdWorkspaceDB:()=>ub,getProdWorkspaceId:()=>nb,getScimDBName:()=>qC,getSelfHostCloudDB:()=>ZC,getTableForView:()=>lb,getTenantIDFromWorkspaceID:()=>Hn,getTenantId:()=>V,getWorkspaceDB:()=>zn,getWorkspaceId:()=>Ue,identity:()=>Ts,isMultiTenant:()=>dr,isScim:()=>pt,isSelfHostUsingCloud:()=>za,isTenancyEnabled:()=>QC,isTenantIdSet:()=>KC,setFeatureFlags:()=>nf,setTableForView:()=>db});var Ts={};N(Ts,{doInAccountContext:()=>wC,doInIdentityContext:()=>kd,doInUserContext:()=>Md,getAccountUserId:()=>wy,getIdentity:()=>Ld});function Ld(){return Lt()}s(Ld,"getIdentity");function kd(t,e){return Ss(t,e)}s(kd,"doInIdentityContext");function Md(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return kd(n,r)}s(Md,"doInUserContext");function wC(t,e){let r=wy(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return kd(i,e)}s(wC,"doInAccountContext");function wy(t){let e;return Bo(t)?e=t.budibaseUserId:e=t.accountId,e}s(wy,"getAccountUserId");var dt=s(t=>{let e=Fd(t),r,n;if(e.auth?.username)r=e.auth.username;else if(E.COUCH_DB_USERNAME)r=E.COUCH_DB_USERNAME;else if(!E.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(E.COUCH_DB_PASSWORD)n=E.COUCH_DB_PASSWORD;else if(!E.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=E.COUCH_DB_SQL_URL;if(E.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:Fd(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),Fd=s((t=E.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var Ly=F(require("@budibase/nano"));var Dy=F(require("node-fetch"));function qa(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(qa,"checkSlashesInUrl");async function Ry(t,e="GET",r){let{url:n,cookie:i}=dt(),o=`${n}/${t}`;return await As({url:o,cookie:i,method:e,body:r})}s(Ry,"directCouchCall");async function As({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,Dy.default)(qa(encodeURI(t)),i)}s(As,"directCouchUrlCall");async function Bd(t,e="GET",r){let n=await Ry(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(Bd,"directCouchQuery");var Xr=F(require("pouchdb"));var Cy,by=!1,Wd=s((t={})=>{let{url:e,cookie:r}=dt(),n={prefix:e,fetch:(i,o)=>(o.headers.set("Authorization",r),Xr.default.fetch(i,o))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Xr.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Xr.default.plugin(i.plugin),Xr.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Xr.default.plugin(i)}return Xr.default.defaults(n)},"getPouch");function Ka(t){Cy=Wd(t),by=!0}s(Ka,"init");var DC=s(()=>{if(!by)throw new Error("init has not been called")},"checkInitialised");function Ze(t,e){DC();let r=new Cy(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(Ze,"getPouchDB");async function _s(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(_s,"closePouchDB");var le=F(require("dd-trace"));var Qn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return le.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return le.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return le.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return le.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return le.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return le.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return le.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return le.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return le.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return le.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return le.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return le.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return le.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return le.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return le.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return le.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return le.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return le.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return le.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return le.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return le.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Yd={};N(Yd,{breakExternalTableId:()=>Vd,breakRowIdField:()=>BC,buildExternalTableId:()=>NC,convertRowId:()=>FC,encodeTableId:()=>UC,encodeViewId:()=>LC,extractDate:()=>Kd,generateRowIdField:()=>kC,getNativeSql:()=>jn,isExternalTable:()=>Gd,isExternalTableID:()=>Qa,isInternalTableID:()=>PC,isRowId:()=>MC,isValidFilter:()=>Ya,isValidISODateString:()=>ja,isValidISODateStringWithoutTimezone:()=>qd,isValidTime:()=>Qd,sqlLog:()=>Os,validateManyToMany:()=>jd});var $d=`${b}${b}`,vy=/^\[.*]$/g,RC=encodeURIComponent(" "),CC=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,bC=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,xC=/(\d{4}-\d{2}-\d{2})/,vC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Qa(t){return t.startsWith("datasource"+b)}s(Qa,"isExternalTableID");function PC(t){return!Qa(t)}s(PC,"isInternalTableID");function jn(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}s(jn,"getNativeSql");function Gd(t){return t?.sourceId&&t.sourceId.includes("datasource"+b)&&t?.sourceId!==wn||t?.sourceType==="external"?!0:!!(t?._id&&Qa(t._id))}s(Gd,"isExternalTable");function NC(t,e){return`${t}${$d}${encodeURIComponent(e)}`}s(NC,"buildExternalTableId");function UC(t){return Qa(t)?encodeURIComponent(t):t}s(UC,"encodeTableId");function LC(t){return encodeURIComponent(t)}s(LC,"encodeViewId");function Vd(t){let e=t.split($d),r=e.shift(),n=e.join($d);if(n.includes(RC)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(Vd,"breakExternalTableId");function kC(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}s(kC,"generateRowIdField");function MC(t){return Array.isArray(t)||typeof t=="string"&&t.match(vy)!=null}s(MC,"isRowId");function FC(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(vy)!=null?t.substring(1,t.length-1):t}s(FC,"convertRowId");function BC(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}s(BC,"breakRowIdField");function ja(t){let e=t.trim();if(!CC.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(ja,"isValidISODateString");function qd(t){let e=t.trim();if(!bC.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(qd,"isValidISODateStringWithoutTimezone");function Kd(t){let e=t.match(xC);if(e)return e[0]}s(Kd,"extractDate");function Ya(t){return t!=null&&t!==""}s(Ya,"isValidFilter");function Qd(t){return vC.test(t)}s(Qd,"isValidTime");function Os(t,e,r){if(!E.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Os,"sqlLog");function WC(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(WC,"isValidManyToManyRelationship");function jd(t){if(WC(t))return t}s(jd,"validateManyToMany");var Py="Database does not exist.";function Ny(t){return(0,Ly.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(Ny,"buildNano");var cr=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")}};function $C(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Yn(t,r,e);return new Qn(n)}s($C,"DatabaseWithConnection");var Yn=class t{constructor(e,r,n){this.couchInfo=dt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=dt(n),this.instanceNano=Ny(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=dt();t.nano=Ny(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await As({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new cr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===Py)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new cr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new cr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(vm(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new cr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ne()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===Py)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=qa(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await As(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new cr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${Ot}`;return Os("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(Ot)){let e=await this.get(Ot);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new cr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Ze(this.name).dump(e,r)}async load(e){return Ze(this.name).load(e)}async createIndex(e){return Ze(this.name).createIndex(e)}async deleteIndex(e){return Ze(this.name).deleteIndex(e)}async getIndexes(){return Ze(this.name).getIndexes()}};function De(t,e){return new Qn(new Yn(t,e))}s(De,"getDB");async function qe(t,e,r){let n=De(t,r);return await e(n)}s(qe,"doWithDB");async function Hd(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Bd(e)}s(Hd,"directCouchAllDbs");var zd="No app provided";function lr(t){if(!t)throw zd;return t.startsWith(Je)}s(lr,"isDevWorkspaceID");function GC(t){if(!t)throw zd;return t.startsWith(ze)&&!lr(t)}s(GC,"isProdWorkspaceID");function Is(t){if(!t)throw zd;return lr(t.appId)}s(Is,"isDevWorkspace");function Ha(t){if(!t||t.startsWith(Je))return t;let e=t.split(ze);e.shift();let r=e.join(ze);return`${Je}${r}`}s(Ha,"getDevWorkspaceID");function Ke(t){if(!t||!t.startsWith(Je))return t;let e=t.split(Je);e.shift();let r=e.join(Je);return`${ze}${r}`}s(Ke,"getProdWorkspaceID");var ky=require("async_hooks");var me=class t{static{s(this,"Context")}static{this.storage=new ky.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var My=null;function en(t){return t||(t=V()),ws(t)}s(en,"getGlobalDBName");function Fy(t){return t||(t=V()),t===ae?fe.AUDIT_LOGS.name:`${t}${b}${fe.AUDIT_LOGS.name}`}s(Fy,"getAuditLogDBName");function qC(t){return t||(t=V()),t===ae?fe.SCIM_LOGS.name:`${t}${b}${fe.SCIM_LOGS.name}`}s(qC,"getScimDBName");function ws(t){return!t||t===ae?fe.GLOBAL.name:`${t}${b}${fe.GLOBAL.name}`}s(ws,"baseGlobalDBName");function Jd(){return E.PLATFORM_URL}s(Jd,"getPlatformURL");function dr(){return!!E.MULTI_TENANCY}s(dr,"isMultiTenant");function KC(){return!!me.get()?.tenantId}s(KC,"isTenantIdSet");function QC(){return E.MULTI_TENANCY}s(QC,"isTenancyEnabled");function Hn(t){if(!t)return;if(!dr())return ae;let e=t.split(b),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Hn,"getTenantIDFromWorkspaceID");function jC(t){let e;try{e=me.get()}catch{e={}}return e={...e,...t},e}s(jC,"updateContext");async function ft(t,e){eb();let r=jC(t);return me.run(r,e)}s(ft,"newContext");async function YC(t){return await Wy(),await ft({tenantId:Hn(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(YC,"doInAutomationContext");async function Zd(t,e){let r=Hn(t);return ft({tenantId:r,appId:t},e)}s(Zd,"doInContext");async function Re(t,e){return E.MULTI_TENANCY||(t=t||ae),ft(t?{tenantId:t}:{},e)}s(Re,"doInTenant");async function HC(t,e){return ft({tenantId:t,isSelfHostUsingCloud:!0},e)}s(HC,"doInSelfHostTenantUsingCloud");async function zC(t,e){return ft({license:t},e)}s(zC,"doInLicenseContext");function JC(){return me.get()?.license}s(JC,"getLicense");function za(){return!!me.get()?.isSelfHostUsingCloud}s(za,"isSelfHostUsingCloud");function ZC(){let t=me.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return De(fe.SELF_HOST_CLOUD.name)}s(ZC,"getSelfHostCloudDB");async function XC(t,e){return By(t,e)}s(XC,"doInWorkspaceContext");async function By(t,e,r){if(!t)throw new Error("workspaceId is required");let n=Hn(t),i={appId:t,...r};return n&&(i.tenantId=n),ft(i,e)}s(By,"_doInWorkspaceContext");async function Ss(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),ft(r,e)}s(Ss,"doInIdentityContext");function eb(){if(me.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(eb,"guardMigration");async function tb(t,e){return By(t,e,{isMigrating:!0})}s(tb,"doInWorkspaceMigrationContext");function Lt(){try{return me.get()?.identity}catch{}}s(Lt,"getIdentity");function V(){if(!dr())return ae;let e=me.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(V,"getTenantId");function Xd(){return me.get()?.automationId}s(Xd,"getAutomationId");function Ue(){let e=me.get()?.appId;return!e&&E.isTest()&&My?My:e}s(Ue,"getWorkspaceId");function ef(){return me.get()?.ip}s(ef,"getIP");var rb=s(()=>{let t=Ue();if(!t)throw new Error("Could not get workspaceId");return Ha(t)},"getDevWorkspaceId"),nb=s(()=>{let t=Ue();if(!t)throw new Error("Could not get workspaceId");return Ke(t)},"getProdWorkspaceId");function ib(t,e){if(!t)throw new Error("Must supply environment variables.");return ft({environmentVariables:t},e)}s(ib,"doInEnvironmentContext");function sb(t){return ft({isScim:!0},t)}s(sb,"doInScimContext");function tf(t,e){return ft({ip:t},e)}s(tf,"doInIPContext");async function Wy(){let t=tn();if(!t||t.snippets)return;let e,r=zn();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s(Wy,"ensureSnippetContext");function ob(){let t=me.get();return t.environmentVariables?t.environmentVariables:null}s(ob,"getEnvironmentVariables");function H(){let t=me.get();if(!t||E.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return De(ws(t?.tenantId))}s(H,"getGlobalDB");function ab(){if(!V())throw new Error("No tenant ID found - cannot open audit log DB");return De(Fy())}s(ab,"getAuditLogsDB");function zn(t){let e=Ue();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(za())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return De(e,t)}s(zn,"getWorkspaceDB");function ub(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return De(Ke(e),t)}s(ub,"getProdWorkspaceDB");function cb(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return De(Ha(e),t)}s(cb,"getDevWorkspaceDB");function pt(){return!!me.get()?.isScim}s(pt,"isScim");function tn(){try{return me.get()}catch{return}}s(tn,"getCurrentContext");function rf(t){let e=tn();if(e)return e.featureFlagCache?.[t]}s(rf,"getFeatureFlags");function nf(t,e){let r=tn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(nf,"setFeatureFlags");function sf(){return tn()?.featureFlagOverrides||{}}s(sf,"getFeatureFlagOverrides");async function of(t,e){return await ft({featureFlagOverrides:t},e)}s(of,"doInFeatureFlagOverrideContext");function lb(t){let e=tn();if(e)return e.viewToTableCache?.[t]}s(lb,"getTableForView");function db(t,e){let r=tn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(db,"setTableForView");var mr={};N(mr,{AutomationViewMode:()=>Ua,BUDIBASE_DATASOURCE_TYPE:()=>Td,DEFAULT_BB_DATASOURCE_ID:()=>wn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Od,DEFAULT_EXPENSES_TABLE_ID:()=>_d,DEFAULT_INVENTORY_TABLE_ID:()=>Ad,DEFAULT_JOBS_TABLE_ID:()=>Sd,DatabaseImpl:()=>Yn,DatabaseWithConnection:()=>$C,DeprecatedViews:()=>Vn,DesignDocuments:()=>Es,DocumentType:()=>ce,InternalTable:()=>Rt,QueryBuilder:()=>Bt,Replication:()=>TT,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>Ot,SQS_DATASOURCE_INTERNAL:()=>yd,StaticDatabases:()=>fe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>hs,ViewName:()=>ur,WORKSPACE_DEV:()=>La,WORKSPACE_DEV_PREFIX:()=>Je,WORKSPACE_PREFIX:()=>ze,baseGlobalDBName:()=>ws,checkErrorCode:()=>OT,closePouchDB:()=>_s,createApiKeyView:()=>mT,createNewUserEmailView:()=>fT,createPlatformAccountEmailView:()=>ET,createPlatformUserView:()=>gT,createUserAppView:()=>pT,createView:()=>Zn,dbExists:()=>Db,directCouchAllDbs:()=>Hd,directCouchCall:()=>Ry,directCouchQuery:()=>Bd,directCouchUrlCall:()=>As,doWithDB:()=>qe,fullSearch:()=>vb,generateAgentChatID:()=>eT,generateAgentToolSourceID:()=>tT,generateAppUserID:()=>tu,generateDevInfoID:()=>Jy,generateGlobalUserID:()=>Jn,generateOAuth2LogID:()=>Xy,generatePluginID:()=>Zy,generateRoleID:()=>mf,generateRowID:()=>pf,generateTableID:()=>Qy,generateTemplateID:()=>zy,generateUserMetadataID:()=>Yy,generateWorkspaceAppID:()=>rT,generateWorkspaceFavouriteID:()=>nT,generateWorkspaceID:()=>Ky,getAllDbs:()=>dT,getAllWorkspaces:()=>Fs,getCouchInfo:()=>dt,getDB:()=>De,getDevWorkspaceID:()=>Ha,getDevWorkspaceIDs:()=>Ib,getDocParams:()=>Mt,getGlobalDBName:()=>en,getGlobalIDFromUserMetadataID:()=>Hy,getGlobalUserParams:()=>sn,getOAuth2ConfigParams:()=>uT,getPluginParams:()=>aT,getPouch:()=>Wd,getPouchDB:()=>Ze,getProdWorkpaceIDs:()=>Ob,getProdWorkspaceID:()=>Ke,getQueryIndex:()=>iT,getRoleParams:()=>nu,getRowParams:()=>hf,getStartEndKeyURL:()=>Ms,getTemplateParams:()=>oT,getUrlInfo:()=>Fd,getUserMetadataParams:()=>sT,getUsersByWorkspaceParams:()=>ru,getWorkspaceAppParams:()=>cT,getWorkspaceFavouriteParams:()=>lT,getWorkspacesByIDs:()=>_b,init:()=>Ka,isDevWorkspace:()=>Is,isDevWorkspaceID:()=>lr,isDocumentConflictError:()=>Nb,isGlobalUserID:()=>jy,isProdWorkspaceID:()=>GC,isSameWorkspaceID:()=>wb,paginatedSearch:()=>xb,pagination:()=>gf,prefixRoleID:()=>kt,queryGlobalView:()=>Ft,queryGlobalViewRaw:()=>Sf,queryPlatformView:()=>Ws,queryView:()=>Tf,queryViewRaw:()=>Bs,removeKeyNumbering:()=>$s,searchIndexes:()=>_f});var ks={};N(ks,{WorkspaceState:()=>ff,getWorkspaceMetadata:()=>eu,invalidateWorkspaceMetadata:()=>Sb});var pr={};N(pr,{getCacheClient:()=>cf,getDocWritethroughClient:()=>Eb,getInviteClient:()=>nn,getLockClient:()=>df,getPasswordResetClient:()=>Ls,getSessionClient:()=>fr,getSocketClient:()=>hb,getUserClient:()=>Us,getWorkspaceClient:()=>Xa,getWritethroughClient:()=>lf,init:()=>mt,shutdown:()=>Vy});var Za=F(require("ioredis"));var Ja=require("dd-trace"),Gy=require("lodash");var $y;if(E.MOCK_REDIS)try{$y=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function fb(t=0){return await Ja.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new $y(Zr());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=$a();r=new Za.Cluster([{host:n,port:i}],xd())}else r=new Za.default(Zr());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(fb,"init");function pb(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:vd(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(pb,"promisifyStream");function mb(t){return t.isCluster}s(mb,"isCluster");var af=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await Ja.tracer.trace("RedisWrapper.init",async n=>{let i=await fb(r);return r&&!E.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return Ja.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Kn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${Kn}${e}`;let n;mb(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await pb(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(e){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:e}),this.client.keys(this.prefixed(e))))}async exists(e){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:e}),await this.client.exists(this.prefixed(e))))}async get(e){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:e});let n=await this.client.get(this.prefixed(e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}})}async bulkGet(e){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:e.length}),e.length===0)return{};let n=await this.client.mget(e.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,Gy.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e});let i=`
4
+ `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,o)=>o.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:o,from:a=[],originalValue:u=e,strict:c=this.spec.strict,abortEarly:l=this.spec.abortEarly}=r,d=e;c||(d=this._cast(d,Qe({assert:!1},r)));let f={value:d,path:o,options:r,originalValue:u,schema:this,label:this.spec.label,sync:i,from:a},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,Ih.default)({args:f,value:d,path:o,sync:i,tests:p,endEarly:l},h=>{if(h)return void n(h,d);(0,Ih.default)({tests:this.tests,args:f,path:o,sync:i,value:d,endEarly:l},n)})}validate(e,r,n){let i=this.resolve(Qe({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((o,a)=>i._validate(e,r,(u,c)=>{u?a(u):o(c)}))}validateSync(e,r){let n=this.resolve(Qe({},r,{value:e})),i;return n._validate(e,Qe({},r,{sync:!0}),(o,a)=>{if(o)throw o;i=a}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Dh.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Dh.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Oh.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Rn.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Rn.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Rn.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,ea.default)(r),o=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(a=>!(a.OPTIONS.name===r.name&&(o||a.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,lI.default)(e).map(o=>new uI.default(o));return i.forEach(o=>{o.isSibling&&n.deps.push(o.key)}),n.conditions.push(new aI.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,ea.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Rn.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,ea.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let o=this.schema._whitelist;return o.has(i,this.resolve)?!0:this.createError({params:{values:o.toArray().join(", ")}})}}),n}notOneOf(e,r=Rn.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,ea.default)({message:r,name:"notOneOf",test(i){let o=this.schema._blacklist;return o.has(i,this.resolve)?this.createError({params:{values:o.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(o=>({name:o.OPTIONS.name,params:o.OPTIONS.params})).filter((o,a,u)=>u.findIndex(c=>c.name===o.name)===a)}}};ta.default=ot;ot.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])ot.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:o,schema:a}=(0,cI.getIn)(this,e,r,n.context);return a[t](i&&i[o],Qe({},n,{parent:i,path:e}))};for(let t of["equals","is"])ot.prototype[t]=ot.prototype.oneOf;for(let t of["not","nope"])ot.prototype[t]=ot.prototype.notOneOf;ot.prototype.optional=ot.prototype.notRequired});var bh=q(Wi=>{"use strict";Object.defineProperty(Wi,"__esModule",{value:!0});Wi.create=Ch;Wi.default=void 0;var dI=fI(vt());function fI(t){return t&&t.__esModule?t:{default:t}}s(fI,"_interopRequireDefault");var Xc=dI.default,pI=Xc;Wi.default=pI;function Ch(){return new Xc}s(Ch,"create");Ch.prototype=Xc.prototype});var Cn=q(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.default=void 0;var mI=s(t=>t==null,"_default");ra.default=mI});var Uh=q(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.create=Nh;Gi.default=void 0;var hI=Ph(vt()),xh=bt(),vh=Ph(Cn());function Ph(t){return t&&t.__esModule?t:{default:t}}s(Ph,"_interopRequireDefault");function Nh(){return new $i}s(Nh,"create");var $i=class extends hI.default{static{s(this,"BooleanSchema")}constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=xh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,vh.default)(r)||r===!0}})}isFalse(e=xh.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,vh.default)(r)||r===!1}})}};Gi.default=$i;Nh.prototype=$i.prototype});var Mh=q(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.create=kh;qi.default=void 0;var St=bt(),Pt=Lh(Cn()),EI=Lh(vt());function Lh(t){return t&&t.__esModule?t:{default:t}}s(Lh,"_interopRequireDefault");var gI=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,yI=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,TI=/^(?:[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,SI=s(t=>(0,Pt.default)(t)||t===t.trim(),"isTrimmed"),AI={}.toString();function kh(){return new Vi}s(kh,"create");var Vi=class extends EI.default{static{s(this,"StringSchema")}constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===AI?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=St.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Pt.default)(n)||n.length===this.resolve(e)}})}min(e,r=St.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Pt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=St.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,Pt.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,o;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:o}=r:i=r),this.test({name:o||"matches",message:i||St.string.matches,params:{regex:e},test:a=>(0,Pt.default)(a)||a===""&&n||a.search(e)!==-1})}email(e=St.string.email){return this.matches(gI,{name:"email",message:e,excludeEmptyString:!0})}url(e=St.string.url){return this.matches(yI,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=St.string.uuid){return this.matches(TI,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=St.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:SI})}lowercase(e=St.string.lowercase){return this.transform(r=>(0,Pt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Pt.default)(r)||r===r.toLowerCase()})}uppercase(e=St.string.uppercase){return this.transform(r=>(0,Pt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Pt.default)(r)||r===r.toUpperCase()})}};qi.default=Vi;kh.prototype=Vi.prototype});var Wh=q(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.create=Bh;Qi.default=void 0;var Mr=bt(),Fr=Fh(Cn()),_I=Fh(vt());function Fh(t){return t&&t.__esModule?t:{default:t}}s(Fh,"_interopRequireDefault");var OI=s(t=>t!=+t,"isNaN");function Bh(){return new Ki}s(Bh,"create");var Ki=class extends _I.default{static{s(this,"NumberSchema")}constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!OI(e)}min(e,r=Mr.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Fr.default)(n)||n>=this.resolve(e)}})}max(e,r=Mr.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Fr.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Mr.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Fr.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Mr.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Fr.default)(n)||n>this.resolve(e)}})}positive(e=Mr.number.positive){return this.moreThan(0,e)}negative(e=Mr.number.negative){return this.lessThan(0,e)}integer(e=Mr.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Fr.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Fr.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Fr.default)(i)?i:Math[e](i))}};Qi.default=Ki;Bh.prototype=Ki.prototype});var $h=q(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});el.default=wI;var II=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function wI(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=II.exec(t)){for(var o=0,a;a=e[o];++o)i[a]=+i[a]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}s(wI,"parseIsoDate")});var qh=q(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.create=rl;ji.default=void 0;var DI=na($h()),Gh=bt(),Vh=na(Cn()),RI=na(kr()),CI=na(vt());function na(t){return t&&t.__esModule?t:{default:t}}s(na,"_interopRequireDefault");var tl=new Date(""),bI=s(t=>Object.prototype.toString.call(t)==="[object Date]","isDate");function rl(){return new bn}s(rl,"create");var bn=class extends CI.default{static{s(this,"DateSchema")}constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,DI.default)(e),isNaN(e)?tl:new Date(e))})})}_typeCheck(e){return bI(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(RI.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=Gh.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Vh.default)(i)||i>=this.resolve(n)}})}max(e,r=Gh.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Vh.default)(i)||i<=this.resolve(n)}})}};ji.default=bn;bn.INVALID_DATE=tl;rl.prototype=bn.prototype;rl.INVALID_DATE=tl});var Qh=q((PM,nl)=>{"use strict";nl.exports=function(t){return Kh(xI(t),t)};nl.exports.array=Kh;function Kh(t,e){var r=t.length,n=new Array(r),i={},o=r,a=vI(e),u=PI(t);for(e.forEach(function(l){if(!u.has(l[0])||!u.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||c(t[o],o,new Set);return n;function c(l,d,f){if(f.has(l)){var p;try{p=", node was:"+JSON.stringify(l)}catch{p=""}throw new Error("Cyclic dependency"+p)}if(!u.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[d]){i[d]=!0;var h=a.get(l)||new Set;if(h=Array.from(h),d=h.length){f.add(l);do{var m=h[--d];c(m,u.get(m),f)}while(d);f.delete(l)}n[--r]=l}}}s(Kh,"toposort");function xI(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}s(xI,"uniqueNodes");function vI(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}s(vI,"makeOutgoingEdges");function PI(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}s(PI,"makeNodesHash")});var jh=q(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.default=FI;var NI=ia(require("lodash/has")),UI=ia(Qh()),LI=ki(),kI=ia(kr()),MI=ia(Dn());function ia(t){return t&&t.__esModule?t:{default:t}}s(ia,"_interopRequireDefault");function FI(t,e=[]){let r=[],n=[];function i(o,a){var u=(0,LI.split)(o)[0];~n.indexOf(u)||n.push(u),~e.indexOf(`${a}-${u}`)||r.push([a,u])}s(i,"addNode");for(let o in t)if((0,NI.default)(t,o)){let a=t[o];~n.indexOf(o)||n.push(o),kI.default.isRef(a)&&a.isSibling?i(a.path,o):(0,MI.default)(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return UI.default.array(n,r).reverse()}s(FI,"sortFields")});var Hh=q(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.default=BI;function Yh(t,e){let r=1/0;return t.some((n,i)=>{var o;if(((o=e.path)==null?void 0:o.indexOf(n))!==-1)return r=i,!0}),r}s(Yh,"findIndex");function BI(t){return(e,r)=>Yh(t,e)-Yh(t,r)}s(BI,"sortByKeyOrder")});var rE=q(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.create=tE;Hi.default=void 0;var zh=At(require("lodash/has")),Jh=At(require("lodash/snakeCase")),WI=At(require("lodash/camelCase")),$I=At(require("lodash/mapKeys")),GI=At(require("lodash/mapValues")),VI=ki(),Zh=bt(),qI=At(jh()),eE=At(Hh()),KI=At(Ho()),QI=At(Ur()),ol=At(vt());function At(t){return t&&t.__esModule?t:{default:t}}s(At,"_interopRequireDefault");function xn(){return xn=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},xn.apply(this,arguments)}s(xn,"_extends");var Xh=s(t=>Object.prototype.toString.call(t)==="[object Object]","isObject");function jI(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}s(jI,"unknown");var YI=(0,eE.default)([]),Yi=class extends ol.default{static{s(this,"ObjectSchema")}constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=YI,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(s(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null},"coerce")),e&&this.shape(e)})}_typeCheck(e){return Xh(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let o=this.fields,a=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,u=this._nodes.concat(Object.keys(i).filter(f=>this._nodes.indexOf(f)===-1)),c={},l=xn({},r,{parent:c,__validating:r.__validating||!1}),d=!1;for(let f of u){let p=o[f],h=(0,zh.default)(i,f);if(p){let m,g=i[f];l.path=(r.path?`${r.path}.`:"")+f,p=p.resolve({value:g,context:r.context,parent:c});let y="spec"in p?p.spec:void 0,S=y?.strict;if(y?.strip){d=d||f in i;continue}m=!r.__validating||!S?p.cast(i[f],l):i[f],m!==void 0&&(c[f]=m)}else h&&!a&&(c[f]=i[f]);c[f]!==i[f]&&(d=!0)}return d?c:i}_validate(e,r={},n){let i=[],{sync:o,from:a=[],originalValue:u=e,abortEarly:c=this.spec.abortEarly,recursive:l=this.spec.recursive}=r;a=[{schema:this,value:u},...a],r.__validating=!0,r.originalValue=u,r.from=a,super._validate(e,r,(d,f)=>{if(d){if(!QI.default.isError(d)||c)return void n(d,f);i.push(d)}if(!l||!Xh(f)){n(i[0]||null,f);return}u=u||f;let p=this._nodes.map(h=>(m,g)=>{let y=h.indexOf(".")===-1?(r.path?`${r.path}.`:"")+h:`${r.path||""}["${h}"]`,S=this.fields[h];if(S&&"validate"in S){S.validate(f[h],xn({},r,{path:y,from:a,strict:!0,parent:f,originalValue:u[h]}),g);return}g(null)});(0,KI.default)({sync:o,tests:p,value:f,errors:i,endEarly:c,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=xn({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,o]of Object.entries(this.fields)){let a=n[i];a===void 0?n[i]=o:a instanceof ol.default&&o instanceof ol.default&&(n[i]=o.concat(a))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,eE.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let o=r.map(([a,u])=>`${a}-${u}`);n._excludedEdges=n._excludedEdges.concat(o)}return n._nodes=(0,qI.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,VI.getter)(e,!0);return this.transform(o=>{if(o==null)return o;let a=o;return(0,zh.default)(o,e)&&(a=xn({},o),n||delete a[e],a[r]=i(o)),a})}noUnknown(e=!0,r=Zh.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let o=jI(this.schema,i);return!e||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Zh.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,$I.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(WI.default)}snakeCase(){return this.transformKeys(Jh.default)}constantCase(){return this.transformKeys(e=>(0,Jh.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,GI.default)(this.fields,r=>r.describe()),e}};Hi.default=Yi;function tE(t){return new Yi(t)}s(tE,"create");tE.prototype=Yi.prototype});var iE=q(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.create=nE;Ji.default=void 0;var al=vn(Cn()),HI=vn(Dn()),zI=vn(Li()),ul=bt(),JI=vn(Ho()),ZI=vn(Ur()),XI=vn(vt());function vn(t){return t&&t.__esModule?t:{default:t}}s(vn,"_interopRequireDefault");function sa(){return sa=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},sa.apply(this,arguments)}s(sa,"_extends");function nE(t){return new zi(t)}s(nE,"create");var zi=class extends XI.default{static{s(this,"ArraySchema")}constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,o=n.map((a,u)=>{let c=this.innerType.cast(a,sa({},r,{path:`${r.path||""}[${u}]`}));return c!==a&&(i=!0),c});return i?o:n}_validate(e,r={},n){var i,o;let a=[],u=r.sync,c=r.path,l=this.innerType,d=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(o=r.recursive)!=null?o:this.spec.recursive,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(h,m)=>{if(h){if(!ZI.default.isError(h)||d)return void n(h,m);a.push(h)}if(!f||!l||!this._typeCheck(m)){n(a[0]||null,m);return}p=p||m;let g=new Array(m.length);for(let y=0;y<m.length;y++){let S=m[y],O=`${r.path||""}[${y}]`,_=sa({},r,{path:O,strict:!0,parent:m,index:y,originalValue:p[y]});g[y]=(D,T)=>l.validate(S,_,T)}(0,JI.default)({sync:u,path:c,value:m,errors:a,endEarly:d,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,HI.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,zI.default)(e));return r.innerType=e,r}length(e,r=ul.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,al.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ul.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,al.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ul.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,al.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,o)=>!e(n,i,o):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Ji.default=zi;nE.prototype=zi.prototype});var sE=q(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.create=rw;Zi.default=void 0;var ew=tw(Dn());function tw(t){return t&&t.__esModule?t:{default:t}}s(tw,"_interopRequireDefault");function rw(t){return new oa(t)}s(rw,"create");var oa=class{static{s(this,"Lazy")}constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,ew.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},nw=oa;Zi.default=nw});var oE=q(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.default=ow;var iw=sw(bt());function sw(t){return t&&t.__esModule?t:{default:t}}s(sw,"_interopRequireDefault");function ow(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{iw.default[e][r]=t[e][r]})})}s(ow,"setLocale")});var dl=q(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.addMethod=pw;Object.defineProperty(te,"MixedSchema",{enumerable:!0,get:function(){return aE.default}});Object.defineProperty(te,"mixed",{enumerable:!0,get:function(){return aE.create}});Object.defineProperty(te,"BooleanSchema",{enumerable:!0,get:function(){return ll.default}});Object.defineProperty(te,"bool",{enumerable:!0,get:function(){return ll.create}});Object.defineProperty(te,"boolean",{enumerable:!0,get:function(){return ll.create}});Object.defineProperty(te,"StringSchema",{enumerable:!0,get:function(){return uE.default}});Object.defineProperty(te,"string",{enumerable:!0,get:function(){return uE.create}});Object.defineProperty(te,"NumberSchema",{enumerable:!0,get:function(){return cE.default}});Object.defineProperty(te,"number",{enumerable:!0,get:function(){return cE.create}});Object.defineProperty(te,"DateSchema",{enumerable:!0,get:function(){return lE.default}});Object.defineProperty(te,"date",{enumerable:!0,get:function(){return lE.create}});Object.defineProperty(te,"ObjectSchema",{enumerable:!0,get:function(){return dE.default}});Object.defineProperty(te,"object",{enumerable:!0,get:function(){return dE.create}});Object.defineProperty(te,"ArraySchema",{enumerable:!0,get:function(){return fE.default}});Object.defineProperty(te,"array",{enumerable:!0,get:function(){return fE.create}});Object.defineProperty(te,"ref",{enumerable:!0,get:function(){return aw.create}});Object.defineProperty(te,"lazy",{enumerable:!0,get:function(){return uw.create}});Object.defineProperty(te,"ValidationError",{enumerable:!0,get:function(){return cw.default}});Object.defineProperty(te,"reach",{enumerable:!0,get:function(){return lw.default}});Object.defineProperty(te,"isSchema",{enumerable:!0,get:function(){return pE.default}});Object.defineProperty(te,"setLocale",{enumerable:!0,get:function(){return dw.default}});Object.defineProperty(te,"BaseSchema",{enumerable:!0,get:function(){return fw.default}});var aE=Br(bh()),ll=Br(Uh()),uE=Br(Mh()),cE=Br(Wh()),lE=Br(qh()),dE=Br(rE()),fE=Br(iE()),aw=kr(),uw=sE(),cw=Xi(Ur()),lw=Xi(Jc()),pE=Xi(Dn()),dw=Xi(oE()),fw=Xi(vt());function Xi(t){return t&&t.__esModule?t:{default:t}}s(Xi,"_interopRequireDefault");function mE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return mE=s(function(){return t},"_getRequireWildcardCache"),t}s(mE,"_getRequireWildcardCache");function Br(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=mE();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=n?Object.getOwnPropertyDescriptor(t,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}s(Br,"_interopRequireWildcard");function pw(t,e,r){if(!t||!(0,pE.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}s(pw,"addMethod")});var hE=q(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});var fl=ml();pl.default=()=>{(0,fl.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,fl.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,fl.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var ml=q(Ae=>{"use strict";var mw=Ae&&Ae.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),hw=Ae&&Ae.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ew=Ae&&Ae.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&mw(e,t,r);return hw(e,t),e},gw=Ae&&Ae.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.validateOptions=Ae.registerOptionPreset=Ae.getOptionPresets=Ae.getOptionPreset=void 0;var R=Ew(dl());dl();var es=it(),yw=gw(hE());st();var Wr={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},EE=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),Tw=s(t=>Wr[t]?(0,es.valid)(Wr[t]):(0,es.err)(`Option preset '${t}' not found.`),"getOptionPreset");Ae.getOptionPreset=Tw;var Sw=s(()=>Wr,"getOptionPresets");Ae.getOptionPresets=Sw;var Aw=s((t,e)=>{Wr[t]=EE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})},"registerOptionPreset");Ae.registerOptionPreset=Aw;var _w=s(t=>{var e,r,n,i,o,a,u,c,l,d,f,p,h,m,g,y,S,O,_,D;try{(0,yw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Wr[t.preset])return(0,es.err)([`Option preset ${t.preset} does not exist.`]);T=Wr[t.preset]}else T=t.preset;else T=Wr.default;let I=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(o=T.useNearestWeekday)!==null&&o!==void 0?o:!1,useNthWeekdayOfMonth:(a=T.useNthWeekdayOfMonth)!==null&&a!==void 0?a:!1,seconds:{lowerLimit:(u=T.seconds.lowerLimit)!==null&&u!==void 0?u:T.seconds.minValue,upperLimit:(c=T.seconds.upperLimit)!==null&&c!==void 0?c:T.seconds.maxValue},minutes:{lowerLimit:(l=T.minutes.lowerLimit)!==null&&l!==void 0?l:T.minutes.minValue,upperLimit:(d=T.minutes.upperLimit)!==null&&d!==void 0?d:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f:T.hours.minValue,upperLimit:(p=T.hours.upperLimit)!==null&&p!==void 0?p:T.hours.maxValue},daysOfMonth:{lowerLimit:(h=T.daysOfMonth.lowerLimit)!==null&&h!==void 0?h:T.daysOfMonth.minValue,upperLimit:(m=T.daysOfMonth.upperLimit)!==null&&m!==void 0?m:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(y=T.months.upperLimit)!==null&&y!==void 0?y:T.months.maxValue},daysOfWeek:{lowerLimit:(S=T.daysOfWeek.lowerLimit)!==null&&S!==void 0?S:T.daysOfWeek.minValue,upperLimit:(O=T.daysOfWeek.upperLimit)!==null&&O!==void 0?O:T.daysOfWeek.maxValue},years:{lowerLimit:(_=T.years.lowerLimit)!==null&&_!==void 0?_:T.years.minValue,upperLimit:(D=T.years.upperLimit)!==null&&D!==void 0?D:T.years.maxValue}}),t.override),P=R.object({presetId:R.string().required(),preset:EE.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,es.valid)(P)}catch(T){return(0,es.err)(T.errors)}},"validateOptions");Ae.validateOptions=_w});var Tt=q((ts,El)=>{"use strict";var Gr=ts&&ts.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ts,"__esModule",{value:!0});var $r=it(),Ow=Gr(Km()),Iw=Gr(Qm()),ww=Gr(jm()),Dw=Gr(Ym()),Rw=Gr(Hm()),Cw=Gr(zm()),bw=Gr(Jm()),xw=ml();st();var vw=s((t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,$r.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,$r.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,$r.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,$r.valid)(n)},"splitCronString"),hl=s((t,e={})=>{let r=(0,xw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=vw(t,n);if(i.isError())return(0,$r.err)([`${i.getError()} (Input cron: '${t}')`]);let o=i.getValue(),a=[];if(n.useSeconds&&a.push((0,Ow.default)(o,n)),a.push((0,Iw.default)(o,n)),a.push((0,ww.default)(o,n)),a.push((0,Dw.default)(o,n)),a.push((0,Rw.default)(o,n)),a.push((0,Cw.default)(o,n)),n.useYears&&a.push((0,bw.default)(o,n)),a.every(c=>c.isValid()))return(0,$r.valid)(o);let u=[];return a.forEach(c=>{c.isError()&&c.getError().forEach(l=>{u.push(l)})}),u.forEach((c,l)=>{u[l]=`${c} (Input cron: '${t}')`}),(0,$r.err)(u)},"cron");ts.default=hl;El.exports=hl;El.exports.default=hl});var Qg=q(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});var Ut=class extends Error{static{s(this,"LuxonError")}},Dl=class extends Ut{static{s(this,"InvalidDateTimeError")}constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Rl=class extends Ut{static{s(this,"InvalidIntervalError")}constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Cl=class extends Ut{static{s(this,"InvalidDurationError")}constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},nr=class extends Ut{static{s(this,"ConflictingSpecificationError")}},ma=class extends Ut{static{s(this,"InvalidUnitError")}constructor(e){super(`Invalid unit ${e}`)}},_e=class extends Ut{static{s(this,"InvalidArgumentError")}},_t=class extends Ut{static{s(this,"ZoneIsAbstractError")}constructor(){super("Zone is an abstract class")}},x="numeric",ct="short",We="long",ha={year:x,month:x,day:x},jE={year:x,month:ct,day:x},Pw={year:x,month:ct,day:x,weekday:ct},YE={year:x,month:We,day:x},HE={year:x,month:We,day:x,weekday:We},zE={hour:x,minute:x},JE={hour:x,minute:x,second:x},ZE={hour:x,minute:x,second:x,timeZoneName:ct},XE={hour:x,minute:x,second:x,timeZoneName:We},eg={hour:x,minute:x,hourCycle:"h23"},tg={hour:x,minute:x,second:x,hourCycle:"h23"},rg={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:ct},ng={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:We},ig={year:x,month:x,day:x,hour:x,minute:x},sg={year:x,month:x,day:x,hour:x,minute:x,second:x},og={year:x,month:ct,day:x,hour:x,minute:x},ag={year:x,month:ct,day:x,hour:x,minute:x,second:x},Nw={year:x,month:ct,day:x,weekday:ct,hour:x,minute:x},ug={year:x,month:We,day:x,hour:x,minute:x,timeZoneName:ct},cg={year:x,month:We,day:x,hour:x,minute:x,second:x,timeZoneName:ct},lg={year:x,month:We,day:x,weekday:We,hour:x,minute:x,timeZoneName:We},dg={year:x,month:We,day:x,weekday:We,hour:x,minute:x,second:x,timeZoneName:We},sr=class{static{s(this,"Zone")}get type(){throw new _t}get name(){throw new _t}get ianaName(){return this.name}get isUniversal(){throw new _t}offsetName(e,r){throw new _t}formatOffset(e,r){throw new _t}offset(e){throw new _t}equals(e){throw new _t}get isValid(){throw new _t}},gl=null,as=class t extends sr{static{s(this,"SystemZone")}static get instance(){return gl===null&&(gl=new t),gl}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return _g(e,r,n)}formatOffset(e,r){return os(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},bl=new Map;function Uw(t){let e=bl.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),bl.set(t,e)),e}s(Uw,"makeDTF");var Lw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function kw(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,o,a,u,c,l,d]=n;return[a,i,o,u,c,l,d]}s(kw,"hackyOffset");function Mw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:o,value:a}=r[i],u=Lw[o];o==="era"?n[u]=a:Q(u)||(n[u]=parseInt(a,10))}return n}s(Mw,"partsOffset");var yl=new Map,Lt=class t extends sr{static{s(this,"IANAZone")}static create(e){let r=yl.get(e);return r===void 0&&yl.set(e,r=new t(e)),r}static resetCache(){yl.clear(),bl.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return _g(e,r,n,this.name)}formatOffset(e,r){return os(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=Uw(this.name),[i,o,a,u,c,l,d]=n.formatToParts?Mw(n,r):kw(n,r);u==="BC"&&(i=-Math.abs(i)+1);let p=_a({year:i,month:o,day:a,hour:c===24?0:c,minute:l,second:d,millisecond:0}),h=+r,m=h%1e3;return h-=m>=0?m:1e3+m,(p-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},gE={};function Fw(t,e={}){let r=JSON.stringify([t,e]),n=gE[r];return n||(n=new Intl.ListFormat(t,e),gE[r]=n),n}s(Fw,"getCachedLF");var xl=new Map;function vl(t,e={}){let r=JSON.stringify([t,e]),n=xl.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),xl.set(r,n)),n}s(vl,"getCachedDTF");var Pl=new Map;function Bw(t,e={}){let r=JSON.stringify([t,e]),n=Pl.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),Pl.set(r,n)),n}s(Bw,"getCachedINF");var Nl=new Map;function Ww(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),o=Nl.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(t,e),Nl.set(i,o)),o}s(Ww,"getCachedRTF");var ns=null;function $w(){return ns||(ns=new Intl.DateTimeFormat().resolvedOptions().locale,ns)}s($w,"systemLocale");var Ul=new Map;function fg(t){let e=Ul.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Ul.set(t,e)),e}s(fg,"getCachedIntResolvedOptions");var Ll=new Map;function Gw(t){let e=Ll.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...pg,...e}),Ll.set(t,e)}return e}s(Gw,"getCachedWeekInfo");function Vw(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=vl(t).resolvedOptions(),i=t}catch{let c=t.substring(0,r);n=vl(c).resolvedOptions(),i=c}let{numberingSystem:o,calendar:a}=n;return[i,o,a]}}s(Vw,"parseLocaleString");function qw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}s(qw,"intlConfigString");function Kw(t){let e=[];for(let r=1;r<=12;r++){let n=oe.utc(2009,r,1);e.push(t(n))}return e}s(Kw,"mapMonths");function Qw(t){let e=[];for(let r=1;r<=7;r++){let n=oe.utc(2016,11,13+r);e.push(t(n))}return e}s(Qw,"mapWeekdays");function aa(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}s(aa,"listStuff");function jw(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||fg(t.locale).numberingSystem==="latn"}s(jw,"supportsFastNumbers");var kl=class{static{s(this,"PolyNumberFormatter")}constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:o,...a}=n;if(!r||Object.keys(a).length>0){let u={useGrouping:!1,...n};n.padTo>0&&(u.minimumIntegerDigits=n.padTo),this.inf=Bw(e,u)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):jl(e,3);return pe(r,this.padTo)}}},Ml=class{static{s(this,"PolyDateFormatter")}constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),u=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&Lt.create(u).valid?(i=u,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=vl(r,o)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Fl=class{static{s(this,"PolyRelFormatter")}constructor(e,r,n){this.opts={style:"long",...n},!r&&Sg()&&(this.rtf=Ww(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):mD(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},pg={firstDay:1,minimalDays:4,weekend:[6,7]},ee=class t{static{s(this,"Locale")}static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,o=!1){let a=e||re.defaultLocale,u=a||(o?"en-US":$w()),c=r||re.defaultNumberingSystem,l=n||re.defaultOutputCalendar,d=Wl(i)||re.defaultWeekSettings;return new t(u,c,l,d,a)}static resetCache(){ns=null,xl.clear(),Pl.clear(),Nl.clear(),Ul.clear(),Ll.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,o){let[a,u,c]=Vw(e);this.locale=a,this.numberingSystem=r||u||null,this.outputCalendar=n||c||null,this.weekSettings=i,this.intl=qw(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=jw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Wl(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return aa(this,e,wg,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},o=r?"format":"standalone";if(!this.monthsCache[o][e]){let a=n?u=>this.dtFormatter(u,i).format():u=>this.extract(u,i,"month");this.monthsCache[o][e]=Kw(a)}return this.monthsCache[o][e]})}weekdays(e,r=!1){return aa(this,e,Cg,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=Qw(o=>this.extract(o,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return aa(this,void 0,()=>bg,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[oe.utc(2016,11,13,9),oe.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return aa(this,e,xg,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[oe.utc(-40,1,1),oe.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),o=i.formatToParts(),a=o.find(u=>u.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new kl(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Ml(e,this.intl,r)}relFormatter(e={}){return new Fl(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Fw(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||fg(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Ag()?Gw(this.locale):pg}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Tl=null,$e=class t extends sr{static{s(this,"FixedOffsetZone")}static get utcInstance(){return Tl===null&&(Tl=new t(0)),Tl}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Oa(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${os(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${os(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return os(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Ea=class extends sr{static{s(this,"InvalidZone")}constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function rr(t,e){if(Q(t)||t===null)return e;if(t instanceof sr)return t;if(Xw(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?as.instance:r==="utc"||r==="gmt"?$e.utcInstance:$e.parseSpecifier(r)||Lt.create(t)}else return ir(t)?$e.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Ea(t)}s(rr,"normalizeZone");var Vl={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},yE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Yw=Vl.hanidec.replace(/[\[|\]]/g,"").split("");function Hw(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(Vl.hanidec)!==-1)e+=Yw.indexOf(t[r]);else for(let i in yE){let[o,a]=yE[i];n>=o&&n<=a&&(e+=n-o)}}return parseInt(e,10)}else return e}s(Hw,"parseDigits");var Bl=new Map;function zw(){Bl.clear()}s(zw,"resetDigitRegexCache");function at({numberingSystem:t},e=""){let r=t||"latn",n=Bl.get(r);n===void 0&&(n=new Map,Bl.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${Vl[r]}${e}`),n.set(e,i)),i}s(at,"digitRegex");var TE=s(()=>Date.now(),"now"),SE="system",AE=null,_E=null,OE=null,IE=60,wE,DE=null,re=class{static{s(this,"Settings")}static get now(){return TE}static set now(e){TE=e}static set defaultZone(e){SE=e}static get defaultZone(){return rr(SE,as.instance)}static get defaultLocale(){return AE}static set defaultLocale(e){AE=e}static get defaultNumberingSystem(){return _E}static set defaultNumberingSystem(e){_E=e}static get defaultOutputCalendar(){return OE}static set defaultOutputCalendar(e){OE=e}static get defaultWeekSettings(){return DE}static set defaultWeekSettings(e){DE=Wl(e)}static get twoDigitCutoffYear(){return IE}static set twoDigitCutoffYear(e){IE=e%100}static get throwOnInvalid(){return wE}static set throwOnInvalid(e){wE=e}static resetCaches(){ee.resetCache(),Lt.resetCache(),oe.resetCache(),zw()}},Be=class{static{s(this,"Invalid")}constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},mg=[0,31,59,90,120,151,181,212,243,273,304,334],hg=[0,31,60,91,121,152,182,213,244,274,305,335];function Ye(t,e){return new Be("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}s(Ye,"unitOutOfRange");function ql(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}s(ql,"dayOfWeek");function Eg(t,e,r){return r+(cs(t)?hg:mg)[e-1]}s(Eg,"computeOrdinal");function gg(t,e){let r=cs(t)?hg:mg,n=r.findIndex(o=>o<e),i=e-r[n];return{month:n+1,day:i}}s(gg,"uncomputeOrdinal");function Kl(t,e){return(t-e+7)%7+1}s(Kl,"isoWeekdayToLocal");function ga(t,e=4,r=1){let{year:n,month:i,day:o}=t,a=Eg(n,i,o),u=Kl(ql(n,i,o),r),c=Math.floor((a-u+14-e)/7),l;return c<1?(l=n-1,c=us(l,e,r)):c>us(n,e,r)?(l=n+1,c=1):l=n,{weekYear:l,weekNumber:c,weekday:u,...Ia(t)}}s(ga,"gregorianToWeek");function RE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:o}=t,a=Kl(ql(n,1,e),r),u=Ln(n),c=i*7+o-a-7+e,l;c<1?(l=n-1,c+=Ln(l)):c>u?(l=n+1,c-=Ln(n)):l=n;let{month:d,day:f}=gg(l,c);return{year:l,month:d,day:f,...Ia(t)}}s(RE,"weekToGregorian");function Sl(t){let{year:e,month:r,day:n}=t,i=Eg(e,r,n);return{year:e,ordinal:i,...Ia(t)}}s(Sl,"gregorianToOrdinal");function CE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=gg(e,r);return{year:e,month:n,day:i,...Ia(t)}}s(CE,"ordinalToGregorian");function bE(t,e){if(!Q(t.localWeekday)||!Q(t.localWeekNumber)||!Q(t.localWeekYear)){if(!Q(t.weekday)||!Q(t.weekNumber)||!Q(t.weekYear))throw new nr("Cannot mix locale-based week fields with ISO-based week fields");return Q(t.localWeekday)||(t.weekday=t.localWeekday),Q(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Q(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}s(bE,"usesLocalWeekValues");function Jw(t,e=4,r=1){let n=Aa(t.weekYear),i=He(t.weekNumber,1,us(t.weekYear,e,r)),o=He(t.weekday,1,7);return n?i?o?!1:Ye("weekday",t.weekday):Ye("week",t.weekNumber):Ye("weekYear",t.weekYear)}s(Jw,"hasInvalidWeekData");function Zw(t){let e=Aa(t.year),r=He(t.ordinal,1,Ln(t.year));return e?r?!1:Ye("ordinal",t.ordinal):Ye("year",t.year)}s(Zw,"hasInvalidOrdinalData");function yg(t){let e=Aa(t.year),r=He(t.month,1,12),n=He(t.day,1,ya(t.year,t.month));return e?r?n?!1:Ye("day",t.day):Ye("month",t.month):Ye("year",t.year)}s(yg,"hasInvalidGregorianData");function Tg(t){let{hour:e,minute:r,second:n,millisecond:i}=t,o=He(e,0,23)||e===24&&r===0&&n===0&&i===0,a=He(r,0,59),u=He(n,0,59),c=He(i,0,999);return o?a?u?c?!1:Ye("millisecond",i):Ye("second",n):Ye("minute",r):Ye("hour",e)}s(Tg,"hasInvalidTimeData");function Q(t){return typeof t>"u"}s(Q,"isUndefined");function ir(t){return typeof t=="number"}s(ir,"isNumber");function Aa(t){return typeof t=="number"&&t%1===0}s(Aa,"isInteger");function Xw(t){return typeof t=="string"}s(Xw,"isString");function eD(t){return Object.prototype.toString.call(t)==="[object Date]"}s(eD,"isDate");function Sg(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}s(Sg,"hasRelative");function Ag(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}s(Ag,"hasLocaleWeekInfo");function tD(t){return Array.isArray(t)?t:[t]}s(tD,"maybeArray");function xE(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let o=[e(i),i];return n&&r(n[0],o[0])===n[0]?n:o},null)[1]}s(xE,"bestBy");function rD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}s(rD,"pick");function Mn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}s(Mn,"hasOwnProperty");function Wl(t){if(t==null)return null;if(typeof t!="object")throw new _e("Week settings must be an object");if(!He(t.firstDay,1,7)||!He(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!He(e,1,7)))throw new _e("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}s(Wl,"validateWeekSettings");function He(t,e,r){return Aa(t)&&t>=e&&t<=r}s(He,"integerBetween");function nD(t,e){return t-e*Math.floor(t/e)}s(nD,"floorMod");function pe(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}s(pe,"padStart");function tr(t){if(!(Q(t)||t===null||t===""))return parseInt(t,10)}s(tr,"parseInteger");function Vr(t){if(!(Q(t)||t===null||t===""))return parseFloat(t)}s(Vr,"parseFloating");function Ql(t){if(!(Q(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}s(Ql,"parseMillis");function jl(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}s(jl,"roundTo");function cs(t){return t%4===0&&(t%100!==0||t%400===0)}s(cs,"isLeapYear");function Ln(t){return cs(t)?366:365}s(Ln,"daysInYear");function ya(t,e){let r=nD(e-1,12)+1,n=t+(e-r)/12;return r===2?cs(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}s(ya,"daysInMonth");function _a(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}s(_a,"objToLocalTS");function vE(t,e,r){return-Kl(ql(t,1,e),r)+e-1}s(vE,"firstWeekOffset");function us(t,e=4,r=1){let n=vE(t,e,r),i=vE(t+1,e,r);return(Ln(t)-n+i)/7}s(us,"weeksInWeekYear");function $l(t){return t>99?t:t>re.twoDigitCutoffYear?1900+t:2e3+t}s($l,"untruncateYear");function _g(t,e,r,n=null){let i=new Date(t),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(o.timeZone=n);let a={timeZoneName:e,...o},u=new Intl.DateTimeFormat(r,a).formatToParts(i).find(c=>c.type.toLowerCase()==="timezonename");return u?u.value:null}s(_g,"parseZoneInfo");function Oa(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}s(Oa,"signedOffset");function Og(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new _e(`Invalid unit value ${t}`);return e}s(Og,"asNumber");function Ta(t,e){let r={};for(let n in t)if(Mn(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=Og(i)}return r}s(Ta,"normalizeObject");function os(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${pe(r,2)}:${pe(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${pe(r,2)}${pe(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}s(os,"formatOffset");function Ia(t){return rD(t,["hour","minute","second","millisecond"])}s(Ia,"timeObject");var iD=["January","February","March","April","May","June","July","August","September","October","November","December"],Ig=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],sD=["J","F","M","A","M","J","J","A","S","O","N","D"];function wg(t){switch(t){case"narrow":return[...sD];case"short":return[...Ig];case"long":return[...iD];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}s(wg,"months");var Dg=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Rg=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],oD=["M","T","W","T","F","S","S"];function Cg(t){switch(t){case"narrow":return[...oD];case"short":return[...Rg];case"long":return[...Dg];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}s(Cg,"weekdays");var bg=["AM","PM"],aD=["Before Christ","Anno Domini"],uD=["BC","AD"],cD=["B","A"];function xg(t){switch(t){case"narrow":return[...cD];case"short":return[...uD];case"long":return[...aD];default:return null}}s(xg,"eras");function lD(t){return bg[t.hour<12?0:1]}s(lD,"meridiemForDateTime");function dD(t,e){return Cg(e)[t.weekday-1]}s(dD,"weekdayForDateTime");function fD(t,e){return wg(e)[t.month-1]}s(fD,"monthForDateTime");function pD(t,e){return xg(e)[t.year<0?0:1]}s(pD,"eraForDateTime");function mD(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&o){let f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}let a=Object.is(e,-0)||e<0,u=Math.abs(e),c=u===1,l=i[t],d=n?c?l[1]:l[2]||l[1]:c?i[t][0]:t;return a?`${u} ${d} ago`:`in ${u} ${d}`}s(mD,"formatRelativeTime");function PE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}s(PE,"stringifyTokens");var hD={D:ha,DD:jE,DDD:YE,DDDD:HE,t:zE,tt:JE,ttt:ZE,tttt:XE,T:eg,TT:tg,TTT:rg,TTTT:ng,f:ig,ff:og,fff:ug,ffff:lg,F:sg,FF:ag,FFF:cg,FFFF:dg},Fe=class t{static{s(this,"Formatter")}static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,o=[];for(let a=0;a<e.length;a++){let u=e.charAt(a);u==="'"?((n.length>0||i)&&o.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||u===r?n+=u:(n.length>0&&o.push({literal:/^\s+$/.test(n),val:n}),n=u,r=u)}return n.length>0&&o.push({literal:i||/^\s+$/.test(n),val:n}),o}static macroTokenToFormatOpts(e){return hD[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return pe(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=s((h,m)=>this.loc.extract(e,h,m),"string"),a=s(h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"","formatOffset"),u=s(()=>n?lD(e):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),"meridiem"),c=s((h,m)=>n?fD(e,h):o(m?{month:h}:{month:h,day:"numeric"},"month"),"month"),l=s((h,m)=>n?dD(e,h):o(m?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),"weekday"),d=s(h=>{let m=t.macroTokenToFormatOpts(h);return m?this.formatWithSystemDefault(e,m):h},"maybeMacro"),f=s(h=>n?pD(e,h):o({era:h},"era"),"era"),p=s(h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return u();case"d":return i?o({day:"numeric"},"day"):this.num(e.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(e.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(e.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(h)}},"tokenToString");return PE(t.parseFormat(r),p)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=s(d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},"tokenToField"),o=s((d,f)=>p=>{let h=i(p);if(h){let m=f.isNegativeDuration&&h!==f.largestUnit?n:1,g;return this.opts.signMode==="negativeLargestOnly"&&h!==f.largestUnit?g="never":this.opts.signMode==="all"?g="always":g="auto",this.num(d.get(h)*m,p.length,g)}else return p},"tokenToString"),a=t.parseFormat(r),u=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),c=e.shiftTo(...u.map(i).filter(d=>d)),l={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return PE(a,o(c,l))}},vg=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Fn(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}s(Fn,"combineRegexes");function Bn(...t){return e=>t.reduce(([r,n,i],o)=>{let[a,u,c]=o(e,i);return[{...r,...a},u||n,c]},[{},null,1]).slice(0,2)}s(Bn,"combineExtractors");function Wn(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}s(Wn,"parse");function Pg(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=tr(e[r+i]);return[n,null,r+i]}}s(Pg,"simpleParse");var Ng=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,ED=`(?:${Ng.source}?(?:\\[(${vg.source})\\])?)?`,Yl=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ug=RegExp(`${Yl.source}${ED}`),Hl=RegExp(`(?:[Tt]${Ug.source})?`),gD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,yD=/(\d{4})-?W(\d\d)(?:-?(\d))?/,TD=/(\d{4})-?(\d{3})/,SD=Pg("weekYear","weekNumber","weekDay"),AD=Pg("year","ordinal"),_D=/(\d{4})-(\d\d)-(\d\d)/,Lg=RegExp(`${Yl.source} ?(?:${Ng.source}|(${vg.source}))?`),OD=RegExp(`(?: ${Lg.source})?`);function kn(t,e,r){let n=t[e];return Q(n)?r:tr(n)}s(kn,"int");function ID(t,e){return[{year:kn(t,e),month:kn(t,e+1,1),day:kn(t,e+2,1)},null,e+3]}s(ID,"extractISOYmd");function $n(t,e){return[{hours:kn(t,e,0),minutes:kn(t,e+1,0),seconds:kn(t,e+2,0),milliseconds:Ql(t[e+3])},null,e+4]}s($n,"extractISOTime");function ls(t,e){let r=!t[e]&&!t[e+1],n=Oa(t[e+1],t[e+2]),i=r?null:$e.instance(n);return[{},i,e+3]}s(ls,"extractISOOffset");function ds(t,e){let r=t[e]?Lt.create(t[e]):null;return[{},r,e+1]}s(ds,"extractIANAZone");var wD=RegExp(`^T?${Yl.source}$`),DD=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function RD(t){let[e,r,n,i,o,a,u,c,l]=t,d=e[0]==="-",f=c&&c[0]==="-",p=s((h,m=!1)=>h!==void 0&&(m||h&&d)?-h:h,"maybeNegate");return[{years:p(Vr(r)),months:p(Vr(n)),weeks:p(Vr(i)),days:p(Vr(o)),hours:p(Vr(a)),minutes:p(Vr(u)),seconds:p(Vr(c),c==="-0"),milliseconds:p(Ql(l),f)}]}s(RD,"extractISODuration");var CD={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function zl(t,e,r,n,i,o,a){let u={year:e.length===2?$l(tr(e)):tr(e),month:Ig.indexOf(r)+1,day:tr(n),hour:tr(i),minute:tr(o)};return a&&(u.second=tr(a)),t&&(u.weekday=t.length>3?Dg.indexOf(t)+1:Rg.indexOf(t)+1),u}s(zl,"fromStrings");var bD=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function xD(t){let[,e,r,n,i,o,a,u,c,l,d,f]=t,p=zl(e,i,n,r,o,a,u),h;return c?h=CD[c]:l?h=0:h=Oa(d,f),[p,new $e(h)]}s(xD,"extractRFC2822");function vD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}s(vD,"preprocessRFC2822");var PD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,ND=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,UD=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function NE(t){let[,e,r,n,i,o,a,u]=t;return[zl(e,i,n,r,o,a,u),$e.utcInstance]}s(NE,"extractRFC1123Or850");function LD(t){let[,e,r,n,i,o,a,u]=t;return[zl(e,u,r,n,i,o,a),$e.utcInstance]}s(LD,"extractASCII");var kD=Fn(gD,Hl),MD=Fn(yD,Hl),FD=Fn(TD,Hl),BD=Fn(Ug),kg=Bn(ID,$n,ls,ds),WD=Bn(SD,$n,ls,ds),$D=Bn(AD,$n,ls,ds),GD=Bn($n,ls,ds);function VD(t){return Wn(t,[kD,kg],[MD,WD],[FD,$D],[BD,GD])}s(VD,"parseISODate");function qD(t){return Wn(vD(t),[bD,xD])}s(qD,"parseRFC2822Date");function KD(t){return Wn(t,[PD,NE],[ND,NE],[UD,LD])}s(KD,"parseHTTPDate");function QD(t){return Wn(t,[DD,RD])}s(QD,"parseISODuration");var jD=Bn($n);function YD(t){return Wn(t,[wD,jD])}s(YD,"parseISOTimeOnly");var HD=Fn(_D,OD),zD=Fn(Lg),JD=Bn($n,ls,ds);function ZD(t){return Wn(t,[HD,kg],[zD,JD])}s(ZD,"parseSQL");var UE="Invalid Duration",Mg={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},XD={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...Mg},je=146097/400,Pn=146097/4800,eR={years:{quarters:4,months:12,weeks:je/7,days:je,hours:je*24,minutes:je*24*60,seconds:je*24*60*60,milliseconds:je*24*60*60*1e3},quarters:{months:3,weeks:je/28,days:je/4,hours:je*24/4,minutes:je*24*60/4,seconds:je*24*60*60/4,milliseconds:je*24*60*60*1e3/4},months:{weeks:Pn/7,days:Pn,hours:Pn*24,minutes:Pn*24*60,seconds:Pn*24*60*60,milliseconds:Pn*24*60*60*1e3},...Mg},Kr=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],tR=Kr.slice(0).reverse();function Nt(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new ge(n)}s(Nt,"clone$1");function Fg(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of tR.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}s(Fg,"durationToMillis");function LE(t,e){let r=Fg(t,e)<0?-1:1;Kr.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]*r,a=t[i][n],u=Math.floor(o/a);e[i]+=u*r,e[n]-=u*a*r}return i},null),Kr.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let o=e[n]%1;e[n]-=o,e[i]+=o*t[n][i]}return i},null)}s(LE,"normalizeValues");function kE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}s(kE,"removeZeroes");var ge=class t{static{s(this,"Duration")}constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?eR:XD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ee.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new _e(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Ta(e,t.normalizeUnit),loc:ee.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(ir(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new _e(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=QD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=YD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Duration is invalid");let n=e instanceof Be?e:new Be(e,r);if(re.throwOnInvalid)throw new Cl(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new ma(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?Fe.create(this.loc,n).formatDurationFromString(this,e):UE}toHuman(e={}){if(!this.isValid)return UE;let r=e.showZeros!==!1,n=Kr.map(i=>{let o=this.values[i];return Q(o)||o===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=jl(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},oe.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Fg(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Kr)(Mn(r.values,i)||Mn(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Nt(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=Og(e(this.values[n],n));return Nt(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Ta(e,t.normalizeUnit)};return Nt(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Nt(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return LE(this.matrix,e),Nt(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=kE(this.normalize().shiftToAll().toObject());return Nt(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let r={},n={},i=this.toObject(),o;for(let a of Kr)if(e.indexOf(a)>=0){o=a;let u=0;for(let l in n)u+=this.matrix[l][a]*n[l],n[l]=0;ir(i[a])&&(u+=i[a]);let c=Math.trunc(u);r[a]=c,n[a]=(u*1e3-c*1e3)/1e3}else ir(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(r[o]+=a===o?n[a]:n[a]/this.matrix[o][a]);return LE(this.matrix,r),Nt(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Nt(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=kE(this.values);return Nt(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}s(r,"eq");for(let n of Kr)if(!r(this.values[n],e.values[n]))return!1;return!0}},Nn="Invalid Interval";function rR(t,e){return!t||!t.isValid?jr.invalid("missing or invalid start"):!e||!e.isValid?jr.invalid("missing or invalid end"):e<t?jr.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}s(rR,"validateStartEnd");var jr=class t{static{s(this,"Interval")}constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the Interval is invalid");let n=e instanceof Be?e:new Be(e,r);if(re.throwOnInvalid)throw new Rl(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=rs(e),i=rs(r),o=rR(n,i);return o??new t({start:n,end:i})}static after(e,r){let n=ge.fromDurationLike(r),i=rs(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=ge.fromDurationLike(r),i=rs(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let o,a;try{o=oe.fromISO(n,r),a=o.isValid}catch{a=!1}let u,c;try{u=oe.fromISO(i,r),c=u.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(o,u);if(a){let l=ge.fromISO(i,r);if(l.isValid)return t.after(o,l)}else if(c){let l=ge.fromISO(n,r);if(l.isValid)return t.before(u,l)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(rs).filter(a=>this.contains(a)).sort((a,u)=>a.toMillis()-u.toMillis()),n=[],{s:i}=this,o=0;for(;i<this.e;){let a=r[o]||this.e,u=+a>+this.e?this.e:a;n.push(t.fromDateTimes(i,u)),i=u,o+=1}return n}splitBy(e){let r=ge.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,o,a=[];for(;n<this.e;){let u=this.start.plus(r.mapUnits(c=>c*i));o=+u>+this.e?this.e:u,a.push(t.fromDateTimes(n,o)),n=o,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],o=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...o),u=a.sort((c,l)=>c.time-l.time);for(let c of u)n+=c.type==="s"?1:-1,n===1?r=c.time:(r&&+r!=+c.time&&i.push(t.fromDateTimes(r,c.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Nn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=ha,r={}){return this.isValid?Fe.create(this.s.loc.clone(r),e).formatInterval(this):Nn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Nn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Nn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Nn}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Nn}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):ge.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Qr=class{static{s(this,"Info")}static hasDST(e=re.defaultZone){let r=oe.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Lt.isValidZone(e)}static normalizeZone(e){return rr(e,re.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||ee.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||ee.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||ee.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||ee.create(r,n,o)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||ee.create(r,n,o)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ee.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ee.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ee.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return ee.create(r,null,"gregory").eras(e)}static features(){return{relative:Sg(),localeWeek:Ag()}}};function ME(t,e){let r=s(i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),"utcDayStart"),n=r(e)-r(t);return Math.floor(ge.fromMillis(n).as("days"))}s(ME,"dayDiff");function nR(t,e,r){let n=[["years",(c,l)=>l.year-c.year],["quarters",(c,l)=>l.quarter-c.quarter+(l.year-c.year)*4],["months",(c,l)=>l.month-c.month+(l.year-c.year)*12],["weeks",(c,l)=>{let d=ME(c,l);return(d-d%7)/7}],["days",ME]],i={},o=t,a,u;for(let[c,l]of n)r.indexOf(c)>=0&&(a=c,i[c]=l(t,e),u=o.plus(i),u>e?(i[c]--,t=o.plus(i),t>e&&(u=t,i[c]--,t=o.plus(i))):t=u);return[t,i,u,a]}s(nR,"highOrderDiffs");function iR(t,e,r,n){let[i,o,a,u]=nR(t,e,r),c=e-i,l=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);l.length===0&&(a<e&&(a=i.plus({[u]:1})),a!==i&&(o[u]=(o[u]||0)+c/(a-i)));let d=ge.fromObject(o,n);return l.length>0?ge.fromMillis(c,n).shiftTo(...l).plus(d):d}s(iR,"diff");var sR="missing Intl.DateTimeFormat.formatToParts support";function X(t,e=r=>r){return{regex:t,deser:([r])=>e(Hw(r))}}s(X,"intUnit");var oR=String.fromCharCode(160),Bg=`[ ${oR}]`,Wg=new RegExp(Bg,"g");function aR(t){return t.replace(/\./g,"\\.?").replace(Wg,Bg)}s(aR,"fixListRegex");function FE(t){return t.replace(/\./g,"").replace(Wg," ").toLowerCase()}s(FE,"stripInsensitivities");function ut(t,e){return t===null?null:{regex:RegExp(t.map(aR).join("|")),deser:([r])=>t.findIndex(n=>FE(r)===FE(n))+e}}s(ut,"oneOf");function BE(t,e){return{regex:t,deser:([,r,n])=>Oa(r,n),groups:e}}s(BE,"offset");function ua(t){return{regex:t,deser:([e])=>e}}s(ua,"simple");function uR(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}s(uR,"escapeToken");function cR(t,e){let r=at(e),n=at(e,"{2}"),i=at(e,"{3}"),o=at(e,"{4}"),a=at(e,"{6}"),u=at(e,"{1,2}"),c=at(e,"{1,3}"),l=at(e,"{1,6}"),d=at(e,"{1,9}"),f=at(e,"{2,4}"),p=at(e,"{4,6}"),h=s(y=>({regex:RegExp(uR(y.val)),deser:([S])=>S,literal:!0}),"literal"),g=s(y=>{if(t.literal)return h(y);switch(y.val){case"G":return ut(e.eras("short"),0);case"GG":return ut(e.eras("long"),0);case"y":return X(l);case"yy":return X(f,$l);case"yyyy":return X(o);case"yyyyy":return X(p);case"yyyyyy":return X(a);case"M":return X(u);case"MM":return X(n);case"MMM":return ut(e.months("short",!0),1);case"MMMM":return ut(e.months("long",!0),1);case"L":return X(u);case"LL":return X(n);case"LLL":return ut(e.months("short",!1),1);case"LLLL":return ut(e.months("long",!1),1);case"d":return X(u);case"dd":return X(n);case"o":return X(c);case"ooo":return X(i);case"HH":return X(n);case"H":return X(u);case"hh":return X(n);case"h":return X(u);case"mm":return X(n);case"m":return X(u);case"q":return X(u);case"qq":return X(n);case"s":return X(u);case"ss":return X(n);case"S":return X(c);case"SSS":return X(i);case"u":return ua(d);case"uu":return ua(u);case"uuu":return X(r);case"a":return ut(e.meridiems(),0);case"kkkk":return X(o);case"kk":return X(f,$l);case"W":return X(u);case"WW":return X(n);case"E":case"c":return X(r);case"EEE":return ut(e.weekdays("short",!1),1);case"EEEE":return ut(e.weekdays("long",!1),1);case"ccc":return ut(e.weekdays("short",!0),1);case"cccc":return ut(e.weekdays("long",!0),1);case"Z":case"ZZ":return BE(new RegExp(`([+-]${u.source})(?::(${n.source}))?`),2);case"ZZZ":return BE(new RegExp(`([+-]${u.source})(${n.source})?`),2);case"z":return ua(/[a-z_+-/]{1,256}?/i);case" ":return ua(/[^\S\n\r]/);default:return h(y)}},"unitate")(t)||{invalidReason:sR};return g.token=t,g}s(cR,"unitForToken");var lR={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function dR(t,e,r){let{type:n,value:i}=t;if(n==="literal"){let c=/^\s+$/.test(i);return{literal:!c,val:c?" ":i}}let o=e[n],a=n;n==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=r.hour12?"hour12":"hour24");let u=lR[a];if(typeof u=="object"&&(u=u[o]),u)return{literal:!1,val:u}}s(dR,"tokenForPart");function fR(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}s(fR,"buildRegex");function pR(t,e,r){let n=t.match(e);if(n){let i={},o=1;for(let a in r)if(Mn(r,a)){let u=r[a],c=u.groups?u.groups+1:1;!u.literal&&u.token&&(i[u.token.val[0]]=u.deser(n.slice(o,o+c))),o+=c}return[n,i]}else return[n,{}]}s(pR,"match");function mR(t){let e=s(o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},"toField"),r=null,n;return Q(t.z)||(r=Lt.create(t.z)),Q(t.Z)||(r||(r=new $e(t.Z)),n=t.Z),Q(t.q)||(t.M=(t.q-1)*3+1),Q(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),Q(t.u)||(t.S=Ql(t.u)),[Object.keys(t).reduce((o,a)=>{let u=e(a);return u&&(o[u]=t[a]),o},{}),r,n]}s(mR,"dateTimeFromMatches");var Al=null;function hR(){return Al||(Al=oe.fromMillis(1555555555555)),Al}s(hR,"getDummyDateTime");function ER(t,e){if(t.literal)return t;let r=Fe.macroTokenToFormatOpts(t.val),n=Vg(r,e);return n==null||n.includes(void 0)?t:n}s(ER,"maybeExpandMacroToken");function $g(t,e){return Array.prototype.concat(...t.map(r=>ER(r,e)))}s($g,"expandMacroTokens");var Sa=class{static{s(this,"TokenParser")}constructor(e,r){if(this.locale=e,this.format=r,this.tokens=$g(Fe.parseFormat(r),e),this.units=this.tokens.map(n=>cR(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=fR(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=pR(e,this.regex,this.handlers),[i,o,a]=n?mR(n):[null,null,void 0];if(Mn(n,"a")&&Mn(n,"H"))throw new nr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:o,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Gg(t,e,r){return new Sa(t,r).explainFromTokens(e)}s(Gg,"explainFromTokens");function gR(t,e,r){let{result:n,zone:i,specificOffset:o,invalidReason:a}=Gg(t,e,r);return[n,i,o,a]}s(gR,"parseFromTokens");function Vg(t,e){if(!t)return null;let n=Fe.create(e,t).dtFormatter(hR()),i=n.formatToParts(),o=n.resolvedOptions();return i.map(a=>dR(a,t,o))}s(Vg,"formatOptsToTokens");var _l="Invalid DateTime",WE=864e13;function is(t){return new Be("unsupported zone",`the zone "${t.name}" is not supported`)}s(is,"unsupportedZone");function Ol(t){return t.weekData===null&&(t.weekData=ga(t.c)),t.weekData}s(Ol,"possiblyCachedWeekData");function Il(t){return t.localWeekData===null&&(t.localWeekData=ga(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}s(Il,"possiblyCachedLocalWeekData");function qr(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new oe({...r,...e,old:r})}s(qr,"clone");function qg(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let o=r.offset(n);return i===o?[n,i]:[t-Math.min(i,o)*60*1e3,Math.max(i,o)]}s(qg,"fixOffset");function ca(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}s(ca,"tsToObj");function da(t,e,r){return qg(_a(t),e,r)}s(da,"objToTS");function $E(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,o={...t.c,year:n,month:i,day:Math.min(t.c.day,ya(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=ge.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),u=_a(o),[c,l]=qg(u,r,t.zone);return a!==0&&(c+=a,l=t.zone.offset(c)),{ts:c,o:l}}s($E,"adjustTime");function Un(t,e,r,n,i,o){let{setZone:a,zone:u}=r;if(t&&Object.keys(t).length!==0||e){let c=e||u,l=oe.fromObject(t,{...r,zone:c,specificOffset:o});return a?l:l.setZone(u)}else return oe.invalid(new Be("unparsable",`the input "${i}" can't be parsed as ${n}`))}s(Un,"parseDataToDateTime");function la(t,e,r=!0){return t.isValid?Fe.create(ee.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}s(la,"toTechFormat");function wl(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=pe(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=pe(t.c.month),r==="month")return i;i+="-"}else if(i+=pe(t.c.month),r==="month")return i;return i+=pe(t.c.day),i}s(wl,"toISODate");function GE(t,e,r,n,i,o,a){let u=!r||t.c.millisecond!==0||t.c.second!==0,c="";switch(a){case"day":case"month":case"year":break;default:if(c+=pe(t.c.hour),a==="hour")break;if(e){if(c+=":",c+=pe(t.c.minute),a==="minute")break;u&&(c+=":",c+=pe(t.c.second))}else{if(c+=pe(t.c.minute),a==="minute")break;u&&(c+=pe(t.c.second))}if(a==="second")break;u&&(!n||t.c.millisecond!==0)&&(c+=".",c+=pe(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!o?c+="Z":t.o<0?(c+="-",c+=pe(Math.trunc(-t.o/60)),c+=":",c+=pe(Math.trunc(-t.o%60))):(c+="+",c+=pe(Math.trunc(t.o/60)),c+=":",c+=pe(Math.trunc(t.o%60)))),o&&(c+="["+t.zone.ianaName+"]"),c}s(GE,"toISOTime");var Kg={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},yR={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},TR={ordinal:1,hour:0,minute:0,second:0,millisecond:0},fa=["year","month","day","hour","minute","second","millisecond"],SR=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],AR=["year","ordinal","hour","minute","second","millisecond"];function pa(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new ma(t);return e}s(pa,"normalizeUnit");function VE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return pa(t)}}s(VE,"normalizeUnitWithLocalWeeks");function _R(t){if(ss===void 0&&(ss=re.now()),t.type!=="iana")return t.offset(ss);let e=t.name,r=Gl.get(e);return r===void 0&&(r=t.offset(ss),Gl.set(e,r)),r}s(_R,"guessOffsetForZone");function qE(t,e){let r=rr(e.zone,re.defaultZone);if(!r.isValid)return oe.invalid(is(r));let n=ee.fromObject(e),i,o;if(Q(t.year))i=re.now();else{for(let c of fa)Q(t[c])&&(t[c]=Kg[c]);let a=yg(t)||Tg(t);if(a)return oe.invalid(a);let u=_R(r);[i,o]=da(t,u,r)}return new oe({ts:i,zone:r,loc:n,o})}s(qE,"quickDT");function KE(t,e,r){let n=Q(r.round)?!0:r.round,i=Q(r.rounding)?"trunc":r.rounding,o=s((u,c)=>(u=jl(u,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(u,c)),"format"),a=s(u=>r.calendary?e.hasSame(t,u)?0:e.startOf(u).diff(t.startOf(u),u).get(u):e.diff(t,u).get(u),"differ");if(r.unit)return o(a(r.unit),r.unit);for(let u of r.units){let c=a(u);if(Math.abs(c)>=1)return o(c,u)}return o(t>e?-0:0,r.units[r.units.length-1])}s(KE,"diffRelative");function QE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}s(QE,"lastOpts");var ss,Gl=new Map,oe=class t{static{s(this,"DateTime")}constructor(e){let r=e.zone||re.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Be("invalid input"):null)||(r.isValid?null:is(r));this.ts=Q(e.ts)?re.now():e.ts;let i=null,o=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,o]=[e.old.c,e.old.o];else{let u=ir(e.o)&&!e.old?e.o:r.offset(this.ts);i=ca(this.ts,u),n=Number.isNaN(i.year)?new Be("invalid input"):null,i=n?null:i,o=n?null:u}this._zone=r,this.loc=e.loc||ee.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=QE(arguments),[n,i,o,a,u,c,l]=r;return qE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static utc(){let[e,r]=QE(arguments),[n,i,o,a,u,c,l]=r;return e.zone=$e.utcInstance,qE({year:n,month:i,day:o,hour:a,minute:u,second:c,millisecond:l},e)}static fromJSDate(e,r={}){let n=eD(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=rr(r.zone,re.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:ee.fromObject(r)}):t.invalid(is(i))}static fromMillis(e,r={}){if(ir(e))return e<-WE||e>WE?t.invalid("Timestamp out of range"):new t({ts:e,zone:rr(r.zone,re.defaultZone),loc:ee.fromObject(r)});throw new _e(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(ir(e))return new t({ts:e*1e3,zone:rr(r.zone,re.defaultZone),loc:ee.fromObject(r)});throw new _e("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=rr(r.zone,re.defaultZone);if(!n.isValid)return t.invalid(is(n));let i=ee.fromObject(r),o=Ta(e,VE),{minDaysInFirstWeek:a,startOfWeek:u}=bE(o,i),c=re.now(),l=Q(r.specificOffset)?n.offset(c):r.specificOffset,d=!Q(o.ordinal),f=!Q(o.year),p=!Q(o.month)||!Q(o.day),h=f||p,m=o.weekYear||o.weekNumber;if((h||d)&&m)throw new nr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new nr("Can't mix ordinal dates with month/day");let g=m||o.weekday&&!h,y,S,O=ca(c,l);g?(y=SR,S=yR,O=ga(O,a,u)):d?(y=AR,S=TR,O=Sl(O)):(y=fa,S=Kg);let _=!1;for(let Y of y){let Dt=o[Y];Q(Dt)?_?o[Y]=S[Y]:o[Y]=O[Y]:_=!0}let D=g?Jw(o,a,u):d?Zw(o):yg(o),T=D||Tg(o);if(T)return t.invalid(T);let I=g?RE(o,a,u):d?CE(o):o,[M,P]=da(I,l,n),k=new t({ts:M,zone:n,o:P,loc:i});return o.weekday&&h&&e.weekday!==k.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${k.toISO()}`):k.isValid?k:t.invalid(k.invalid)}static fromISO(e,r={}){let[n,i]=VD(e);return Un(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=qD(e);return Un(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=KD(e);return Un(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:o=null}=n,a=ee.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[u,c,l,d]=gR(a,e,r);return d?t.invalid(d):Un(u,c,n,`format ${r}`,e,l)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=ZD(e);return Un(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new _e("need to specify a reason the DateTime is invalid");let n=e instanceof Be?e:new Be(e,r);if(re.throwOnInvalid)throw new Dl(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=Vg(e,ee.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return $g(Fe.parseFormat(e),ee.fromObject(r)).map(i=>i.val).join("")}static resetCache(){ss=void 0,Gl.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Ol(this).weekYear:NaN}get weekNumber(){return this.isValid?Ol(this).weekNumber:NaN}get weekday(){return this.isValid?Ol(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Il(this).weekday:NaN}get localWeekNumber(){return this.isValid?Il(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Il(this).weekYear:NaN}get ordinal(){return this.isValid?Sl(this.c).ordinal:NaN}get monthShort(){return this.isValid?Qr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Qr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Qr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Qr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=_a(this.c),i=this.zone.offset(n-e),o=this.zone.offset(n+e),a=this.zone.offset(n-i*r),u=this.zone.offset(n-o*r);if(a===u)return[this];let c=n-a*r,l=n-u*r,d=ca(c,a),f=ca(l,u);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[qr(this,{ts:c}),qr(this,{ts:l})]:[this]}get isInLeapYear(){return cs(this.year)}get daysInMonth(){return ya(this.year,this.month)}get daysInYear(){return this.isValid?Ln(this.year):NaN}get weeksInWeekYear(){return this.isValid?us(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?us(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=Fe.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone($e.instance(e),r)}toLocal(){return this.setZone(re.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=rr(e,re.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let o=e.offset(this.ts),a=this.toObject();[i]=da(a,o,e)}return qr(this,{ts:i,zone:e})}else return t.invalid(is(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return qr(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Ta(e,VE),{minDaysInFirstWeek:n,startOfWeek:i}=bE(r,this.loc),o=!Q(r.weekYear)||!Q(r.weekNumber)||!Q(r.weekday),a=!Q(r.ordinal),u=!Q(r.year),c=!Q(r.month)||!Q(r.day),l=u||c,d=r.weekYear||r.weekNumber;if((l||a)&&d)throw new nr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new nr("Can't mix ordinal dates with month/day");let f;o?f=RE({...ga(this.c,n,i),...r},n,i):Q(r.ordinal)?(f={...this.toObject(),...r},Q(r.day)&&(f.day=Math.min(ya(f.year,f.month),f.day))):f=CE({...Sl(this.c),...r});let[p,h]=da(f,this.o,this.zone);return qr(this,{ts:p,o:h})}plus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e);return qr(this,$E(this,r))}minus(e){if(!this.isValid)return this;let r=ge.fromDurationLike(e).negate();return qr(this,$E(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=ge.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let o=this.loc.getStartOfWeek(),{weekday:a}=this;a<o&&(n.weekNumber=this.weekNumber-1),n.weekday=o}else n.weekday=1;if(i==="quarters"){let o=Math.ceil(this.month/3);n.month=(o-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Fe.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):_l}toLocaleString(e=ha,r={}){return this.isValid?Fe.create(this.loc.clone(r),e).formatDateTime(this):_l}toLocaleParts(e={}){return this.isValid?Fe.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:o=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=pa(a);let u=e==="extended",c=wl(this,u,a);return fa.indexOf(a)>=3&&(c+="T"),c+=GE(this,u,r,n,i,o,a),c}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?wl(this,e==="extended",pa(r)):null}toISOWeekDate(){return la(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:u="milliseconds"}={}){return this.isValid?(u=pa(u),(i&&fa.indexOf(u)>=3?"T":"")+GE(this,a==="extended",r,e,n,o,u)):null}toRFC2822(){return la(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return la(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?wl(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),la(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():_l}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return ge.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},o=tD(r).map(ge.normalizeUnit),a=e.valueOf()>this.valueOf(),u=a?this:e,c=a?e:this,l=iR(u,c,o,i);return a?l.negate():l}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?jr.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),o=this.setZone(e.zone,{keepLocalTime:!0});return o.startOf(r,n)<=i&&i<=o.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],o=e.unit;return Array.isArray(e.unit)&&(i=e.unit,o=void 0),KE(r,this.plus(n),{...e,numeric:"always",units:i,unit:o})}toRelativeCalendar(e={}){return this.isValid?KE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new _e("min requires all arguments be DateTimes");return xE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new _e("max requires all arguments be DateTimes");return xE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:o=null}=n,a=ee.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Gg(a,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,o=ee.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Sa(o,e)}static fromFormatParser(e,r,n={}){if(Q(e)||Q(r))throw new _e("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:o=null}=n,a=ee.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(r.locale))throw new _e(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${r.locale}`);let{result:u,zone:c,specificOffset:l,invalidReason:d}=r.explainFromTokens(e);return d?t.invalid(d):Un(u,c,n,`format ${r.format}`,e,l)}static get DATE_SHORT(){return ha}static get DATE_MED(){return jE}static get DATE_MED_WITH_WEEKDAY(){return Pw}static get DATE_FULL(){return YE}static get DATE_HUGE(){return HE}static get TIME_SIMPLE(){return zE}static get TIME_WITH_SECONDS(){return JE}static get TIME_WITH_SHORT_OFFSET(){return ZE}static get TIME_WITH_LONG_OFFSET(){return XE}static get TIME_24_SIMPLE(){return eg}static get TIME_24_WITH_SECONDS(){return tg}static get TIME_24_WITH_SHORT_OFFSET(){return rg}static get TIME_24_WITH_LONG_OFFSET(){return ng}static get DATETIME_SHORT(){return ig}static get DATETIME_SHORT_WITH_SECONDS(){return sg}static get DATETIME_MED(){return og}static get DATETIME_MED_WITH_SECONDS(){return ag}static get DATETIME_MED_WITH_WEEKDAY(){return Nw}static get DATETIME_FULL(){return ug}static get DATETIME_FULL_WITH_SECONDS(){return cg}static get DATETIME_HUGE(){return lg}static get DATETIME_HUGE_WITH_SECONDS(){return dg}};function rs(t){if(oe.isDateTime(t))return t;if(t&&t.valueOf&&ir(t.valueOf()))return oe.fromJSDate(t);if(t&&typeof t=="object")return oe.fromObject(t);throw new _e(`Unknown datetime argument: ${t}, of type ${typeof t}`)}s(rs,"friendlyDateTime");var OR="3.7.1";Ge.DateTime=oe;Ge.Duration=ge;Ge.FixedOffsetZone=$e;Ge.IANAZone=Lt;Ge.Info=Qr;Ge.Interval=jr;Ge.InvalidZone=Ea;Ge.Settings=re;Ge.SystemZone=as;Ge.VERSION=OR;Ge.Zone=sr});var Yg=q((eF,jg)=>{"use strict";var Yr=Qg();j.prototype.addYear=function(){this._date=this._date.plus({years:1})};j.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};j.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};j.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};j.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};j.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};j.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};j.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};j.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};j.prototype.getDate=function(){return this._date.day};j.prototype.getFullYear=function(){return this._date.year};j.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};j.prototype.getMonth=function(){return this._date.month-1};j.prototype.getHours=function(){return this._date.hour};j.prototype.getMinutes=function(){return this._date.minute};j.prototype.getSeconds=function(){return this._date.second};j.prototype.getMilliseconds=function(){return this._date.millisecond};j.prototype.getTime=function(){return this._date.valueOf()};j.prototype.getUTCDate=function(){return this._getUTC().day};j.prototype.getUTCFullYear=function(){return this._getUTC().year};j.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};j.prototype.getUTCMonth=function(){return this._getUTC().month-1};j.prototype.getUTCHours=function(){return this._getUTC().hour};j.prototype.getUTCMinutes=function(){return this._getUTC().minute};j.prototype.getUTCSeconds=function(){return this._getUTC().second};j.prototype.toISOString=function(){return this._date.toUTC().toISO()};j.prototype.toJSON=function(){return this._date.toJSON()};j.prototype.setDate=function(t){this._date=this._date.set({day:t})};j.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};j.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};j.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};j.prototype.setHours=function(t){this._date=this._date.set({hour:t})};j.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};j.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};j.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};j.prototype._getUTC=function(){return this._date.toUTC()};j.prototype.toString=function(){return this.toDate().toString()};j.prototype.toDate=function(){return this._date.toJSDate()};j.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};j.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function j(t,e){var r={zone:e};if(t?t instanceof j?this._date=t._date:t instanceof Date?this._date=Yr.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Yr.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Yr.DateTime.fromISO(t,r),this._date.isValid||(this._date=Yr.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Yr.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Yr.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Yr.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}s(j,"CronDate");jg.exports=j});var Jg=q((rF,zg)=>{"use strict";function Hr(t){return{start:t,count:1}}s(Hr,"buildRange");function Hg(t,e){t.end=e,t.step=e-t.start,t.count=2}s(Hg,"completeRangeWithItem");function Jl(t,e,r){e&&(e.count===2?(t.push(Hr(e.start)),t.push(Hr(e.end))):t.push(e)),r&&t.push(r)}s(Jl,"finalizeCurrentRange");function IR(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Jl(e,r,Hr(i)),r=void 0):r?r.count===1?Hg(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hr(r.start)),r=Hr(r.end),Hg(r,i)):(Jl(e,r),r=Hr(i)):r=Hr(i)}return Jl(e,r),e}s(IR,"compactField");zg.exports=IR});var Xg=q((iF,Zg)=>{"use strict";var wR=Jg();function DR(t,e,r){var n=wR(t);if(n.length===1){var i=n[0],o=i.step;if(o===1&&i.start===e&&i.end===r)return"*";if(o!==1&&i.start===e&&i.end===r-o+1)return"*/"+o}for(var a=[],u=0,c=n.length;u<c;++u){var l=n[u];if(l.count===1){a.push(l.start);continue}var o=l.step;if(l.step===1){a.push(l.start+"-"+l.end);continue}var d=l.start==0?l.count-1:l.count;l.step*d>l.end?a=a.concat(Array.from({length:l.end-l.start+1}).map(function(p,h){var m=l.start+h;return(m-l.start)%l.step===0?m:null}).filter(function(p){return p!=null})):l.end===r-l.step+1?a.push(l.start+"/"+l.step):a.push(l.start+"-"+l.end+"/"+l.step)}return a.join(",")}s(DR,"stringifyField");Zg.exports=DR});var ry=q((oF,ty)=>{"use strict";var zr=Yg(),RR=Xg(),ey=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new zr(e.currentDate,this._tz),this._startDate=e.startDate?new zr(e.startDate,this._tz):null,this._endDate=e.endDate?new zr(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}s(U,"CronExpression");U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=s(function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})},"_isValidConstraintChar");U._parseField=s(function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(c){if(c=c.toLowerCase(),typeof i[c]<"u")return i[c];throw new Error('Validation error, cannot resolve alias "'+c+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function o(c){var l=[];function d(m){if(m instanceof Array)for(var g=0,y=m.length;g<y;g++){var S=m[g];if(U._isValidConstraintChar(n,S)){l.push(S);continue}if(typeof S!="number"||Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);l.push(S)}else{if(U._isValidConstraintChar(n,m)){l.push(m);return}var O=+m;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+m+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),l.push(O)}}s(d,"handleResult");var f=c.split(",");if(!f.every(function(m){return m.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var p=0,h=f.length;p<h;p++)d(a(f[p]));else d(a(c));return l.sort(U._sortCompareFn),l}s(o,"parseSequence");function a(c){var l=1,d=c.split("/");if(d.length>2)throw new Error("Invalid repeat: "+c);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),u(d[0],d[d.length-1])):u(c,l)}s(a,"parseRepeat");function u(c,l){var d=[],f=c.split("-");if(f.length>1){if(f.length<2)return+c;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+c);return+c}var p=+f[0],h=+f[1];if(Number.isNaN(p)||Number.isNaN(h)||p<n.min||h>n.max)throw new Error("Constraint error, got range "+p+"-"+h+" expected range "+n.min+"-"+n.max);if(p>h)throw new Error("Invalid range: "+c);var m=+l;if(Number.isNaN(m)||m<=0)throw new Error("Constraint error, cannot repeat at every "+m+" time.");e==="dayOfWeek"&&h%7===0&&d.push(0);for(var g=p,y=h;g<=y;g++){var S=d.indexOf(g)!==-1;!S&&m>0&&m%l===0?(m=1,d.push(g)):m++}return d}return Number.isNaN(+c)?c:+c}return s(u,"parseRange"),o(r)},"_parseField");U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var o=t.getHours();t[e+r]();var a=t.getHours(),u=a-o;u===2?this.fields.hour.length!==24&&(this._dstStart=a):u===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};U.prototype._findSchedule=s(function(e){function r(S,O){for(var _=0,D=O.length;_<D;_++)if(O[_]>=S)return O[_]===S;return O[0]===S}s(r,"matchSchedule");function n(S,O){if(O<6){if(S.getDate()<8&&O===1)return!0;var _=S.getDate()%7?1:0,D=S.getDate()-S.getDate()%7,T=Math.floor(D/7)+_;return T===O}return!1}s(n,"isNthDayMatch");function i(S){return S.length>0&&S.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}s(i,"isLInExpressions"),e=e||!1;var o=e?"subtract":"add",a=new zr(this._currentDate,this._tz),u=this._startDate,c=this._endDate,l=a.getTime(),d=0;function f(S){return S.some(function(O){if(!i([O]))return!1;var _=Number.parseInt(O[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+O);return a.getDay()===_&&a.isLastWeekdayOfMonth()})}for(s(f,"isLastWeekdayOfMonthMatch");d<ey;){if(d++,e){if(u&&a.getTime()-u.getTime()<0)throw new Error("Out of the timespan range")}else if(c&&c.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var p=r(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||a.isLastDayOfMonth());var h=r(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(h=h||f(this.fields.dayOfWeek));var m=this.fields.dayOfMonth.length>=U.daysInMonth[a.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,y=a.getHours();if(!p&&(!h||g)){this._applyTimezoneShift(a,o,"Day");continue}if(!m&&g&&!p){this._applyTimezoneShift(a,o,"Day");continue}if(m&&!g&&!h){this._applyTimezoneShift(a,o,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,o,"Day");continue}if(!r(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,o,"Month");continue}if(r(y,this.fields.hour)){if(this._dstEnd===y&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==y){this._dstStart=null,this._applyTimezoneShift(a,o,"Hour");continue}else if(!r(y-1,this.fields.hour)){a[o+"Hour"]();continue}if(!r(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,o,"Minute");continue}if(!r(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,o,"Second");continue}if(l===a.getTime()){o==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,o,"Second"):a.setMilliseconds(0);continue}break}if(d>=ey)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new zr(a,this._tz),this._hasIterated=!0,a},"_findSchedule");U.prototype.next=s(function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e},"next");U.prototype.prev=s(function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e},"prev");U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=s(function(e,r){var n=[];if(e>=0)for(var i=0,o=e;i<o;i++)try{var a=this.next();n.push(a),r&&r(a,i)}catch{break}else for(var i=0,o=e;i>o;i--)try{var a=this.prev();n.push(a),r&&r(a,i)}catch{break}return n},"iterate");U.prototype.reset=s(function(e){this._currentDate=new zr(e||this._options.currentDate)},"reset");U.prototype.stringify=s(function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var o=U.map[n],a=this.fields[o],u=U.constraints[n];o==="dayOfMonth"&&this.fields.month.length===1?u={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:o==="dayOfWeek"&&(u={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),r.push(RR(a,u.min,u.max))}return r.join(" ")},"stringify");U.parse=s(function(e,r){var n=this;typeof r=="function"&&(r={});function i(o,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new zr(void 0,n._tz)),U.predefined[o]&&(o=U.predefined[o]);var u=[],c=(o+"").trim().split(/\s+/);if(c.length>6)throw new Error("Invalid cron expression");for(var l=U.map.length-c.length,d=0,f=U.map.length;d<f;++d){var p=U.map[d],h=c[c.length>f?d:d-l];if(d<l||!h)u.push(U._parseField(p,U.parseDefaults[d],U.constraints[d]));else{var m=p==="dayOfWeek"?O(h):h;u.push(U._parseField(p,m,U.constraints[d]))}}for(var g={},d=0,f=U.map.length;d<f;d++){var y=U.map[d];g[y]=u[d]}var S=U._handleMaxDaysInMonth(g);return g.dayOfMonth=S||g.dayOfMonth,new U(g,a);function O(_){var D=_.split("#");if(D.length>1){var T=+D[D.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(D.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=T,D[0]}return _}s(O,"parseNthDay")}return s(i,"parse"),i(e,r)},"parse");U.fieldsToExpression=s(function(e,r){function n(p,h,m){if(!h)throw new Error("Validation error, Field "+p+" is missing");if(h.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,y=h.length;g<y;g++){var S=h[g];if(!U._isValidConstraintChar(m,S)&&(typeof S!="number"||Number.isNaN(S)||S<m.min||S>m.max))throw new Error("Constraint error, got value "+S+" expected range "+m.min+"-"+m.max)}}s(n,"validateConstraints");for(var i={},o=0,a=U.map.length;o<a;++o){var u=U.map[o],c=e[u];n(u,c,U.constraints[o]);for(var l=[],d=-1;++d<c.length;)l[d]=c[d];if(c=l.sort(U._sortCompareFn).filter(function(p,h,m){return!h||p!==m[h-1]}),c.length!==l.length)throw new Error("Validation error, Field "+u+" contains duplicate values");i[u]=c}var f=U._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new U(i,r||{})},"fieldsToExpression");ty.exports=U});var iy=q((uF,ny)=>{"use strict";var wa=ry();function or(){}s(or,"CronParser");or._parseEntry=s(function(e){var r=e.split(" ");if(r.length===6)return{interval:wa.parse(e)};if(r.length>6)return{interval:wa.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)},"_parseEntry");or.parseExpression=s(function(e,r){return wa.parse(e,r)},"parseExpression");or.fieldsToExpression=s(function(e,r){return wa.fieldsToExpression(e,r)},"fieldsToExpression");or.parseString=s(function(e){for(var r=e.split(`
5
+ `),n={variables:{},expressions:[],errors:{}},i=0,o=r.length;i<o;i++){var a=r[i],u=null,c=a.trim();if(c.length>0){if(c.match(/^#/))continue;if(u=c.match(/^(.*)=(.*)$/))n.variables[u[1]]=u[2];else{var l=null;try{l=or._parseEntry("0 "+c),n.expressions.push(l.interval)}catch(d){n.errors[c]=d}}}}return n},"parseString");or.parseFile=s(function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,or.parseString(i.toString()))})},"parseFile");ny.exports=or});var O0={};N(O0,{AutomationViewMode:()=>Ua,BUDIBASE_DATASOURCE_TYPE:()=>Td,BadRequestError:()=>Fu,BudibaseError:()=>fi,Config:()=>wd,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>wn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Od,DEFAULT_EXPENSES_TABLE_ID:()=>_d,DEFAULT_INVENTORY_TABLE_ID:()=>Ad,DEFAULT_JOBS_TABLE_ID:()=>Sd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>Vn,DesignDocuments:()=>Es,DocumentType:()=>ce,Duration:()=>he,DurationType:()=>Cf,EmailUnavailableError:()=>jt,Endpoint:()=>Sc,EndpointGroup:()=>_n,EndpointGroupList:()=>No,FeatureDisabledError:()=>Gu,ForbiddenError:()=>Bu,GlobalRole:()=>Id,HTTPError:()=>we,Header:()=>ke,InternalTable:()=>Rt,InvalidAPIKeyError:()=>pi,MAX_VALID_DATE:()=>Ma,MIN_VALID_DATE:()=>yy,NotFoundError:()=>Mu,NotImplementedError:()=>Wu,RedisClient:()=>Ce,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>Ot,SQS_DATASOURCE_INTERNAL:()=>yd,StaticDatabases:()=>fe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>hs,UnexpectedError:()=>ku,UsageLimitError:()=>$u,UserStatus:()=>ka,ViewName:()=>ur,WORKSPACE_DEV:()=>La,WORKSPACE_DEV_PREFIX:()=>Je,WORKSPACE_PREFIX:()=>ze,accounts:()=>pn,auth:()=>cm,blacklist:()=>pm,cache:()=>_o,configs:()=>Vt,constants:()=>Dd,context:()=>ue,csv:()=>wm,db:()=>mr,docIds:()=>Ef,docUpdates:()=>hm,encryption:()=>om,env:()=>E,errors:()=>qu,events:()=>ui,features:()=>Su,getPublicError:()=>Vu,init:()=>_0,installation:()=>xu,locks:()=>gi,logging:()=>to,middleware:()=>um,objectStore:()=>Yf,permissions:()=>Jp,platform:()=>so,plugins:()=>dm,queue:()=>ep,redis:()=>fm,roles:()=>zp,security:()=>Cp,sessions:()=>Yu,setEnv:()=>ys,sql:()=>Im,tenancy:()=>A0,timers:()=>uu,userUtils:()=>Sp,users:()=>li,utils:()=>Xn,withEnv:()=>Oy});module.exports=A_(O0);var Vt={};N(Vt,{analyticsEnabled:()=>bu,generateConfigID:()=>Zu,getAIConfig:()=>KU,getConfig:()=>rt,getDefaultGoogleConfig:()=>kp,getGoogleConfig:()=>Xu,getGoogleDatasourceConfig:()=>Bp,getOIDCConfig:()=>GU,getOIDCConfigById:()=>Wp,getOIDCLogosDoc:()=>WU,getPlatformUrl:()=>Ro,getRecaptchaConfig:()=>QU,getSCIMConfig:()=>qU,getSMTPConfig:()=>VU,getSMTPConfigDoc:()=>yA,getSettingsConfig:()=>Fp,getSettingsConfigDoc:()=>ri,save:()=>FU});var __=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],O_=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Cm=[...__,...O_],bm={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0};var Ac=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ac||{}),_c=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(_c||{}),Lo=(S=>(S.AIRTABLE="AIRTABLE",S.ARANGODB="ARANGODB",S.BUDIBASE="BUDIBASE",S.COUCHDB="COUCHDB",S.DYNAMODB="DYNAMODB",S.ELASTICSEARCH="ELASTICSEARCH",S.FIRESTORE="FIRESTORE",S.GOOGLE_SHEETS="GOOGLE_SHEETS",S.MONGODB="MONGODB",S.MYSQL="MYSQL",S.ORACLE="ORACLE",S.POSTGRES="POSTGRES",S.REDIS="REDIS",S.REST="REST",S.S3="S3",S.SNOWFLAKE="SNOWFLAKE",S.SQL_SERVER="SQL_SERVER",S))(Lo||{});var Oc=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Oc||{});var I_=F(require("lodash/isPlainObject"));var Nr=(a=>(a.EQUAL="equal",a.NOT_EQUAL="notEqual",a.EMPTY="empty",a.NOT_EMPTY="notEmpty",a.FUZZY="fuzzy",a.STRING="string",a))(Nr||{}),Zt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Zt||{}),In=(e=>(e.RANGE="range",e))(In||{}),_i=(r=>(r.AND="$and",r.OR="$or",r))(_i||{});function ko(t){return Object.values(_i).includes(t)}s(ko,"isLogicalSearchOperator");function xm(t){return Object.values(Nr).includes(t)}s(xm,"isBasicSearchOperator");function vm(t){return Object.values(Zt).includes(t)}s(vm,"isArraySearchOperator");function Mo(t){return Object.values(In).includes(t)}s(Mo,"isRangeSearchOperator");var Pm=s(t=>typeof t=="object"&&t._id&&t._rev,"isDocument");var Oi=(o=>(o.USER="user",o.HEADER="header",o.QUERY="query",o.SUBDOMAIN="subdomain",o.PATH="path",o))(Oi||{});var Nm={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,USE_DYNAMIC_LOADING:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var Ii=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ii||{});var Fo=(f=>(f.WORKSPACE="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Fo||{});var Bo=s(t=>t.hosting==="cloud","isCloudAccount");var Wo=s(t=>t.authType==="sso","isSSOAccount");var b="_",ve="\uFFF0",Xt=s(t=>`${t}${b}`,"prefixed"),ce=(G=>(G.USER="us",G.GROUP="gr",G.CONFIG="config",G.TEMPLATE="template",G.WORKSPACE="app",G.DEV="dev",G.WORKSPACE_DEV="app_dev",G.WORKSPACE_METADATA="app_metadata",G.ROLE="role",G.DEV_INFO="devinfo",G.AUTOMATION_LOG="log_au",G.ACCOUNT_METADATA="acc_metadata",G.PLUGIN="plg",G.DATASOURCE="datasource",G.DATASOURCE_PLUS="datasource_plus",G.APP_BACKUP="backup",G.TABLE="ta",G.ROW="ro",G.AUTOMATION="au",G.LINK="li",G.WEBHOOK="wh",G.INSTANCE="inst",G.LAYOUT="layout",G.SCREEN="screen",G.QUERY="query",G.DEPLOYMENTS="deployments",G.METADATA="metadata",G.MEM_VIEW="view",G.USER_FLAG="flag",G.AUTOMATION_METADATA="meta_au",G.AUDIT_LOG="al",G.SCIM_LOG="scimlog",G.ROW_ACTIONS="ra",G.OAUTH2_CONFIG="oauth2",G.OAUTH2_CONFIG_LOG="oauth2log",G.AGENT_CHAT="agentchat",G.AGENT_TOOL_SOURCE="agenttoolsource",G.WORKSPACE_APP="workspace_app",G.WORKSPACE_FAVOURITE="workspace_favourite",G))(ce||{});var Rt=(e=>(e.USER_METADATA="ta_users",e))(Rt||{});function $o(t){return!!t.providerType}s($o,"isSSOUser");var Ic=(d=>(d.OBJECT="object",d.STRING="string",d.BOOLEAN="boolean",d.NUMBER="number",d.ARRAY="array",d.JSON="json",d.DATE="date",d.DATETIME="datetime",d.ATTACHMENT="attachment",d.LONGFORM="longform",d))(Ic||{}),wc=(D=>(D.TABLE="table",D.ROW="row",D.ROWS="rows",D.WIDE="wide",D.QUERY="query",D.QUERY_PARAMS="queryParams",D.QUERY_LIMIT="queryLimit",D.LOOP_OPTION="loopOption",D.ITEM="item",D.CODE="code",D.FILTERS="filters",D.COLUMN="column",D.TRIGGER_SCHEMA="triggerSchema",D.CRON="cron",D.WEBHOOK_URL="webhookUrl",D.AUTOMATION="automation",D.AUTOMATION_FIELDS="automationFields",D.MULTI_ATTACHMENTS="multi_attachments",D.TRIGGER_FILTER="trigger_filter",D.CATEGORIES="categories",D))(wc||{}),Dc=(u=>(u.ROW_SAVED="ROW_SAVED",u.ROW_UPDATED="ROW_UPDATED",u.ROW_DELETED="ROW_DELETED",u.WEBHOOK="WEBHOOK",u.APP="APP",u.CRON="CRON",u.ROW_ACTION="ROW_ACTION",u))(Dc||{});var Rc=(w=>(w.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",w.CREATE_ROW="CREATE_ROW",w.UPDATE_ROW="UPDATE_ROW",w.DELETE_ROW="DELETE_ROW",w.EXECUTE_BASH="EXECUTE_BASH",w.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",w.EXECUTE_SCRIPT="EXECUTE_SCRIPT",w.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",w.EXECUTE_QUERY="EXECUTE_QUERY",w.SERVER_LOG="SERVER_LOG",w.DELAY="DELAY",w.FILTER="FILTER",w.API_REQUEST="API_REQUEST",w.QUERY_ROWS="QUERY_ROWS",w.LOOP="LOOP",w.COLLECT="COLLECT",w.OPENAI="OPENAI",w.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",w.BRANCH="BRANCH",w.CLASSIFY_CONTENT="CLASSIFY_CONTENT",w.PROMPT_LLM="PROMPT_LLM",w.TRANSLATE="TRANSLATE",w.SUMMARISE="SUMMARISE",w.GENERATE_TEXT="GENERATE_TEXT",w.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",w.EXTRACT_STATE="EXTRACT_STATE",w.LOOP_V2="LOOP_V2",w.discord="discord",w.slack="slack",w.zapier="zapier",w.integromat="integromat",w.n8n="n8n",w))(Rc||{}),Um=[...Object.values(Rc),...Object.values(Dc)];function Lm(t){return t.stepId==="BRANCH"}s(Lm,"isBranchStep");var Cc="bb_internal";var km=["attachment_single","attachment","signature_single","bb_reference","json","array"];var Dd={};N(Dd,{AutomationViewMode:()=>Ua,BUDIBASE_DATASOURCE_TYPE:()=>Td,Config:()=>wd,Cookie:()=>Jr,DEFAULT_BB_DATASOURCE_ID:()=>wn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Od,DEFAULT_EXPENSES_TABLE_ID:()=>_d,DEFAULT_INVENTORY_TABLE_ID:()=>Ad,DEFAULT_JOBS_TABLE_ID:()=>Sd,DEFAULT_TENANT_ID:()=>ae,DeprecatedViews:()=>Vn,DesignDocuments:()=>Es,DocumentType:()=>ce,GlobalRole:()=>Id,Header:()=>ke,InternalTable:()=>Rt,MAX_VALID_DATE:()=>Ma,MIN_VALID_DATE:()=>yy,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>Ot,SQS_DATASOURCE_INTERNAL:()=>yd,StaticDatabases:()=>fe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>hs,UserStatus:()=>ka,ViewName:()=>ur,WORKSPACE_DEV:()=>La,WORKSPACE_DEV_PREFIX:()=>Je,WORKSPACE_PREFIX:()=>ze});var ke=(_=>(_.API_KEY="x-budibase-api-key",_.LICENSE_KEY="x-budibase-license-key",_.API_VER="x-budibase-api-version",_.APP_ID="x-budibase-app-id",_.SESSION_ID="x-budibase-session-id",_.CLIENT="x-budibase-client",_.TYPE="x-budibase-type",_.PREVIEW_ROLE="x-budibase-role",_.TENANT_ID="x-budibase-tenant-id",_.VERIFICATION_CODE="x-budibase-verification-code",_.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",_.RESET_PASSWORD_CODE="x-budibase-reset-password-code",_.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",_.TOKEN="x-budibase-token",_.CSRF_TOKEN="x-csrf-token",_.CORRELATION_ID="x-budibase-correlation-id",_.AUTHORIZATION="authorization",_.MIGRATING_APP="x-budibase-migrating-app",_.COOKIE="cookie",_))(ke||{});var Me={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"}},Mm={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var wn="datasource_internal_bb_default";var ar={};N(ar,{ColumnSplitter:()=>id,NoEmptyFilterStrings:()=>py,buildQuery:()=>my,cleanupQuery:()=>ad,fixupFilterArrays:()=>cd,getKeyNumbering:()=>ud,getValidOperatorsForType:()=>HR,hasFilters:()=>sd,limit:()=>Ey,recurseLogicalOperators:()=>od,removeKeyNumbering:()=>Go,runQuery:()=>Ca,search:()=>ZR,sort:()=>hy,splitFiltersArray:()=>Vo});var Gn=F(Fm());var Ct={};N(Ct,{filterValueToLabel:()=>x_,hasSchema:()=>v_,isSupportedUserSearch:()=>$m,parallelForeach:()=>b_,processSearchFilters:()=>vc,toMap:()=>N_,trimOtherProps:()=>P_,unreachable:()=>C_});var Wm=F(require("lodash/pick"));var R_=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function C_(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}s(C_,"unreachable");async function b_(t,e,r){let n=[],i=Symbol.asyncIterator in t,o=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),a=s(async()=>{let u=await(i?o.next():Promise.resolve(o.next()));for(;!u.done;)await e(u.value),u=await(i?o.next():Promise.resolve(o.next()))},"executeNext");for(let u=0;u<r;u++)n.push(a());await Promise.all(n)}s(b_,"parallelForeach");function x_(){return Object.keys(Me).reduce((t,e)=>{let n=Me[e];return t[n.value]=n.label,t},{})}s(x_,"filterValueToLabel");function v_(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}s(v_,"hasSchema");function P_(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}s(P_,"trimOtherProps");function $m(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[o,a]of Object.entries(i)){if(typeof a!="object")return!1;if(ko(o)){for(let l of t[o].conditions)if(!$m(l))return!1;return!0}let u=Object.keys(a||{});if(u.length===0)continue;if(!e.find(l=>l.op===o&&u.length===1&&u[0]===l.key))return!1}return!0}s($m,"isSupportedUserSearch");function vc(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Vo(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let o=(0,Wm.default)(i,R_);return o.field=Go(o.field),o})}]}}s(vc,"processSearchFilters");function N_(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}s(N_,"toMap");var Ne={};N(Ne,{cancelableTimeout:()=>Gm,cron:()=>KR,deepGet:()=>Pc,duplicateName:()=>VR,getSequentialName:()=>qR,getUserColor:()=>L_,getUserInitials:()=>U_,getUserLabel:()=>k_,isGoogleSheets:()=>F_,isSQL:()=>B_,lists:()=>rd,retry:()=>W_,roles:()=>td,schema:()=>fs,views:()=>ed,wait:()=>Nc,withTimeout:()=>M_});var Pc=s((t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},"deepGet"),U_=s(t=>{if(!t)return"?";let e="";return e+=t.firstName?t.firstName[0]:"",e+=t.lastName?t.lastName[0]:"",e!==""?e:t.email?.[0]||"U"},"getUserInitials"),L_=s(t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},"getUserColor"),k_=s(t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n},"getUserLabel");function Gm(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}s(Gm,"cancelableTimeout");async function M_(t,e){let[r,n]=Gm(t),i=await Promise.race([e(),r]);return n(),i}s(M_,"withTimeout");function F_(t){return t==="GOOGLE_SHEETS"}s(F_,"isGoogleSheets");function B_(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}s(B_,"isSQL");async function Nc(t){return new Promise(e=>setTimeout(e,t))}s(Nc,"wait");async function W_(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let o=1.5**i*1e3*(Math.random()+.5);await Nc(o);try{return await t()}catch(a){n=a}}throw n}s(W_,"retry");var oy=F(Tt()),ay=F(iy());var sy="(Input cron: ",CR={"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 bR(t){let e=[];for(let r of t){r.includes(sy)&&(r=r.split(sy)[0].trim());for(let[n,i]of Object.entries(CR))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}s(bR,"improveErrors");function uy(t,e=4){let r=ay.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}s(uy,"getNextExecutionDates");function cy(t){let e=(0,oy.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:bR(e.getError())}}s(cy,"validate");var fs={};N(fs,{decodeNonAscii:()=>Zl,encodeNonAscii:()=>PR,isDeprecatedSingleUserColumn:()=>xR,isNumeric:()=>NR,isRequired:()=>vR});function xR(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}s(xR,"isDeprecatedSingleUserColumn");function vR(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}s(vR,"isRequired");function PR(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}s(PR,"encodeNonAscii");function Zl(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}s(Zl,"decodeNonAscii");function NR(t){return t.type==="number"||t.type==="bigint"}s(NR,"isNumeric");var ed={};N(ed,{basicFields:()=>FR,calculationFields:()=>MR,hasCalculationFields:()=>kR,isBasicViewField:()=>UR,isCalculationField:()=>ps,isCalculationView:()=>LR,isV2:()=>BR,isVisible:()=>ly});var Xl=F(require("lodash/pickBy"));function ps(t){return"calculationType"in t}s(ps,"isCalculationField");function UR(t){return!ps(t)}s(UR,"isBasicViewField");function LR(t){return t.type==="calculation"}s(LR,"isCalculationView");function kR(t){return Object.values(t.schema||{}).some(ps)}s(kR,"hasCalculationFields");function MR(t){return(0,Xl.default)(t.schema||{},ps)}s(MR,"calculationFields");function ly(t){return t.visible!==!1}s(ly,"isVisible");function FR(t,e){let{visible:r=!0}=e||{};return(0,Xl.default)(t.schema||{},n=>!ps(n)&&(!r||ly(n)))}s(FR,"basicFields");function BR(t){return t.version===2}s(BR,"isV2");var td={};N(td,{checkForRoleInheritanceLoops:()=>$R});function WR(t){return`role${b}${t}`}s(WR,"prefixForCheck");function $R(t){let e=new Map;t.forEach(o=>{e.set(o._id,o)});let r=new Set,n=new Set;function i(o){let a=WR(o);if(n.has(o)||n.has(a))return!0;if(r.has(o)||r.has(a))return!1;n.add(o);let u=e.get(a)||e.get(o);if(!u)return n.delete(o),!1;let c=Array.isArray(u.inherits)?u.inherits:[u.inherits];for(let l of c)if(l&&i(l))return!0;return n.delete(o),r.add(o),!1}return s(i,"hasLoop"),!!t.find(o=>i(o._id))}s($R,"checkForRoleInheritanceLoops");var rd={};N(rd,{punctuateList:()=>GR});function GR(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}s(GR,"punctuateList");var VR=s((t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),o=[];e.filter(u=>{if(u===n)return!0;let c=u.match(i);return c?(o.push(parseInt(c[1])),!0):!1}),o.sort((u,c)=>u-c);let a;if(o.length===0)a=1;else{for(let u=0;u<o.length;u++)if(o[u]!==u+1){a=u+1;break}a||(a=o.length+1)}return`${n} ${a}`},"duplicateName"),qR=s((t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let o=e.trim(),a=n?`${e}1`:o;if(!t?.length)return a;let u=0;return t.forEach(c=>{let l=r?.(c)??c;if(typeof l!="string"||!l.startsWith(o))return;let d=l.split(o);if(d.length!==2)return;d[1].trim()===""&&(d[1]="1");let f=parseInt(d[1]);f>u&&(u=f)}),u===0?a:`${e}${i}${u+1}`},"getSequentialName");var KR={getNextExecutionDates:uy,validate:cy};var Ra=F(require("lodash/isPlainObject")),nd=F(require("lodash/isEmpty"));var jR=/{{([^{].*?)}}/g,fy=Object.values(_i),YR=[...Object.values(Nr),...Object.values(Zt),...Object.values(In)],HR=s((t,e,r)=>{let n=Me,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],o=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],a=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],u=[],{type:c,formulaType:l,subtype:d}=t;c==="string"?d==="array"?u=a:u=i:c==="number"||c==="bigint"?u=o:c==="options"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="array"?u=a:c==="boolean"?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:c==="longform"?u=i:c==="datetime"?u=o:c==="formula"&&l==="static"?u=i.concat([n.MoreThan,n.LessThan]):c==="ai"?u=i.concat([n.MoreThan,n.LessThan]):c==="bb_reference_single"||fs.isDeprecatedSingleUserColumn(t)?u=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:c==="bb_reference"?u=a:c==="barcodeqr"&&(u=i);let f=r?.tableId?.includes("datasource_plus");return e==="_id"&&f&&(u=[n.Equals,n.NotEquals,n.In]),u},"getValidOperatorsForType"),py=[Me.StartsWith.value,Me.Like.value,Me.Equals.value,Me.NotEquals.value,Me.Contains.value,Me.NotContains.value,Me.ContainsAny.value,Me.In.value];function od(t,e){for(let r of fy)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}s(od,"recurseLogicalOperators");var ad=s(t=>{for(let e of py)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,o]of Object.entries(t[r]))(o==null||o===""||zR(o))&&delete t[e][i]}return t=od(t,ad),t},"cleanupQuery");function zR(t){return Array.isArray(t)&&t.length===0}s(zR,"isEmptyArray");var Go=s(t=>ud(t).key,"removeKeyNumbering"),ud=s(t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},"getKeyNumbering"),id=class{static{s(this,"ColumnSplitter")}constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=ud(e),i;if(this.aliases)for(let a of Object.keys(this.aliases||{})){let u=`${a}.`;n.startsWith(u)&&(i=this.aliases[a],n=n.slice(u.length))}let o;for(let a of this.relationships){let u=`${a}.`;if(n.startsWith(u)){let c=n.split(u);c.shift(),o=u,n=c.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=Zl(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:o,column:n}}};function JR(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:o}=t,{value:a}=t;(r==="empty"||r==="notEmpty")&&(a=null);let u=typeof a=="string"&&(a.match(jR)||[]).length>0;switch(i){case"datetime":if(!u&&r!=="empty"&&r!=="notEmpty"){if(!a)return;if(typeof a=="string")a=new Date(a).toISOString();else if(Mo(r))return e[r]??={},e[r][n]=a,e}break;case"number":typeof a=="string"&&!u&&(r==="oneOf"?a=a.split(",").map(parseFloat):a=parseFloat(a));break;case"boolean":a=`${a}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof a=="string"&&(a=a.split(","));break}if(Mo(r)){let l=Mm[o]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?l.min:"0000-00-00T00:00:00.000Z",high:i==="number"?l.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],high:a};else if(r==="rangeLow"&&a!=null&&a!=="")e.range??={},e.range[n]={...e.range[n],low:a};else if(xm(r)||vm(r)||Mo(r))i==="boolean"?r==="equal"&&a===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&a===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=a):(e[r]??={},e[r][n]=a);else throw new Error(`Unsupported operator: ${r}`);return e}s(JR,"buildCondition");function Vo(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}s(Vo,"splitFiltersArray");function my(t){if(!t)return{};if(Array.isArray(t)&&(t=vc(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=dy(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let c=my(n);return delete c.onEmptyFilter,c}let{allOr:i,onEmptyFilter:o,filters:a}=Vo(n.filters||[]);o&&(e.onEmptyFilter=o);let u=i?"$or":"$and";return n.logicalOperator&&(u=dy(n.logicalOperator)),{[u]:{conditions:a.map(JR).filter(c=>c)}}})},e}s(my,"buildQuery");function dy(t){return t==="all"?"$and":"$or"}s(dy,"logicalOperatorFromUI");function cd(t){if(!t)return t;for(let e of Object.values(Zt)){let r=t[e];if(!(r==null||!(0,Ra.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 od(t,cd),t}s(cd,"fixupFilterArrays");function ZR(t,e){let r=Ca(t,e.query);e.sort&&(r=hy(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=Ey(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}s(ZR,"search");function Ca(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=ad(e),e=cd(e),!sd(e)&&e.onEmptyFilter==="none")return[];let r=s((T,I)=>M=>{for(let[P,k]of Object.entries(e[T]||{})){let Y=ko(T)?M:Pc(M,Go(P)),Dt=I(Y,k);if(e.allOr&&Dt)return!0;if(!e.allOr&&!Dt)return!1}return!e.allOr},"match"),n=r("string",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().includes(I.toLowerCase())),o=r("range",(T,I)=>{if(T==null||T===""||((0,Ra.default)(I.low)&&(0,nd.default)(I.low)&&(I.low=void 0),(0,Ra.default)(I.high)&&(0,nd.default)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let M=+T;if(!isNaN(M)){let k=+I.low,Y=+I.high;if(!isNaN(k)&&!isNaN(Y))return M>=k&&M<=Y;if(isNaN(k)){if(!isNaN(Y))return M<=Y}else return M>=k}let P=(0,Gn.default)(T);if(P.isValid()){let k=(0,Gn.default)(I.low||"0000-00-00T00:00:00.000Z"),Y=(0,Gn.default)(I.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&Y.isValid())return P.isAfter(k)&&P.isBefore(Y)||P.isSame(k)||P.isSame(Y);if(k.isValid())return P.isAfter(k)||P.isSame(k);if(Y.isValid())return P.isBefore(Y)||P.isSame(Y)}return I.low!=null&&I.high!=null?T>=I.low&&T<=I.high:I.low!=null?T>=I.low:I.high!=null?T<=I.high:!1}),a=s((T,I)=>{if(Array.isArray(T)){for(let P of T)if(a(P,I))return!0;return!1}if(T&&typeof T=="object"&&typeof I=="string")return T._id===I;if(T===I)return!0;if(T==null&&I!=null||T!=null&&I==null)return!1;let M=(0,Gn.default)(T);if(M.isValid()){let P=(0,Gn.default)(I);if(P.isValid())return M.isSame(P)}return!1},"_valueMatches"),u=s(T=>(...I)=>!T(...I),"not"),c=r("equal",a),l=r("notEqual",u(a)),d=s(T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,"_empty"),f=r("empty",d),p=r("notEmpty",u(d)),h=r("oneOf",(T,I)=>(typeof I=="string"&&(I=I.split(",")),typeof T=="number"&&(I=I.map(M=>parseFloat(M))),Array.isArray(I)?I.some(M=>a(T,M)):!1)),m=s(T=>(I,M)=>!Array.isArray(I)||(typeof M=="string"&&(M=M.split(","),typeof I[0]=="number"&&(M=M.map(P=>parseFloat(P)))),!Array.isArray(M))?!1:M.length===0?!0:M[T](P=>a(I,P)),"_contains"),g=r("contains",(T,I)=>Array.isArray(I)&&I.length===0?!0:m("every")(T,I)),y=r("notContains",(T,I)=>Array.isArray(I)&&I.length===0?!0:u(m("every"))(T,I)),S=r("containsAny",m("some")),O=r("$and",(T,I)=>{if(!I.length)return!1;for(let M of I)if(!Ca([T],M).length)return!1;return!0}),_=r("$or",(T,I)=>{if(!I.length)return!1;for(let M of I)if(Ca([T],{...M,allOr:!0}).length)return!0;return!1}),D=s(T=>{let I={string:n,fuzzy:i,range:o,equal:c,notEqual:l,empty:f,notEmpty:p,oneOf:h,contains:g,containsAny:S,notContains:y,$and:O,$or:_},M=Object.entries(e||{}).filter(([P,k])=>!["allOr","onEmptyFilter"].includes(P)&&k&&Object.keys(k).length>0).map(([P])=>I[P]?.(T)??!1);return sd(e)?e.allOr?M.some(P=>P===!0):M.every(P=>P===!0):!0},"docMatch");return t.filter(D)}s(Ca,"runQuery");function hy(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s(o=>o==null?o:n==="string"?`${o}`:parseFloat(o),"parse");return t.slice().sort((o,a)=>{let u=i(o[e]),c=i(a[e]),l=c==null||u>c?1:-1;return r.toLowerCase()==="descending"?l*-1:l})}s(hy,"sort");function Ey(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}s(Ey,"limit");var sd=s(t=>{if(!t)return!1;let e=s(r=>{for(let n of fy)if(r[n])for(let i of r[n]?.conditions||[]){let o=e(i);if(o)return o}for(let n of YR){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(a=>{let u=a[1]!==void 0||a[1]!==null||a[1]!=="";return n==="notEmpty"||u}).length!==0)return!0}return!1},"check");return e(t)},"hasFilters");var Ve={};N(Ve,{applications:()=>dd,automations:()=>fd,screens:()=>gd,users:()=>Ed});var dd={};N(dd,{getDevAppID:()=>XR,getProdAppID:()=>ba});var ld=Xt("app"),ms=Xt("app_dev");function XR(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(ms))return t;let e=t.split(ld);e.shift();let r=e.join(ld);return`${ms}${r}`}s(XR,"getDevAppID");function ba(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(ms))return t;let e=t.split(ms);e.shift();let r=e.join(ms);return`${ld}${r}`}s(ba,"getProdAppID");var fd={};N(fd,{checkForCollectStep:()=>nC,isAppAction:()=>rC,isRowAction:()=>eC,isWebhookAction:()=>tC});function eC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}s(eC,"isRowAction");function tC(t){return t.definition.trigger?.stepId==="WEBHOOK"}s(tC,"isWebhookAction");function rC(t){return t.definition.trigger?.stepId==="APP"}s(rC,"isAppAction");function gy(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Lm(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(gy(r))return!0}}return!1}s(gy,"hasCollectBlockRecursive");function nC(t){return gy(t.definition.steps)}s(nC,"checkForCollectStep");var Ed={};N(Ed,{canCreateApps:()=>iC,containsUserID:()=>dC,getGlobalUserID:()=>lC,getUserAppGroups:()=>fC,getUserGroups:()=>hd,hasAdminPermissions:()=>md,hasAppBuilderPermissions:()=>Pa,hasBuilderPermissions:()=>uC,hasCreatorPermissions:()=>Na,isAdmin:()=>va,isAdminOrBuilder:()=>sC,isAdminOrGlobalBuilder:()=>oC,isBuilder:()=>pd,isCreator:()=>cC,isGlobalBuilder:()=>xa,userAppAccessList:()=>pC});function pd(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ba(e))):!1}s(pd,"isBuilder");function xa(t){return pd(t)&&!Pa(t)||va(t)}s(xa,"isGlobalBuilder");function iC(t){return xa(t)||Na(t)}s(iC,"canCreateApps");function va(t){return t?md(t):!1}s(va,"isAdmin");function sC(t,e){return pd(t,e)||va(t)}s(sC,"isAdminOrBuilder");function oC(t){return xa(t)||va(t)}s(oC,"isAdminOrGlobalBuilder");function Pa(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}s(Pa,"hasAppBuilderPermissions");function aC(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}s(aC,"hasAppCreatorPermissions");function uC(t){return t?t.builder?.global||Pa(t)||Na(t):!1}s(uC,"hasBuilderPermissions");function md(t){return t?!!t.admin?.global:!1}s(md,"hasAdminPermissions");function Na(t){return t?!!t.builder?.creator:!1}s(Na,"hasCreatorPermissions");function cC(t){return t?xa(t)||md(t)||Na(t)||Pa(t)||aC(t):!1}s(cC,"isCreator");function lC(t){if(typeof t!="string")return t;let e=`ro${b}ta_users${b}`;return t.startsWith(e)?t.split(e)[1]:t}s(lC,"getGlobalUserID");function dC(t){return typeof t!="string"?!1:t.includes(`us${b}`)}s(dC,"containsUserID");function hd(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}s(hd,"getUserGroups");function fC(t,e,r){let n=ba(t);return hd(e,r).filter(o=>Object.keys(o.roles||{}).find(a=>a===n))}s(fC,"getUserAppGroups");function pC(t,e){let n=hd(t,e).flatMap(o=>Object.keys(o.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}s(pC,"userAppAccessList");var gd={};N(gd,{findInSettings:()=>mC});function mC(t,e){let r=[];function n(i,o=""){for(let[a,u]of Object.entries(i))u&&(typeof u=="string"&&u.includes(e)?r.push({setting:o?`${o}.${a}`:a,value:u}):typeof u=="object"&&n(u,a))}return s(n,"recurse"),n(t.props),r}s(mC,"findInSettings");var Ua=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ua||{}),ur=(d=>(d.USER_BY_WORKSPACE="by_app",d.USER_BY_EMAIL="by_email2",d.BY_API_KEY="by_api_key",d.LINK="by_link",d.ROUTING="screen_routes_2",d.AUTOMATION_LOGS="automation_logs",d.ACCOUNT_BY_EMAIL="account_by_email",d.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",d.USER_BY_GROUP="user_by_group",d.WORKSPACE_BACKUP_BY_TRIGGER="by_trigger",d))(ur||{}),Vn={by_email2:["by_email"]},fe={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"}},ze=Xt("app"),La=Xt("app_dev"),Je=La,yd="internal",Td="budibase",Ot="_design/sqlite",Sd="ta_bb_jobs",Ad="ta_bb_inventory",_d="ta_bb_expenses",Od="ta_bb_employee",hs=`ro${b}ta_users${b}`,Es=(r=>(r[r.SQLITE=Ot]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Es||{});var ka=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(ka||{}),Jr=(u=>(u.Auth="budibase:auth",u.Init="budibase:init",u.ACCOUNT_RETURN_URL="budibase:account:returnurl",u.DatasourceAuth="budibase:datasourceauth",u.OIDC_CONFIG="budibase:oidc:config",u.FeatureFlags="budibase:featureflags",u.RecaptchaSession="budibase:recaptcha",u))(Jr||{}),Id=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Id||{}),wd=(c=>(c.SETTINGS="settings",c.ACCOUNT="account",c.SMTP="smtp",c.GOOGLE="google",c.OIDC="oidc",c.OIDC_LOGOS="logos_oidc",c.SCIM="scim",c.AI="AI",c))(wd||{}),yy=new Date(-2147483647e3),Ma=new Date(2147483647e3),ae="default";var _o={};N(_o,{CacheKey:()=>ye,TTL:()=>dn,bustCache:()=>si,destroy:()=>no,docWritethrough:()=>rp,generic:()=>io,get:()=>fn,invite:()=>ip,keys:()=>Du,passwordReset:()=>sp,store:()=>qt,user:()=>Dr,withCache:()=>Ar,withCacheWithDynamicTTL:()=>mS,workspace:()=>ks,writethrough:()=>Lp});var rp={};N(rp,{DocWritethrough:()=>tp,DocWritethroughProcessor:()=>ro,getProcessor:()=>jx,init:()=>pS});var ep={};N(ep,{BudibaseQueue:()=>ht,InMemoryQueue:()=>au,JobQueue:()=>ei,QueuedProcessor:()=>Xf,UnretriableError:()=>Iu,shutdown:()=>sx});var Rd=require("crypto"),Ba=require("fs"),Ay=require("lodash"),gs=require("path");var hC=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,gs.resolve)((0,gs.join)(__dirname,"..","..","..")),Ty=!1;!Ty&&Fa()&&!Cd()&&(require("dotenv").config({path:(0,gs.join)(hC,".env")}),Ty=!0);function Cd(){return _y()}s(Cd,"isTest");function _y(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}s(_y,"isJest");function Fa(){return process.env.NODE_ENV!=="production"}s(Fa,"isDev");function EC(t){if(t)return parseInt(t)}s(EC,"parseIntSafe");var qn={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},Sy=!!parseInt(process.env.SELF_HOSTED||"");function gC(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}s(gC,"getAPIEncryptionKey");function yC(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}s(yC,"httpLogging");function TC(){function t(r){function n(u,c){let l=`${c}/${u}`;if((0,Ba.existsSync)(l))return l;let d=`${c}/..`;return d===c?null:n(u,d)}s(n,"findFileInAncestors");let i=n(r,process.cwd()),o=(0,Ba.readFileSync)(i,"utf-8");return JSON.parse(o)}s(t,"getParentFile");let e;if(Fa()&&!Cd())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}s(TC,"getPackageJsonFields");function SC(){return lt.SERVICE_TYPE==="worker"}s(SC,"isWorker");function AC(){return lt.SERVICE_TYPE==="apps"}s(AC,"isApps");function _C(){return lt.BUDIBASE_ENVIRONMENT==="QA"}s(_C,"isQA");function OC(){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(OC,"getServiceName");var lt={isTest:Cd,isJest:_y,isDev:Fa,isWorker:SC,isApps:AC,isQA:_C,isProd:()=>!Fa(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Rd.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Rd.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:gC(),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:Sy,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||qn.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||qn.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||qn.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||qn.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||qn.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||qn.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:OC(),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:yC(),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:Sy?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...TC(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,lt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,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:EC(process.env.BSON_BUFFER_SIZE)};function ys(t){let e=(0,Ay.cloneDeep)(lt),r;for(r in t)lt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))lt._set(n,i)}}s(ys,"setEnv");function Oy(t,e){let r=ys(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}s(Oy,"withEnv");var Iy=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(lt))e==="0"&&(lt[t]=0),e==="false"&&(lt[t]=0);var E=lt;var Ga={};N(Ga,{Databases:()=>bd,SEPARATOR:()=>Kn,SelectableDatabase:()=>Wa,getRedisClusterOptions:()=>xd,getRedisConnectionDetails:()=>$a,getRedisOptions:()=>Zr,removeDbPrefix:()=>vd});var Kn="-",bd=(O=>(O.PW_RESETS="pwReset",O.VERIFICATIONS="verification",O.INVITATIONS="invitation",O.DEV_LOCKS="devLocks",O.DEBOUNCE="debounce",O.SESSIONS="session",O.USER_CACHE="users",O.FLAGS="flags",O.WORKSPACE_METADATA="appMetadata",O.QUERY_VARS="queryVars",O.LICENSES="license",O.GENERIC_CACHE="data_cache",O.WRITE_THROUGH="writeThrough",O.LOCKS="locks",O.SOCKET_IO="socket_io",O.BPM_EVENTS="bpmEvents",O.DOC_WRITE_THROUGH="docWriteThrough",O.RECAPTCHA_SESSION="recaptchaSession",O))(bd||{}),Wa=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.UNUSED_2=3]="UNUSED_2",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(Wa||{});function $a(){let t=E.REDIS_PASSWORD,e=E.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}s($a,"getRedisConnectionDetails");function xd(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zr(),tls:{}}}}s(xd,"getRedisClusterOptions");function Zr(){let{host:t,password:e,port:r}=$a();return{connectTimeout:3e4,port:r,host:t,password:e}}s(Zr,"getRedisOptions");function vd(t){let e=t.split(Kn);return e.length>=2?(e.shift(),e.join(Kn)):e[0]}s(vd,"removeDbPrefix");var CT=F(require("events"));var Xn={};N(Xn,{Duration:()=>he,DurationType:()=>Cf,clearCookie:()=>hr,compare:()=>Ud,getAppIdFromCtx:()=>qs,getCookie:()=>$t,hasCircularStructure:()=>jb,hash:()=>Nd,isAudited:()=>Df,isClient:()=>Qb,isPublicApiRequest:()=>qb,isServingApp:()=>$b,isServingBuilder:()=>Gb,isServingBuilderPreview:()=>Vb,isValidInternalAPIKey:()=>Ks,newid:()=>ne,openJwt:()=>su,setCookie:()=>RT,time:()=>Hb,timeout:()=>wf,urlHasProtocol:()=>Yb,validEmail:()=>Rf});var wy=require("uuid");function ne(){return(0,wy.v4)().replace(/-/g,"")}s(ne,"newid");var Pd=E.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),IC=E.SALT_ROUNDS||10;async function Nd(t){let e=await Pd.genSalt(IC);return Pd.hash(t,e)}s(Nd,"hash");async function Ud(t,e){return Pd.compare(t,e)}s(Ud,"compare");var iu=F(require("jsonwebtoken"));var ue={};N(ue,{DEFAULT_TENANT_ID:()=>ae,baseGlobalDBName:()=>ws,doInAutomationContext:()=>YC,doInContext:()=>Zd,doInEnvironmentContext:()=>ib,doInFeatureFlagOverrideContext:()=>of,doInIPContext:()=>tf,doInIdentityContext:()=>Ss,doInLicenseContext:()=>zC,doInScimContext:()=>sb,doInSelfHostTenantUsingCloud:()=>HC,doInTenant:()=>Re,doInWorkspaceContext:()=>XC,doInWorkspaceMigrationContext:()=>tb,ensureSnippetContext:()=>$y,getAuditLogDBName:()=>By,getAuditLogsDB:()=>ab,getAutomationId:()=>Xd,getCurrentContext:()=>tn,getDevWorkspaceDB:()=>cb,getDevWorkspaceId:()=>rb,getEnvironmentVariables:()=>ob,getFeatureFlagOverrides:()=>sf,getFeatureFlags:()=>rf,getGlobalDB:()=>H,getGlobalDBName:()=>en,getIP:()=>ef,getIdentity:()=>kt,getLicense:()=>JC,getPlatformURL:()=>Jd,getProdWorkspaceDB:()=>ub,getProdWorkspaceId:()=>nb,getScimDBName:()=>qC,getSelfHostCloudDB:()=>ZC,getTableForView:()=>lb,getTenantIDFromWorkspaceID:()=>Hn,getTenantId:()=>V,getWorkspaceDB:()=>zn,getWorkspaceId:()=>Ue,identity:()=>Ts,isMultiTenant:()=>dr,isScim:()=>pt,isSelfHostUsingCloud:()=>za,isTenancyEnabled:()=>QC,isTenantIdSet:()=>KC,setFeatureFlags:()=>nf,setTableForView:()=>db});var Ts={};N(Ts,{doInAccountContext:()=>wC,doInIdentityContext:()=>kd,doInUserContext:()=>Md,getAccountUserId:()=>Dy,getIdentity:()=>Ld});function Ld(){return kt()}s(Ld,"getIdentity");function kd(t,e){return Ss(t,e)}s(kd,"doInIdentityContext");function Md(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return kd(n,r)}s(Md,"doInUserContext");function wC(t,e){let r=Dy(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return kd(i,e)}s(wC,"doInAccountContext");function Dy(t){let e;return Bo(t)?e=t.budibaseUserId:e=t.accountId,e}s(Dy,"getAccountUserId");var dt=s(t=>{let e=Fd(t),r,n;if(e.auth?.username)r=e.auth.username;else if(E.COUCH_DB_USERNAME)r=E.COUCH_DB_USERNAME;else if(!E.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(E.COUCH_DB_PASSWORD)n=E.COUCH_DB_PASSWORD;else if(!E.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),o=E.COUCH_DB_SQL_URL;if(E.isDev()&&!o)o="http://localhost:4006";else if(!o&&e.url){let a=new URL(e.url);o=e.url.replace(a.port,"4984")}return{url:e.url,sqlUrl:Fd(o).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},"getCouchInfo"),Fd=s((t=E.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let a=t.split("://"),u=a[0],c=a.slice(1).join("://");if(t.includes("@")){let l=c.split("@");i=l[l.length-1];let d=l.slice(0,-1).join("@");if(d.includes(":")){let f=d.split(":");r=f[0],n=f.slice(1).join(":")}else r=d}else i=c;e=`${u}://${i}`}return{url:e,auth:{username:r,password:n}}},"getUrlInfo");var ky=F(require("@budibase/nano"));var Ry=F(require("node-fetch"));function qa(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}s(qa,"checkSlashesInUrl");async function Cy(t,e="GET",r){let{url:n,cookie:i}=dt(),o=`${n}/${t}`;return await As({url:o,cookie:i,method:e,body:r})}s(Cy,"directCouchCall");async function As({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,Ry.default)(qa(encodeURI(t)),i)}s(As,"directCouchUrlCall");async function Bd(t,e="GET",r){let n=await Cy(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}s(Bd,"directCouchQuery");var Xr=F(require("pouchdb"));var by,xy=!1,Wd=s((t={})=>{let{url:e,cookie:r}=dt(),n={prefix:e,fetch:(i,o)=>(o.headers.set("Authorization",r),Xr.default.fetch(i,o))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Xr.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Xr.default.plugin(i.plugin),Xr.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Xr.default.plugin(i)}return Xr.default.defaults(n)},"getPouch");function Ka(t){by=Wd(t),xy=!0}s(Ka,"init");var DC=s(()=>{if(!xy)throw new Error("init has not been called")},"checkInitialised");function Ze(t,e){DC();let r=new by(t,e),n=r.put;return r.put=async(i,o={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,o)),r.exists=async()=>!(await r.info()).error,r}s(Ze,"getPouchDB");async function _s(t){if(!(!t||E.isTest()))try{return await t.close()}catch{}}s(_s,"closePouchDB");var le=F(require("dd-trace"));var Qn=class{constructor(e){this.db=e}static{s(this,"DDInstrumentedDatabase")}get name(){return this.db.name}exists(e){return le.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return le.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return le.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return le.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return le.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",o=i?e._id:e;r=i?e._rev:r;let a=await this.db.remove(o,r);return n.addTags({ok:a.ok}),a})}bulkRemove(e,r){return le.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return le.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return le.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return le.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return le.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return le.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return le.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return le.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return le.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return le.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return le.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return le.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return le.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return le.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return le.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return le.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Yd={};N(Yd,{breakExternalTableId:()=>Vd,breakRowIdField:()=>BC,buildExternalTableId:()=>NC,convertRowId:()=>FC,encodeTableId:()=>UC,encodeViewId:()=>LC,extractDate:()=>Kd,generateRowIdField:()=>kC,getNativeSql:()=>jn,isExternalTable:()=>Gd,isExternalTableID:()=>Qa,isInternalTableID:()=>PC,isRowId:()=>MC,isValidFilter:()=>Ya,isValidISODateString:()=>ja,isValidISODateStringWithoutTimezone:()=>qd,isValidTime:()=>Qd,sqlLog:()=>Os,validateManyToMany:()=>jd});var $d=`${b}${b}`,Py=/^\[.*]$/g,RC=encodeURIComponent(" "),CC=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,bC=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,xC=/(\d{4}-\d{2}-\d{2})/,vC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Qa(t){return t.startsWith("datasource"+b)}s(Qa,"isExternalTableID");function PC(t){return!Qa(t)}s(PC,"isInternalTableID");function jn(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}s(jn,"getNativeSql");function Gd(t){return t?.sourceId&&t.sourceId.includes("datasource"+b)&&t?.sourceId!==wn||t?.sourceType==="external"?!0:!!(t?._id&&Qa(t._id))}s(Gd,"isExternalTable");function NC(t,e){return`${t}${$d}${encodeURIComponent(e)}`}s(NC,"buildExternalTableId");function UC(t){return Qa(t)?encodeURIComponent(t):t}s(UC,"encodeTableId");function LC(t){return encodeURIComponent(t)}s(LC,"encodeViewId");function Vd(t){let e=t.split($d),r=e.shift(),n=e.join($d);if(n.includes(RC)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}s(Vd,"breakExternalTableId");function kC(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}s(kC,"generateRowIdField");function MC(t){return Array.isArray(t)||typeof t=="string"&&t.match(Py)!=null}s(MC,"isRowId");function FC(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(Py)!=null?t.substring(1,t.length-1):t}s(FC,"convertRowId");function BC(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}s(BC,"breakRowIdField");function ja(t){let e=t.trim();if(!CC.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(ja,"isValidISODateString");function qd(t){let e=t.trim();if(!bC.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}s(qd,"isValidISODateStringWithoutTimezone");function Kd(t){let e=t.match(xC);if(e)return e[0]}s(Kd,"extractDate");function Ya(t){return t!=null&&t!==""}s(Ya,"isValidFilter");function Qd(t){return vC.test(t)}s(Qd,"isValidTime");function Os(t,e,r){if(!E.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}s(Os,"sqlLog");function WC(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}s(WC,"isValidManyToManyRelationship");function jd(t){if(WC(t))return t}s(jd,"validateManyToMany");var Ny="Database does not exist.";function Uy(t){return(0,ky.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}s(Uy,"buildNano");var cr=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")}};function $C(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Yn(t,r,e);return new Qn(n)}s($C,"DatabaseWithConnection");var Yn=class t{constructor(e,r,n){this.couchInfo=dt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=dt(n),this.instanceNano=Uy(this.couchInfo)),t.nano||t.init()}static{s(this,"DatabaseImpl")}static init(){let e=dt();t.nano=Uy(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await As({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new cr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===Ny)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new cr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new cr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),o=s(c=>n&&c.doc==null||c.value&&"deleted"in c.value&&c.value.deleted?!0:c.error==="not_found","rowUnavailable"),a=i.rows.filter(c=>!o(c)),u=a.length!==i.rows.length;if(!r?.allowMissing&&u){let l=i.rows.filter(d=>o(d)).map(d=>d.key).join(", ");throw new Error(`Unable to get bulk documents: ${l}`)}return a.map(c=>n?c.doc:c.value)}async remove(e,r){return this.performCall(n=>{let i,o;if(Pm(e)?(i=e._id,o=e._rev):(i=e,o=r),!i||!o)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,o)})}async bulkRemove(e,r){let n=await this.performCall(a=>()=>a.bulk({docs:e.map(u=>({...u,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,o="Unable to bulk remove documents: ";for(let a of n)a.error&&(i=!0,o+=a.error);if(i)throw new cr(o,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ne()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===Ny)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=qa(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let o=await As(i),a=await o.text();if(o.status>300){let u;try{u=JSON.parse(a)}catch{throw console.error(`SQS error: ${a}`),new cr("error while running SQS query, please try again later",{name:"sqs_error",status:o.status})}throw u}return JSON.parse(a)})}async sql(e,r){let i=`/${this.name}/${Ot}`;return Os("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,o]=e.split("/");return()=>n.view(i,o,r)})}async destroy(){if(await this.exists(Ot)){let e=await this.get(Ot);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new cr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Ze(this.name).dump(e,r)}async load(e){return Ze(this.name).load(e)}async createIndex(e){return Ze(this.name).createIndex(e)}async deleteIndex(e){return Ze(this.name).deleteIndex(e)}async getIndexes(){return Ze(this.name).getIndexes()}};function De(t,e){return new Qn(new Yn(t,e))}s(De,"getDB");async function qe(t,e,r){let n=De(t,r);return await e(n)}s(qe,"doWithDB");async function Hd(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Bd(e)}s(Hd,"directCouchAllDbs");var zd="No app provided";function lr(t){if(!t)throw zd;return t.startsWith(Je)}s(lr,"isDevWorkspaceID");function GC(t){if(!t)throw zd;return t.startsWith(ze)&&!lr(t)}s(GC,"isProdWorkspaceID");function Is(t){if(!t)throw zd;return lr(t.appId)}s(Is,"isDevWorkspace");function Ha(t){if(!t||t.startsWith(Je))return t;let e=t.split(ze);e.shift();let r=e.join(ze);return`${Je}${r}`}s(Ha,"getDevWorkspaceID");function Ke(t){if(!t||!t.startsWith(Je))return t;let e=t.split(Je);e.shift();let r=e.join(Je);return`${ze}${r}`}s(Ke,"getProdWorkspaceID");var My=require("async_hooks");var me=class t{static{s(this,"Context")}static{this.storage=new My.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Fy=null;function en(t){return t||(t=V()),ws(t)}s(en,"getGlobalDBName");function By(t){return t||(t=V()),t===ae?fe.AUDIT_LOGS.name:`${t}${b}${fe.AUDIT_LOGS.name}`}s(By,"getAuditLogDBName");function qC(t){return t||(t=V()),t===ae?fe.SCIM_LOGS.name:`${t}${b}${fe.SCIM_LOGS.name}`}s(qC,"getScimDBName");function ws(t){return!t||t===ae?fe.GLOBAL.name:`${t}${b}${fe.GLOBAL.name}`}s(ws,"baseGlobalDBName");function Jd(){return E.PLATFORM_URL}s(Jd,"getPlatformURL");function dr(){return!!E.MULTI_TENANCY}s(dr,"isMultiTenant");function KC(){return!!me.get()?.tenantId}s(KC,"isTenantIdSet");function QC(){return E.MULTI_TENANCY}s(QC,"isTenancyEnabled");function Hn(t){if(!t)return;if(!dr())return ae;let e=t.split(b),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}s(Hn,"getTenantIDFromWorkspaceID");function jC(t){let e;try{e=me.get()}catch{e={}}return e={...e,...t},e}s(jC,"updateContext");async function ft(t,e){eb();let r=jC(t);return me.run(r,e)}s(ft,"newContext");async function YC(t){return await $y(),await ft({tenantId:Hn(t.workspaceId),appId:t.workspaceId,automationId:t.automationId},t.task)}s(YC,"doInAutomationContext");async function Zd(t,e){let r=Hn(t);return ft({tenantId:r,appId:t},e)}s(Zd,"doInContext");async function Re(t,e){return E.MULTI_TENANCY||(t=t||ae),ft(t?{tenantId:t}:{},e)}s(Re,"doInTenant");async function HC(t,e){return ft({tenantId:t,isSelfHostUsingCloud:!0},e)}s(HC,"doInSelfHostTenantUsingCloud");async function zC(t,e){return ft({license:t},e)}s(zC,"doInLicenseContext");function JC(){return me.get()?.license}s(JC,"getLicense");function za(){return!!me.get()?.isSelfHostUsingCloud}s(za,"isSelfHostUsingCloud");function ZC(){let t=me.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return De(fe.SELF_HOST_CLOUD.name)}s(ZC,"getSelfHostCloudDB");async function XC(t,e){return Wy(t,e)}s(XC,"doInWorkspaceContext");async function Wy(t,e,r){if(!t)throw new Error("workspaceId is required");let n=Hn(t),i={appId:t,...r};return n&&(i.tenantId=n),ft(i,e)}s(Wy,"_doInWorkspaceContext");async function Ss(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),ft(r,e)}s(Ss,"doInIdentityContext");function eb(){if(me.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}s(eb,"guardMigration");async function tb(t,e){return Wy(t,e,{isMigrating:!0})}s(tb,"doInWorkspaceMigrationContext");function kt(){try{return me.get()?.identity}catch{}}s(kt,"getIdentity");function V(){if(!dr())return ae;let e=me.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}s(V,"getTenantId");function Xd(){return me.get()?.automationId}s(Xd,"getAutomationId");function Ue(){let e=me.get()?.appId;return!e&&E.isTest()&&Fy?Fy:e}s(Ue,"getWorkspaceId");function ef(){return me.get()?.ip}s(ef,"getIP");var rb=s(()=>{let t=Ue();if(!t)throw new Error("Could not get workspaceId");return Ha(t)},"getDevWorkspaceId"),nb=s(()=>{let t=Ue();if(!t)throw new Error("Could not get workspaceId");return Ke(t)},"getProdWorkspaceId");function ib(t,e){if(!t)throw new Error("Must supply environment variables.");return ft({environmentVariables:t},e)}s(ib,"doInEnvironmentContext");function sb(t){return ft({isScim:!0},t)}s(sb,"doInScimContext");function tf(t,e){return ft({ip:t},e)}s(tf,"doInIPContext");async function $y(){let t=tn();if(!t||t.snippets)return;let e,r=zn();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}s($y,"ensureSnippetContext");function ob(){let t=me.get();return t.environmentVariables?t.environmentVariables:null}s(ob,"getEnvironmentVariables");function H(){let t=me.get();if(!t||E.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return De(ws(t?.tenantId))}s(H,"getGlobalDB");function ab(){if(!V())throw new Error("No tenant ID found - cannot open audit log DB");return De(By())}s(ab,"getAuditLogsDB");function zn(t){let e=Ue();if(!e)throw new Error("Unable to retrieve workspace DB - no workspace ID.");if(za())throw new Error("Workspace DB not found - self-host users using cloud don't have workspace DBs");return De(e,t)}s(zn,"getWorkspaceDB");function ub(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no workspace ID.");return De(Ke(e),t)}s(ub,"getProdWorkspaceDB");function cb(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no workspace ID.");return De(Ha(e),t)}s(cb,"getDevWorkspaceDB");function pt(){return!!me.get()?.isScim}s(pt,"isScim");function tn(){try{return me.get()}catch{return}}s(tn,"getCurrentContext");function rf(t){let e=tn();if(e)return e.featureFlagCache?.[t]}s(rf,"getFeatureFlags");function nf(t,e){let r=tn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}s(nf,"setFeatureFlags");function sf(){return tn()?.featureFlagOverrides||{}}s(sf,"getFeatureFlagOverrides");async function of(t,e){return await ft({featureFlagOverrides:t},e)}s(of,"doInFeatureFlagOverrideContext");function lb(t){let e=tn();if(e)return e.viewToTableCache?.[t]}s(lb,"getTableForView");function db(t,e){let r=tn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}s(db,"setTableForView");var mr={};N(mr,{AutomationViewMode:()=>Ua,BUDIBASE_DATASOURCE_TYPE:()=>Td,DEFAULT_BB_DATASOURCE_ID:()=>wn,DEFAULT_EMPLOYEE_TABLE_ID:()=>Od,DEFAULT_EXPENSES_TABLE_ID:()=>_d,DEFAULT_INVENTORY_TABLE_ID:()=>Ad,DEFAULT_JOBS_TABLE_ID:()=>Sd,DatabaseImpl:()=>Yn,DatabaseWithConnection:()=>$C,DeprecatedViews:()=>Vn,DesignDocuments:()=>Es,DocumentType:()=>ce,InternalTable:()=>Rt,QueryBuilder:()=>Wt,Replication:()=>ST,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>Ot,SQS_DATASOURCE_INTERNAL:()=>yd,StaticDatabases:()=>fe,UNICODE_MAX:()=>ve,USER_METADATA_PREFIX:()=>hs,ViewName:()=>ur,WORKSPACE_DEV:()=>La,WORKSPACE_DEV_PREFIX:()=>Je,WORKSPACE_PREFIX:()=>ze,baseGlobalDBName:()=>ws,checkErrorCode:()=>IT,closePouchDB:()=>_s,createApiKeyView:()=>hT,createNewUserEmailView:()=>pT,createPlatformAccountEmailView:()=>gT,createPlatformUserView:()=>yT,createUserAppView:()=>mT,createView:()=>Zn,dbExists:()=>Db,directCouchAllDbs:()=>Hd,directCouchCall:()=>Cy,directCouchQuery:()=>Bd,directCouchUrlCall:()=>As,doWithDB:()=>qe,fullSearch:()=>vb,generateAgentChatID:()=>tT,generateAgentToolSourceID:()=>rT,generateAppUserID:()=>tu,generateDevInfoID:()=>Zy,generateGlobalUserID:()=>Jn,generateOAuth2LogID:()=>eT,generatePluginID:()=>Xy,generateRoleID:()=>mf,generateRowID:()=>pf,generateTableID:()=>jy,generateTemplateID:()=>Jy,generateUserMetadataID:()=>Hy,generateWorkspaceAppID:()=>nT,generateWorkspaceFavouriteID:()=>iT,generateWorkspaceID:()=>Qy,getAllDbs:()=>fT,getAllWorkspaces:()=>Fs,getCouchInfo:()=>dt,getDB:()=>De,getDevWorkspaceID:()=>Ha,getDevWorkspaceIDs:()=>Ib,getDocParams:()=>Ft,getGlobalDBName:()=>en,getGlobalIDFromUserMetadataID:()=>zy,getGlobalUserParams:()=>sn,getOAuth2ConfigParams:()=>cT,getPluginParams:()=>uT,getPouch:()=>Wd,getPouchDB:()=>Ze,getProdWorkpaceIDs:()=>Ob,getProdWorkspaceID:()=>Ke,getQueryIndex:()=>sT,getRoleParams:()=>nu,getRowParams:()=>hf,getStartEndKeyURL:()=>Ms,getTemplateParams:()=>aT,getUrlInfo:()=>Fd,getUserMetadataParams:()=>oT,getUsersByWorkspaceParams:()=>ru,getWorkspaceAppParams:()=>lT,getWorkspaceFavouriteParams:()=>dT,getWorkspacesByIDs:()=>_b,init:()=>Ka,isDevWorkspace:()=>Is,isDevWorkspaceID:()=>lr,isDocumentConflictError:()=>Nb,isGlobalUserID:()=>Yy,isProdWorkspaceID:()=>GC,isSameWorkspaceID:()=>wb,paginatedSearch:()=>xb,pagination:()=>gf,prefixRoleID:()=>Mt,queryGlobalView:()=>Bt,queryGlobalViewRaw:()=>Sf,queryPlatformView:()=>Ws,queryView:()=>Tf,queryViewRaw:()=>Bs,removeKeyNumbering:()=>$s,searchIndexes:()=>_f});var ks={};N(ks,{WorkspaceState:()=>ff,getWorkspaceMetadata:()=>eu,invalidateWorkspaceMetadata:()=>Sb});var pr={};N(pr,{getCacheClient:()=>cf,getDocWritethroughClient:()=>Eb,getInviteClient:()=>nn,getLockClient:()=>df,getPasswordResetClient:()=>Ls,getSessionClient:()=>fr,getSocketClient:()=>hb,getUserClient:()=>Us,getWorkspaceClient:()=>Xa,getWritethroughClient:()=>lf,init:()=>mt,shutdown:()=>qy});var Za=F(require("ioredis"));var Ja=require("dd-trace"),Vy=require("lodash");var Gy;if(E.MOCK_REDIS)try{Gy=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function fb(t=0){return await Ja.tracer.trace("Redis.init",async e=>{if(E.MOCK_REDIS)return e.addTags({mock:!0}),new Gy(Zr());let r;if(E.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=$a();r=new Za.Cluster([{host:n,port:i}],xd())}else r=new Za.default(Zr());return new Promise((n,i)=>{r.on("error",o=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,o),i(o)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}s(fb,"init");function pb(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",o=>o.forEach(a=>i.add(a))),t.on("error",o=>n(o)),t.on("end",async()=>{try{let o=Array.from(i).map(async a=>{let u=await e.get(a);return u&&(u=JSON.parse(u)),{key:vd(a),value:u}});r(await Promise.all(o))}catch(o){n(o)}})})}s(pb,"promisifyStream");function mb(t){return t.isCluster}s(mb,"isCluster");var af=class t{static{s(this,"RedisWrapper")}constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await Ja.tracer.trace("RedisWrapper.init",async n=>{let i=await fb(r);return r&&!E.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return Ja.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${Kn}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${Kn}${e}`;let n;mb(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await pb(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(e){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:e}),this.client.keys(this.prefixed(e))))}async exists(e){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:e}),await this.client.exists(this.prefixed(e))))}async get(e){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:e});let n=await this.client.get(this.prefixed(e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}})}async bulkGet(e){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:e.length}),e.length===0)return{};let n=await this.client.mget(e.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,Vy.zip)(e,n).reduce((i,[o,a])=>{if(o===void 0||a===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[o]=a?JSON.parse(a):null}catch{i[o]=a}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((a,[u,c])=>(a[this.prefixed(u)]=typeof c=="object"?JSON.stringify(c):c,a),{}),o=this.client.pipeline();if(o.mset(i),r!==null)for(let a of Object.keys(i))o.expire(a,r);await o.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e});let i=`
6
6
  if redis.call('GET', KEYS[1]) == ARGV[1] then
7
7
  redis.call('DEL', KEYS[1])
8
8
  end
9
- `;await this.client.eval(i,1,this.prefixed(e),r)})}},Ce=af;var Ds,Rs,Cs,bs,rn,xs,vs,Ps,Ns,uf;async function mt(){Ds=await Ce.init("users"),Rs=await Ce.init("session"),Cs=await Ce.init("appMetadata"),bs=await Ce.init("data_cache"),xs=await Ce.init("locks"),rn=await Ce.init("writeThrough"),Ps=await Ce.init("invitation"),Ns=await Ce.init("pwReset"),vs=await Ce.init("socket_io",1),uf=await Ce.init("docWriteThrough")}s(mt,"init");async function Vy(){Ds&&await Ds.finish(),Rs&&await Rs.finish(),Cs&&await Cs.finish(),bs&&await bs.finish(),rn&&await rn.finish(),xs&&await xs.finish(),Ps&&await Ps.finish(),Ns&&await Ns.finish(),vs&&await vs.finish(),uf&&await uf.finish()}s(Vy,"shutdown");process.on("exit",async()=>{await Vy()});async function Us(){return Ds||await mt(),Ds}s(Us,"getUserClient");async function fr(){return Rs||await mt(),Rs}s(fr,"getSessionClient");async function Xa(){return Cs||await mt(),Cs}s(Xa,"getWorkspaceClient");async function cf(){return bs||await mt(),bs}s(cf,"getCacheClient");async function lf(){return rn||await mt(),rn}s(lf,"getWritethroughClient");async function df(){return xs||await mt(),xs}s(df,"getLockClient");async function hb(){return vs||await mt(),vs}s(hb,"getSocketClient");async function nn(){return Ps||await mt(),Ps}s(nn,"getInviteClient");async function Ls(){return Ns||await mt(),Ns}s(Ls,"getPasswordResetClient");async function Eb(){return rn||await mt(),rn}s(Eb,"getDocWritethroughClient");var ff=(e=>(e.INVALID="invalid",e))(ff||{}),qy=3600,gb=60;async function yb(t){return qe(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(yb,"populateFromDB");function Tb(t){return!t||t.state==="invalid"}s(Tb,"isInvalid");async function eu(t){let e=await Xa(),r=await e.get(t);if(!r){let n=qy;try{r=await yb(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=gb;else throw i}if(Tb(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(eu,"getWorkspaceMetadata");async function Sb(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await Xa();await r.delete(t),e&&await r.store(t,e,qy)}s(Sb,"invalidateWorkspaceMetadata");var Ef={};N(Ef,{generateAgentChatID:()=>eT,generateAgentToolSourceID:()=>tT,generateAppUserID:()=>tu,generateDevInfoID:()=>Jy,generateGlobalUserID:()=>Jn,generateOAuth2LogID:()=>Xy,generatePluginID:()=>Zy,generateRoleID:()=>mf,generateRowID:()=>pf,generateTableID:()=>Qy,generateTemplateID:()=>zy,generateUserMetadataID:()=>Yy,generateWorkspaceAppID:()=>rT,generateWorkspaceFavouriteID:()=>nT,generateWorkspaceID:()=>Ky,getDocParams:()=>Mt,getGlobalIDFromUserMetadataID:()=>Hy,getGlobalUserParams:()=>sn,getOAuth2ConfigParams:()=>uT,getPluginParams:()=>aT,getQueryIndex:()=>iT,getRoleParams:()=>nu,getRowParams:()=>hf,getStartEndKeyURL:()=>Ms,getTemplateParams:()=>oT,getUserMetadataParams:()=>sT,getUsersByWorkspaceParams:()=>ru,getWorkspaceAppParams:()=>cT,getWorkspaceFavouriteParams:()=>lT,isGlobalUserID:()=>jy,prefixRoleID:()=>kt});var Ky=s(t=>{let e=ze;return t&&(e+=`${t}${b}`),`${e}${ne()}`},"generateWorkspaceID");function Qy(){return`ta${b}${ne()}`}s(Qy,"generateTableID");function pf(t,e){return e=e||ne(),`ro${b}${t}${b}${e}`}s(pf,"generateRowID");function Jn(t){return`us${b}${t||ne()}`}s(Jn,"generateGlobalUserID");var Ab=new RegExp(`^us${b}.+`);function jy(t){return Ab.test(t)}s(jy,"isGlobalUserID");function Yy(t){return pf("ta_users",t)}s(Yy,"generateUserMetadataID");function Hy(t){let e=`ro${b}ta_users${b}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(Hy,"getGlobalIDFromUserMetadataID");function zy(t){return`template${b}${t}${b}${ne()}`}s(zy,"generateTemplateID");function tu(t,e){return`${t}${b}${e}`}s(tu,"generateAppUserID");function mf(t){let e=`role${b}`;return t.startsWith(e)?t:`${e}${t}`}s(mf,"generateRoleID");function kt(t){return mf(t)}s(kt,"prefixRoleID");var Jy=s(t=>`devinfo${b}${t}`,"generateDevInfoID"),Zy=s(t=>`plg${b}${t}`,"generatePluginID"),Xy=s(t=>`oauth2log${b}${t}`,"generateOAuth2LogID"),eT=s(()=>`agentchat${b}${ne()}`,"generateAgentChatID"),tT=s(()=>`agenttoolsource${b}${ne()}`,"generateAgentToolSourceID"),rT=s(()=>`workspace_app${b}${ne()}`,"generateWorkspaceAppID"),nT=s(()=>`workspace_favourite${b}${ne()}`,"generateWorkspaceFavouriteID");function Mt(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${b}${e}`,endkey:`${t}${b}${e}${ve}`}}s(Mt,"getDocParams");function hf(t,e,r={}){if(t==null)return Mt("ro",null,r);let n=e??`${t}${b}`;return Mt("ro",n,r)}s(hf,"getRowParams");function iT(t){return`database/${t}`}s(iT,"getQueryIndex");function sn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${b}${t}`,endkey:`us${b}${t}${ve}`}}s(sn,"getGlobalUserParams");function sT(t,e={}){return hf("ta_users",t,e)}s(sT,"getUserMetadataParams");function ru(t,e={}){let r=Ke(t);return{...e,startkey:r,endkey:`${r}${ve}`}}s(ru,"getUsersByWorkspaceParams");function oT(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${b}${t}${b}`,{...r,startkey:n,endkey:`${n}${ve}`}}s(oT,"getTemplateParams");function nu(t,e={}){return Mt("role",t,e)}s(nu,"getRoleParams");function Ms(t,e){let r=e?`${b}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ve}"`}s(Ms,"getStartEndKeyURL");var aT=s((t,e={})=>Mt("plg",t,e),"getPluginParams"),uT=s((t,e={})=>Mt("oauth2",t,e),"getOAuth2ConfigParams"),cT=s((t,e={})=>Mt("workspace_app",t,e),"getWorkspaceAppParams"),lT=s((t,e={})=>Mt("workspace_favourite",t,e),"getWorkspaceFavouriteParams");async function dT(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await Hd(o);r=r.concat(a)}s(n,"addDbs");let i=V();return!E.MULTI_TENANCY||!e&&i===ae?await n():(await n(Ms("app",i)),await n(Ms("app_dev",i)),r.push(en(i))),r}s(dT,"getAllDbs");async function Fs({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=V();!E.MULTI_TENANCY&&!i&&(i=ae);let a=(await dT({efficient:n||!1})).filter(c=>{if(E.isTest()&&!c)return!1;let l=c.split(b);if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ae&&f||d===i}return!1});if(r){let c=a.filter(d=>lr(d)),l=a.filter(d=>!lr(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>eu(c));if(u.length===0)return[];{let l=(await Promise.allSettled(u)).filter(d=>d.status==="fulfilled"&&d.value?.state!=="invalid").map(({value:d})=>d);return e?l.map(d=>({...d,status:Is(d)?"development":"published"})):l.filter(d=>t?Is(d):!Is(d))}}s(Fs,"getAllWorkspaces");async function _b(t){return(await Promise.allSettled(t.map(r=>eu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(_b,"getWorkspacesByIDs");async function Ob(){return(await Fs({idsOnly:!0})).filter(e=>!lr(e))}s(Ob,"getProdWorkpaceIDs");async function Ib(){return(await Fs({idsOnly:!0})).filter(e=>lr(e))}s(Ib,"getDevWorkspaceIDs");function wb(t,e){return t==null||e==null?!1:Ke(t)===Ke(e)}s(wb,"isSameWorkspaceID");async function Db(t){return qe(t,async e=>await e.exists(),{skip_setup:!0})}s(Db,"dbExists");function gf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let o=t.length>e,a;return i||(i=s(u=>n?u?.[n]:u?._id,"getKey")),o&&(a=i(t[e])),{data:t.slice(0,e),hasNextPage:o,nextPage:a}}s(gf,"pagination");var yf="_design/database";function Rb(){return{_id:yf,views:{}}}s(Rb,"DesignDoc");async function Cb(t,e){if(Vn[e])try{let r=await t.get(yf);for(let n of Vn[e])delete r.views?.[n];await t.put(r)}catch{}}s(Cb,"removeDeprecated");async function Zn(t,e,r){let n;try{n=await t.get(yf)}catch{n=Rb()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await Zn(t,e,r);throw o}}s(Zn,"createView");var fT=s(async()=>{let t=H(),e=`function(doc) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},Ce=af;var Ds,Rs,Cs,bs,rn,xs,vs,Ps,Ns,uf;async function mt(){Ds=await Ce.init("users"),Rs=await Ce.init("session"),Cs=await Ce.init("appMetadata"),bs=await Ce.init("data_cache"),xs=await Ce.init("locks"),rn=await Ce.init("writeThrough"),Ps=await Ce.init("invitation"),Ns=await Ce.init("pwReset"),vs=await Ce.init("socket_io",1),uf=await Ce.init("docWriteThrough")}s(mt,"init");async function qy(){Ds&&await Ds.finish(),Rs&&await Rs.finish(),Cs&&await Cs.finish(),bs&&await bs.finish(),rn&&await rn.finish(),xs&&await xs.finish(),Ps&&await Ps.finish(),Ns&&await Ns.finish(),vs&&await vs.finish(),uf&&await uf.finish()}s(qy,"shutdown");process.on("exit",async()=>{await qy()});async function Us(){return Ds||await mt(),Ds}s(Us,"getUserClient");async function fr(){return Rs||await mt(),Rs}s(fr,"getSessionClient");async function Xa(){return Cs||await mt(),Cs}s(Xa,"getWorkspaceClient");async function cf(){return bs||await mt(),bs}s(cf,"getCacheClient");async function lf(){return rn||await mt(),rn}s(lf,"getWritethroughClient");async function df(){return xs||await mt(),xs}s(df,"getLockClient");async function hb(){return vs||await mt(),vs}s(hb,"getSocketClient");async function nn(){return Ps||await mt(),Ps}s(nn,"getInviteClient");async function Ls(){return Ns||await mt(),Ns}s(Ls,"getPasswordResetClient");async function Eb(){return rn||await mt(),rn}s(Eb,"getDocWritethroughClient");var ff=(e=>(e.INVALID="invalid",e))(ff||{}),Ky=3600,gb=60;async function yb(t){return qe(t,e=>e.get("app_metadata"),{skip_setup:!0})}s(yb,"populateFromDB");function Tb(t){return!t||t.state==="invalid"}s(Tb,"isInvalid");async function eu(t){let e=await Xa(),r=await e.get(t);if(!r){let n=Ky;try{r=await yb(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=gb;else throw i}if(Tb(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}s(eu,"getWorkspaceMetadata");async function Sb(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await Xa();await r.delete(t),e&&await r.store(t,e,Ky)}s(Sb,"invalidateWorkspaceMetadata");var Ef={};N(Ef,{generateAgentChatID:()=>tT,generateAgentToolSourceID:()=>rT,generateAppUserID:()=>tu,generateDevInfoID:()=>Zy,generateGlobalUserID:()=>Jn,generateOAuth2LogID:()=>eT,generatePluginID:()=>Xy,generateRoleID:()=>mf,generateRowID:()=>pf,generateTableID:()=>jy,generateTemplateID:()=>Jy,generateUserMetadataID:()=>Hy,generateWorkspaceAppID:()=>nT,generateWorkspaceFavouriteID:()=>iT,generateWorkspaceID:()=>Qy,getDocParams:()=>Ft,getGlobalIDFromUserMetadataID:()=>zy,getGlobalUserParams:()=>sn,getOAuth2ConfigParams:()=>cT,getPluginParams:()=>uT,getQueryIndex:()=>sT,getRoleParams:()=>nu,getRowParams:()=>hf,getStartEndKeyURL:()=>Ms,getTemplateParams:()=>aT,getUserMetadataParams:()=>oT,getUsersByWorkspaceParams:()=>ru,getWorkspaceAppParams:()=>lT,getWorkspaceFavouriteParams:()=>dT,isGlobalUserID:()=>Yy,prefixRoleID:()=>Mt});var Qy=s(t=>{let e=ze;return t&&(e+=`${t}${b}`),`${e}${ne()}`},"generateWorkspaceID");function jy(){return`ta${b}${ne()}`}s(jy,"generateTableID");function pf(t,e){return e=e||ne(),`ro${b}${t}${b}${e}`}s(pf,"generateRowID");function Jn(t){return`us${b}${t||ne()}`}s(Jn,"generateGlobalUserID");var Ab=new RegExp(`^us${b}.+`);function Yy(t){return Ab.test(t)}s(Yy,"isGlobalUserID");function Hy(t){return pf("ta_users",t)}s(Hy,"generateUserMetadataID");function zy(t){let e=`ro${b}ta_users${b}`;return!t||!t.includes(e)?t:t.split(e)[1]}s(zy,"getGlobalIDFromUserMetadataID");function Jy(t){return`template${b}${t}${b}${ne()}`}s(Jy,"generateTemplateID");function tu(t,e){return`${t}${b}${e}`}s(tu,"generateAppUserID");function mf(t){let e=`role${b}`;return t.startsWith(e)?t:`${e}${t}`}s(mf,"generateRoleID");function Mt(t){return mf(t)}s(Mt,"prefixRoleID");var Zy=s(t=>`devinfo${b}${t}`,"generateDevInfoID"),Xy=s(t=>`plg${b}${t}`,"generatePluginID"),eT=s(t=>`oauth2log${b}${t}`,"generateOAuth2LogID"),tT=s(()=>`agentchat${b}${ne()}`,"generateAgentChatID"),rT=s(()=>`agenttoolsource${b}${ne()}`,"generateAgentToolSourceID"),nT=s(()=>`workspace_app${b}${ne()}`,"generateWorkspaceAppID"),iT=s(()=>`workspace_favourite${b}${ne()}`,"generateWorkspaceFavouriteID");function Ft(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${b}${e}`,endkey:`${t}${b}${e}${ve}`}}s(Ft,"getDocParams");function hf(t,e,r={}){if(t==null)return Ft("ro",null,r);let n=e??`${t}${b}`;return Ft("ro",n,r)}s(hf,"getRowParams");function sT(t){return`database/${t}`}s(sT,"getQueryIndex");function sn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${b}${t}`,endkey:`us${b}${t}${ve}`}}s(sn,"getGlobalUserParams");function oT(t,e={}){return hf("ta_users",t,e)}s(oT,"getUserMetadataParams");function ru(t,e={}){let r=Ke(t);return{...e,startkey:r,endkey:`${r}${ve}`}}s(ru,"getUsersByWorkspaceParams");function aT(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${b}${t}${b}`,{...r,startkey:n,endkey:`${n}${ve}`}}s(aT,"getTemplateParams");function nu(t,e={}){return Ft("role",t,e)}s(nu,"getRoleParams");function Ms(t,e){let r=e?`${b}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ve}"`}s(Ms,"getStartEndKeyURL");var uT=s((t,e={})=>Ft("plg",t,e),"getPluginParams"),cT=s((t,e={})=>Ft("oauth2",t,e),"getOAuth2ConfigParams"),lT=s((t,e={})=>Ft("workspace_app",t,e),"getWorkspaceAppParams"),dT=s((t,e={})=>Ft("workspace_favourite",t,e),"getWorkspaceFavouriteParams");async function fT(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(o){let a=await Hd(o);r=r.concat(a)}s(n,"addDbs");let i=V();return!E.MULTI_TENANCY||!e&&i===ae?await n():(await n(Ms("app",i)),await n(Ms("app_dev",i)),r.push(en(i))),r}s(fT,"getAllDbs");async function Fs({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=V();!E.MULTI_TENANCY&&!i&&(i=ae);let a=(await fT({efficient:n||!1})).filter(c=>{if(E.isTest()&&!c)return!1;let l=c.split(b);if(l[0]==="app"){let d=l[l.length-2],f=l.length===2||d==="dev";return i===ae&&f||d===i}return!1});if(r){let c=a.filter(d=>lr(d)),l=a.filter(d=>!lr(d));switch(t){case!0:return c;case!1:return l;default:return a}}let u=a.map(c=>eu(c));if(u.length===0)return[];{let l=(await Promise.allSettled(u)).filter(d=>d.status==="fulfilled"&&d.value?.state!=="invalid").map(({value:d})=>d);return e?l.map(d=>({...d,status:Is(d)?"development":"published"})):l.filter(d=>t?Is(d):!Is(d))}}s(Fs,"getAllWorkspaces");async function _b(t){return(await Promise.allSettled(t.map(r=>eu(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}s(_b,"getWorkspacesByIDs");async function Ob(){return(await Fs({idsOnly:!0})).filter(e=>!lr(e))}s(Ob,"getProdWorkpaceIDs");async function Ib(){return(await Fs({idsOnly:!0})).filter(e=>lr(e))}s(Ib,"getDevWorkspaceIDs");function wb(t,e){return t==null||e==null?!1:Ke(t)===Ke(e)}s(wb,"isSameWorkspaceID");async function Db(t){return qe(t,async e=>await e.exists(),{skip_setup:!0})}s(Db,"dbExists");function gf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let o=t.length>e,a;return i||(i=s(u=>n?u?.[n]:u?._id,"getKey")),o&&(a=i(t[e])),{data:t.slice(0,e),hasNextPage:o,nextPage:a}}s(gf,"pagination");var yf="_design/database";function Rb(){return{_id:yf,views:{}}}s(Rb,"DesignDoc");async function Cb(t,e){if(Vn[e])try{let r=await t.get(yf);for(let n of Vn[e])delete r.views?.[n];await t.put(r)}catch{}}s(Cb,"removeDeprecated");async function Zn(t,e,r){let n;try{n=await t.get(yf)}catch{n=Rb()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(o){if(o.status===409)return await Zn(t,e,r);throw o}}s(Zn,"createView");var pT=s(async()=>{let t=H(),e=`function(doc) {
10
10
  if (doc._id.startsWith("us${b}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await Zn(t,e,"by_email2")},"createNewUserEmailView"),pT=s(async()=>{let t=H(),e=`function(doc) {
13
+ }`;await Zn(t,e,"by_email2")},"createNewUserEmailView"),mT=s(async()=>{let t=H(),e=`function(doc) {
14
14
  if (doc._id.startsWith("us${b}") && doc.roles) {
15
15
  for (let prodWorkspaceId of Object.keys(doc.roles)) {
16
16
  let emitted = prodWorkspaceId + "${b}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await Zn(t,e,"by_app")},"createUserAppView"),mT=s(async()=>{let t=H(),e=`function(doc) {
20
+ }`;await Zn(t,e,"by_app")},"createUserAppView"),hT=s(async()=>{let t=H(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await Zn(t,e,"by_api_key")},"createApiKeyView");async function Bs(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Cb(r,t),await n(),Bs(t,e,r,n,i);if(o.status===409)return Bs(t,e,r,n,i);throw o}}s(Bs,"queryViewRaw");var Tf=s(async(t,e,r,n,i)=>{let u=(await Bs(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");async function hT(t,e){try{await qe(fe.PLATFORM_INFO.name,async r=>{await Zn(r,t,e)})}catch(r){if(r.status===409&&E.isTest())return;throw r}}s(hT,"createPlatformView");var ET=s(async()=>{let t=`function(doc) {
24
+ }`;await Zn(t,e,"by_api_key")},"createApiKeyView");async function Bs(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(o){let a=o&&o.name==="not_found",u=o&&o.status===404;if(a||u)return await Cb(r,t),await n(),Bs(t,e,r,n,i);if(o.status===409)return Bs(t,e,r,n,i);throw o}}s(Bs,"queryViewRaw");var Tf=s(async(t,e,r,n,i)=>{let u=(await Bs(t,e,r,n,i)).rows.map(c=>e.include_docs?c.doc:c.value);return i?.arrayResponse?u:u.length<=1?u[0]:u},"queryView");async function ET(t,e){try{await qe(fe.PLATFORM_INFO.name,async r=>{await Zn(r,t,e)})}catch(r){if(r.status===409&&E.isTest())return;throw r}}s(ET,"createPlatformView");var gT=s(async()=>{let t=`function(doc) {
25
25
  if (doc._id.startsWith("acc_metadata${b}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await hT(t,"account_by_email")},"createPlatformAccountEmailView"),gT=s(async()=>{await hT(`function(doc) {
28
+ }`;await ET(t,"account_by_email")},"createPlatformAccountEmailView"),yT=s(async()=>{await ET(`function(doc) {
29
29
  if (doc.tenantId) {
30
30
  emit(doc._id.toLowerCase(), doc._id)
31
31
  }
@@ -33,7 +33,7 @@ attempted value: ${o}
33
33
  if (doc.ssoId) {
34
34
  emit(doc.ssoId, doc._id)
35
35
  }
36
- }`,"platform_users_lowercase_2")},"createPlatformUserView"),Ws=s(async(t,e)=>{let r={account_by_email:ET,platform_users_lowercase_2:gT};return qe(fe.PLATFORM_INFO.name,async n=>{let i=r[t];return Tf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),yT={by_email2:fT,by_api_key:mT,by_app:pT},Ft=s(async(t,e,r,n)=>{r||(r=H());let i=yT[t];return Tf(t,e,r,i,n)},"queryGlobalView");async function Sf(t,e,r){let n=H(),i=yT[t];return Bs(t,e,n,i,r)}s(Sf,"queryGlobalViewRaw");var bb=F(require("pouchdb"));var Af=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=Ze(e),this.target=Ze(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([_s(this.source),_s(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,p)=>f?.startsWith(p+b),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:(f,p)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,hs)?!0:d(f._id)?!!c?.find(h=>f._id.includes(h))||u:l(f._id,"log_au")||f._id==="app_metadata"?!1:r?r(f,p):!0}}async rollback(){await this.target.destroy(),this.target=Ze(this.target.name),await this.replicate()}},TT=Af;var AT=F(require("node-fetch"));var $s=ar.removeKeyNumbering;function on(t){return t==null||t===""}s(on,"isEmpty");var Bt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=$s(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((m,g)=>on(g)?null:`${m}:${e.preprocess(g,o)}`,"equal"),c=s((m,g,y="AND")=>{if(on(g))return null;if(!Array.isArray(g))return`${m}:${g}`;let S=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)S+=` ${y} ${e.preprocess(g[O],{escape:!0})}`;return`${m}:(${S})`},"contains"),l=s((m,g)=>on(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${m}:/.*${g}.*/`),"fuzzy"),d=s((m,g)=>{let y=r?"*:* AND ":"",S=r?"AND":void 0;return y+"NOT "+c(m,g,S)},"notContains"),f=s((m,g)=>c(m,g,"OR"),"containsAny"),p=s((m,g)=>{if(on(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let y=`${e.preprocess(g[0],o)}`;for(let S=1;S<g.length;S++)y+=` OR ${e.preprocess(g[S],o)}`;return`${m}:(${y})`},"oneOf");function h(m,g,y){let S="";for(let[O,_]of Object.entries(m)){O=$s(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let D=g(O,_);if(D!=null){if(S.length>0||n.length>0){let T=y?.mode?y.mode:r?"OR":"AND";S+=` ${T} `}S+=D,(typeof _!="string"&&_!=null||typeof _=="string"&&_!==a&&_!=="")&&(i=!1)}}if(y?.returnBuilt)return S;n+=S}if(s(h,"build"),this.#e.string&&h(this.#e.string,(m,g)=>on(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${m}:${g}*`)),this.#e.range&&h(this.#e.range,(m,g)=>{if(on(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let y=e.preprocess(g.low,o),S=e.preprocess(g.high,o);return`${m}:[${y} TO ${S}]`}),this.#e.fuzzy&&h(this.#e.fuzzy,l),this.#e.equal&&h(this.#e.equal,u),this.#e.notEqual&&h(this.#e.notEqual,(m,g)=>on(g)?null:typeof g=="boolean"?`(*:* AND !${m}:${g})`:`!${m}:${e.preprocess(g,o)}`),this.#e.empty&&h(this.#e.empty,m=>(i=!1,`(*:* -${m}:["" TO *])`)),this.#e.notEmpty&&h(this.#e.notEmpty,m=>(i=!1,`${m}:["" TO *]`)),this.#e.oneOf&&h(this.#e.oneOf,p),this.#e.contains&&h(this.#e.contains,c),this.#e.notContains&&h(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&h(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,h({tableId:a},u)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=dt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await ST(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await ST(n,i,r);throw o}}};async function ST(t,e,r){let n=await(0,AT.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(ST,"runQuery");async function _T(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Bt.maxLimit;n.limit&&o.length>n.limit-Bt.maxLimit&&(a=n.limit-o.length);let u=new Bt(t,e,r);u.setVersion(n.version).setBookmark(i).setLimit(a).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&u.setTable(n.tableId);let c=await u.run();if(!c.rows.length)return o;if(c.rows.length<Bt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await _T(t,e,r,l)}s(_T,"recursiveSearch");async function xb(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Bt.maxLimit);let o=new Bt(t,e,r);n.version&&o.setVersion(n.version),n.tableId&&o.setTable(n.tableId),n.sort&&o.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&o.setIndexBuilder(n.indexer),n.disableEscaping&&o.disableEscaping();let a=await o.setBookmark(n.bookmark).setLimit(i).run();o.setBookmark(a.bookmark).setLimit(1),n.tableId&&o.setTable(n.tableId);let u=await o.run();return{...a,hasNextPage:u.rows&&u.rows.length>0}}s(xb,"paginatedSearch");async function vb(t,e,r,n){let i=n.limit;return(i==null||isNaN(i)||i<0)&&(i=1e3),n.limit=Math.min(i,1e3),{rows:await _T(t,e,r,n)}}s(vb,"fullSearch");var _f={};N(_f,{createUserIndex:()=>Pb});async function Pb(){let t=H(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=s(function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function o(a,u){for(let c of Object.keys(a)){if(i.includes(c))continue;let l=u!=null?`${u}.${c}`:c;typeof a[c]=="string"?index(l,a[c].toLowerCase(),{facet:!0}):typeof a[c]!="object"?index(l,a[c],{facet:!0}):o(a[c],l)}}s(o,"idx"),o(n)},"fn");e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}s(Pb,"createUserIndex");function OT(t,e){let r=e.toString();if(typeof t=="object")return t.status===e||t.message?.includes(r);if(typeof t=="number")return t===e;if(typeof t=="string")return t.includes(r)}s(OT,"checkErrorCode");function Nb(t){return OT(t,409)}s(Nb,"isDocumentConflictError");var Vs={};N(Vs,{addTenantToUrl:()=>Ub,getTenantDB:()=>Of,getTenantIDFromCtx:()=>Gs,isUserInAppTenant:()=>Lb});function Of(t){return De(en(t))}s(Of,"getTenantDB");function Ub(t){let e=V();if(dr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(Ub,"addTenantToUrl");var Lb=s((t,e)=>{let r;return e?r=e.tenantId||ae:r=V(),(Hn(t)||ae)===r},"isUserInAppTenant"),kb=Object.values(Oi),Gs=s((t,e)=>{if(!dr())return ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=kb),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(Jd()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");var If="app"+b,IT="/app/",Mb="/builder",Fb=`${Mb}/workspace/`,Bb="/api/public/v";async function Wb(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=V();!E.isDev()&&E.MULTI_TENANCY&&(n=Gs(t,{includeStrategies:["subdomain"]}));let o=(await Re(n,()=>Fs({dev:!1}))).filter(a=>a.url&&a.url.toLowerCase()===r)[0];return o&&o.appId?o.appId:void 0}s(Wb,"resolveAppUrl");function $b(t){return t.path.startsWith(`/${If}`)?!0:t.path.startsWith(IT)}s($b,"isServingApp");function Gb(t){return t.path.startsWith(Fb)}s(Gb,"isServingBuilder");function Vb(t){return wT(t.path)}s(Vb,"isServingBuilderPreview");function wT(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(wT,"isBuilderPreviewUrl");function qb(t){return t.path.startsWith(Bb)}s(qb,"isPublicApiRequest");async function qs(t){let e;function r(u){return!u||!u.startsWith(If)?e:(e&&e!==u&&t.throw("App id conflict",403),e??u)}s(r,"confirmAppId");let n=t.request.headers["x-budibase-app-id"]||[];typeof n=="string"&&(n=[n]);for(let u of n)e=r(u);t.request.body&&t.request.body.appId&&(e=r(t.request.body.appId));let i=Kb(t.path);i&&(e=r(i)),t.query?.appId&&(e=r(t.query?.appId));let o=wT(t.path);return t.path.startsWith(IT)&&!o&&(e=r(await Wb(t))),e}s(qs,"getAppIdFromCtx");function Kb(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(If))}s(Kb,"parseAppIdFromUrlPath");function su(t){if(t)try{return iu.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return iu.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(su,"openJwt");function Ks(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(Ks,"isValidInternalAPIKey");function Wt(t,e){let r=t.cookies.get(e);if(r)return su(r)}s(Wt,"getCookie");function DT(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=iu.default.sign(e,E.JWT_SECRET));let i={expires:Ma,path:"/",httpOnly:!1,overwrite:!0};E.COOKIE_DOMAIN&&(i.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,i)}s(DT,"setCookie");function hr(t,e){DT(t,null,e)}s(hr,"clearCookie");function Qb(t){return t.headers["x-budibase-type"]==="client"}s(Qb,"isClient");function wf(t){return new Promise(e=>setTimeout(e,t))}s(wf,"timeout");function Df(t){return!!Cm[t]}s(Df,"isAudited");function jb(t){if(typeof t!="object")return!1;try{JSON.stringify(t)}catch(e){if(e instanceof Error&&e?.message.includes("circular structure"))return!0}return!1}s(jb,"hasCircularStructure");function Yb(t){return!!t.match(/^.+:\/\/.+$/)}s(Yb,"urlHasProtocol");function Rf(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}s(Rf,"validEmail");var Cf=(o=>(o.MILLISECONDS="milliseconds",o.SECONDS="seconds",o.MINUTES="minutes",o.HOURS="hours",o.DAYS="days",o))(Cf||{}),ou={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},he=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/ou[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*ou[e]/ou[r]}static from(e,r){return new t(r*ou[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function Hb(t){let e=performance.now();return[await t(),he.fromMilliseconds(performance.now()-e)]}s(Hb,"time");function zb(t){let e="",r=-1,n,i,o=t.opts?.repeat;return o&&(i=o.endDate?new Date(o.endDate).getTime():Date.now(),n=o.tz,"cron"in o?e=o.cron:r=o.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}s(zb,"jobToJobInformation");var au=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new RT.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((f,p)=>{f?l(f):c(p)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await Ne.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=ne(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{c._isDiscarded=!0}};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:()=>new Promise((c,l)=>{let d=s((p,h)=>{p.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(h))},"errorHandler"),f=s((p,h)=>{p.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(h))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)})}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>zb(e))}async whenCurrentJobsFinished(){do await wf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},CT=au;var vf=F(require("bull"));var ei=(u=>(u.AUTOMATION="automationQueue",u.APP_BACKUP="appBackupQueue",u.AUDIT_LOG="auditLogQueue",u.SYSTEM_EVENT_QUEUE="systemEventQueue",u.APP_MIGRATION="appMigration",u.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",u.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",u))(ei||{});function bT(t,e,r){Xb(t,e),r&&Jb(t,r)}s(bT,"addListeners");function Jb(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let o of i)o.id===n&&await t.removeRepeatableByKey(o.key);console.log(`jobId=${n} disabled`)}})}s(Jb,"handleStalled");function Xe(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(Xe,"getLogParams");var Zb={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event"};function Xb(t,e){let r=Zb[e];function n(i,o){let a=i.data.event?.appId;if(a)return Zd(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...Xe(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...Xe(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...Xe(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...Xe(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...Xe(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...Xe(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...Xe(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...Xe(r,"paused"))}).on("resumed",()=>{console.info(...Xe(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...Xe(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...Xe(r,"drained"))}).on("removed",i=>{console.info(...Xe(r,"removed",{job:i}))})}s(Xb,"logging");var uu={};N(uu,{cleanup:()=>ex,clear:()=>xf,set:()=>bf});var Qs=[];function bf(t,e){let r=setInterval(t,e);return Qs.push(r),r}s(bf,"set");function xf(t){let e=Qs.indexOf(t);e!==-1&&Qs.splice(e,1),clearInterval(t)}s(xf,"clear");function ex(){for(let t of Qs)clearInterval(t);Qs=[]}s(ex,"cleanup");var $t=F(require("dd-trace")),js=F(require("object-sizeof"));var tx=he.fromMinutes(5).toMs(),rx=he.fromSeconds(30).toMs(),Pf=he.fromSeconds(60).toMs(),Ys=[],cu;async function xT(){for(let t of Ys)await t.clean(Pf,"completed"),await t.clean(Pf,"failed")}s(xT,"cleanup");async function nx(t,e,r){let n=performance.now();try{let i=await e();return $t.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw $t.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;$t.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),$t.default.dogstatsd.increment(t,1,r)}}s(nx,"withMetrics");function vT(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}s(vT,"jobOptsTags");function ix(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,js.default)(t.data),...vT(t.opts||{})}}s(ix,"jobTags");var ht=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:Zr(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:tx,lockRenewTime:rx}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return E.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new vf.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new CT(this.jobQueue,r):n=new vf.default(this.jobQueue,r),bT(n,this.jobQueue,this.opts.removeStalledCb),Ys.push(n),!cu&&!E.isTest()&&(cu=bf(xT,Pf),xT().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await $t.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:()=>l.traceId,toSpanId:()=>l.spanId,toTraceparent:()=>""};c.addLink(d)}c.addTags({"queue.name":this.jobQueue,...ix(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),$t.default.dogstatsd.distribution("queue.process.sizeBytes",(0,js.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await $t.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,js.default)(e),...vT(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},$t.default.dogstatsd.distribution("queue.add.sizeBytes",(0,js.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return nx(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function sx(){cu&&xf(cu),console.log("Waiting for current queue jobs to finish...");for(let t of Ys)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Ys)await t.close();Ys=[],console.log("Queues shutdown")}s(sx,"shutdown");var to={};N(to,{correlation:()=>Hs,logAlert:()=>un,logAlertWithInfo:()=>qx,logWarn:()=>ii,logger:()=>Ou,system:()=>zf});var Hs={};N(Hs,{getId:()=>Nf,setHeader:()=>ox});var PT=require("correlation-id"),ox=s(t=>{let e=PT.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Nf(){return PT.getId()}s(Nf,"getId");var _u=F(require("pino")),dS=F(require("pino-pretty")),Jf=F(require("dd-trace")),fS=require("dd-trace/ext");var zf={};N(zf,{getLogReadStream:()=>Fx,getSingleFileMaxSizeInfo:()=>lS,localFileDestination:()=>Hf});var eo=F(require("fs")),Yf=F(require("path")),oS=F(require("rotating-file-stream"));var jf={};N(jf,{ObjectStore:()=>et,ObjectStoreBuckets:()=>ux,SIGNED_FILE_PREFIX:()=>Wf,bucketTTLConfig:()=>lu,budibaseTempDir:()=>an,client3rdPartyLibrary:()=>xx,clientLibraryCDNUrl:()=>vx,clientLibraryPath:()=>zT,clientLibraryUrl:()=>Px,createBucketIfNotExists:()=>Xs,deleteFile:()=>gx,deleteFiles:()=>yx,deleteFolder:()=>GT,downloadTarball:()=>Sx,downloadTarballDirect:()=>Tx,enrichPWAImages:()=>Nx,enrichPluginURLs:()=>Lx,extractBucketAndPath:()=>Uf,getAppFileUrl:()=>ZT,getClientCacheKey:()=>JT,getGlobalFileS3Key:()=>XT,getGlobalFileUrl:()=>Ux,getObjectMetadata:()=>Ax,getPluginIconKey:()=>rS,getPluginJSKey:()=>tS,getPluginS3Dir:()=>iS,getPresignedUrl:()=>Tr,getReadStream:()=>du,listAllObjects:()=>$T,objectExists:()=>Gf,processAutomationAttachment:()=>lx,processObjectStoreAttachment:()=>MT,retrieve:()=>WT,retrieveDirectory:()=>Ex,retrieveToTmp:()=>hx,sanitizeBucket:()=>be,sanitizeKey:()=>Ee,streamUpload:()=>BT,upload:()=>mx,uploadDirectory:()=>$f});var pu=require("@aws-sdk/client-s3"),Lf=require("@aws-sdk/lib-storage"),FT=require("@aws-sdk/s3-request-presigner");var yr=F(require("dd-trace")),ti=F(require("fs")),Js=F(require("fs/promises")),kf=F(require("node-fetch")),gr=require("path"),mu=F(require("stream")),Zs=require("stream/promises"),Mf=F(require("tar-fs")),Ff=require("uuid"),Bf=F(require("zlib"));var NT=F(require("fs")),UT=require("os"),zs=F(require("path")),LT=F(require("stream"));var ux={BACKUPS:E.BACKUPS_BUCKET_NAME,APPS:E.APPS_BUCKET_NAME,TEMPLATES:E.TEMPLATES_BUCKET_NAME,GLOBAL:E.GLOBAL_BUCKET_NAME,PLUGINS:E.PLUGIN_BUCKET_NAME,TEMP:E.TEMP_BUCKET_NAME},kT=(0,zs.join)((0,UT.tmpdir)(),".budibase");try{NT.default.mkdirSync(kT)}catch(t){if(t.code!=="EEXIST")throw t}function an(){return kT}s(an,"budibaseTempDir");var lu=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function cx(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=zs.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:LT.default.Readable.fromWeb(e.body)}}s(cx,"processUrlAttachment");async function MT(t){let e=Uf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await du(r,n),o=zs.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(MT,"processObjectStoreAttachment");async function lx(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await cx(t):await MT(t)}s(lx,"processAutomationAttachment");var dx=require("sanitize-s3-objectkey"),fx={bucketCreationPromises:{}},Wf="/files/signed",Er={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},px=[Er.html,Er.css,Er.js,Er.json];function Ee(t){return dx(be(t)).replace(/\\/g,"/")}s(Ee,"sanitizeKey");function be(t){return t.replace(new RegExp(Je,"g"),ze)}s(be,"sanitizeBucket");function et(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY},region:E.AWS_REGION};return!E.MINIO_ENABLED&&E.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY,sessionToken:E.AWS_SESSION_TOKEN}),E.MINIO_URL&&(t.presigning&&E.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=E.MINIO_URL),new pu.S3(e)}s(et,"ObjectStore");async function Xs(t,e){e=be(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=fx.bucketCreationPromises,o=n===404,a=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(o||a){if(o)return i[e]=t.createBucket({Bucket:e}).catch(u=>{if(u.Code!=="BucketAlreadyOwnedByYou")throw u}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}s(Xs,"createBucketIfNotExists");async function mx({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await Js.default.open(r)).createReadStream():o,l=et(),d=await Xs(l,t);if(a&&d.created){let g=lu(t,a);await l.putBucketLifecycleConfiguration(g)}let f=n,p=f||(u?Er[u.toLowerCase()]:Er.txt),h={Bucket:be(t),Key:Ee(e),Body:c,ContentType:p};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];h.Metadata=i}return new Lf.Upload({client:l,params:h}).done()}s(mx,"upload");async function BT({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await yr.default.trace("streamUpload",async a=>{if(a.addTags({bucketName:t,filename:r,type:n,ttl:o}),!e)throw new Error("Stream to upload is invalid/undefined");let u=r.split(".").pop(),c=et(),l=await Xs(c,t);if(a.addTags({bucketCreated:l.created,bucketExists:l.exists,extension:u}),o&&l.created){let S=lu(t,o);await c.putBucketLifecycleConfiguration(S)}let d=n;d||(d=u?Er[u.toLowerCase()]:Er.txt),a.addTags({contentType:d});let f=be(t),p=Ee(r),h={Bucket:f,Key:p,Body:e,ContentType:d,...i},g=await new Lf.Upload({client:c,params:h}).done(),y=await c.headObject({Bucket:f,Key:p});return a.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}s(BT,"streamUpload");async function WT(t,e){return await yr.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=et(),i={Bucket:be(t),Key:Ee(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),px.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return mu.default.Readable.fromWeb(a)}})}s(WT,"retrieve");async function*$T(t,e){let r=et(),n=s((a={})=>r.listObjectsV2({...a,Bucket:be(t),Prefix:Ee(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s($T,"listAllObjects");async function Tr(t,e,r=3600){let n=et({presigning:!0}),i={Bucket:be(t),Key:Ee(e)},o=await(0,FT.getSignedUrl)(n,new pu.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${Wf}${u}${c}`}else return o}s(Tr,"getPresignedUrl");async function hx(t,e){return await yr.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=be(t),e=Ee(e);let n=await WT(t,e),i=(0,gr.join)(an(),(0,Ff.v4)());return r.addTags({outputPath:i}),n instanceof mu.default.Readable?(r.addTags({stream:!0}),await(0,Zs.pipeline)(n,ti.default.createWriteStream(i))):(r.addTags({stream:!1}),ti.default.writeFileSync(i,n)),i})}s(hx,"retrieveToTmp");async function Ex(t,e,r){return await yr.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,gr.join)(an(),(0,Ff.v4)());await Js.default.mkdir(i,{recursive:!0});let o=0;return await Xt.parallelForeach($T(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await yr.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let{stream:d}=await du(t,l),f=l.split("/"),p=f.slice(0,f.length-1),h=(0,gr.join)(i,...p);f.length>1&&!ti.default.existsSync(h)&&await Js.default.mkdir(h,{recursive:!0}),await(0,Zs.pipeline)(d,ti.default.createWriteStream((0,gr.join)(i,...f),{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(Ex,"retrieveDirectory");async function gx(t,e){let r=et();await Xs(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(gx,"deleteFile");async function yx(t,e){let r=et();await Xs(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(yx,"deleteFiles");async function GT(t,e){t=be(t),e=Ee(e);let r=et(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return GT(t,e)}s(GT,"deleteFolder");async function $f(t,e,r){return await yr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=be(t);let i=await Js.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,gr.join)(r,o.name)),u=(0,gr.join)(e,o.name);o.isDirectory()?await $f(t,u,a):await BT({bucket:t,filename:a,stream:ti.default.createReadStream(u)})}return i})}s($f,"uploadDirectory");async function Tx(t,e,r={}){e=Ee(e);let n=await(0,kf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,Zs.pipeline)(n.body,Bf.default.createUnzip(),Mf.default.extract(e))}s(Tx,"downloadTarballDirect");async function Sx(t,e,r){e=be(e),r=Ee(r);let n=await(0,kf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,gr.join)(an(),r);return await(0,Zs.pipeline)(n.body,Bf.default.createUnzip(),Mf.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await $f(e,i,r),i}s(Sx,"downloadTarball");async function du(t,e){return await yr.default.trace("getReadStream",async r=>{t=be(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=et(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof mu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(du,"getReadStream");async function Ax(t,e){t=be(t),e=Ee(e);let r=et(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(Ax,"getObjectMetadata");async function Gf(t,e){t=be(t),e=Ee(e);let r=et(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode)===404)return!1;throw i}}s(Gf,"objectExists");function Uf(t){let e=t.split("?")[0],r=new RegExp(`^${Wf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(Uf,"extractBucketAndPath");var HT=F(require("querystring"));var Su={};N(Su,{FlagSet:()=>Eu,all:()=>Ix,flags:()=>Vf,getEnvFlags:()=>QT,init:()=>_x,isEnabled:()=>Tu,parseEnvFlags:()=>yu,shutdown:()=>Ox,testutils:()=>qf});var gu=F(require("crypto"));var VT=require("posthog-node"),qT=F(require("dd-trace"));var KT=require("lodash");var hu;function _x(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),hu=new VT.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:he.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}s(_x,"init");function Ox(){hu?.shutdown()}s(Ox,"shutdown");function yu(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(yu,"parseEnvFlags");function QT(){return yu(E.TENANT_FEATURE_FLAGS||"")}s(QT,"getEnvFlags");var Eu=class{constructor(e){this.flagSchema=e;this.setId=gu.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,KT.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await qT.default.trace("features.fetch",async e=>{let r=rf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=V(),a=new Set;if(za())return i;for(let{tenantId:f,key:p,value:h}of QT())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,h===!1&&a.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=h,n[`flags.${p}.source`]="environment"}let u=Lt(),c=u?._id;if(!c){let f=ef();f&&(c=gu.createHash("sha512").update(f).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,hu&&c){n.readFromPostHog=!0;let f=await ri(),p={tenantId:l},h={tenant:{id:l}};f.config.createdVersion&&(h.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(h.tenant.createdAt=`${f.createdAt}`);let m=await hu.getAllFlags(c,{personProperties:p,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:h});for(let[g,y]of Object.entries(m))if(this.isFlagName(g)){if(typeof y!="boolean"){console.warn(`Invalid value for posthog flag "${g}": ${y}`);continue}if(!(i[g]===!0||a.has(g)))try{i[g]=y,n[`flags.${g}.source`]="posthog"}catch(S){console.warn(`Error parsing posthog flag "${g}": ${y}`,S)}}}let d=sf();for(let[f,p]of Object.entries(d))this.isFlagName(f)&&typeof p=="boolean"&&(i[f]=p,n[`flags.${f}.source`]="override");nf(this.setId,i);for(let[f,p]of Object.entries(i))n[`flags.${f}.value`]=p;return e?.addTags(n),i})}},Vf=new Eu(Pm);async function Tu(t){return await Vf.isEnabled(t)}s(Tu,"isEnabled");async function Ix(){return await Vf.fetch()}s(Ix,"all");var qf={};N(qf,{setFeatureFlags:()=>jT,withFeatureFlags:()=>Rx});function wx(){let t={};for(let{tenantId:e,key:r,value:n}of yu(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(wx,"getCurrentFlags");function Dx(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,o]of Object.entries(n))o===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}s(Dx,"buildFlagString");function jT(t,e){let r=wx();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=Dx(r);return ys({TENANT_FEATURE_FLAGS:n})}s(jT,"setFeatureFlags");function Rx(t,e,r){let n=jT(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(Rx,"withFeatureFlags");var YT=F(require("aws-cloudfront-sign"));var Au;function Cx(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Au||(Au=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Au)}s(Cx,"getPrivateKey");var bx=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Cx(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),ni=s(t=>{let e=Kf(t);return YT.getSignedUrl(e,bx())},"getPresignedUrl"),Kf=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");async function zT(t){let e=`${Ee(t)}/budibase-client.js`,r=`${Ee(t)}/budibase-client.new.js`;return await Tu("USE_DYNAMIC_LOADING")&&await Gf(E.APPS_BUCKET_NAME,r)?r:e}s(zT,"clientLibraryPath");function xx(t,e){return`${Ee(t)}/_dependencies/${e}`}s(xx,"client3rdPartyLibrary");async function vx(t,e){let r=await zT(t);return E.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Kf(r)):await Tr(E.APPS_BUCKET_NAME,r)}s(vx,"clientLibraryCDNUrl");async function Px(t,e){return`/api/assets/client?${await JT(t,e)}`}s(Px,"clientLibraryUrl");async function JT(t,e){let r,n;try{r=V()}finally{n={appId:t,version:e}}return r&&r!==ae&&(n.tenantId=r),n.dynamic=await Tu("USE_DYNAMIC_LOADING"),HT.default.encode(n)}s(JT,"getClientCacheKey");async function ZT(t){return E.CLOUDFRONT_CDN?ni(t):await Tr(E.APPS_BUCKET_NAME,t)}s(ZT,"getAppFileUrl");async function Nx(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await ZT(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(Nx,"enrichPWAImages");var Ux=s(async(t,e,r)=>{let n=XT(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ni(n)):await Tr(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),XT=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${V()}/${r}`),r},"getGlobalFileS3Key");async function Lx(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await kx(e),n=await Mx(e);return{...e,jsUrl:r,iconUrl:n}}))}s(Lx,"enrichPluginURLs");async function kx(t){let e=tS(t);return eS(e)}s(kx,"getPluginJSUrl");async function Mx(t){let e=rS(t);if(e)return eS(e)}s(Mx,"getPluginIconUrl");async function eS(t){return E.CLOUDFRONT_CDN?ni(t):await Tr(E.PLUGIN_BUCKET_NAME,t)}s(eS,"getPluginUrl");function tS(t){return nS(t,"plugin.min.js")}s(tS,"getPluginJSKey");function rS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return nS(t,e)}s(rS,"getPluginIconKey");function nS(t,e){return`${iS(t.name)}/${e}`}s(nS,"getPluginS3Key");function iS(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${V()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(iS,"getPluginS3Dir");var aS="budibase.log",uS="budibase-logs-history.txt",cS=Yf.default.join(an(),"systemlogs");function sS(t){return Yf.default.join(cS,t)}s(sS,"getFullPath");function lS(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}s(lS,"getSingleFileMaxSizeInfo");function Hf(){let t=lS(E.ROLLING_LOG_MAX_SIZE);return oS.createStream(aS,{size:t?.size,path:cS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:uS,initialRotation:!1})}s(Hf,"localFileDestination");function Fx(){let t=[],e=sS(uS);if(eo.default.existsSync(e)){let i=eo.default.readFileSync(e,"utf-8").split(`
37
- `);for(let o of i.filter(a=>a))t.push(eo.default.readFileSync(o))}return t.push(eo.default.readFileSync(sS(aS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(Fx,"getLogReadStream");function Bx(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(Bx,"isPlainObject");function Wx(t){return t instanceof Error}s(Wx,"isError");function $x(t){return typeof t=="string"}s($x,"isMessage");var Sr;if(!E.DISABLE_PINO_LOGGER){let t=E.LOG_LEVEL,e={level:t,formatters:{level:c=>({level:c.toUpperCase()}),bindings:()=>E.SELF_HOSTED?{service:E.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(E.isDev()?{stream:(0,dS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:Hf(),level:t}),Sr=r.length?(0,_u.default)(e,_u.default.multistream(r)):(0,_u.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(y=>{$x(y)&&(f=`${f} ${y}`.trimStart()),Bx(y)&&d.push(y),Wx(y)&&(l=y)});let p=u(),h={};h={tenantId:i(),appId:o(),automationId:a(),identityId:p?._id,identityType:p?.type,correlationId:Nf()};let m=Jf.default.scope().active();m&&Jf.default.inject(m.context(),fS.formats.LOG,h);let g={err:l,pid:process.pid,...h};if(d.length){let y={},S=0;for(let O=0;O<d.length;O++){let _=d[O],D=_._logKey;D?(delete _._logKey,g[D]=_):(y[S]=_,S++)}Object.keys(y).length&&(g.data=y)}return[g,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Sr?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Sr?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Sr?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Sr?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Sr?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Sr?.debug(l,d)};let i=s(()=>{let c;try{c=V()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=Ue()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Xd()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=Lt()}catch{}return c},"getIdentity")}var Ou=Sr;var Gx=["AccountError"];function Vx(t){return t&&t.suppressAlert}s(Vx,"isSuppressed");function un(t,e){e&&Gx.includes(e.name)&&Vx(e)||console.error(`bb-alert: ${t}`,e)}s(un,"logAlert");function qx(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,un(t,n)}s(qx,"logAlertWithInfo");function ii(t,e){console.warn(`bb-warn: ${t}`,e)}s(ii,"logWarn");var Iu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Zf=class{static{s(this,"QueuedProcessor")}constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:o=!0,maxStalledCount:a=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new ht(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof Iu&&await u.discard(),un(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Ne.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var Kx=100,wu,ro=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new ht("docWritethroughQueue",{jobOptions:{attempts:Kx}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){if(r.startsWith("scimlog"))return;let i=De(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},ep=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await ro.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function pS(){return wu=new ro().init(),wu}s(pS,"init");function Qx(){return wu||pS()}s(Qx,"getProcessor");var io={};N(io,{CacheKey:()=>ye,TTL:()=>dn,bustCache:()=>si,destroy:()=>no,get:()=>fn,keys:()=>Du,store:()=>Vt,withCache:()=>Ar,withCacheWithDynamicTTL:()=>mS});function It(t){let e=V();return`${t}:${e}`}s(It,"generateTenantKey");var cn=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await cf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>It(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?It(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[It(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>It(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(It(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?It(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ln=new cn,ye={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:t=>`oauth2Token_${t}`},dn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(dn||{}),Du=s((...t)=>ln.keys(...t),"keys"),fn=s((...t)=>ln.get(...t),"get"),Vt=s((...t)=>ln.store(...t),"store"),no=s((...t)=>ln.delete(...t),"destroy"),Ar=s((...t)=>ln.withCache(...t),"withCache"),mS=s((...t)=>ln.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),si=s((...t)=>ln.bustCache(...t),"bustCache");var np={};N(np,{createCode:()=>Yx,deleteCode:()=>zx,getCode:()=>Hx,getExistingInvites:()=>rp,getInviteCodes:()=>ES,updateCode:()=>jx});var hS=he.fromDays(7).toSeconds();async function jx(t,e){await(await nn()).store(t,e,hS)}s(jx,"updateCode");async function Yx(t,e){let r=ne();return await(await nn()).store(r,{email:t,info:e},hS),r}s(Yx,"createCode");async function Hx(t){let r=await(await nn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}s(Hx,"getCode");async function zx(t){await(await nn()).delete(t)}s(zx,"deleteCode");async function ES(){let r=(await(await nn()).scan()).map(i=>({...i.value,code:i.key}));if(!E.MULTI_TENANCY)return r;let n=V();return r.filter(i=>n===i.info.tenantId)}s(ES,"getInviteCodes");async function rp(t){return(await ES()).filter(e=>t.includes(e.email))}s(rp,"getExistingInvites");var ip={};N(ip,{createCode:()=>Zx,getCode:()=>Xx,invalidateCode:()=>ev});var Jx=he.fromHours(1).toSeconds();async function Zx(t,e){let r=ne();return await(await Ls()).store(r,{userId:t,info:e},Jx),r}s(Zx,"createCode");async function Xx(t){let r=await(await Ls()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(Xx,"getCode");async function ev(t){await(await Ls()).delete(t)}s(ev,"invalidateCode");var Dr={};N(Dr,{getUser:()=>Io,getUsers:()=>bU,invalidateUser:()=>wo});var so={};N(so,{getPlatformDB:()=>_r,users:()=>Et});var Et={};N(Et,{addSsoUser:()=>yS,addUser:()=>ov,getUserDoc:()=>gS,lookupTenantId:()=>tv,removeUser:()=>av,updateUserDoc:()=>rv});function _r(){return De(fe.PLATFORM_INFO.name)}s(_r,"getPlatformDB");async function tv(t){return E.MULTI_TENANCY?(await gS(t)).tenantId:ae}s(tv,"lookupTenantId");async function gS(t){return _r().get(t)}s(gS,"getUserDoc");async function rv(t){await _r().put(t)}s(rv,"updateUserDoc");function nv(t,e){return{_id:t,tenantId:e}}s(nv,"newUserIdDoc");function iv(t,e,r){return{_id:e,userId:t,tenantId:r}}s(iv,"newUserEmailDoc");function sv(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(sv,"newUserSsoIdDoc");async function sp(t,e){let r=_r(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s(sp,"addUserDoc");async function yS(t,e,r,n){return sp(t,()=>sv(t,e,r,n))}s(yS,"addSsoUser");async function ov(t,e,r,n){let i=[sp(e,()=>nv(e,t)),sp(r,()=>iv(e,r,t))];n&&i.push(yS(n,r,e,t)),await Promise.all(i)}s(ov,"addUser");async function av(t){let e=_r(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}s(av,"removeUser");var pn={};N(pn,{getAccount:()=>Or,getAccountByTenantId:()=>oi,getStatus:()=>uv});var TS=F(require("node-fetch"));var oo=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Hs.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,TS.default)(`${this.host}${r}`,o)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var op=new oo(E.INTERNAL_ACCOUNT_PORTAL_URL),ap=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,Or=s(async t=>{if(ap)return;let e={email:t},r=await op.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),oi=s(async t=>{if(ap)return;let e={tenantId:t},r=await op.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),uv=s(async()=>{if(ap)return;let t=await op.get("/api/status",{headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var li={};N(li,{UserDB:()=>wt,addAppBuilder:()=>wU,bulkGetGlobalUsersById:()=>Hu,bulkUpdateGlobalUsers:()=>Ao,cleanseUserObject:()=>bp,creatorsInList:()=>hn,doesUserExist:()=>SU,getAccountHolderFromUsers:()=>ju,getAllUserIds:()=>yU,getAllUsers:()=>TU,getById:()=>gn,getCreatorCount:()=>OU,getExistingAccounts:()=>ci,getExistingPlatformUsers:()=>rA,getExistingTenantUsers:()=>tA,getFirstPlatformUser:()=>yo,getGlobalUserByAppPage:()=>dA,getGlobalUserByEmail:()=>yt,getPlatformUsers:()=>Lu,getUserCount:()=>_U,hasAdminPermissions:()=>Ir,hasAppBuilderPermissions:()=>sA,hasBuilderPermissions:()=>tt,isAdmin:()=>wr,isAdminOrBuilder:()=>iA,isBuilder:()=>mi,isCreatorAsync:()=>To,isCreatorSync:()=>Ku,isGlobalBuilder:()=>nA,paginatedUsers:()=>pA,removeAppBuilder:()=>DU,removePortalUserPermissions:()=>IU,searchExistingEmails:()=>yp,searchGlobalUsersByApp:()=>zu,searchGlobalUsersByAppAccess:()=>Cp,searchGlobalUsersByEmail:()=>fA,validateUniqueUser:()=>Qu});var ui={};N(ui,{account:()=>vS,action:()=>PS,ai:()=>MS,analytics:()=>Cu,app:()=>NS,auditLog:()=>ZS,auth:()=>Uu,automation:()=>US,backfill:()=>jS,backfillCache:()=>Pu,backup:()=>zS,datasource:()=>LS,email:()=>kS,environmentVariable:()=>JS,group:()=>YS,identification:()=>gt,initAsyncEvents:()=>rU,installation:()=>fo,layout:()=>BS,license:()=>FS,org:()=>WS,plugin:()=>HS,processors:()=>cp,publishEvent:()=>A,query:()=>$S,role:()=>go,rowAction:()=>XS,rows:()=>VS,screen:()=>GS,serve:()=>KS,shutdown:()=>nU,table:()=>qS,user:()=>Le,view:()=>QS,workspace:()=>eA});var cp={};N(cp,{analyticsProcessor:()=>DS,init:()=>yv,processors:()=>qt});var Cu={};N(Cu,{enabled:()=>Ru});var Ru=s(async()=>bu(),"enabled");var IS=require("posthog-node");var cv=s(t=>t==="served:builder"||t==="served:app:preview"||t==="served:app","isRateLimited"),lv=s(t=>t==="served:app:preview"||t==="served:app","isPerApp");var AS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},_S=s(async t=>{if(!cv(t))return!1;let e=await dv(t);if(e){let r=new Date(e.timestamp);switch(AS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await SS(t,{timestamp:Date.now()}),!1):!0}}else return await SS(t,{timestamp:Date.now()}),!1},"limited"),OS=s(t=>{let e=`${ye.EVENTS_RATE_LIMIT}:${t}`;return lv(t)&&(e=e+":"+Ue()),e},"eventKey"),dv=s(async t=>{let e=OS(t);return await fn(e)},"readEvent"),SS=s(async(t,e)=>{let r=OS(t),n=AS[t],i;switch(n){case"calendarDay":i=86400}await Vt(r,e,i)},"recordEvent");var pv=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ao=class{static{s(this,"PosthogProcessor")}constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new IS.PostHog(e)}async processEvent(e,r,n,i){if(pv.includes(e)||await _S(e))return;n=this.clearPIIProperties(n),n.version=E.VERSION,n.service=E.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let o=Ue();o&&(n.appId=o);let a={distinctId:r.id,event:e,properties:n};i&&(a.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(a.groups={},r.installationId&&(a.groups.installation=r.installationId,a.properties.installationId=r.installationId),r.tenantId&&(a.groups.tenant=r.tenantId,a.properties.tenantId=r.tenantId)),this.posthog.capture(a)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var wS=ao;var mv=["installation:version:upgraded","installation:version:downgraded"],hv=["installation","tenant"],uo=class{static{s(this,"AnalyticsProcessor")}constructor(){E.POSTHOG_TOKEN&&!E.isTest()&&(this.posthog=new wS(E.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!mv.includes(e)&&!await Ru()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!hv.includes(e.type)&&!await Ru()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var up=E.SELF_HOSTED&&!E.isDev(),co=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){up||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){up||console.log("[audit] identified",e)}async identifyGroup(e){up||console.log("[audit] group identified",e)}async shutdown(){}};var ai=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new ht("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Re(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};E.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Df(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:V()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var lo=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var DS=new uo,Ev=new co,gv=new ai;function yv(t){return ai.init(t)}s(yv,"init");var qt=new lo([DS,Ev,gv]);var xu={};N(xu,{checkInstallVersion:()=>Av,getInstall:()=>po,getInstallFromDB:()=>dp});var lp=F(require("semver"));var po=s(async()=>Ar(ye.INSTALLATION,86400,dp,{useTenancy:!1}),"getInstall");async function Tv(t){let e={_id:fe.PLATFORM_INFO.docs.install,installId:ne(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return dp();throw r}}s(Tv,"createInstallDoc");var dp=s(async()=>qe(fe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(fe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await Tv(t);else throw r}return e}),"getInstallFromDB"),Sv=s(async t=>{try{await qe(fe.PLATFORM_INFO.name,async e=>{let r=await po();r.version=t,await e.put(r),await si(ye.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),Av=s(async()=>{let t=await po(),e=t.version,r=E.VERSION;try{if(e!==r){let n=lp.default.gt(r,e),i=lp.default.lt(r,e);await Sv(r)&&(await Ss({_id:t.installId,type:"installation"},async()=>{n?await fo.upgraded(e,r):i&&await fo.downgraded(e,r)}),await gt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?un(`Invalid version "${r}" - is it semver?`):un("Failed to retrieve version",n)}},"checkInstallVersion");var _v=s(async()=>{let t=Ld(),e=Eo(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await mn(),i=mo();return{id:RS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await mn(),i=await vu(V()),o=mo();return{id:RS(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:V(),environment:e}}else if(r==="user"){let n=t,i=await vu(V()),o=await mn(),a=n.account,u;return a?u=a.hosting:u=mo(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:V(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),Ov=s(async(t,e)=>{let r=t,n="installation",i=mo(),o=E.VERSION,a=Eo(),u={id:r,type:n,hosting:i,version:o,environment:a};await fp(u,e),await ho({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),Iv=s(async(t,e,r,n=E.VERSION)=>{let i=await vu(t),o="tenant",a=await mn(),u=Eo(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await fp(c,r),await ho({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),wv=s(async(t,e,r)=>{let n=t._id,i=await vu(t.tenantId),o="user",a=tt(t),u=Ir(t),c;$o(t)&&(c=t.providerType);let d=(await ci([t.email])).length>0,f=!!e&&d&&e.verified,p=await mn(),h=e?e.hosting:mo(),m=Eo();await ho({id:n,type:o,hosting:h,installationId:p,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:m},r)},"identifyUser"),Dv=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Wo(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await mn(),l=Eo();if(Bo(t)){let f=await yt(t.email);f?._id&&(e=f._id)}await ho({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),ho=s(async(t,e)=>{await qt.identify(t,e)},"identify"),fp=s(async(t,e)=>{await qt.identifyGroup(t,e)},"identifyGroup"),Eo=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),mo=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),mn=s(async()=>Rv()?"account-portal":(await po()).installId,"getInstallationId"),vu=s(async t=>E.SELF_HOSTED?CS(t):t,"getEventTenantId"),CS=s(async t=>Re(t,()=>Ar(ye.UNIQUE_TENANT_ID,86400,async()=>{let e=H(),r=await ri(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ne()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),Rv=s(()=>E.SERVICE==="account-portal","isAccountPortal"),RS=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),gt={getCurrentIdentity:_v,identifyInstallationGroup:Ov,identifyTenantGroup:Iv,identifyUser:wv,identifyAccount:Dv,identify:ho,identifyGroup:fp,getInstallationId:mn,getUniqueTenantId:CS};var Pu={};N(Pu,{end:()=>bv,isAlreadySent:()=>hp,isBackfillingEvent:()=>mp,recordEvent:()=>pp,start:()=>Cv});var Cv=s(async t=>vv({eventWhitelist:t}),"start"),pp=s(async(t,e)=>{let r=Ep(t,e);await Vt(r,e,void 0,{useTenancy:!1})},"recordEvent"),bv=s(async()=>{await Pv(),await Nv()},"end"),xv=s(async()=>fn(ye.BACKFILL_METADATA),"getBackfillMetadata"),vv=s(async t=>Vt(ye.BACKFILL_METADATA,t),"saveBackfillMetadata"),Pv=s(async()=>{await no(ye.BACKFILL_METADATA)},"deleteBackfillMetadata"),Nv=s(async()=>{let t=Ep(),e=await Du(t);for(let r of e)await no(r,{useTenancy:!1})},"clearEvents"),mp=s(async t=>{let r=(await xv())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),hp=s(async(t,e)=>{let r=Ep(t,e);return!!await fn(r,{useTenancy:!1})},"isAlreadySent"),Uv={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Ep=s((t,e)=>{let r,n=V();if(t){r=`${ye.EVENTS}:${n}:${t}`;let i=Uv[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${ye.EVENTS}:${n}:*`;return r},"getEventKey");var Kt;function Nu(){Kt=new ht("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}s(Nu,"init");async function bS(){Kt&&await Kt.close()}s(bS,"shutdown");async function xS(t){Kt||Nu();let{event:e,identity:r}=t;Rm.indexOf(e)!==-1&&r.tenantId&&await Kt.add(t)}s(xS,"publishAsyncEvent");var A=s(async(t,e,r,n)=>{let i=n||await gt.getCurrentIdentity();if(!(n?!1:await mp(t))){await xS({event:t,identity:i,properties:e,timestamp:r}),await qt.processEvent(t,i,e,r);return}await hp(t,e)||(await qt.processEvent(t,i,e,r),await pp(t,e))},"publishEvent");async function Lv(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}s(Lv,"created");async function kv(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}s(kv,"deleted");async function Mv(t){let e={tenantId:t.tenantId};await A("account:verified",e)}s(Mv,"verified");var vS={created:Lv,deleted:kv,verified:Mv};async function Fv(t,e){await A("action:automation_step:executed",t,e)}s(Fv,"automationStepExecuted");async function Bv(t,e){await A("action:crud:executed",t,e)}s(Bv,"crudExecuted");async function Wv(t,e){await A("action:ai_agent:executed",t,e)}s(Wv,"aiAgentExecuted");var PS={aiAgentExecuted:Wv,automationStepExecuted:Fv,crudExecuted:Bv};var $v=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)},"created");async function Gv(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}s(Gv,"updated");async function Vv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}s(Vv,"deleted");async function qv(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}s(qv,"published");async function Kv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}s(Kv,"unpublished");async function Qv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}s(Qv,"fileImported");async function jv(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}s(jv,"duplicated");async function Yv(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}s(Yv,"templateImported");async function Hv(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}s(Hv,"versionUpdated");async function zv(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}s(zv,"versionReverted");async function Jv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}s(Jv,"reverted");async function Zv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}s(Zv,"exported");var NS={created:$v,updated:Gv,deleted:Vv,published:qv,unpublished:Kv,fileImported:Qv,duplicated:jv,templateImported:Yv,versionUpdated:Hv,versionReverted:zv,reverted:Jv,exported:Zv};async function Xv(t,e){let n={userId:(await gt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}s(Xv,"login");async function eP(t){let r={userId:(await gt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}s(eP,"logout");async function tP(t,e){let r={type:t};await A("auth:sso:created",r,e)}s(tP,"SSOCreated");async function rP(t){let e={type:t};await A("auth:sso:updated",e)}s(rP,"SSOUpdated");async function nP(t,e){let r={type:t};await A("auth:sso:activated",r,e)}s(nP,"SSOActivated");async function iP(t){let e={type:t};await A("auth:sso:deactivated",e)}s(iP,"SSODeactivated");var Uu={login:Xv,logout:eP,SSOCreated:tP,SSOUpdated:rP,SSOActivated:nP,SSODeactivated:iP};async function sP(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}s(sP,"created");async function oP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}s(oP,"triggerUpdated");async function aP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}s(aP,"deleted");async function uP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}s(uP,"tested");var cP=s(async(t,e)=>{let r={count:t};await A("automations:run",r,e)},"run");async function lP(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}s(lP,"stepCreated");async function dP(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}s(dP,"stepDeleted");var US={created:sP,triggerUpdated:oP,deleted:aP,tested:uP,run:cP,stepCreated:lP,stepDeleted:dP};function gp(t){return!Object.values(Lo).includes(t.source)}s(gp,"isCustom");async function fP(t,e){let r={datasourceId:t._id,source:t.source,custom:gp(t)};await A("datasource:created",r,e)}s(fP,"created");async function pP(t){let e={datasourceId:t._id,source:t.source,custom:gp(t)};await A("datasource:updated",e)}s(pP,"updated");async function mP(t){let e={datasourceId:t._id,source:t.source,custom:gp(t)};await A("datasource:deleted",e)}s(mP,"deleted");var LS={created:fP,updated:pP,deleted:mP};async function hP(t){let e={};await A("email:smtp:created",e,t)}s(hP,"SMTPCreated");async function EP(){let t={};await A("email:smtp:updated",t)}s(EP,"SMTPUpdated");var kS={SMTPCreated:hP,SMTPUpdated:EP};async function gP(t){let e={};await A("ai:config:created",e,t)}s(gP,"AIConfigCreated");async function yP(){let t={};await A("ai:config:updated",t)}s(yP,"AIConfigUpdated");var MS={AIConfigCreated:gP,AIConfigUpdated:yP};async function TP(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}s(TP,"planChanged");async function SP(t){let e={accountId:t.accountId};await A("license:activated",e)}s(SP,"activated");async function AP(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}s(AP,"checkoutOpened");async function _P(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}s(_P,"checkoutSuccess");async function OP(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}s(OP,"portalOpened");async function IP(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}s(IP,"paymentFailed");async function wP(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}s(wP,"paymentRecovered");var FS={planChanged:TP,activated:SP,checkoutOpened:AP,checkoutSuccess:_P,portalOpened:OP,paymentFailed:IP,paymentRecovered:wP};async function DP(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}s(DP,"created");async function RP(t){let e={layoutId:t};await A("layout:deleted",e)}s(RP,"deleted");var BS={created:DP,deleted:RP};async function CP(t){let e={};await A("org:info:name:updated",e,t)}s(CP,"nameUpdated");async function bP(t){let e={};await A("org:info:logo:updated",e,t)}s(bP,"logoUpdated");async function xP(t){let e={};await A("org:platformurl:updated",e,t)}s(xP,"platformURLUpdated");async function vP(){let t={};await A("analytics:opt:out",t)}s(vP,"analyticsOptOut");async function PP(){let t={};await A("analytics:opt:out",t)}s(PP,"analyticsOptIn");var WS={nameUpdated:CP,logoUpdated:bP,platformURLUpdated:xP,analyticsOptOut:vP,analyticsOptIn:PP};var NP=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},"created"),UP=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},"updated"),LP=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},"deleted"),kP=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},"imported"),MP=s(async(t,e)=>{let r={count:t};await A("queries:run",r,e)},"run"),FP=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},"previewed"),$S={created:NP,updated:UP,deleted:LP,imported:kP,run:MP,previewed:FP};async function BP(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}s(BP,"created");async function WP(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}s(WP,"updated");async function $P(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}s($P,"deleted");async function GP(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}s(GP,"assigned");async function VP(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}s(VP,"unassigned");var go={created:BP,updated:WP,deleted:$P,assigned:GP,unassigned:VP};async function qP(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}s(qP,"created");async function KP(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}s(KP,"deleted");var GS={created:qP,deleted:KP};var QP=s(async(t,e)=>{let r={count:t};await A("rows:created",r,e)},"created"),jP=s(async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},"imported"),VS={created:QP,imported:jP};async function YP(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}s(YP,"created");async function HP(t,e){let r,n;for(let o in e.schema)if(!t.schema[o]){let a=e.schema[o];"default"in a&&a.default!=null&&(r=!0),a.type==="ai"&&(n=a.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}s(HP,"updated");async function zP(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}s(zP,"deleted");async function JP(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}s(JP,"exported");async function ZP(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}s(ZP,"imported");var qS={created:YP,updated:HP,deleted:zP,exported:JP,imported:ZP};async function XP(t){let e={timezone:t};await A("served:builder",e)}s(XP,"servedBuilder");async function eN(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}s(eN,"servedApp");async function tN(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}s(tN,"servedAppPreview");var KS={servedBuilder:XP,servedApp:eN,servedAppPreview:tN};async function rN(t,e){let r={userId:t._id,viaScim:pt(),audited:{email:t.email}};await A("user:created",r,e)}s(rN,"created");async function nN(t){let e={userId:t._id,viaScim:pt(),audited:{email:t.email}};await A("user:updated",e)}s(nN,"updated");async function iN(t){let e={userId:t._id,viaScim:pt(),audited:{email:t.email}};await A("user:deleted",e)}s(iN,"deleted");async function sN(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}s(sN,"permissionAdminAssigned");async function oN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}s(oN,"permissionAdminRemoved");async function aN(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}s(aN,"permissionBuilderAssigned");async function uN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}s(uN,"permissionBuilderRemoved");async function cN(t){let e={audited:{email:t}};await A("user:invited",e)}s(cN,"invited");async function lN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}s(lN,"inviteAccepted");async function dN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}s(dN,"passwordForceReset");async function fN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}s(fN,"passwordUpdated");async function pN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}s(pN,"passwordResetRequested");async function mN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}s(mN,"passwordReset");async function hN(t){let e={users:t};await A("user:data:collaboration",e)}s(hN,"dataCollaboration");var Le={created:rN,updated:nN,deleted:iN,permissionAdminAssigned:sN,permissionAdminRemoved:oN,permissionBuilderAssigned:aN,permissionBuilderRemoved:uN,invited:cN,inviteAccepted:lN,passwordForceReset:dN,passwordUpdated:fN,passwordResetRequested:pN,passwordReset:mN,dataCollaboration:hN};async function EN(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}s(EN,"created");async function gN(t){let e={tableId:t.tableId};await A("view:updated",e)}s(gN,"updated");async function yN(t,e){let r={...Ne.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}s(yN,"deleted");async function TN(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}s(TN,"exported");async function SN({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}s(SN,"filterCreated");async function AN({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}s(AN,"filterUpdated");async function _N(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}s(_N,"filterDeleted");async function ON({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}s(ON,"calculationCreated");async function IN(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}s(IN,"calculationUpdated");async function wN(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}s(wN,"calculationDeleted");async function DN(t,e){let r={tableId:t};await A("view:join:created",r,e)}s(DN,"viewJoinCreated");var QS={created:EN,updated:gN,deleted:yN,exported:TN,filterCreated:SN,filterUpdated:AN,filterDeleted:_N,calculationCreated:ON,calculationUpdated:IN,calculationDeleted:wN,viewJoinCreated:DN};async function RN(t){let e={currentVersion:t};await A("installation:version:checked",e)}s(RN,"versionChecked");async function CN(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}s(CN,"upgraded");async function bN(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}s(bN,"downgraded");async function xN(){let t={};await A("installation:firstStartup",t)}s(xN,"firstStartup");var fo={versionChecked:RN,upgraded:CN,downgraded:bN,firstStartup:xN};var di=!E.SELF_HOSTED&&!E.isDev();async function vN(t){di||await A("app:backfill:succeeded",t)}s(vN,"appSucceeded");async function PN(t){if(di)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}s(PN,"appFailed");async function NN(t){di||await A("tenant:backfill:succeeded",t)}s(NN,"tenantSucceeded");async function UN(t){if(di)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}s(UN,"tenantFailed");async function LN(){if(di)return;let t={};await A("installation:backfill:succeeded",t)}s(LN,"installationSucceeded");async function kN(t){if(di)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}s(kN,"installationFailed");var jS={appSucceeded:vN,appFailed:PN,tenantSucceeded:NN,tenantFailed:UN,installationSucceeded:LN,installationFailed:kN};async function MN(t,e){let r={groupId:t._id,viaScim:pt(),audited:{name:t.name}};await A("user_group:created",r,e)}s(MN,"created");async function FN(t){let e={groupId:t._id,viaScim:pt(),audited:{name:t.name}};await A("user_group:updated",e)}s(FN,"updated");async function BN(t){let e={groupId:t._id,viaScim:pt(),audited:{name:t.name}};await A("user_group:deleted",e)}s(BN,"deleted");async function WN(t,e){let r={count:t,groupId:e._id,viaScim:pt(),audited:{name:e.name}};await A("user_group:user_added",r)}s(WN,"usersAdded");async function $N(t,e){let r={count:t,groupId:e._id,viaScim:pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}s($N,"usersDeleted");async function GN(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}s(GN,"createdOnboarding");async function VN(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}s(VN,"permissionsEdited");var YS={created:MN,updated:FN,deleted:BN,usersAdded:WN,usersDeleted:$N,createdOnboarding:GN,permissionsEdited:VN};async function qN(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}s(qN,"init");async function KN(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}s(KN,"imported");async function QN(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}s(QN,"deleted");var HS={init:qN,imported:KN,deleted:QN};async function jN(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}s(jN,"appBackupRestored");async function YN(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",o)}s(YN,"appBackupTriggered");var zS={appBackupRestored:jN,appBackupTriggered:YN};async function HN(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}s(HN,"created");async function zN(t){let e={name:t};await A("environment_variable:deleted",e)}s(zN,"deleted");async function JN(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}s(JN,"upgradePanelOpened");var JS={created:HN,deleted:zN,upgradePanelOpened:JN};async function ZN(t){let e={filters:t};await A("audit_log:filtered",e)}s(ZN,"filtered");async function XN(t){let e={filters:t};await A("audit_log:downloaded",e)}s(XN,"downloaded");var ZS={filtered:ZN,downloaded:XN};async function eU(t,e){await A("row_action:created",t,e)}s(eU,"created");var XS={created:eU};async function tU(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}s(tU,"deleted");var eA={deleted:tU};function rU(){}s(rU,"initAsyncEvents");var nU=s(async()=>{await qt.shutdown(),console.log("Events shutdown")},"shutdown");var Tp={};N(Tp,{creatorsInList:()=>hn,getAccountHolderFromUsers:()=>ju,hasAdminPermissions:()=>Ir,hasAppBuilderPermissions:()=>sA,hasBuilderPermissions:()=>tt,isAdmin:()=>wr,isAdminOrBuilder:()=>iA,isBuilder:()=>mi,isCreatorAsync:()=>To,isCreatorSync:()=>Ku,isGlobalBuilder:()=>nA,validateUniqueUser:()=>Qu});async function yp(t){let e=[],r=await tA(t);e.push(...r.map(a=>a.email));let n=await rA(t);e.push(...n.map(a=>a._id));let i=await ci(t);e.push(...i.map(a=>a.email));let o=await rp(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(yp,"searchExistingEmails");async function Lu(t){return await Ws("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(Lu,"getPlatformUsers");async function yo(t){return(await Lu(t))[0]??null}s(yo,"getFirstPlatformUser");async function tA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await Ft("by_email2",r,void 0,n)}s(tA,"getExistingTenantUsers");async function rA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Ws("platform_users_lowercase_2",r)}s(rA,"getExistingPlatformUsers");async function ci(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Ws("account_by_email",r)}s(ci,"getExistingAccounts");var qu={};N(qu,{BadRequestError:()=>Fu,BudibaseError:()=>fi,EmailUnavailableError:()=>Qt,FeatureDisabledError:()=>Gu,ForbiddenError:()=>Bu,HTTPError:()=>we,InvalidAPIKeyError:()=>pi,NotFoundError:()=>Mu,NotImplementedError:()=>Wu,UnexpectedError:()=>ku,UsageLimitError:()=>$u,getPublicError:()=>Vu});var fi=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"BudibaseError")}},Vu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),we=class t extends fi{constructor(r,n,i="http"){super(r,i);this.status=n}static{s(this,"HTTPError")}static async fromResponse(r){let n=await r.text(),i=n,o=r.status,a="http";try{let u=JSON.parse(n);i=u.message,o=u.status,a=u.error?.code}catch{}return new t(i,o,a)}},ku=class extends we{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},Mu=class extends we{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},Fu=class extends we{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Bu=class extends we{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},Wu=class extends we{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},$u=class extends we{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}static{s(this,"UsageLimitError")}getPublicError(){return{limitName:this.limitName}}},Gu=class extends we{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}static{s(this,"FeatureDisabledError")}getPublicError(){return{featureName:this.featureName}}},pi=class extends fi{static{s(this,"InvalidAPIKeyError")}constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},Qt=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var mi=Ve.users.isBuilder,wr=Ve.users.isAdmin,nA=Ve.users.isGlobalBuilder,iA=Ve.users.isAdminOrBuilder,Ir=Ve.users.hasAdminPermissions,tt=Ve.users.hasBuilderPermissions,sA=Ve.users.hasAppBuilderPermissions;async function hn(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await H().getMultiple(r,{allowMissing:!0}),t.map(i=>Ku(i,e))}s(hn,"creatorsInList");async function To(t){let e=[];return t.userGroups&&(e=await H().getMultiple(t.userGroups)),Ku(t,e)}s(To,"isCreatorAsync");function Ku(t,e){let r=Ve.users.isCreator(t);return!r&&t?sU(t,e):r}s(Ku,"isCreatorSync");function sU(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}s(sU,"isCreatorByGroupMembership");async function Qu(t,e){if(E.MULTI_TENANCY){let r=await yo(t);if(r!=null&&r.tenantId!==e)throw new Qt(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await Or(t);if(r&&r.verified&&r.tenantId!==e)throw new Qt(t)}}s(Qu,"validateUniqueUser");async function ju(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await ci(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(ju,"getAccountHolderFromUsers");var Sp=s(async t=>{await Le.deleted(t),tt(t)&&await Le.permissionBuilderRemoved(t),Ir(t)&&await Le.permissionAdminRemoved(t)},"handleDeleteEvents"),oU=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await go.assigned(t,i)},"assignAppRoleEvents"),aU=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await go.unassigned(t,i)},"unassignAppRoleEvents"),uU=s(async(t,e)=>{let r=t.roles,n=e?.roles;await oU(t,r,n),await aU(t,r,n)},"handleAppRoleEvents"),Ap=s(async(t,e)=>{let r=V(),n;!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await oi(r)),await gt.identifyUser(t,n),e?(await Le.updated(t),lU(t,e)&&await Le.permissionBuilderRemoved(t),fU(t,e)&&await Le.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Le.passwordForceReset(t),t.password!==e.password&&await Le.passwordUpdated(t)):await Le.created(t),cU(t,e)&&await Le.permissionBuilderAssigned(t),dU(t,e)&&await Le.permissionAdminAssigned(t),await uU(t,e)},"handleSaveEvents"),cU=s((t,e)=>oA(t,e,tt),"isAddingBuilder"),lU=s((t,e)=>aA(t,e,tt),"isRemovingBuilder"),dU=s((t,e)=>oA(t,e,Ir),"isAddingAdmin"),fU=s((t,e)=>aA(t,e,Ir),"isRemovingAdmin"),oA=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),aA=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var Yu={};N(Yu,{createASession:()=>mU,endSession:()=>hU,getSession:()=>Op,getSessionsForUser:()=>So,invalidateSessions:()=>En,updateSessionTTL:()=>_p});var cA=require("uuid");var lA=E.SESSION_EXPIRY_SECONDS?parseInt(E.SESSION_EXPIRY_SECONDS):he.fromDays(7).toSeconds();function hi(t,e){return`${t}/${e}`}s(hi,"makeSessionID");async function So(t){return t?(await(await fr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(So,"getSessionsForUser");async function En(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await So(t)).map(a=>({key:hi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:hi(t,o)}))),i&&i.length>0){let o=await fr(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||ii(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(En,"invalidateSessions");async function mU(t,e){let r=await So(t),n=0;if(r.length>=3){let l=r.sort((p,h)=>new Date(p.createdAt).getTime()-new Date(h.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(p=>p.sessionId);n=f.length,await En(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await fr(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,cA.v4)(),u=hi(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,lA),{session:c,invalidatedSessionCount:n}}s(mU,"createASession");async function _p(t){let e=await fr(),r=hi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,lA)}s(_p,"updateSessionTTL");async function hU(t,e){await(await fr()).delete(hi(t,e))}s(hU,"endSession");async function Op(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await fr()).get(hi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(Op,"getSession");var Rp={};N(Rp,{PASSWORD_MAX_LENGTH:()=>wp,PASSWORD_MIN_LENGTH:()=>Ip,validatePassword:()=>Dp});var Ip=+(E.PASSWORD_MIN_LENGTH||12),wp=+(E.PASSWORD_MAX_LENGTH||512);function Dp(t){return!t||t.length<Ip?{valid:!1,error:`Password invalid. Minimum ${Ip} characters.`}:t.length>wp?{valid:!1,error:`Password invalid. Maximum ${wp} characters.`}:{valid:!0}}s(Dp,"validatePassword");var EU=s(async t=>{let e=t._id;await Et.removeUser(t),await Sp(t),await Dr.invalidateUser(e),await En(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),wt=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return E.ENABLE_SSO_MAINTENANCE_MODE&&wr(e)?!1:await t.features.isSSOEnforced()||$o(e)?!0:(r||(r=await oi(V())),!!(r&&r.email===e.email&&Wo(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a){if(await t.isPreventPasswordActions(e,o))throw new we("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=Dp(a);if(!f.valid)throw new we(f.error,400)}c=r.hashPassword?await Nd(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||Jn();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await H().allDocs(sn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await zu(e,{})).length}}static async getUsersByAppAccess(e){return await Cp(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return yt(e)}static async getUser(e){let r=await gn(e);return r&&delete r.password,r}static async bulkGet(e){return await Hu(e)}static async bulkUpdate(e){return await Ao(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=V(),i=H(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await gn(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!l&&o&&(l=await yt(o),l&&l._id!==a))throw new Qt(o);let d=1,f=0;if((r.isAccountHolder||l)&&(d=0,f=1),l){let[p,h]=await hn([l,e]);f=p!==h?1:0}return t.quotas.addUsers(d,f,async()=>{r.isAccountHolder||await Qu(o,n);let p=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(p=bp(p,l)),!l&&c?.length&&(p.roles={...c});let h=[];if(!a&&u.length>0)for(let m of u)h.push(t.groups.addUsers(m,[p._id]));try{let m=await i.put(p);return p._rev=m.rev,await Ap(p,l),l&&p.email!==l.email&&await Et.removeUser({email:l.email}),await Et.addUser(n,p._id,p.email,p.ssoId),await Dr.invalidateUser(m.id),await Promise.all(h),i.get(p._id)}catch(m){throw m.status===409?"User exists already":m}})}static async bulkCreate(e,r){let n=V(),i=[],o=[],a=[],u=e.map(p=>p.email),c=await yp(u),l=[];for(let p of e){let h=o.find(g=>g.email.toLowerCase()===p.email.toLowerCase()),m=c.includes(p.email.toLowerCase());if(h||m){l.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],o.push(p),await To(p)&&a.push(p)}let d=await oi(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let m of o)f&&delete m.password,i.push(t.buildUser(m,{hashPassword:!0,requirePassword:!f},n,void 0,d));let p=await Promise.all(i);await Ao(p);for(let m of p)await Et.addUser(n,m._id,m.email),await Ap(m,void 0);let h=p.map(m=>({_id:m._id,email:m.email}));if(Array.isArray(h)&&r){let m=[],g=h.map(y=>y._id);for(let y of r)m.push(t.groups.addUsers(y,g));await Promise.all(m)}return{successful:h,unsuccessful:l}})}static async bulkDelete(e){let r=H(),n={successful:[],unsuccessful:[]},i=await ju(e);i&&(e=e.filter(h=>h.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(h=>h.userId)})).rows.map(h=>h.doc),u=a.map(h=>({...h,_deleted:!0})),c=await Ao(u),d=(await hn(a)).filter(h=>h).length,f=[];for(let h of a){let g=(await yo(h._id)).ssoId;g&&(await Lu(g)).filter(S=>S.ssoId==null).forEach(S=>{f.push({...S,_deleted:!0})}),await EU(h)}await _r().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let p={};return a.reduce((h,m)=>(h[m._id]=m,h),p),c.forEach(h=>{let m=p[h.id].email;h.ok?n.successful.push({_id:h.id,email:m}):n.unsuccessful.push({_id:h.id,email:m,reason:"Database error"})}),n}static async destroy(e){let r=H(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Or(a))throw n.userId===Lt()._id?new we('Please visit "Account" to delete this user',400):new we("Account holder cannot be deleted",400)}await Et.removeUser(n),await r.remove(i,n._rev);let o=await To(n)?1:0;await t.quotas.removeUsers(1,o),await Sp(n),await Dr.invalidateUser(i),await En(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(o.ssoId=n.ssoId),await si(ye.CHECKLIST),await t.save(o,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Oo(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Oo,"removeUserPassword");async function Hu(t,e){let n=(await H().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Oo(n)),n}s(Hu,"bulkGetGlobalUsersById");async function yU(){let t=H(),e=`us${b}`;return(await t.allDocs({startkey:e,endkey:`${e}${ve}`})).rows.map(n=>n.id)}s(yU,"getAllUserIds");async function TU(){let t=H(),e=`us${b}`;return(await t.allDocs({startkey:e,endkey:`${e}${ve}`,include_docs:!0})).rows.map(n=>n.doc)}s(TU,"getAllUsers");async function Ao(t){return await H().bulkDocs(t)}s(Ao,"bulkUpdateGlobalUsers");async function gn(t,e){let n=await H().get(t);return e?.cleanup&&(n=Oo(n)),n}s(gn,"getById");async function yt(t,e){if(t==null)throw"Must supply an email address to view";let r=await Ft("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Oo(n)),n}s(yt,"getGlobalUserByEmail");async function SU(t){try{let e=await yt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(SU,"doesUserExist");async function zu(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ru(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Ft("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=Oo(o)),o}s(zu,"searchGlobalUsersByApp");async function Cp(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let a={[r]:{$exists:!0}};n.push(a)}return(await H().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(Cp,"searchGlobalUsersByAppAccess");function dA(t,e){if(e)return tu(Ke(t),e._id)}s(dA,"getGlobalUserByAppPage");async function fA(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,o=await Ft("by_email2",{...e,startkey:i,endkey:`${n}${ve}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=Oo(a)),a}s(fA,"searchGlobalUsersByEmail");var AU=8;async function pA({bookmark:t,query:e,appId:r,limit:n}={}){let i=H(),o=n??AU,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await gn(e.equal._id)]:r?(c=await zu(r,u),d=s(f=>dA(r,f),"getKey")):e?.string?.email?(c=await fA(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await Hu(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(sn(null,{...u,limit:void 0}))).rows.map(p=>p.doc),c=ar.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(sn(null,u))).rows.map(p=>p.doc),gf(c,o,{paginate:!0,property:l,getKey:d})}s(pA,"paginatedUsers");async function _U(){return(await Sf("by_email2",{limit:0,include_docs:!1})).total_rows}s(_U,"getUserCount");async function OU(){let t=0;async function e(r){let n=await pA({bookmark:r}),i=await hn(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(OU,"getCreatorCount");function IU(t){return delete t.admin,delete t.builder,t}s(IU,"removePortalUserPermissions");function bp(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}s(bp,"cleanseUserObject");async function wU(t,e){let r=Ke(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await wt.save(t,{hashPassword:!1})}s(wU,"addAppBuilder");async function DU(t,e){let r=Ke(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await wt.save(t,{hashPassword:!1})}s(DU,"removeAppBuilder");var mA=3600;async function RU(t,e){let n=await Of(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await Or(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(RU,"populateFromDB");async function CU(t){let e=await wt.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await Or(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(CU,"populateUsersFromDB");async function Io({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=RU),!e)try{e=V()}catch{e=await Et.lookupTenantId(t)}let i=await Us(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,mA)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Ve.users.isGlobalBuilder(o)&&await Re(e,async()=>{let a=await wt.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(Io,"getUser");async function bU(t){let e=await Us(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await CU(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,mA);i.push(...a.users)}return{users:i,notFoundIds:o}}s(bU,"getUsers");async function wo(t){await(await Us()).delete(t)}s(wo,"invalidateUser");var Up={};N(Up,{Writethrough:()=>Pp});var gi={};N(gi,{AUTO_EXTEND_POLLING_MS:()=>EA,doWithLock:()=>xp,newRedlock:()=>yn});var hA=F(require("redlock"));async function vU(t,e){if(t==="custom")return yn(e);switch(t){case"try_once":return yn(Ei.TRY_ONCE);case"try_twice":return yn(Ei.TRY_TWICE);case"default":return yn(Ei.DEFAULT);case"delay_500":return yn(Ei.DELAY_500);case"auto_extend":return yn(Ei.AUTO_EXTEND);default:throw Xt.unreachable(t)}}s(vU,"getClient");var Ei={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function yn(t={}){let e={...Ei.DEFAULT,...t},n=(await df()).client;return new hA.default([n],e)}s(yn,"newRedlock");function PU(t){let r=`lock:${t.systemLock?"system":V()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(PU,"getLockName");var EA=he.fromSeconds(10).toMs();async function xp(t,e){let r=await vU(t.type,t.customOptions),n,i;try{let o=PU(t),a=t.type==="auto_extend"?EA:t.ttl;if(n=await r.lock(o,a),t.type==="auto_extend"){let c=s(()=>{i=setTimeout(async()=>{n=await n.extend(a,()=>t.onExtend&&t.onExtend()),c()},a/2)},"extendInIntervals");c()}return{executed:!0,result:await e()}}catch(o){if(o.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw o}else throw o}finally{clearTimeout(i),await n?.unlock()}}s(xp,"doWithLock");var gA=1e4,vp=null;async function Ju(){if(!vp){let t=await lf();vp=new cn(t)}return vp}s(Ju,"getCache");function Do(t,e){return t.name+e}s(Do,"makeCacheKey");function Np(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(Np,"makeCacheItem");async function NU(t,e,r=gA){let n=await Ju(),i=e._id,o;i&&(o=await n.get(Do(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await xp({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let l=s(async d=>{let f=await t.put(d,{force:!0});u._id=f.id,u._rev=f.rev},"writeDb");try{await l(e)}catch(d){if(d.status!==409)throw d;ii("Ignoring conflict in write-through cache")}})).executed||ii("Ignoring redlock conflict in write-through cache")),o=Np(u,a?null:o?.lastWrite),u._id&&await n.store(Do(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(NU,"put");async function UU(t,e){let r=await Ju(),n=Do(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=Np(o),await r.store(n,i)}return i.doc}s(UU,"get");async function LU(t,e){let r=await Ju(),n=Do(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=Np(o),await r.store(n,i)}return i.doc}s(LU,"tryGet");async function kU(t,e,r){let n=await Ju();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Do(t,i))}finally{await t.remove(i,r)}}s(kU,"remove");var Pp=class{static{s(this,"Writethrough")}constructor(e,r=gA){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return NU(this.db,e,r)}async get(e){return UU(this.db,e)}async tryGet(e){return LU(this.db,e)}async remove(e,r){return kU(this.db,e,r)}};function Zu(t){return`config${b}${t}`}s(Zu,"generateConfigID");async function rt(t){let e=H();try{return await e.get(Zu(t))}catch(r){if(r.status===404)return;throw r}}s(rt,"getConfig");async function MU(t){return t._id||(t._id=Zu(t.type)),H().put(t)}s(MU,"save");async function ri(){let t=await rt("settings");return t||(t={_id:Zu("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ro({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await bu({config:t.config}),t}s(ri,"getSettingsConfigDoc");async function Mp(){return(await ri()).config}s(Mp,"getSettingsConfig");async function Ro(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=V();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await rt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(Ro,"getPlatformUrl");var bu=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await Ar(ye.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await rt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=E.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function FU(){return await rt("google")}s(FU,"getGoogleConfigDoc");async function Xu(){return(await FU())?.config}s(Xu,"getGoogleConfig");async function Fp(){if(!E.SELF_HOSTED)return Lp();let t=await Xu();return(!t||!t.activated)&&(t=Lp()),t}s(Fp,"getGoogleDatasourceConfig");function Lp(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(Lp,"getDefaultGoogleConfig");async function BU(){return rt("logos_oidc")}s(BU,"getOIDCLogosDoc");async function WU(){return rt("oidc")}s(WU,"getOIDCConfigDoc");async function $U(){let t=(await WU())?.config;return t?.configs&&t.configs[0]}s($U,"getOIDCConfig");async function Bp(t){let e=(await rt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(Bp,"getOIDCConfigById");async function yA(){return rt("smtp")}s(yA,"getSMTPConfigDoc");async function GU(t){let e=await yA();if(e)return e.config;let r=E.SELF_HOSTED||!t;if(E.SMTP_FALLBACK_ENABLED&&r)return{port:E.SMTP_PORT,host:E.SMTP_HOST,secure:!1,from:E.SMTP_FROM_ADDRESS,auth:{user:E.SMTP_USER,pass:E.SMTP_PASSWORD},fallback:!0}}s(GU,"getSMTPConfig");async function VU(){return(await rt("scim"))?.config}s(VU,"getSCIMConfig");async function qU(){return rt("ai")}s(qU,"getAIConfig");async function KU(){return rt("recaptcha")}s(KU,"getRecaptchaConfig");var Hp={};N(Hp,{AccessController:()=>Gp,BUILTIN_ROLE_IDS:()=>Vp,Role:()=>Rr,RoleHierarchyTraversal:()=>ec,RoleIDVersion:()=>qp,builtinRoleToNumber:()=>Co,checkForRoleResourceArray:()=>_A,externalRole:()=>JU,findRole:()=>bo,getAllRoleIds:()=>tL,getAllRoles:()=>Yp,getBuiltinRole:()=>SA,getBuiltinRoles:()=>Qp,getDBRoleID:()=>OA,getExternalRoleID:()=>Cr,getExternalRoleIDs:()=>IA,getRole:()=>ZU,getUserRoleHierarchy:()=>jp,getUserRoleIdHierarchy:()=>AA,isBuiltin:()=>Tn,lowerBuiltinRoleID:()=>zU,prefixRoleIDNoBuiltin:()=>$p,roleIDsAreEqual:()=>nt,roleToNumber:()=>HU,saveRoles:()=>XU,validInherits:()=>YU});var TA=require("lodash"),tc=F(require("lodash/fp/cloneDeep")),Wp=F(require("semver"));var Vp={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ie={...Vp,BUILDER:"BUILDER"},qp={UUID:void 0,NAME:"name"};function jU(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(jU,"rolesInList");var Rr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=qp.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=$p(e):e&&Array.isArray(e)&&(e=e.map($p)),this.inherits=e,this}},ec=class{static{s(this,"RoleHierarchyTraversal")}constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let o of e.inherits){let a=bo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!jU(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=bo(a.inherits,n,r),a&&i.push(a),Ne.roles.checkForRoleInheritanceLoops(i))break}}return(0,TA.uniqBy)(i,o=>o._id)}},Kp={ADMIN:new Rr(ie.ADMIN,ie.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ie.POWER),POWER:new Rr(ie.POWER,ie.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ie.BASIC),BASIC:new Rr(ie.BASIC,ie.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ie.PUBLIC),PUBLIC:new Rr(ie.PUBLIC,ie.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Rr(ie.BUILDER,ie.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Qp(){return(0,tc.default)(Kp)}s(Qp,"getBuiltinRoles");function Tn(t){return Object.values(Vp).includes(t)}s(Tn,"isBuiltin");function $p(t){return Tn(t)?t:kt(t)}s($p,"prefixRoleIDNoBuiltin");function SA(t){let e=Object.values(Kp).find(r=>t.includes(r._id));if(e)return(0,tc.default)(e)}s(SA,"getBuiltinRole");function YU(t,e){if(!e)return!1;let r=s(n=>t.find(i=>nt(i._id,n)),"find");if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}s(YU,"validInherits");function Co(t){let e=Qp(),r=Object.values(e).length+1;if(nt(t,ie.ADMIN)||nt(t,ie.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}s(Co,"builtinRoleToNumber");async function HU(t){if(Tn(t))return Co(t);let e=await jp(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>nt(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(Tn(n.inherits))return Co(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(HU,"roleToNumber");function zU(t,e){return t?e&&Co(t)>Co(e)?e:t:e}s(zU,"lowerBuiltinRoleID");function nt(t,e){return kt(t)===kt(e)}s(nt,"roleIDsAreEqual");function JU(t){let e;return t._id&&(e=Cr(t._id)),{...t,_id:e,inherits:IA(t.inherits,t.version)}}s(JU,"externalRole");function bo(t,e,r){let n=SA(t);n||(t=kt(t));let i=e.find(o=>o._id&&nt(o._id,t));return!i&&!Tn(t)&&r?.defaultPublic?(0,tc.default)(Kp.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Cr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(bo,"findRole");async function ZU(t,e){let r=zn(),n=[];if(!Tn(t)){let i=await r.tryGet(OA(t));i&&n.push(i)}return bo(t,n,e)}s(ZU,"getRole");async function XU(t){await zn().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:kt(r._id)})))}s(XU,"saveRoles");async function eL(t,e){let r=await Yp();if(nt(t,ie.ADMIN))return r;let n=bo(t,r,e),i=[];return n&&(i=new ec(r,e).walk(n)),i}s(eL,"getAllUserRoles");async function AA(t){return(await jp(t)).map(r=>r._id)}s(AA,"getUserRoleIdHierarchy");async function jp(t,e){return eL(t,e)}s(jp,"getUserRoleHierarchy");function _A(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(_A,"checkForRoleResourceArray");async function tL(t){return(await Yp(t)).map(r=>r._id)}s(tL,"getAllRoleIds");async function Yp(t){if(t)return qe(t,e);{let r;try{r=zn()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(nu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=Cr(u._id,u.version)));let i=Qp(),o=[];!r||await rL(r)?o=[ie.ADMIN,ie.POWER,ie.BASIC,ie.PUBLIC]:o=[ie.ADMIN,ie.BASIC,ie.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>nt(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=Cr(u._id,c.version),n.push({...u,...c,name:u.name,_id:Cr(u._id,u.version)}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=_A(a.permissions,u);return n}s(e,"internal")}s(Yp,"getAllRoles");async function rL(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Wp.default.valid(r)?!0:!Wp.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(rL,"shouldIncludePowerRole");var Gp=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||nt(e,ie.BUILDER)||nt(r,e)||nt(r,ie.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await AA(r),this.userHierarchies[r]=n),n?.find(i=>nt(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let o=await this.checkScreenAccess(i,r);o&&n.push(o)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function OA(t){return t?.startsWith("role")?t:kt(t)}s(OA,"getDBRoleID");function Cr(t,e){if(t.startsWith(`role${b}`)&&(Tn(t)||e===qp.NAME)){let r=t.split(b);return r.shift(),r.join(b)}return t}s(Cr,"getExternalRoleID");function IA(t,e){return t&&(typeof t=="string"?Cr(t,e):t.map(r=>Cr(r,e)))}s(IA,"getExternalRoleIDs");var zp={};N(zp,{BUILDER:()=>aL,BUILTIN_PERMISSIONS:()=>rc,CREATOR:()=>uL,GLOBAL_BUILDER:()=>cL,PermissionImpl:()=>se,PermissionLevel:()=>Ii,PermissionType:()=>Fo,doesHaveBasePermission:()=>sL,getAllowedLevels:()=>CA,getBuiltinPermissionByID:()=>iL,getBuiltinPermissions:()=>nL,isPermissionLevelHigherThanRead:()=>oL,levelToNumber:()=>RA});var wA=F(require("lodash/flatten")),DA=F(require("lodash/fp/cloneDeep"));var se=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function RA(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(RA,"levelToNumber");function CA(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(CA,"getAllowedLevels");var rc={PUBLIC:{_id:"public",name:"Public",permissions:[new se("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new se("query","read"),new se("table","read"),new se("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new se("query","write"),new se("table","write"),new se("automation","execute"),new se("legacy_view","read"),new se("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new se("table","write"),new se("user","read"),new se("automation","execute"),new se("webhook","read"),new se("legacy_view","read"),new se("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new se("table","admin"),new se("user","admin"),new se("automation","admin"),new se("webhook","read"),new se("query","admin"),new se("legacy_view","read"),new se("app","read")]}};function nL(){return(0,DA.default)(rc)}s(nL,"getBuiltinPermissions");function iL(t){return Object.values(rc).find(r=>r._id===t)}s(iL,"getBuiltinPermissionByID");function sL(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(rc),o=(0,wA.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&CA(a.level).indexOf(e)!==-1)return!0;return!1}s(sL,"doesHaveBasePermission");function oL(t){return RA(t)>1}s(oL,"isPermissionLevelHigherThanRead");var aL="builder",uL="creator",cL="globalBuilder";var um={};N(um,{adminOnly:()=>pc,auditLog:()=>cc,authError:()=>Oe,buildAuthMiddleware:()=>QL,buildCsrfMiddleware:()=>YL,buildTenancyMiddleware:()=>jL,builderOnly:()=>hc,builderOrAdmin:()=>mc,google:()=>jt,internalApi:()=>dc,joiValidator:()=>vo,oidc:()=>Yt,passport:()=>HL,platformLogout:()=>e0,refreshOAuthToken:()=>ZL,ssoCallbackUrl:()=>br,updateUserOAuth:()=>XL});var am={};N(am,{adminOnly:()=>pc,auditLog:()=>cc,authError:()=>Oe,authenticated:()=>uc,builderOnly:()=>hc,builderOrAdmin:()=>mc,correlation:()=>GA,csp:()=>YA,csrf:()=>fc,datasource:()=>qL,errorHandling:()=>qA,featureFlagCookie:()=>HA,google:()=>jt,internalApi:()=>dc,ip:()=>JA,joiValidator:()=>vo,local:()=>yi,oidc:()=>Yt,pino:()=>WA,querystringToBody:()=>KA,ssoCallbackUrl:()=>br,tenancy:()=>lc});var yi={};N(yi,{authenticate:()=>fL,options:()=>dL});function Oe(t,e,r){return t(r,null,{message:e})}s(Oe,"authError");async function br(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Mp(),n="/api/global/auth";return dr()&&(n+=`/${V()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(br,"ssoCallbackUrl");var Jp="Invalid credentials",lL="This account has expired. Please reset your password",dL={passReqToCallback:!0};async function fL(t,e,r,n){if(!e)return Oe(n,"Email Required");if(!r)return Oe(n,"Password Required");let i=await yt(e);return i==null?(console.info(`user=${e} could not be found`),Oe(n,Jp)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Oe(n,Jp)):i.password?await Ud(r,i.password)?(delete i.password,n(null,i)):Oe(n,Jp):(console.info(`user=${e} has no password set`,i),Oe(n,lL))}s(fL,"authenticate");var jt={};N(jt,{buildVerifyFn:()=>vA,getCallbackUrl:()=>hL,strategyFactory:()=>Zp});var xo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function nc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Oe(r,"sso user id required");if(!t.email)return Oe(r,"sso user email required");let i=Jn(t.userId),o;try{o=await gn(i)}catch(u){if(!u.status||u.status!==404)return Oe(r,"Unexpected error when retrieving existing user",u)}if(o||(o=await yt(t.email)),!o&&e)return Oe(r,"Email does not yet exist. You must set up your local budibase account first.");o||(o={_id:i,email:t.email,roles:{},tenantId:V()});let a=await pL(o,t);a.forceResetPassword=!1;try{delete a.password,a=await n(a,{hashPassword:!1,requirePassword:!1})}catch(u){return Oe(r,"Error saving user",u)}return r(null,a)}s(nc,"authenticate");async function pL(t,e){let r,n,i;if(e.profile){let o=e.profile;if(o.name){let a=o.name;a.givenName&&(r=a.givenName),a.familyName&&(n=a.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}s(pL,"syncUser");var mL=require("passport-google-oauth").OAuth2Strategy;function vA(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return nc(o,!0,i,t)}}s(vA,"buildVerifyFn");async function Zp(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let o=vA(r);return new mL({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(Zp,"strategyFactory");async function hL(t){return br("google",t)}s(hL,"getCallbackUrl");var Yt={};N(Yt,{buildVerifyFn:()=>NA,fetchStrategyConfig:()=>TL,getCallbackUrl:()=>SL,strategyFactory:()=>yL});var PA=F(require("node-fetch"));var EL=require("@techpass/passport-openidconnect").Strategy;function NA(t){return async(e,r,n,i,o,a,u,c,l)=>{let d={provider:e,providerType:"oidc",userId:n.id,profile:n,email:gL(n,i),oauth2:{accessToken:o,refreshToken:a}};return nc(d,!1,l,t)}}s(NA,"buildVerifyFn");function gL(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Rf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(gL,"getEmail");async function yL(t,e){try{let r=NA(e),n=new EL(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(yL,"strategyFactory");async function TL(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let a=await(0,PA.default)(i);if(!a.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${a.statusText}`);let u=await a.json();return{issuer:u.issuer,authorizationURL:u.authorization_endpoint,tokenURL:u.token_endpoint,userInfoURL:u.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(TL,"fetchStrategyConfig");async function SL(){return br("oidc")}s(SL,"getCallbackUrl");var Xp={};N(Xp,{postAuth:()=>OL,preAuth:()=>_L});var AL=require("passport-google-oauth").OAuth2Strategy;async function UA(){let t=await Fp();if(!t)throw new Error("No google configuration found");return t}s(UA,"fetchGoogleCreds");async function _L(t,e,r){let n=await UA(),o=`${await Ro({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await Zp(n,o,xo);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(_L,"preAuth");async function OL(t,e,r){let n=await UA(),o=`${await Ro({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=Wt(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new AL({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{hr(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=ne();await Vt(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(OL,"postAuth");var IL=/\/:(.*?)(\/.*)?$/g,Sn=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(IL);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(r),method:n,route:r}}):[],"buildMatcherRegex"),An=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var sm={};N(sm,{SecretOption:()=>MA,decrypt:()=>im,decryptFile:()=>xL,encrypt:()=>RL,encryptFile:()=>CL,getSecret:()=>nm});var Ht=F(require("crypto")),xr=F(require("fs")),em=require("path"),tm=F(require("zlib"));var ic="aes-256-ctr",kA="-",wL=1e4,DL=32,sc=16,rm=16,MA=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(MA||{});function nm(t){let e,r;switch(t){case"encryption":e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(nm,"getSecret");function oc(t,e){return Ht.default.pbkdf2Sync(t,new Uint8Array(e),wL,DL,"sha512")}s(oc,"stretchString");function RL(t,e="api"){let r=Ht.default.randomBytes(sc),n=oc(nm(e),r),i=Ht.default.createCipheriv(ic,new Uint8Array(n),new Uint8Array(r)),o=i.update(t,"utf8"),a=i.final(),u=Buffer.concat([new Uint8Array(o),new Uint8Array(a)]).toString("hex");return`${r.toString("hex")}${kA}${u}`}s(RL,"encrypt");function im(t,e="api"){let[r,n]=t.split(kA),i=Buffer.from(r,"hex"),o=oc(nm(e),i),a=Ht.default.createDecipheriv(ic,new Uint8Array(o),new Uint8Array(i)),u=a.update(n,"hex"),c=a.final();return Buffer.concat([new Uint8Array(u),new Uint8Array(c)]).toString()}s(im,"decrypt");async function CL({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,em.join)(t,e);if(xr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=xr.default.createReadStream(i),a=xr.default.createWriteStream((0,em.join)(t,n)),u=Ht.default.randomBytes(sc),c=Ht.default.randomBytes(rm),l=oc(r,u),d=Ht.default.createCipheriv(ic,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(tm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(CL,"encryptFile");async function bL(t){let e=xr.default.createReadStream(t),r=await LA(e,sc),n=await LA(e,rm);return e.close(),{salt:r,iv:n}}s(bL,"getSaltAndIV");async function xL(t,e,r){if(xr.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await bL(t),o=xr.default.createReadStream(t,{start:sc+rm}),a=xr.default.createWriteStream(e),u=oc(r,n),c=Ht.default.createDecipheriv(ic,new Uint8Array(u),new Uint8Array(i)),l=tm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",p=>{a.close(),f(p)}),c.on("error",p=>{a.close(),f(p)}),l.on("error",p=>{a.close(),f(p)}),a.on("error",p=>{a.close(),f(p)})})}s(xL,"decryptFile");function LA(t,e){return new Promise((r,n)=>{let i=0,o=[];t.on("readable",()=>{let a;for(;(a=t.read(e-i))!==null;)o.push(a),i+=a.length;r(Buffer.concat(o.map(u=>new Uint8Array(u))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",a=>{n(a)})})}s(LA,"readBytes");var BA=F(require("dd-trace"));var vL=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function PL(){return new Date(Date.now()-vL).toISOString()}s(PL,"timeMinusOneMinute");function FA(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}s(FA,"finalise");async function NL(t,e){if(Ks(t))return{valid:!0,user:void 0};let n=im(t).split(b)[0];return Re(n,async()=>{let i;try{let o=H();i=await Ft("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await Io({userId:i,tenantId:n,populateUser:e})};throw new pi})}s(NL,"checkApiKey");function ac(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(ac,"getHeader");function uc(t=[],e={publicAllowed:!1}){let r=t?Sn(t):[];return async(n,i)=>{let o=!1,a=ac(n,"x-budibase-api-version");An(n,r)&&(o=!0);try{let c=ac(n,"x-budibase-token"),l=Wt(n,"budibase:auth")||su(c),d=ac(n,"x-budibase-api-key");!d&&n.request.headers.authorization&&(d=n.request.headers.authorization.split(" ")[1]);let f=ac(n,"x-budibase-tenant-id"),p=!1,h,m=!1,g;if(l&&!d){let S=l.sessionId,O=l.userId,_;try{_=await Op(O,S),e&&e.populateUser?h=await Io({userId:O,tenantId:_.tenantId,email:_.email,populateUser:e.populateUser(n)}):h=await Io({userId:O,tenantId:_.tenantId,email:_.email}),h.csrfToken=_.csrfToken,g="cookie",_?.lastAccessedAt<PL()&&await _p(_),p=!0}catch(D){p=!1,console.error(`Auth Error: ${D.message}`),hr(n,"budibase:auth")}}if(!p&&d){let S=e.populateUser?e.populateUser(n):null,{valid:O,user:_}=await NL(d,S);O&&(p=!0,g="api_key",h=_,m=!_)}!h&&f?h={tenantId:f}:h&&"password"in h&&delete h.password,p||(p=!1);let y=s(S=>S&&S.email,"isUser");return y(h)&&BA.default.setUser({id:h._id,tenantId:h.tenantId,budibaseAccess:h.budibaseAccess,status:h.status}),FA(n,{authenticated:p,user:h,internal:m,version:a,publicEndpoint:o,loginMethod:g}),y(h)?Md(h,n,i):i()}catch(c){if(console.error(`Auth Error: ${c.message}`),c?.name==="JsonWebTokenError"?hr(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return FA(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c)}}}s(uc,"authenticated");var cc=s(async(t,e)=>e(),"auditLog");function lc(t,e,r={noTenancyRequired:!1}){let n=Sn(t),i=Sn(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!An(o,i)};!!An(o,n)||(c.excludeStrategies=["query"]);let d=Gs(o,c);return o.set("x-budibase-tenant-id",d),Re(d,a)}}s(lc,"tenancy");async function dc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Ks(r)||t.throw(403,"Unauthorized"),e()}s(dc,"internalApi");var UL=["GET","HEAD","OPTIONS"],LL=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function fc(t={noCsrfPatterns:[]}){let e=Sn(t.noCsrfPatterns);return async(r,n)=>{if(An(r,e)||UL.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!LL.filter(c=>o.includes(c)).length||r.internal)return n();let a=r.user?.csrfToken;if(!a)return n();let u=r.get("x-csrf-token");return(!u||u!==a)&&r.throw(403,"Invalid CSRF token"),n()}}s(fc,"csrf");var pc=s(async(t,e)=>(!t.internal&&!wr(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");async function mc(t,e){if(t.internal||wr(t.user))return e();let r=await qs(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!tt(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!mi(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(mc,"builderOrAdmin");async function hc(t,e){if(t.internal)return e();let r=await qs(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!tt(t.user)?t.throw(403,"Builder user only endpoint."):r&&!mi(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(hc,"builderOnly");var kL=require("koa-pino-logger"),ML=require("correlation-id");function FL(){return{logger:Ou,genReqId:ML.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}s(FL,"pinoSettings");function BL(){return E.HTTP_LOGGING?kL(FL()):(t,e)=>e()}s(BL,"getMiddleware");var WA=BL();var $A=require("uuid");var WL=require("correlation-id"),GA=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,$A.v4)()),WL.withId(r,()=>e())},"correlationMiddleware");function VA(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of Oy){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(VA,"stringContainsSecret");async function qA(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Vu(r)};if(VA(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),E.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(qA,"errorHandling");function KA(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}s(KA,"querystringToBody");var jA=F(require("crypto"));var QA={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},$L=/^[A-Za-z0-9-*:/.]+$/,YA=s(async(t,e)=>{let r=jA.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...QA};if(n["script-src"]=[...QA["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let a=await ks.getWorkspaceMetadata(t.appId);if("name"in a)for(let u of a.scripts||[]){let c=(u.cspWhitelist||"").split(`
38
- `).filter(l=>$L.test(l));n["default-src"]=[...n["default-src"],...c]}}catch(a){console.error(`Error occurred in Content-Security-Policy middleware: ${a}`)}let o=Object.entries(n).map(([a,u])=>`${a} ${u.join(" ")}`).join("; ");t.set("Content-Security-Policy",o),await e()},"contentSecurityPolicy");var HA=s(async(t,e)=>{let n=Wt(t,"budibase:featureflags")?.flags||{};await of(n,async()=>{await e()})},"featureFlagCookie");var vo={};N(vo,{body:()=>GL,params:()=>VL});var om=F(require("joi"));function zA(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,o)=>{if(!t)return o();let a=null,u=i.request?.[e];i[e]!=null?a=i[e]:u!=null&&(a=u),t.append&&(t=t.append({createdAt:om.default.any().optional(),updatedAt:om.default.any().optional()}));let{error:c}=t.validate(a,{allowUnknown:r?.allowUnknown});if(c){let l=c.message;n&&(l=`Invalid ${e} - ${l}`),i.throw(400,l)}return o()}}s(zA,"validate");function GL(t,e){return zA(t,"body",e)}s(GL,"body");function VL(t,e){return zA(t,"params",e)}s(VL,"params");async function JA(t,e){return t.ip?await tf(t.ip,()=>e()):e()}s(JA,"ip");var qL={google:Xp};var ZA=require("koa-passport"),KL=require("passport-local").Strategy,Ec=require("passport-oauth2-refresh"),QL=uc,jL=lc,YL=fc,HL=ZA;ZA.use(new KL(yi.options,yi.authenticate));async function zL(t,e){let r=await Yt.getCallbackUrl(),n,i;try{if(n=await Yt.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Yt.strategyFactory(n,xo)}catch{throw new Error("Could not refresh OAuth Token")}return Ec.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(o=>{Ec.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(zL,"refreshOIDCAccessToken");async function JL(t,e){let r=await jt.getCallbackUrl(t),n;try{n=await jt.strategyFactory(t,r,xo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Ec.use(n),new Promise(i=>{Ec.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(JL,"refreshGoogleAccessToken");async function ZL(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Bp(r);return n?zL(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Xu();return n?JL(n,t):{err:{data:"Google configuration not found"}}}}}s(ZL,"refreshOAuthToken");async function XL(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=H(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await wo(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(XL,"updateUserOAuth");async function e0(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=Wt(e,"budibase:auth"),o=await So(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):hr(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await En(r,{sessionIds:a,reason:"logout"}),await Uu.logout(e.user?.email),await wo(r)}s(e0,"platformLogout");var lm={};N(lm,{validate:()=>s0});var C=F(require("joi"));var t0=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function cm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(cm,"runJoi");function r0(t){let e=C.default.object({type:C.default.string().allow("component").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),settings:C.default.array().items(C.default.object().unknown(!0)).required()}).unknown(!0)});cm(e,t)}s(r0,"validateComponent");function n0(t){let e=C.default.object({type:C.default.string().allow(...Object.values(_c)).required(),required:C.default.boolean().required(),default:C.default.any(),display:C.default.string()}),r=C.default.object({type:C.default.string().allow(...Object.values(Ac)),readable:C.default.boolean(),displayName:C.default.string(),fields:C.default.object().pattern(C.default.string(),e)}).required(),n=C.default.object({type:C.default.string().allow("datasource").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({docs:C.default.string(),plus:C.default.boolean().optional(),isSQL:C.default.boolean().optional(),auth:C.default.object({type:C.default.string().required()}).optional(),features:C.default.object(Object.fromEntries(Object.values(Oc).map(i=>[i,C.default.boolean().optional()]))).optional(),relationships:C.default.boolean().optional(),description:C.default.string().required(),friendlyName:C.default.string().required(),type:C.default.string().allow(...t0),datasource:C.default.object().pattern(C.default.string(),e).required(),query:C.default.object().pattern(C.default.string(),r).unknown(!0).required(),extra:C.default.object().pattern(C.default.string(),C.default.object({type:C.default.string().required(),displayName:C.default.string().required(),required:C.default.boolean(),data:C.default.object()}))})});cm(n,t)}s(n0,"validateDatasource");function i0(t){let e=C.default.object().pattern(C.default.string(),{type:C.default.string().allow(...Object.values(Ic)).required(),customType:C.default.string().allow(...Object.values(wc)),title:C.default.string(),description:C.default.string(),enum:C.default.array().items(C.default.string()),pretty:C.default.array().items(C.default.string())}),r=C.default.object({properties:e,required:C.default.array().items(C.default.string())}).concat(e).required(),n=C.default.object({type:C.default.string().allow("automation").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),tagline:C.default.string().required(),icon:C.default.string().required(),description:C.default.string().required(),type:C.default.string().allow("ACTION","LOGIC").required(),stepId:C.default.string().disallow(...Nm).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});cm(n,t)}s(i0,"validateAutomation");function s0(t){switch(t?.type){case"component":r0(t);break;case"datasource":n0(t);break;case"automation":i0(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(s0,"validate");var dm={};N(dm,{Client:()=>Ce,clients:()=>pr,locks:()=>gi,utils:()=>Ga});var fm={};N(fm,{isBlacklisted:()=>a0,refreshBlacklist:()=>r_});var XA=F(require("dns")),yc=F(require("net"));var e_=require("util");var gc,o0=(0,e_.promisify)(XA.default.lookup);async function t_(t){return yc.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await o0(t,{all:!0})).map(r=>r.address)}s(t_,"lookup");async function r_(){let e=E.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(yc.default.isIP(i))r.push(i);else{let o=await t_(i);r=r.concat(o)}}gc=r}s(r_,"refreshBlacklist");async function a0(t){if(gc||await r_(),gc?.length===0)return!1;let e;return yc.default.isIP(t)?e=[t]:e=await t_(t),!!gc?.find(r=>e.includes(r))}s(a0,"isBlacklisted");var mm={};N(mm,{init:()=>c0});var u0={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function n_(t,e){let r=u0[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(n_,"getDocumentId");var Po=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=n_(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await Re(i,async()=>{await u({id:o,tenantId:i,appId:n.appId})})}shutdown(){return bS()}};var i_,pm;function c0(t){Kt||Nu(),pm||(pm=new Po(t)),i_||(i_=Kt.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await pm.processEvent(r,n,i)}))}s(c0,"init");var Om={};N(Om,{COUNT_FIELD_NAME:()=>Am,Sql:()=>p_,SqlTable:()=>Tc,designDoc:()=>_m,utils:()=>Yd});var u_=require("knex");var l0=require("knex");function hm(t){return["link","formula","ai"].indexOf(t)!==-1}s(hm,"isIgnoredType");function s_(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(p=>p.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(p=>p.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,h]of Object.entries(e.schema)){let m=n?.schema[p];if(m&&m.type||l.includes(p)||i?.updated===p)continue;let g=h.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(p)?t.string(p,255):t.text(p);break;case"number":if(h.meta&&h.meta.toKey&&h.meta.toTable){let{toKey:y,toTable:S}=h.meta;t.integer(p).unsigned(),t.foreign(p).references(`${S}.${y}`)}else d.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":h.timeOnly?t.time(p):t.datetime(p,{useTz:!h.ignoreTimezones});break;case"array":case"bb_reference":Ne.schema.isDeprecatedSingleUserColumn(h)?t.text(p):t.json(p);break;case"link":if(h.relationshipType!=="many-to-one"&&h.relationshipType!=="many-to-many"){if(!h.foreignKey||!h.tableId)throw new Error("Invalid relationship schema");let{tableName:y}=Vd(h.tableId),S=r[y];if(!S||!S.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=S.primary[0],_=S.schema[O].externalType;_?t.specificType(h.foreignKey,_):t.integer(h.foreignKey).unsigned(),t.foreign(h.foreignKey).references(`${y}.${O}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(p);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${h.type} is not a valid SQL type`);default:Xt.unreachable(g)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!hm(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([h,m])=>!hm(m.type)&&e.schema[h]==null).forEach(([h,m])=>{i?.old===h||hm(m.type)||(n.constrained&&n.constrained.indexOf(h)!==-1&&t.dropForeign(h),t.dropColumn(h))}),t}s(s_,"generateSchema");function f0(t,e,r){return t.createTable(e.name,n=>{s_(n,e,r)})}s(f0,"buildCreateTable");function p0(t,e,r,n,i){return t.alterTable(e.name,o=>{s_(o,e,r,n,i)})}s(p0,"buildUpdateTable");function m0(t,e){return t.dropTable(e.name)}s(m0,"buildDeleteTable");var Em=class{static{s(this,"SqlTableQueryBuilder")}constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,l0.knex)({client:this.sqlClient}).schema;e?.schema&&(r=r.withSchema(e.schema));let n;if(!e.table||!e.tables)throw new Error("Cannot execute without table being specified");if(e.table.sourceType==="internal")throw new Error("Cannot perform table actions for SQS.");switch(this._operation(e)){case"CREATE_TABLE":n=f0(r,e.table,e.tables);break;case"UPDATE_TABLE":if(!e.table)throw new Error("Must specify old table for update");if(this.sqlClient==="mysql2"&&e.meta?.renamed){let i=e.meta.renamed.updated;return{sql:`alter table ${e?.schema?`\`${e.schema}\`.\`${e.table.name}\``:`\`${e.table.name}\``} rename column \`${e.meta.renamed.old}\` to \`${i}\`;`,bindings:[]}}if(n=p0(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=jn(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=m0(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return jn(n)}},Tc=Em;var c_=require("lodash");var Am="__bb_total";function o_(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(o_,"getBaseLimit");function gm(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(gm,"getRelationshipLimit");function h0(t,e){return t.sort((r,n)=>{let i=e.find(a=>a&&r.endsWith(a)),o=e.find(a=>a&&n.endsWith(a));return i&&!o?-1:!i&&o?1:r.localeCompare(n)})}s(h0,"prioritisedArraySort");function l_(t){return Array.isArray(t)?t.map(e=>l_(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(l_,"convertBooleans");function a_(t){return t.sourceType==="internal"||t.sourceId===Cc}s(a_,"isSqs");function E0(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(E0,"escapeQuotes");function d_(t,e='"'){return`${e}${E0(t,e)}${e}`}s(d_,"wrap");function ym(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=d_(t[r],e));return`[${t.join(",")}]`}s(ym,"stringifyArray");function f_(t){return Lm.includes(t.type)&&!Ne.schema.isDeprecatedSingleUserColumn(t)}s(f_,"isJsonColumn");var g0={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Tm=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new ar.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&f_(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),o=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${o}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!Qd(e))return null}else if(r.dateOnly){let n=Kd(e);return n?new Date(n):null}else return r.ignoreTimezones?ja(e)?new Date(e):qd(e)?new Date(e+"Z"):null:ja(e)?new Date(e.trim()):null;return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),o=this.table.schema[i];o&&(e[r]=this.parse(n,o))}return e}parseFilters(e){e=(0,c_.cloneDeep)(e);for(let r of Object.values(Nr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(Jt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(In)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:o,schema:a,tableAliases:u,table:c}=this.query,l=u?.[c.name]||c.name,d=s(f=>n.match(new RegExp(`^${f}\\.`)),"matches");if(!o)return e;for(let f of o){let p=f.tableName,h=u?.[p]||p,m=d(p)||d(h),g=d(f.column);if((m||g)&&f.to&&f.tableName){let y=this.knex.select(this.knex.raw(1)).from({[h]:p}),S=y.clone(),O=jd(f),_;if(m?_=n:_=n.replace(new RegExp(`^${f.column}.`),`${u?.[f.tableName]||f.tableName}.`),O){let D=u?.[O.through]||f.through,T=this.tableNameWithSchema(O.through,{alias:D,schema:a});S=S.innerJoin(T,function(){this.on(`${h}.${O.toPrimary}`,"=",`${D}.${O.to}`)}).where(`${D}.${O.from}`,"=",this.rawQuotedIdentifier(`${l}.${O.fromPrimary}`)),this.client==="sqlite3"&&(S=this.addJoinFieldCheck(S,O)),e=e.where(I=>{I.whereExists(i(_,S)),r&&I.orWhereNotExists(y.clone().innerJoin(T,function(){this.on(`${l}.${O.fromPrimary}`,"=",`${D}.${O.from}`)}))})}else{let D=`${h}.${f.to}`,T=`${l}.${f.from}`;S=S.where(D,"=",this.rawQuotedIdentifier(T)),e=e.where(I=>{I.whereExists(i(_,S.clone())),r&&I.orWhereNotExists(S)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let o=this.query.tableAliases,a=r.allOr,c=this.client==="sqlite3"?this.table._id:this.table.name;function l(m){return o?.[m]||m}s(l,"getTableAlias");function d(m,g,y,S){let O=s((_,D,T)=>{let[I,...M]=D.split("."),P=M.join("."),k=l(I);return _.andWhere(Y=>y(Y,k?`${k}.${P}`:P,T))},"handleRelationship");for(let _ in m){let D=m[_],T=$s(_),I=T.includes("."),M=n?.relationship&&I,P;if(_==="_complexIdOperator"&&(P=m[_])&&S){let k=l(c);e=S(e,P.id.map(Y=>k?`${k}.${Y}`:Y),P.values)}else if(I)M&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,g0[g],T,(k,Y)=>O(Y,k,D)));else{let k=l(c);e=y(e,k?`${k}.${T}`:T,D)}}}s(d,"iterate");let f=s((m,g,y)=>((r?.fuzzyOr||a)&&(m=m.or),this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),"like"),p=s((m,g=!1)=>{function y(S){return(a||m===r?.containsAny)&&(S=S.or),m===r?.notContains&&(S=S.not),S}s(y,"addModifiers"),this.client==="pg"?d(m,"contains",(S,O,_)=>{S=y(S);let D=this.getFieldSchema(O),T="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(D)&&(T="",_=`{${_.map(M=>M.substring(1,M.length-1))}}`),g?S.whereRaw(T?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(O),T?this.knex.raw(ym(_,"'")):this.knex.raw(_)]):S.whereRaw(`COALESCE(??${T} @> '??', FALSE)`,[this.rawQuotedIdentifier(O),T?this.knex.raw(ym(_)):this.knex.raw(_)])}):this.client==="mysql2"||this.client==="mariadb"?d(m,"contains",(S,O,_)=>y(S).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(d_(ym(_)))])):d(m,"contains",(S,O,_)=>(_.length===0||(S=S.where(D=>(m===r?.notContains&&(D=D.not),D=D.where(T=>{for(let I of _){m===r?.containsAny?T=T.or:T=T.and;let M=typeof I=="string"?`"${I.toLowerCase()}"`:I;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${M}%`)}}),m===r?.notContains&&(D=D.or.whereNull(this.rawQuotedIdentifier(O))),D))),S))},"contains");if(r.$and){let{$and:m}=r;for(let g of m.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:m}=r;e=e.where(g=>{for(let y of m.conditions)g.orWhere(S=>this.addFilters(S,{...y,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(m,g,y)=>{let S=this.getFieldSchema(g),O=Array.isArray(y)?y:[y];if(a&&(m=m.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&S?.type==="datetime"&&S.dateOnly){for(let _ of O)_!=null?m=m.or.whereLike(g,`${_.toISOString().slice(0,10)}%`):m=m.or.whereNull(g);return m}return m.whereIn(g,O)},(m,g,y)=>(a&&(m=m.or),this.client==="oracledb"&&(g=g.map(S=>this.convertClobs(S))),m.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&d(r.string,"string",(m,g,y)=>{if(a&&(m=m.or),this.client==="oracledb"||this.client==="sqlite3")return m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let S=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(S)?m.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(S.name))]):m.whereILike(g,`${y}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",f),r.range&&d(r.range,"range",(m,g,y)=>{let S=s(P=>P&&Object.keys(P).length===0&&Object.getPrototypeOf(P)===Object.prototype,"isEmptyObject");S(y.low)&&(y.low=""),S(y.high)&&(y.high="");let O=Ya(y.low),_=Ya(y.high),D=this.getFieldSchema(g),T=g,I=y.high,M=y.low;return this.client==="sqlite3"&&D?.type==="datetime"&&D.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),M!=null&&(M=M.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&D?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[y.high]),M=this.knex.raw("CAST(? AS INTEGER)",[y.low])),a&&(m=m.or),O&&_?m.whereBetween(T,[M,I]):O?m.where(T,">=",M):_?m.where(T,"<=",I):m}),r.equal&&d(r.equal,"equal",(m,g,y)=>{let S=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(_=>_.whereNotNull(O).andWhere(O,y))}else return this.client==="sqlite3"&&S?.type==="datetime"&&S.dateOnly?y!=null?m.whereLike(g,`${y.toISOString().slice(0,10)}%`):m.whereNull(g):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&d(r.notEqual,"notEqual",(m,g,y)=>{let S=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(_=>_.not.whereNull(O).and.where(O,"!=",y)).or.whereNull(O)}else return this.client==="sqlite3"&&S?.type==="datetime"&&S.dateOnly?y!=null?m.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):m.not.whereNull(g):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&d(r.empty,"empty",(m,g)=>(a&&(m=m.or),m.whereNull(g))),r.notEmpty&&d(r.notEmpty,"notEmpty",(m,g)=>(a&&(m=m.or),m.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let h=o?.[this.table._id]||this.table._id;return r.documentType&&!Gd(this.table)&&h&&e.andWhereLike(`${h}._id`,`${Zt(r.documentType)}%`),e}isSqs(){return a_(this.table)}getTableName(e){e||(e=this.table);let r=e.name;a_(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${Am}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,o=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[u,c]of Object.entries(r)){let l=c.direction==="ascending"?"asc":"desc",d;(this.client==="pg"||this.client==="oracledb")&&(d=c.direction==="ascending"?"first":"last");let f=`${o}.${u}`,p;this.isAggregateField(u)?p=this.rawQuotedIdentifier(u):this.client==="oracledb"?p=this.convertClobs(f):p=this.rawQuotedIdentifier(f),e=e.orderByRaw(`?? ?? ${d?"nulls ??":""}`,[p,this.knex.raw(l),...d?[this.knex.raw(d)]:[]])}if(!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)){if(i[0]===void 0)throw new Error(`Primary key not found for table ${this.table.name}`);e=e.orderBy(`${o}.${i[0]}`)}return e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:p,through:h,to:m,from:g,fromPrimary:y,toPrimary:S}=f;if(!p||!r)continue;let O=l[p];if(!O)throw new Error(`related table "${p}" not found in datasource`);let _=u?.[p]||p,D=u?.[r]||r,T=h&&u?.[h]||h,I=this.tableNameWithSchema(p,{alias:_,schema:c}),M=[...O?.primary||[],O?.primaryDisplay].filter(W=>W),P=h0(d.filter(W=>W.split(".")[0]===_),M);P=P.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=P.map(W=>this.buildJsonField(O,W));if(!k.length)continue;let Y=k.map(W=>{let J=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${J}??`,[W[0],W[1]]).toString()}).join(","),Dt=`${_}.${S||m}`,B=o.from(I).orderBy(Dt),L=h&&S&&y,v=L?`${T}.${g}`:`${_}.${m}`,$=L?`${D}.${y}`:`${D}.${g}`;if(L){let W=this.tableNameWithSchema(h,{alias:T,schema:c});B=B.join(W,function(){this.on(`${_}.${S}`,"=",`${T}.${m}`)})}B=B.where(this.rawQuotedIdentifier(v),"=",this.rawQuotedIdentifier($));let w=s(W=>(B=B.select(P.map(J=>this.rawQuotedIdentifier(J))).limit(gm()),o.select(W).from({[_]:B})),"standardWrap"),K;switch(i){case"sqlite3":B=this.addJoinFieldCheck(B,f),K=w(this.knex.raw(`json_group_array(json_object(${Y}))`));break;case"pg":K=w(this.knex.raw(`json_agg(json_build_object(${Y}))`));break;case"mariadb":K=B.select(o.raw(`json_arrayagg(json_object(${Y}) LIMIT ${gm()})`));break;case"mysql2":case"oracledb":K=w(this.knex.raw(`json_arrayagg(json_object(${Y}))`));break;case"mssql":{let W=o.select("*").from({[D]:B.select(k.map(J=>o.ref(J[1]).as(J[0]))).limit(gm())});K=o.raw(`(SELECT ?? = (${W} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,p=this.tableNameWithSchema(a,{alias:l,schema:o}),h=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(h,function(){for(let m of n){let g=m.fromPrimary,y=m.from;this.orOn(`${f}.${g}`,"=",`${d}.${y}`)}}).leftJoin(p,function(){for(let m of n){let g=m.toPrimary,y=m.to;this.orOn(`${l}.${g}`,`${d}.${y}`)}}):e=e.leftJoin(p,function(){for(let m of n){let g=m.from,y=m.to;this.orOn(`${f}.${g}`,"=",`${l}.${y}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let h=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=h}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let p=this.query.tableAliases?.[a.name]||a.name,h=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"paginated"}));return this.addJsonRelationships(h,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Sm=class extends Tc{constructor(r,n=o_()){super(r);this.limit=n}static{s(this,"SqlQueryBuilder")}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let o=jn(r);return i==="sqlite3"&&(o=l_(o)),o}}_query(r,n={}){let i=this.getSqlClient(),o={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(o.useNullAsDefault=!0);let a=(0,u_.knex)(o),u,c=new Tm(i,a,r);switch(this._operation(r)){case"CREATE":u=c.create(n);break;case"READ":u=c.read({limits:{query:this.limit,base:o_()}});break;case"COUNT":u=c.read();break;case"UPDATE":u=c.update(n);break;case"DELETE":u=c.delete(n);break;case"BULK_CREATE":u=c.bulkCreate();break;case"BULK_UPSERT":u=c.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(u,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=o=>o){let o=this.getSqlClient(),a=this._operation(r),u=this._query(r,{disableReturning:!0});if(Array.isArray(u)){let f=[];for(let p of u)f.push(await n(p,a));return f}let c;a==="DELETE"&&(c=i(await this.getReturningRow(n,r)));let l=await n(u,a),d=i(l);if(a==="CREATE"||a==="UPDATE"){let f;o==="mssql"?f=d?.[0].id:(o==="mysql2"||o==="mariadb")&&(f=d?.insertId),c=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return a==="COUNT"?d:a!=="READ"?c:d.length?d:[{[a.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Cc){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let o=this.getTableName(r,i);for(let[a,u]of Object.entries(r.schema)){if(!f_(u))continue;let c=`${o}.${a}`;for(let l of n)typeof l[c]=="string"&&(l[c]=JSON.parse(l[c])),typeof l[a]=="string"&&(l[a]=JSON.parse(l[a]))}return n}log(r,n){Os(this.getSqlClient(),r,n)}},p_=Sm;var _m={};N(_m,{base:()=>y0});function y0(t){return{_id:Ot,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(y0,"base");var Im={};N(Im,{jsonFromCsvString:()=>T0});var m_=F(require("csvtojson"));async function T0(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let o of i){let a,u=!1;try{let c=await(0,m_.default)({ignoreEmpty:r,delimiter:o}).fromString(t);for(let[,l]of c.entries()){let d=Object.keys(l);if(a==null&&(a=d),!n&&d.length===1){u=!0;break}if(a.length!==d.length){u=!0;break}for(let f of a)(l[f]===void 0||l[f]==="")&&(l[f]=null)}if(u)continue;return c}catch{continue}}throw new Error("Unable to determine delimiter")}s(T0,"jsonFromCsvString");var wm=class{static{s(this,"Endpoint")}constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,o=this.controller,a=this.outputMiddlewares,u=s(()=>{},"complete"),c=[n,...i,o,...a,u];e[r](...c)}},Sc=wm;var h_=F(require("@koa/router"));var _n=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),o=new Sc(e,r,i);if(n.length!==0)for(let a of n)o.addMiddleware(a);return this.endpoints.push(o),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new h_.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var No=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new _n;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var S0={...Vs,...ue},A0=s((t={})=>{Ka(t.db)},"init");0&&(module.exports={AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DesignDocuments,DocumentType,Duration,DurationType,EmailUnavailableError,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
36
+ }`,"platform_users_lowercase_2")},"createPlatformUserView"),Ws=s(async(t,e)=>{let r={account_by_email:gT,platform_users_lowercase_2:yT};return qe(fe.PLATFORM_INFO.name,async n=>{let i=r[t];return Tf(t,e,n,i,{arrayResponse:!0})})},"queryPlatformView"),TT={by_email2:pT,by_api_key:hT,by_app:mT},Bt=s(async(t,e,r,n)=>{r||(r=H());let i=TT[t];return Tf(t,e,r,i,n)},"queryGlobalView");async function Sf(t,e,r){let n=H(),i=TT[t];return Bs(t,e,n,i,r)}s(Sf,"queryGlobalViewRaw");var bb=F(require("pouchdb"));var Af=class{static{s(this,"Replication")}constructor({source:e,target:r}){this.source=Ze(e),this.target=Ze(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([_s(this.source),_s(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";delete e.filter;let o=e.isCreation,a=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let u=!1,c;typeof a=="string"&&a==="all"?u=!0:a&&(c=a);let l=s((f,p)=>f?.startsWith(p+b),"startsWithID"),d=s(f=>l(f,"ro")||l(f,"li"),"isData");return{...e,filter:(f,p)=>!o&&f._id==="_design/migrations"||i&&f._id.startsWith("_design")?!1:f._deleted||l(f._id,hs)?!0:d(f._id)?!!c?.find(h=>f._id.includes(h))||u:l(f._id,"log_au")||f._id==="app_metadata"?!1:r?r(f,p):!0}}async rollback(){await this.target.destroy(),this.target=Ze(this.target.name),await this.replicate()}},ST=Af;var _T=F(require("node-fetch"));var $s=ar.removeKeyNumbering;function on(t){return t==null||t===""}s(on,"isEmpty");var Wt=class t{static{s(this,"QueryBuilder")}#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:o}={}){let a=!!this.#f,u=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&u==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),u==="string"&&!isNaN(e)&&!o?e=`"${e}"`:a&&i&&(e=u==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let o of Object.keys(e)){let a=$s(o);r[a]?r[a]=r[a].concat(e[o]):r[a]=e[o]}let n={},i=1;for(let[o,a]of Object.entries(r))n[`${i++}:${o}`]=a;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,o={escape:!0,lowercase:!0,wrap:!0},a="";this.#e.equal.tableId&&(a=this.#e.equal.tableId,delete this.#e.equal.tableId);let u=s((m,g)=>on(g)?null:`${m}:${e.preprocess(g,o)}`,"equal"),c=s((m,g,y="AND")=>{if(on(g))return null;if(!Array.isArray(g))return`${m}:${g}`;let S=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)S+=` ${y} ${e.preprocess(g[O],{escape:!0})}`;return`${m}:(${S})`},"contains"),l=s((m,g)=>on(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${m}:/.*${g}.*/`),"fuzzy"),d=s((m,g)=>{let y=r?"*:* AND ":"",S=r?"AND":void 0;return y+"NOT "+c(m,g,S)},"notContains"),f=s((m,g)=>c(m,g,"OR"),"containsAny"),p=s((m,g)=>{if(on(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let y=`${e.preprocess(g[0],o)}`;for(let S=1;S<g.length;S++)y+=` OR ${e.preprocess(g[S],o)}`;return`${m}:(${y})`},"oneOf");function h(m,g,y){let S="";for(let[O,_]of Object.entries(m)){O=$s(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let D=g(O,_);if(D!=null){if(S.length>0||n.length>0){let T=y?.mode?y.mode:r?"OR":"AND";S+=` ${T} `}S+=D,(typeof _!="string"&&_!=null||typeof _=="string"&&_!==a&&_!=="")&&(i=!1)}}if(y?.returnBuilt)return S;n+=S}if(s(h,"build"),this.#e.string&&h(this.#e.string,(m,g)=>on(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${m}:${g}*`)),this.#e.range&&h(this.#e.range,(m,g)=>{if(on(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let y=e.preprocess(g.low,o),S=e.preprocess(g.high,o);return`${m}:[${y} TO ${S}]`}),this.#e.fuzzy&&h(this.#e.fuzzy,l),this.#e.equal&&h(this.#e.equal,u),this.#e.notEqual&&h(this.#e.notEqual,(m,g)=>on(g)?null:typeof g=="boolean"?`(*:* AND !${m}:${g})`:`!${m}:${e.preprocess(g,o)}`),this.#e.empty&&h(this.#e.empty,m=>(i=!1,`(*:* -${m}:["" TO *])`)),this.#e.notEmpty&&h(this.#e.notEmpty,m=>(i=!1,`${m}:["" TO *]`)),this.#e.oneOf&&h(this.#e.oneOf,p),this.#e.contains&&h(this.#e.contains,c),this.#e.notContains&&h(this.compressFilters(this.#e.notContains),d),this.#e.containsAny&&h(this.#e.containsAny,f),a&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,h({tableId:a},u)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,o=0;do{let a=Math.min(t.maxLimit,i);this.setLimit(a);let{bookmark:u,rows:c}=await this.#p();this.setBookmark(u),o=c.length,i-=c.length}while(i>0&&o>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=dt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await AT(n,i,r)}catch(o){if(o.status===404&&this.#a)return await this.#a(),await AT(n,i,r);throw o}}};async function AT(t,e,r){let n=await(0,_T.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),o={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(o.rows=i.rows.map(a=>a.doc)),i.bookmark&&(o.bookmark=i.bookmark),i.total_rows&&(o.totalRows=i.total_rows),o}s(AT,"runQuery");async function OT(t,e,r,n){let i=n.bookmark,o=n.rows||[];if(n.limit&&o.length>=n.limit)return o;let a=Wt.maxLimit;n.limit&&o.length>n.limit-Wt.maxLimit&&(a=n.limit-o.length);let u=new Wt(t,e,r);u.setVersion(n.version).setBookmark(i).setLimit(a).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&u.setTable(n.tableId);let c=await u.run();if(!c.rows.length)return o;if(c.rows.length<Wt.maxLimit)return[...o,...c.rows];let l={...n,bookmark:c.bookmark,rows:[...o,...c.rows]};return await OT(t,e,r,l)}s(OT,"recursiveSearch");async function xb(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Wt.maxLimit);let o=new Wt(t,e,r);n.version&&o.setVersion(n.version),n.tableId&&o.setTable(n.tableId),n.sort&&o.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&o.setIndexBuilder(n.indexer),n.disableEscaping&&o.disableEscaping();let a=await o.setBookmark(n.bookmark).setLimit(i).run();o.setBookmark(a.bookmark).setLimit(1),n.tableId&&o.setTable(n.tableId);let u=await o.run();return{...a,hasNextPage:u.rows&&u.rows.length>0}}s(xb,"paginatedSearch");async function vb(t,e,r,n){let i=n.limit;return(i==null||isNaN(i)||i<0)&&(i=1e3),n.limit=Math.min(i,1e3),{rows:await OT(t,e,r,n)}}s(vb,"fullSearch");var _f={};N(_f,{createUserIndex:()=>Pb});async function Pb(){let t=H(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=s(function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function o(a,u){for(let c of Object.keys(a)){if(i.includes(c))continue;let l=u!=null?`${u}.${c}`:c;typeof a[c]=="string"?index(l,a[c].toLowerCase(),{facet:!0}):typeof a[c]!="object"?index(l,a[c],{facet:!0}):o(a[c],l)}}s(o,"idx"),o(n)},"fn");e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}s(Pb,"createUserIndex");function IT(t,e){let r=e.toString();if(typeof t=="object")return t.status===e||t.message?.includes(r);if(typeof t=="number")return t===e;if(typeof t=="string")return t.includes(r)}s(IT,"checkErrorCode");function Nb(t){return IT(t,409)}s(Nb,"isDocumentConflictError");var Vs={};N(Vs,{addTenantToUrl:()=>Ub,getTenantDB:()=>Of,getTenantIDFromCtx:()=>Gs,isUserInAppTenant:()=>Lb});function Of(t){return De(en(t))}s(Of,"getTenantDB");function Ub(t){let e=V();if(dr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}s(Ub,"addTenantToUrl");var Lb=s((t,e)=>{let r;return e?r=e.tenantId||ae:r=V(),(Hn(t)||ae)===r},"isUserInAppTenant"),kb=Object.values(Oi),Gs=s((t,e)=>{if(!dr())return ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=kb),e.excludeStrategies||(e.excludeStrategies=[]);let r=s(n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0},"isAllowed");if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(Jd()).host.split(":")[0]}catch(o){if(o.code!=="ERR_INVALID_URL")throw o}let i=t.host;if(n&&i.includes(n)){let o=i.substring(0,i.indexOf(`.${n}`));if(o)return o}}if(r("path")){let n=t.matched.find(a=>!!a.paramNames.find(u=>u.name==="tenantId")),i=t.originalUrl,o;if(i.includes("?")?o=i.split("?")[0]:o=i,n){let a=n.params(o,n.captures(o),{});if(a.tenantId)return a.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")},"getTenantIDFromCtx");var If="app"+b,wT="/app/",Mb="/builder",Fb=`${Mb}/workspace/`,Bb="/api/public/v";async function Wb(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=V();!E.isDev()&&E.MULTI_TENANCY&&(n=Gs(t,{includeStrategies:["subdomain"]}));let o=(await Re(n,()=>Fs({dev:!1}))).filter(a=>a.url&&a.url.toLowerCase()===r)[0];return o&&o.appId?o.appId:void 0}s(Wb,"resolveAppUrl");function $b(t){return t.path.startsWith(`/${If}`)?!0:t.path.startsWith(wT)}s($b,"isServingApp");function Gb(t){return t.path.startsWith(Fb)}s(Gb,"isServingBuilder");function Vb(t){return DT(t.path)}s(Vb,"isServingBuilderPreview");function DT(t){return new RegExp(/^\/app\/app_\w+\/preview$/).test(t)}s(DT,"isBuilderPreviewUrl");function qb(t){return t.path.startsWith(Bb)}s(qb,"isPublicApiRequest");async function qs(t){let e;function r(u){return!u||!u.startsWith(If)?e:(e&&e!==u&&t.throw("App id conflict",403),e??u)}s(r,"confirmAppId");let n=t.request.headers["x-budibase-app-id"]||[];typeof n=="string"&&(n=[n]);for(let u of n)e=r(u);t.request.body&&t.request.body.appId&&(e=r(t.request.body.appId));let i=Kb(t.path);i&&(e=r(i)),t.query?.appId&&(e=r(t.query?.appId));let o=DT(t.path);return t.path.startsWith(wT)&&!o&&(e=r(await Wb(t))),e}s(qs,"getAppIdFromCtx");function Kb(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(If))}s(Kb,"parseAppIdFromUrlPath");function su(t){if(t)try{return iu.default.verify(t,E.JWT_SECRET)}catch(e){if(E.JWT_SECRET_FALLBACK)return iu.default.verify(t,E.JWT_SECRET_FALLBACK);throw e}}s(su,"openJwt");function Ks(t){return E.INTERNAL_API_KEY&&E.INTERNAL_API_KEY===t?!0:!!(E.INTERNAL_API_KEY_FALLBACK&&E.INTERNAL_API_KEY_FALLBACK===t)}s(Ks,"isValidInternalAPIKey");function $t(t,e){let r=t.cookies.get(e);if(r)return su(r)}s($t,"getCookie");function RT(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=iu.default.sign(e,E.JWT_SECRET));let i={expires:Ma,path:"/",httpOnly:!1,overwrite:!0};E.COOKIE_DOMAIN&&(i.domain=E.COOKIE_DOMAIN),t.cookies.set(r,e,i)}s(RT,"setCookie");function hr(t,e){RT(t,null,e)}s(hr,"clearCookie");function Qb(t){return t.headers["x-budibase-type"]==="client"}s(Qb,"isClient");function wf(t){return new Promise(e=>setTimeout(e,t))}s(wf,"timeout");function Df(t){return!!bm[t]}s(Df,"isAudited");function jb(t){if(typeof t!="object")return!1;try{JSON.stringify(t)}catch(e){if(e instanceof Error&&e?.message.includes("circular structure"))return!0}return!1}s(jb,"hasCircularStructure");function Yb(t){return!!t.match(/^.+:\/\/.+$/)}s(Yb,"urlHasProtocol");function Rf(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}s(Rf,"validEmail");var Cf=(o=>(o.MILLISECONDS="milliseconds",o.SECONDS="seconds",o.MINUTES="minutes",o.HOURS="hours",o.DAYS="days",o))(Cf||{}),ou={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},he=class t{constructor(e){this.ms=e}static{s(this,"Duration")}to(e){return this.ms/ou[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*ou[e]/ou[r]}static from(e,r){return new t(r*ou[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function Hb(t){let e=performance.now();return[await t(),he.fromMilliseconds(performance.now()-e)]}s(Hb,"time");function zb(t){let e="",r=-1,n,i,o=t.opts?.repeat;return o&&(i=o.endDate?new Date(o.endDate).getTime():Date.now(),n=o.tz,"cron"in o?e=o.cron:r=o.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}s(zb,"jobToJobInformation");var au=class{static{s(this,"InMemoryQueue")}constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new CT.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((c,l)=>{r(n,s((f,p)=>{f?l(f):c(p)},"done"))})}s(i,"execute");let o=this._attempts;async function a(c,l=0){try{return await c}catch(d){if(l++,l<o&&!n._isDiscarded)return await Ne.wait(100*l),await a(i(),l);throw d}}s(a,"retryFunc");try{let c=await a(i());this._emitter.emit("completed",n,c);let l=this._messages.indexOf(n);if(l===-1)throw"Failed deleting a processed message";this._messages.splice(l,1)}catch(c){console.error(c),this._emitter.emit("error",n,c)}this._runCount++;let u=n.opts?.jobId?.toString();u&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(u)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let o=ne(),a=s(()=>{let c={id:o,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{c._isDiscarded=!0}};this._messages.push(c),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",c)},"pushMessage"),u=n?.delay;return u?setTimeout(a,u):a(),{id:i,finished:()=>new Promise((c,l)=>{let d=s((p,h)=>{p.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),l(h))},"errorHandler"),f=s((p,h)=>{p.id===o&&(this._emitter.off("error",d),this._emitter.off("completed",f),c(h))},"completedHandler");this._emitter.on("error",d),this._emitter.on("completed",f)})}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>zb(e))}async whenCurrentJobsFinished(){do await wf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},bT=au;var vf=F(require("bull"));var ei=(u=>(u.AUTOMATION="automationQueue",u.APP_BACKUP="appBackupQueue",u.AUDIT_LOG="auditLogQueue",u.SYSTEM_EVENT_QUEUE="systemEventQueue",u.APP_MIGRATION="appMigration",u.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",u.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",u))(ei||{});function xT(t,e,r){Xb(t,e),r&&Jb(t,r)}s(xT,"addListeners");function Jb(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let o of i)o.id===n&&await t.removeRepeatableByKey(o.key);console.log(`jobId=${n} disabled`)}})}s(Jb,"handleStalled");function Xe(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,o=r.error,a={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},u;return r.job?.data?.automation&&(u={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,o,a,u]}s(Xe,"getLogParams");var Zb={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event"};function Xb(t,e){let r=Zb[e];function n(i,o){let a=i.data.event?.appId;if(a)return Zd(a,o);o()}s(n,"doInJobContext"),t.on("stalled",async i=>{await n(i,()=>{console.error(...Xe(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...Xe(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...Xe(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...Xe(r,"active",{job:i}))})}).on("progress",async(i,o)=>{await n(i,()=>{console.info(...Xe(r,"progress",{job:i},{progress:o}))})}).on("completed",async(i,o)=>{await n(i,()=>{console.info(...Xe(r,"completed",{job:i},{result:o}))})}).on("failed",async(i,o)=>{await n(i,()=>{console.error(...Xe(r,"failed",{job:i,error:o}))})}).on("paused",()=>{console.info(...Xe(r,"paused"))}).on("resumed",()=>{console.info(...Xe(r,"resumed"))}).on("cleaned",(i,o)=>{console.info(...Xe(r,"cleaned",{},{length:i.length,type:o}))}).on("drained",()=>{console.info(...Xe(r,"drained"))}).on("removed",i=>{console.info(...Xe(r,"removed",{job:i}))})}s(Xb,"logging");var uu={};N(uu,{cleanup:()=>ex,clear:()=>xf,set:()=>bf});var Qs=[];function bf(t,e){let r=setInterval(t,e);return Qs.push(r),r}s(bf,"set");function xf(t){let e=Qs.indexOf(t);e!==-1&&Qs.splice(e,1),clearInterval(t)}s(xf,"clear");function ex(){for(let t of Qs)clearInterval(t);Qs=[]}s(ex,"cleanup");var Gt=F(require("dd-trace")),js=F(require("object-sizeof"));var tx=he.fromMinutes(5).toMs(),rx=he.fromSeconds(30).toMs(),Pf=he.fromSeconds(60).toMs(),Ys=[],cu;async function vT(){for(let t of Ys)await t.clean(Pf,"completed"),await t.clean(Pf,"failed")}s(vT,"cleanup");async function nx(t,e,r){let n=performance.now();try{let i=await e();return Gt.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw Gt.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;Gt.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),Gt.default.dogstatsd.increment(t,1,r)}}s(nx,"withMetrics");function PT(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}s(PT,"jobOptsTags");function ix(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,js.default)(t.data),...PT(t.opts||{})}}s(ix,"jobTags");var ht=class{static{s(this,"BudibaseQueue")}constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:Zr(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:tx,lockRenewTime:rx}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return E.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new vf.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new bT(this.jobQueue,r):n=new vf.default(this.jobQueue,r),xT(n,this.jobQueue,this.opts.removeStalledCb),Ys.push(n),!cu&&!E.isTest()&&(cu=bf(vT,Pf),vT().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=s(async(a,u)=>{await Gt.default.trace("queue.process",async c=>{if(a.data._parentSpanContext){let l=a.data._parentSpanContext,d={traceId:l.traceId,spanId:l.spanId,toTraceId:()=>l.traceId,toSpanId:()=>l.spanId,toTraceparent:()=>""};c.addLink(d)}c.addTags({"queue.name":this.jobQueue,...ix(a)}),this.opts.jobTags&&c.addTags(this.opts.jobTags(a.data)),Gt.default.dogstatsd.distribution("queue.process.sizeBytes",(0,js.default)(a.data),this.metricTags()),await this.withMetrics("queue.process",()=>u?n(a,u):n(a))})},"processCallback"),o;return n.length===1?o=s(a=>i(a),"wrappedCb"):o=i,r?this.queue.process(r,o):this.queue.process(o)}async add(e,r){return await Gt.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,js.default)(e),...PT(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Gt.default.dogstatsd.distribution("queue.add.sizeBytes",(0,js.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return nx(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function sx(){cu&&xf(cu),console.log("Waiting for current queue jobs to finish...");for(let t of Ys)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Ys)await t.close();Ys=[],console.log("Queues shutdown")}s(sx,"shutdown");var to={};N(to,{correlation:()=>Hs,logAlert:()=>un,logAlertWithInfo:()=>Kx,logWarn:()=>ii,logger:()=>Ou,system:()=>Jf});var Hs={};N(Hs,{getId:()=>Nf,setHeader:()=>ox});var NT=require("correlation-id"),ox=s(t=>{let e=NT.getId();e&&(t["x-budibase-correlation-id"]=e)},"setHeader");function Nf(){return NT.getId()}s(Nf,"getId");var _u=F(require("pino")),dS=F(require("pino-pretty")),Zf=F(require("dd-trace")),fS=require("dd-trace/ext");var Jf={};N(Jf,{getLogReadStream:()=>Bx,getSingleFileMaxSizeInfo:()=>lS,localFileDestination:()=>zf});var eo=F(require("fs")),Hf=F(require("path")),oS=F(require("rotating-file-stream"));var Yf={};N(Yf,{ObjectStore:()=>et,ObjectStoreBuckets:()=>ux,SIGNED_FILE_PREFIX:()=>Wf,bucketTTLConfig:()=>lu,budibaseTempDir:()=>an,client3rdPartyLibrary:()=>vx,clientLibraryCDNUrl:()=>Px,clientLibraryPath:()=>zT,clientLibraryUrl:()=>Nx,createBucketIfNotExists:()=>Xs,deleteFile:()=>yx,deleteFiles:()=>Tx,deleteFolder:()=>GT,downloadTarball:()=>Ax,downloadTarballDirect:()=>Sx,enrichPWAImages:()=>Ux,enrichPluginURLs:()=>kx,extractBucketAndPath:()=>Uf,getAllFiles:()=>hx,getAppFileUrl:()=>ZT,getClientCacheKey:()=>JT,getGlobalFileS3Key:()=>XT,getGlobalFileUrl:()=>Lx,getObjectMetadata:()=>_x,getPluginIconKey:()=>rS,getPluginJSKey:()=>tS,getPluginS3Dir:()=>iS,getPresignedUrl:()=>Tr,getReadStream:()=>du,listAllObjects:()=>$f,objectExists:()=>Vf,processAutomationAttachment:()=>lx,processObjectStoreAttachment:()=>FT,retrieve:()=>$T,retrieveDirectory:()=>gx,retrieveToTmp:()=>Ex,sanitizeBucket:()=>be,sanitizeKey:()=>Ee,streamUpload:()=>WT,upload:()=>mx,uploadDirectory:()=>Gf});var pu=require("@aws-sdk/client-s3"),Lf=require("@aws-sdk/lib-storage"),BT=require("@aws-sdk/s3-request-presigner");var yr=F(require("dd-trace")),ti=F(require("fs")),Js=F(require("fs/promises")),kf=F(require("node-fetch")),gr=require("path"),mu=F(require("stream")),Zs=require("stream/promises"),Mf=F(require("tar-fs")),Ff=require("uuid"),Bf=F(require("zlib"));var UT=F(require("fs")),LT=require("os"),zs=F(require("path")),kT=F(require("stream"));var ux={BACKUPS:E.BACKUPS_BUCKET_NAME,APPS:E.APPS_BUCKET_NAME,TEMPLATES:E.TEMPLATES_BUCKET_NAME,GLOBAL:E.GLOBAL_BUCKET_NAME,PLUGINS:E.PLUGIN_BUCKET_NAME,TEMP:E.TEMP_BUCKET_NAME},MT=(0,zs.join)((0,LT.tmpdir)(),".budibase");try{UT.default.mkdirSync(MT)}catch(t){if(t.code!=="EEXIST")throw t}function an(){return MT}s(an,"budibaseTempDir");var lu=s((t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}},"bucketTTLConfig");async function cx(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=zs.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:kT.default.Readable.fromWeb(e.body)}}s(cx,"processUrlAttachment");async function FT(t){let e=Uf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,{stream:i}=await du(r,n),o=zs.default.basename(n);return{bucket:r,path:n,filename:t.filename||o,content:i}}s(FT,"processObjectStoreAttachment");async function lx(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await cx(t):await FT(t)}s(lx,"processAutomationAttachment");var dx=require("sanitize-s3-objectkey"),fx={bucketCreationPromises:{}},Wf="/files/signed",Er={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},px=[Er.html,Er.css,Er.js,Er.json];function Ee(t){return dx(be(t)).replace(/\\/g,"/")}s(Ee,"sanitizeKey");function be(t){return t.replace(new RegExp(Je,"g"),ze)}s(be,"sanitizeBucket");function et(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY},region:E.AWS_REGION};return!E.MINIO_ENABLED&&E.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:E.MINIO_ACCESS_KEY,secretAccessKey:E.MINIO_SECRET_KEY,sessionToken:E.AWS_SESSION_TOKEN}),E.MINIO_URL&&(t.presigning&&E.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=E.MINIO_URL),new pu.S3(e)}s(et,"ObjectStore");async function Xs(t,e){e=be(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=fx.bucketCreationPromises,o=n===404,a=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(o||a){if(o)return i[e]=t.createBucket({Bucket:e}).catch(u=>{if(u.Code!=="BucketAlreadyOwnedByYou")throw u}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}s(Xs,"createBucketIfNotExists");async function mx({bucket:t,filename:e,path:r,type:n,metadata:i,body:o,ttl:a}){let u=e.split(".").pop(),c=r?(await Js.default.open(r)).createReadStream():o,l=et(),d=await Xs(l,t);if(a&&d.created){let g=lu(t,a);await l.putBucketLifecycleConfiguration(g)}let f=n,p=f||(u?Er[u.toLowerCase()]:Er.txt),h={Bucket:be(t),Key:Ee(e),Body:c,ContentType:p};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];h.Metadata=i}return new Lf.Upload({client:l,params:h}).done()}s(mx,"upload");async function WT({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:o}){return await yr.default.trace("streamUpload",async a=>{if(a.addTags({bucketName:t,filename:r,type:n,ttl:o}),!e)throw new Error("Stream to upload is invalid/undefined");let u=r.split(".").pop(),c=et(),l=await Xs(c,t);if(a.addTags({bucketCreated:l.created,bucketExists:l.exists,extension:u}),o&&l.created){let S=lu(t,o);await c.putBucketLifecycleConfiguration(S)}let d=n;d||(d=u?Er[u.toLowerCase()]:Er.txt),a.addTags({contentType:d});let f=be(t),p=Ee(r),h={Bucket:f,Key:p,Body:e,ContentType:d,...i},g=await new Lf.Upload({client:c,params:h}).done(),y=await c.headObject({Bucket:f,Key:p});return a.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}s(WT,"streamUpload");async function $T(t,e){return await yr.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=et(),i={Bucket:be(t),Key:Ee(e)},o=await n.getObject(i);if(!o.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),px.includes(o.ContentType))return r.addTags({string:!0}),o.Body.transformToString();{r.addTags({string:!1});let a=o.Body.transformToWebStream();return mu.default.Readable.fromWeb(a)}})}s($T,"retrieve");async function*$f(t,e){let r=et(),n=s((a={})=>r.listObjectsV2({...a,Bucket:be(t),Prefix:Ee(e)}),"list"),i=!1,o;do{let a={};o&&(a.ContinuationToken=o);let u=await n(a);if(u.Contents)for(let c of u.Contents)yield c;i=!!u.IsTruncated,o=u.NextContinuationToken}while(i&&o)}s($f,"listAllObjects");async function hx(t,e){let r={};return await Ct.parallelForeach($f(t,e),async n=>{if(!n.Key)throw new Error("file.Key must be defined");r[n.Key]=n},5),r}s(hx,"getAllFiles");async function Tr(t,e,r=3600){let n=et({presigning:!0}),i={Bucket:be(t),Key:Ee(e)},o=await(0,BT.getSignedUrl)(n,new pu.GetObjectCommand(i),{expiresIn:r});if(E.MINIO_ENABLED){let a=new URL(o),u=a.pathname,c=a.search;return`${Wf}${u}${c}`}else return o}s(Tr,"getPresignedUrl");async function Ex(t,e){return await yr.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=be(t),e=Ee(e);let n=await $T(t,e),i=(0,gr.join)(an(),(0,Ff.v4)());return r.addTags({outputPath:i}),n instanceof mu.default.Readable?(r.addTags({stream:!0}),await(0,Zs.pipeline)(n,ti.default.createWriteStream(i))):(r.addTags({stream:!1}),ti.default.writeFileSync(i,n)),i})}s(Ex,"retrieveToTmp");async function gx(t,e,r){return await yr.default.trace("retrieveDirectory",async n=>{n.addTags({bucketName:t,path:e});let i=(0,gr.join)(an(),(0,Ff.v4)());await Js.default.mkdir(i,{recursive:!0});let o=0;return await Ct.parallelForeach($f(t,e),async a=>{let{Key:u}=a;!u||r?.some(c=>c.test(u))||(o++,await yr.default.trace("retrieveDirectory.object",async c=>{let l=a.Key;c.addTags({filename:l});let{stream:d}=await du(t,l),f=l.split("/"),p=f.slice(0,f.length-1),h=(0,gr.join)(i,...p);f.length>1&&!ti.default.existsSync(h)&&await Js.default.mkdir(h,{recursive:!0}),await(0,Zs.pipeline)(d,ti.default.createWriteStream((0,gr.join)(i,...f),{mode:420}))}))},5),n.addTags({numObjects:o}),i})}s(gx,"retrieveDirectory");async function yx(t,e){let r=et();await Xs(r,t);let n={Bucket:t,Key:Ee(e)};return r.deleteObject(n)}s(yx,"deleteFile");async function Tx(t,e){let r=et();await Xs(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ee(i)}))}};return r.deleteObjects(n)}s(Tx,"deleteFiles");async function GT(t,e){t=be(t),e=Ee(e);let r=et(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let o={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{o.Delete.Objects.push({Key:a.Key})}),o.Delete.Objects.length&&(await r.deleteObjects(o)).Deleted?.length===1e3)return GT(t,e)}s(GT,"deleteFolder");async function Gf(t,e,r){return await yr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=be(t);let i=await Js.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let o of i){let a=Ee((0,gr.join)(r,o.name)),u=(0,gr.join)(e,o.name);o.isDirectory()?await Gf(t,u,a):await WT({bucket:t,filename:a,stream:ti.default.createReadStream(u)})}return i})}s(Gf,"uploadDirectory");async function Sx(t,e,r={}){e=Ee(e);let n=await(0,kf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,Zs.pipeline)(n.body,Bf.default.createUnzip(),Mf.default.extract(e))}s(Sx,"downloadTarballDirect");async function Ax(t,e,r){e=be(e),r=Ee(r);let n=await(0,kf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,gr.join)(an(),r);return await(0,Zs.pipeline)(n.body,Bf.default.createUnzip(),Mf.default.extract(i)),!E.isTest()&&E.SELF_HOSTED&&await Gf(e,i,r),i}s(Ax,"downloadTarball");async function du(t,e){return await yr.default.trace("getReadStream",async r=>{t=be(t),e=Ee(e),r.addTags({bucketName:t,path:e});let n=et(),i={Bucket:t,Key:e},o=await n.getObject(i);if(!o.Body||!(o.Body instanceof mu.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:o.ContentLength,contentType:o.ContentType}),{stream:o.Body,contentLength:o.ContentLength,contentType:o.ContentType}})}s(du,"getReadStream");async function _x(t,e){t=be(t),e=Ee(e);let r=et(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}s(_x,"getObjectMetadata");async function Vf(t,e){t=be(t),e=Ee(e);let r=et(),n={Bucket:t,Key:e};try{return await r.headObject(n),!0}catch(i){if((i.statusCode||i.$response?.statusCode)===404)return!1;throw i}}s(Vf,"objectExists");function Uf(t){let e=t.split("?")[0],r=new RegExp(`^${Wf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:o}=n.groups;return{bucket:i,path:o}}return null}s(Uf,"extractBucketAndPath");var HT=F(require("querystring"));var Su={};N(Su,{FlagSet:()=>Eu,all:()=>wx,flags:()=>qf,getEnvFlags:()=>QT,init:()=>Ox,isEnabled:()=>Tu,parseEnvFlags:()=>yu,shutdown:()=>Ix,testutils:()=>Kf});var gu=F(require("crypto"));var VT=require("posthog-node"),qT=F(require("dd-trace"));var KT=require("lodash");var hu;function Ox(t){E.POSTHOG_TOKEN&&E.POSTHOG_API_HOST&&!E.SELF_HOSTED&&E.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),hu=new VT.PostHog(E.POSTHOG_TOKEN,{host:E.POSTHOG_API_HOST,personalApiKey:E.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:he.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}s(Ox,"init");function Ix(){hu?.shutdown()}s(Ix,"shutdown");function yu(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let o of i){let a=!0;o.startsWith("!")&&(o=o.slice(1),a=!1),r.push({tenantId:n,key:o,value:a})}return r}s(yu,"parseEnvFlags");function QT(){return yu(E.TENANT_FEATURE_FLAGS||"")}s(QT,"getEnvFlags");var Eu=class{constructor(e){this.flagSchema=e;this.setId=gu.randomUUID()}static{s(this,"FlagSet")}defaults(){return(0,KT.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await qT.default.trace("features.fetch",async e=>{let r=rf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),o=V(),a=new Set;if(za())return i;for(let{tenantId:f,key:p,value:h}of QT())if(!(!f||f!=="*"&&f!==o)&&(n.readFromEnvironmentVars=!0,h===!1&&a.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=h,n[`flags.${p}.source`]="environment"}let u=kt(),c=u?._id;if(!c){let f=ef();f&&(c=gu.createHash("sha512").update(f).digest("hex"))}let l=u?.tenantId;if(l||(l=o),n["identity.type"]=u?.type,n["identity._id"]=u?._id,n.tenantId=l,n.userId=c,hu&&c){n.readFromPostHog=!0;let f=await ri(),p={tenantId:l},h={tenant:{id:l}};f.config.createdVersion&&(h.tenant.createdVersion=f.config.createdVersion),f.createdAt&&(h.tenant.createdAt=`${f.createdAt}`);let m=await hu.getAllFlags(c,{personProperties:p,onlyEvaluateLocally:!0,groups:{tenant:l},groupProperties:h});for(let[g,y]of Object.entries(m))if(this.isFlagName(g)){if(typeof y!="boolean"){console.warn(`Invalid value for posthog flag "${g}": ${y}`);continue}if(!(i[g]===!0||a.has(g)))try{i[g]=y,n[`flags.${g}.source`]="posthog"}catch(S){console.warn(`Error parsing posthog flag "${g}": ${y}`,S)}}}let d=sf();for(let[f,p]of Object.entries(d))this.isFlagName(f)&&typeof p=="boolean"&&(i[f]=p,n[`flags.${f}.source`]="override");nf(this.setId,i);for(let[f,p]of Object.entries(i))n[`flags.${f}.value`]=p;return e?.addTags(n),i})}},qf=new Eu(Nm);async function Tu(t){return await qf.isEnabled(t)}s(Tu,"isEnabled");async function wx(){return await qf.fetch()}s(wx,"all");var Kf={};N(Kf,{setFeatureFlags:()=>jT,withFeatureFlags:()=>Cx});function Dx(){let t={};for(let{tenantId:e,key:r,value:n}of yu(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}s(Dx,"getCurrentFlags");function Rx(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,o]of Object.entries(n))o===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}s(Rx,"buildFlagString");function jT(t,e){let r=Dx();for(let[i,o]of Object.entries(e)){let a=r[t]||{};a[i]=o,r[t]=a}let n=Rx(r);return ys({TENANT_FEATURE_FLAGS:n})}s(jT,"setFeatureFlags");function Cx(t,e,r){let n=jT(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}s(Cx,"withFeatureFlags");var YT=F(require("aws-cloudfront-sign"));var Au;function bx(){if(!E.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Au||(Au=Buffer.from(E.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Au)}s(bx,"getPrivateKey");var xx=s(()=>({keypairId:E.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:bx(),expireTime:new Date().getTime()+1e3*60*60*24}),"getCloudfrontSignParams"),ni=s(t=>{let e=Qf(t);return YT.getSignedUrl(e,xx())},"getPresignedUrl"),Qf=s(t=>{let e="/";return t.startsWith("/")&&(e=""),`${E.CLOUDFRONT_CDN}${e}${t}`},"getUrl");async function zT(t){let e=`${Ee(t)}/budibase-client.js`,r=`${Ee(t)}/budibase-client.new.js`;return await Tu("USE_DYNAMIC_LOADING")&&await Vf(E.APPS_BUCKET_NAME,r)?r:e}s(zT,"clientLibraryPath");function vx(t,e){return`${Ee(t)}/_dependencies/${e}`}s(vx,"client3rdPartyLibrary");async function Px(t,e){let r=await zT(t);return E.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Qf(r)):await Tr(E.APPS_BUCKET_NAME,r)}s(Px,"clientLibraryCDNUrl");async function Nx(t,e){return`/api/assets/client?${await JT(t,e)}`}s(Nx,"clientLibraryUrl");async function JT(t,e){let r,n;try{r=V()}finally{n={appId:t,version:e}}return r&&r!==ae&&(n.tenantId=r),n.dynamic=await Tu("USE_DYNAMIC_LOADING"),HT.default.encode(n)}s(JT,"getClientCacheKey");async function ZT(t){return E.CLOUDFRONT_CDN?ni(t):await Tr(E.APPS_BUCKET_NAME,t)}s(ZT,"getAppFileUrl");async function Ux(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await ZT(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}s(Ux,"enrichPWAImages");var Lx=s(async(t,e,r)=>{let n=XT(t,e);return E.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ni(n)):await Tr(E.GLOBAL_BUCKET_NAME,n)},"getGlobalFileUrl"),XT=s((t,e)=>{let r=`${t}/${e}`;return E.MULTI_TENANCY&&(r=`${V()}/${r}`),r},"getGlobalFileS3Key");async function kx(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await Mx(e),n=await Fx(e);return{...e,jsUrl:r,iconUrl:n}}))}s(kx,"enrichPluginURLs");async function Mx(t){let e=tS(t);return eS(e)}s(Mx,"getPluginJSUrl");async function Fx(t){let e=rS(t);if(e)return eS(e)}s(Fx,"getPluginIconUrl");async function eS(t){return E.CLOUDFRONT_CDN?ni(t):await Tr(E.PLUGIN_BUCKET_NAME,t)}s(eS,"getPluginUrl");function tS(t){return nS(t,"plugin.min.js")}s(tS,"getPluginJSKey");function rS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return nS(t,e)}s(rS,"getPluginIconKey");function nS(t,e){return`${iS(t.name)}/${e}`}s(nS,"getPluginS3Key");function iS(t){let e=`${t}`;return E.MULTI_TENANCY&&(e=`${V()}/${e}`),E.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}s(iS,"getPluginS3Dir");var aS="budibase.log",uS="budibase-logs-history.txt",cS=Hf.default.join(an(),"systemlogs");function sS(t){return Hf.default.join(cS,t)}s(sS,"getFullPath");function lS(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}s(lS,"getSingleFileMaxSizeInfo");function zf(){let t=lS(E.ROLLING_LOG_MAX_SIZE);return oS.createStream(aS,{size:t?.size,path:cS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:uS,initialRotation:!1})}s(zf,"localFileDestination");function Bx(){let t=[],e=sS(uS);if(eo.default.existsSync(e)){let i=eo.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let o of i.filter(a=>a))t.push(eo.default.readFileSync(o))}return t.push(eo.default.readFileSync(sS(aS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}s(Bx,"getLogReadStream");function Wx(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}s(Wx,"isPlainObject");function $x(t){return t instanceof Error}s($x,"isError");function Gx(t){return typeof t=="string"}s(Gx,"isMessage");var Sr;if(!E.DISABLE_PINO_LOGGER){let t=E.LOG_LEVEL,e={level:t,formatters:{level:c=>({level:c.toUpperCase()}),bindings:()=>E.SELF_HOSTED?{service:E.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(E.isDev()?{stream:(0,dS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),E.SELF_HOSTED&&r.push({stream:zf(),level:t}),Sr=r.length?(0,_u.default)(e,_u.default.multistream(r)):(0,_u.default)(e);let n=s(c=>{let l,d=[],f="";c.forEach(y=>{Gx(y)&&(f=`${f} ${y}`.trimStart()),Wx(y)&&d.push(y),$x(y)&&(l=y)});let p=u(),h={};h={tenantId:i(),appId:o(),automationId:a(),identityId:p?._id,identityType:p?.type,correlationId:Nf()};let m=Zf.default.scope().active();m&&Zf.default.inject(m.context(),fS.formats.LOG,h);let g={err:l,pid:process.pid,...h};if(d.length){let y={},S=0;for(let O=0;O<d.length;O++){let _=d[O],D=_._logKey;D?(delete _._logKey,g[D]=_):(y[S]=_,S++)}Object.keys(y).length&&(g.data=y)}return[g,f]},"getLogParams");console.log=(...c)=>{let[l,d]=n(c);Sr?.info(l,d)},console.info=(...c)=>{let[l,d]=n(c);Sr?.info(l,d)},console.warn=(...c)=>{let[l,d]=n(c);Sr?.warn(l,d)},console.error=(...c)=>{let[l,d]=n(c);Sr?.error(l,d)},console.trace=(...c)=>{let[l,d]=n(c);l.err||(l.err=new Error),Sr?.trace(l,d)},console.debug=(...c)=>{let[l,d]=n(c);Sr?.debug(l,d)};let i=s(()=>{let c;try{c=V()}catch{}return c},"getTenantId"),o=s(()=>{let c;try{c=Ue()}catch{}return c},"getAppId"),a=s(()=>{let c;try{c=Xd()}catch{}return c},"getAutomationId"),u=s(()=>{let c;try{c=kt()}catch{}return c},"getIdentity")}var Ou=Sr;var Vx=["AccountError"];function qx(t){return t&&t.suppressAlert}s(qx,"isSuppressed");function un(t,e){e&&Vx.includes(e.name)&&qx(e)||console.error(`bb-alert: ${t}`,e)}s(un,"logAlert");function Kx(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,un(t,n)}s(Kx,"logAlertWithInfo");function ii(t,e){console.warn(`bb-warn: ${t}`,e)}s(ii,"logWarn");var Iu=class extends Error{static{s(this,"UnretriableError")}constructor(e){super(e),this.name="PermanentError"}},Xf=class{static{s(this,"QueuedProcessor")}constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:o=!0,maxStalledCount:a=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new ht(e,{maxStalledCount:a,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:o}}),this._queue.process(async(u,c)=>{try{let l=await this.processFn(u.data);c?.(null,l)}catch(l){l instanceof Iu&&await u.discard(),un(`Failed to process job in ${this._queue.name}`,l),c?.(l)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await Ne.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var Qx=100,wu,ro=class t{static{s(this,"DocWritethroughProcessor")}static get queue(){return t._queue||(t._queue=new ht("docWritethroughQueue",{jobOptions:{attempts:Qx}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){if(r.startsWith("scimlog"))return;let i=De(e),o;try{o=await i.get(r)}catch{o={_id:r}}o={...o,...n},await i.put(o)}},tp=class{static{s(this,"DocWritethrough")}constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await ro.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function pS(){return wu=new ro().init(),wu}s(pS,"init");function jx(){return wu||pS()}s(jx,"getProcessor");var io={};N(io,{CacheKey:()=>ye,TTL:()=>dn,bustCache:()=>si,destroy:()=>no,get:()=>fn,keys:()=>Du,store:()=>qt,withCache:()=>Ar,withCacheWithDynamicTTL:()=>mS});function It(t){let e=V();return`${t}:${e}`}s(It,"generateTenantKey");var cn=class{static{s(this,"BaseCache")}constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await cf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>It(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?It(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((o,[a,u])=>(o[It(a)]=u,o),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?It(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>It(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let o=await this.get(e,i);if(o)return o;try{let a=await n();return await this.store(e,a,r,i),a}catch(a){throw console.error("Error fetching before cache - ",a),a}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let o=await r(),{value:a,ttl:u}=o;return await this.store(e,a,u,{useTenancy:n.useTenancy}),a}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(It(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?It(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ln=new cn,ye={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:t=>`oauth2Token_${t}`},dn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(dn||{}),Du=s((...t)=>ln.keys(...t),"keys"),fn=s((...t)=>ln.get(...t),"get"),qt=s((...t)=>ln.store(...t),"store"),no=s((...t)=>ln.delete(...t),"destroy"),Ar=s((...t)=>ln.withCache(...t),"withCache"),mS=s((...t)=>ln.withCacheWithDynamicTTL(...t),"withCacheWithDynamicTTL"),si=s((...t)=>ln.bustCache(...t),"bustCache");var ip={};N(ip,{createCode:()=>Hx,deleteCode:()=>Jx,getCode:()=>zx,getExistingInvites:()=>np,getInviteCodes:()=>ES,updateCode:()=>Yx});var hS=he.fromDays(7).toSeconds();async function Yx(t,e){await(await nn()).store(t,e,hS)}s(Yx,"updateCode");async function Hx(t,e){let r=ne();return await(await nn()).store(r,{email:t,info:e},hS),r}s(Hx,"createCode");async function zx(t){let r=await(await nn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}s(zx,"getCode");async function Jx(t){await(await nn()).delete(t)}s(Jx,"deleteCode");async function ES(){let r=(await(await nn()).scan()).map(i=>({...i.value,code:i.key}));if(!E.MULTI_TENANCY)return r;let n=V();return r.filter(i=>n===i.info.tenantId)}s(ES,"getInviteCodes");async function np(t){return(await ES()).filter(e=>t.includes(e.email))}s(np,"getExistingInvites");var sp={};N(sp,{createCode:()=>Xx,getCode:()=>ev,invalidateCode:()=>tv});var Zx=he.fromHours(1).toSeconds();async function Xx(t,e){let r=ne();return await(await Ls()).store(r,{userId:t,info:e},Zx),r}s(Xx,"createCode");async function ev(t){let r=await(await Ls()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}s(ev,"getCode");async function tv(t){await(await Ls()).delete(t)}s(tv,"invalidateCode");var Dr={};N(Dr,{getUser:()=>Io,getUsers:()=>xU,invalidateUser:()=>wo});var so={};N(so,{getPlatformDB:()=>_r,users:()=>Et});var Et={};N(Et,{addSsoUser:()=>yS,addUser:()=>av,getUserDoc:()=>gS,lookupTenantId:()=>rv,removeUser:()=>uv,updateUserDoc:()=>nv});function _r(){return De(fe.PLATFORM_INFO.name)}s(_r,"getPlatformDB");async function rv(t){return E.MULTI_TENANCY?(await gS(t)).tenantId:ae}s(rv,"lookupTenantId");async function gS(t){return _r().get(t)}s(gS,"getUserDoc");async function nv(t){await _r().put(t)}s(nv,"updateUserDoc");function iv(t,e){return{_id:t,tenantId:e}}s(iv,"newUserIdDoc");function sv(t,e,r){return{_id:e,userId:t,tenantId:r}}s(sv,"newUserEmailDoc");function ov(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}s(ov,"newUserSsoIdDoc");async function op(t,e){let r=_r(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}s(op,"addUserDoc");async function yS(t,e,r,n){return op(t,()=>ov(t,e,r,n))}s(yS,"addSsoUser");async function av(t,e,r,n){let i=[op(e,()=>iv(e,t)),op(r,()=>sv(e,r,t))];n&&i.push(yS(n,r,e,t)),await Promise.all(i)}s(av,"addUser");async function uv(t){let e=_r(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}s(uv,"removeUser");var pn={};N(pn,{getAccount:()=>Or,getAccountByTenantId:()=>oi,getStatus:()=>cv});var TS=F(require("node-fetch"));var oo=class{static{s(this,"API")}constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Hs.setHeader(n.headers);let o={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,TS.default)(`${this.host}${r}`,o)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var ap=new oo(E.INTERNAL_ACCOUNT_PORTAL_URL),up=E.SELF_HOSTED||E.DISABLE_ACCOUNT_PORTAL,Or=s(async t=>{if(up)return;let e={email:t},r=await ap.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},"getAccount"),oi=s(async t=>{if(up)return;let e={tenantId:t},r=await ap.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},"getAccountByTenantId"),cv=s(async()=>{if(up)return;let t=await ap.get("/api/status",{headers:{"x-budibase-api-key":E.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e},"getStatus");var li={};N(li,{UserDB:()=>wt,addAppBuilder:()=>DU,bulkGetGlobalUsersById:()=>Hu,bulkUpdateGlobalUsers:()=>Ao,cleanseUserObject:()=>xp,creatorsInList:()=>hn,doesUserExist:()=>AU,getAccountHolderFromUsers:()=>ju,getAllUserIds:()=>TU,getAllUsers:()=>SU,getById:()=>gn,getCreatorCount:()=>IU,getExistingAccounts:()=>ci,getExistingPlatformUsers:()=>rA,getExistingTenantUsers:()=>tA,getFirstPlatformUser:()=>yo,getGlobalUserByAppPage:()=>dA,getGlobalUserByEmail:()=>yt,getPlatformUsers:()=>Lu,getUserCount:()=>OU,hasAdminPermissions:()=>Ir,hasAppBuilderPermissions:()=>sA,hasBuilderPermissions:()=>tt,isAdmin:()=>wr,isAdminOrBuilder:()=>iA,isBuilder:()=>mi,isCreatorAsync:()=>To,isCreatorSync:()=>Ku,isGlobalBuilder:()=>nA,paginatedUsers:()=>pA,removeAppBuilder:()=>RU,removePortalUserPermissions:()=>wU,searchExistingEmails:()=>Tp,searchGlobalUsersByApp:()=>zu,searchGlobalUsersByAppAccess:()=>bp,searchGlobalUsersByEmail:()=>fA,validateUniqueUser:()=>Qu});var ui={};N(ui,{account:()=>vS,action:()=>PS,ai:()=>MS,analytics:()=>Cu,app:()=>NS,auditLog:()=>ZS,auth:()=>Uu,automation:()=>US,backfill:()=>jS,backfillCache:()=>Pu,backup:()=>zS,datasource:()=>LS,email:()=>kS,environmentVariable:()=>JS,group:()=>YS,identification:()=>gt,initAsyncEvents:()=>nU,installation:()=>fo,layout:()=>BS,license:()=>FS,org:()=>WS,plugin:()=>HS,processors:()=>lp,publishEvent:()=>A,query:()=>$S,role:()=>go,rowAction:()=>XS,rows:()=>VS,screen:()=>GS,serve:()=>KS,shutdown:()=>iU,table:()=>qS,user:()=>Le,view:()=>QS,workspace:()=>eA});var lp={};N(lp,{analyticsProcessor:()=>DS,init:()=>Tv,processors:()=>Kt});var Cu={};N(Cu,{enabled:()=>Ru});var Ru=s(async()=>bu(),"enabled");var IS=require("posthog-node");var lv=s(t=>t==="served:builder"||t==="served:app:preview"||t==="served:app","isRateLimited"),dv=s(t=>t==="served:app:preview"||t==="served:app","isPerApp");var AS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},_S=s(async t=>{if(!lv(t))return!1;let e=await fv(t);if(e){let r=new Date(e.timestamp);switch(AS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await SS(t,{timestamp:Date.now()}),!1):!0}}else return await SS(t,{timestamp:Date.now()}),!1},"limited"),OS=s(t=>{let e=`${ye.EVENTS_RATE_LIMIT}:${t}`;return dv(t)&&(e=e+":"+Ue()),e},"eventKey"),fv=s(async t=>{let e=OS(t);return await fn(e)},"readEvent"),SS=s(async(t,e)=>{let r=OS(t),n=AS[t],i;switch(n){case"calendarDay":i=86400}await qt(r,e,i)},"recordEvent");var mv=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ao=class{static{s(this,"PosthogProcessor")}constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new IS.PostHog(e)}async processEvent(e,r,n,i){if(mv.includes(e)||await _S(e))return;n=this.clearPIIProperties(n),n.version=E.VERSION,n.service=E.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let o=Ue();o&&(n.appId=o);let a={distinctId:r.id,event:e,properties:n};i&&(a.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(a.groups={},r.installationId&&(a.groups.installation=r.installationId,a.properties.installationId=r.installationId),r.tenantId&&(a.groups.tenant=r.tenantId,a.properties.tenantId=r.tenantId)),this.posthog.capture(a)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var wS=ao;var hv=["installation:version:upgraded","installation:version:downgraded"],Ev=["installation","tenant"],uo=class{static{s(this,"AnalyticsProcessor")}constructor(){E.POSTHOG_TOKEN&&!E.isTest()&&(this.posthog=new wS(E.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!hv.includes(e)&&!await Ru()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!Ev.includes(e.type)&&!await Ru()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var cp=E.SELF_HOSTED&&!E.isDev(),co=class{static{s(this,"LoggingProcessor")}async processEvent(e,r,n){cp||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){cp||console.log("[audit] identified",e)}async identifyGroup(e){cp||console.log("[audit] group identified",e)}async shutdown(){}};var ai=class t{static{s(this,"AuditLogsProcessor")}static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new ht("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Re(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let o={};E.ENABLE_AUDIT_LOG_IP_ADDR&&(o=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:o})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Df(e)){let o=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:o,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:V()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var lo=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}static{s(this,"Processor")}async processEvent(e,r,n,i){for(let o of this.processors)await o.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var DS=new uo,gv=new co,yv=new ai;function Tv(t){return ai.init(t)}s(Tv,"init");var Kt=new lo([DS,gv,yv]);var xu={};N(xu,{checkInstallVersion:()=>_v,getInstall:()=>po,getInstallFromDB:()=>fp});var dp=F(require("semver"));var po=s(async()=>Ar(ye.INSTALLATION,86400,fp,{useTenancy:!1}),"getInstall");async function Sv(t){let e={_id:fe.PLATFORM_INFO.docs.install,installId:ne(),version:E.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return fp();throw r}}s(Sv,"createInstallDoc");var fp=s(async()=>qe(fe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(fe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await Sv(t);else throw r}return e}),"getInstallFromDB"),Av=s(async t=>{try{await qe(fe.PLATFORM_INFO.name,async e=>{let r=await po();r.version=t,await e.put(r),await si(ye.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},"updateVersion"),_v=s(async()=>{let t=await po(),e=t.version,r=E.VERSION;try{if(e!==r){let n=dp.default.gt(r,e),i=dp.default.lt(r,e);await Av(r)&&(await Ss({_id:t.installId,type:"installation"},async()=>{n?await fo.upgraded(e,r):i&&await fo.downgraded(e,r)}),await gt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?un(`Invalid version "${r}" - is it semver?`):un("Failed to retrieve version",n)}},"checkInstallVersion");var Ov=s(async()=>{let t=Ld(),e=Eo(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await mn(),i=mo();return{id:RS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await mn(),i=await vu(V()),o=mo();return{id:RS(i,r),type:r,hosting:o,installationId:n,tenantId:i,realTenantId:V(),environment:e}}else if(r==="user"){let n=t,i=await vu(V()),o=await mn(),a=n.account,u;return a?u=a.hosting:u=mo(),{id:n._id,type:r,hosting:u,installationId:o,tenantId:i,environment:e,realTenantId:V(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},"getCurrentIdentity"),Iv=s(async(t,e)=>{let r=t,n="installation",i=mo(),o=E.VERSION,a=Eo(),u={id:r,type:n,hosting:i,version:o,environment:a};await pp(u,e),await ho({...u,id:`$${n}_${r}`},e)},"identifyInstallationGroup"),wv=s(async(t,e,r,n=E.VERSION)=>{let i=await vu(t),o="tenant",a=await mn(),u=Eo(),c={id:i,type:o,hosting:e,environment:u,installationId:a,createdAt:r,createdVersion:n};await pp(c,r),await ho({...c,id:`$${o}_${i}`},r)},"identifyTenantGroup"),Dv=s(async(t,e,r)=>{let n=t._id,i=await vu(t.tenantId),o="user",a=tt(t),u=Ir(t),c;$o(t)&&(c=t.providerType);let d=(await ci([t.email])).length>0,f=!!e&&d&&e.verified,p=await mn(),h=e?e.hosting:mo(),m=Eo();await ho({id:n,type:o,hosting:h,installationId:p,tenantId:i,verified:f,accountHolder:d,providerType:c,builder:a,admin:u,environment:m},r)},"identifyUser"),Rv=s(async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Wo(t)?t.providerType:void 0,o=t.verified,a=!0,u=t.hosting,c=await mn(),l=Eo();if(Bo(t)){let f=await yt(t.email);f?._id&&(e=f._id)}await ho({id:e,type:n,hosting:u,installationId:c,tenantId:r,providerType:i,verified:o,accountHolder:a,environment:l})},"identifyAccount"),ho=s(async(t,e)=>{await Kt.identify(t,e)},"identify"),pp=s(async(t,e)=>{await Kt.identifyGroup(t,e)},"identifyGroup"),Eo=s(()=>E.isDev()?"development":E.DEPLOYMENT_ENVIRONMENT,"getDeploymentEnvironment"),mo=s(()=>E.SELF_HOSTED?"self":"cloud","getHostingFromEnv"),mn=s(async()=>Cv()?"account-portal":(await po()).installId,"getInstallationId"),vu=s(async t=>E.SELF_HOSTED?CS(t):t,"getEventTenantId"),CS=s(async t=>Re(t,()=>Ar(ye.UNIQUE_TENANT_ID,86400,async()=>{let e=H(),r=await ri(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ne()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=E.VERSION,await e.put(r),n)})),"getUniqueTenantId"),Cv=s(()=>E.SERVICE==="account-portal","isAccountPortal"),RS=s((t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,"formatDistinctId"),gt={getCurrentIdentity:Ov,identifyInstallationGroup:Iv,identifyTenantGroup:wv,identifyUser:Dv,identifyAccount:Rv,identify:ho,identifyGroup:pp,getInstallationId:mn,getUniqueTenantId:CS};var Pu={};N(Pu,{end:()=>xv,isAlreadySent:()=>Ep,isBackfillingEvent:()=>hp,recordEvent:()=>mp,start:()=>bv});var bv=s(async t=>Pv({eventWhitelist:t}),"start"),mp=s(async(t,e)=>{let r=gp(t,e);await qt(r,e,void 0,{useTenancy:!1})},"recordEvent"),xv=s(async()=>{await Nv(),await Uv()},"end"),vv=s(async()=>fn(ye.BACKFILL_METADATA),"getBackfillMetadata"),Pv=s(async t=>qt(ye.BACKFILL_METADATA,t),"saveBackfillMetadata"),Nv=s(async()=>{await no(ye.BACKFILL_METADATA)},"deleteBackfillMetadata"),Uv=s(async()=>{let t=gp(),e=await Du(t);for(let r of e)await no(r,{useTenancy:!1})},"clearEvents"),hp=s(async t=>{let r=(await vv())?.eventWhitelist;return!!(r&&r.includes(t))},"isBackfillingEvent"),Ep=s(async(t,e)=>{let r=gp(t,e);return!!await fn(r,{useTenancy:!1})},"isAlreadySent"),Lv={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},gp=s((t,e)=>{let r,n=V();if(t){r=`${ye.EVENTS}:${n}:${t}`;let i=Lv[t],o=i?i(e):void 0;o&&(r=`${r}:${o}`)}else r=`${ye.EVENTS}:${n}:*`;return r},"getEventKey");var Qt;function Nu(){Qt=new ht("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}s(Nu,"init");async function bS(){Qt&&await Qt.close()}s(bS,"shutdown");async function xS(t){Qt||Nu();let{event:e,identity:r}=t;Cm.indexOf(e)!==-1&&r.tenantId&&await Qt.add(t)}s(xS,"publishAsyncEvent");var A=s(async(t,e,r,n)=>{let i=n||await gt.getCurrentIdentity();if(!(n?!1:await hp(t))){await xS({event:t,identity:i,properties:e,timestamp:r}),await Kt.processEvent(t,i,e,r);return}await Ep(t,e)||(await Kt.processEvent(t,i,e,r),await mp(t,e))},"publishEvent");async function kv(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}s(kv,"created");async function Mv(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}s(Mv,"deleted");async function Fv(t){let e={tenantId:t.tenantId};await A("account:verified",e)}s(Fv,"verified");var vS={created:kv,deleted:Mv,verified:Fv};async function Bv(t,e){await A("action:automation_step:executed",t,e)}s(Bv,"automationStepExecuted");async function Wv(t,e){await A("action:crud:executed",t,e)}s(Wv,"crudExecuted");async function $v(t,e){await A("action:ai_agent:executed",t,e)}s($v,"aiAgentExecuted");var PS={aiAgentExecuted:$v,automationStepExecuted:Bv,crudExecuted:Wv};var Gv=s(async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)},"created");async function Vv(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}s(Vv,"updated");async function qv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}s(qv,"deleted");async function Kv(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}s(Kv,"published");async function Qv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}s(Qv,"unpublished");async function jv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}s(jv,"fileImported");async function Yv(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}s(Yv,"duplicated");async function Hv(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}s(Hv,"templateImported");async function zv(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}s(zv,"versionUpdated");async function Jv(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}s(Jv,"versionReverted");async function Zv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}s(Zv,"reverted");async function Xv(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}s(Xv,"exported");var NS={created:Gv,updated:Vv,deleted:qv,published:Kv,unpublished:Qv,fileImported:jv,duplicated:Yv,templateImported:Hv,versionUpdated:zv,versionReverted:Jv,reverted:Zv,exported:Xv};async function eP(t,e){let n={userId:(await gt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}s(eP,"login");async function tP(t){let r={userId:(await gt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}s(tP,"logout");async function rP(t,e){let r={type:t};await A("auth:sso:created",r,e)}s(rP,"SSOCreated");async function nP(t){let e={type:t};await A("auth:sso:updated",e)}s(nP,"SSOUpdated");async function iP(t,e){let r={type:t};await A("auth:sso:activated",r,e)}s(iP,"SSOActivated");async function sP(t){let e={type:t};await A("auth:sso:deactivated",e)}s(sP,"SSODeactivated");var Uu={login:eP,logout:tP,SSOCreated:rP,SSOUpdated:nP,SSOActivated:iP,SSODeactivated:sP};async function oP(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}s(oP,"created");async function aP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}s(aP,"triggerUpdated");async function uP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}s(uP,"deleted");async function cP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}s(cP,"tested");var lP=s(async(t,e)=>{let r={count:t};await A("automations:run",r,e)},"run");async function dP(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}s(dP,"stepCreated");async function fP(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}s(fP,"stepDeleted");var US={created:oP,triggerUpdated:aP,deleted:uP,tested:cP,run:lP,stepCreated:dP,stepDeleted:fP};function yp(t){return!Object.values(Lo).includes(t.source)}s(yp,"isCustom");async function pP(t,e){let r={datasourceId:t._id,source:t.source,custom:yp(t)};await A("datasource:created",r,e)}s(pP,"created");async function mP(t){let e={datasourceId:t._id,source:t.source,custom:yp(t)};await A("datasource:updated",e)}s(mP,"updated");async function hP(t){let e={datasourceId:t._id,source:t.source,custom:yp(t)};await A("datasource:deleted",e)}s(hP,"deleted");var LS={created:pP,updated:mP,deleted:hP};async function EP(t){let e={};await A("email:smtp:created",e,t)}s(EP,"SMTPCreated");async function gP(){let t={};await A("email:smtp:updated",t)}s(gP,"SMTPUpdated");var kS={SMTPCreated:EP,SMTPUpdated:gP};async function yP(t){let e={};await A("ai:config:created",e,t)}s(yP,"AIConfigCreated");async function TP(){let t={};await A("ai:config:updated",t)}s(TP,"AIConfigUpdated");var MS={AIConfigCreated:yP,AIConfigUpdated:TP};async function SP(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}s(SP,"planChanged");async function AP(t){let e={accountId:t.accountId};await A("license:activated",e)}s(AP,"activated");async function _P(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}s(_P,"checkoutOpened");async function OP(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}s(OP,"checkoutSuccess");async function IP(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}s(IP,"portalOpened");async function wP(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}s(wP,"paymentFailed");async function DP(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}s(DP,"paymentRecovered");var FS={planChanged:SP,activated:AP,checkoutOpened:_P,checkoutSuccess:OP,portalOpened:IP,paymentFailed:wP,paymentRecovered:DP};async function RP(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}s(RP,"created");async function CP(t){let e={layoutId:t};await A("layout:deleted",e)}s(CP,"deleted");var BS={created:RP,deleted:CP};async function bP(t){let e={};await A("org:info:name:updated",e,t)}s(bP,"nameUpdated");async function xP(t){let e={};await A("org:info:logo:updated",e,t)}s(xP,"logoUpdated");async function vP(t){let e={};await A("org:platformurl:updated",e,t)}s(vP,"platformURLUpdated");async function PP(){let t={};await A("analytics:opt:out",t)}s(PP,"analyticsOptOut");async function NP(){let t={};await A("analytics:opt:out",t)}s(NP,"analyticsOptIn");var WS={nameUpdated:bP,logoUpdated:xP,platformURLUpdated:vP,analyticsOptOut:PP,analyticsOptIn:NP};var UP=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},"created"),LP=s(async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},"updated"),kP=s(async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},"deleted"),MP=s(async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},"imported"),FP=s(async(t,e)=>{let r={count:t};await A("queries:run",r,e)},"run"),BP=s(async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},"previewed"),$S={created:UP,updated:LP,deleted:kP,imported:MP,run:FP,previewed:BP};async function WP(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}s(WP,"created");async function $P(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}s($P,"updated");async function GP(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}s(GP,"deleted");async function VP(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}s(VP,"assigned");async function qP(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}s(qP,"unassigned");var go={created:WP,updated:$P,deleted:GP,assigned:VP,unassigned:qP};async function KP(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}s(KP,"created");async function QP(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}s(QP,"deleted");var GS={created:KP,deleted:QP};var jP=s(async(t,e)=>{let r={count:t};await A("rows:created",r,e)},"created"),YP=s(async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},"imported"),VS={created:jP,imported:YP};async function HP(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}s(HP,"created");async function zP(t,e){let r,n;for(let o in e.schema)if(!t.schema[o]){let a=e.schema[o];"default"in a&&a.default!=null&&(r=!0),a.type==="ai"&&(n=a.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}s(zP,"updated");async function JP(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}s(JP,"deleted");async function ZP(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}s(ZP,"exported");async function XP(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}s(XP,"imported");var qS={created:HP,updated:zP,deleted:JP,exported:ZP,imported:XP};async function eN(t){let e={timezone:t};await A("served:builder",e)}s(eN,"servedBuilder");async function tN(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}s(tN,"servedApp");async function rN(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}s(rN,"servedAppPreview");var KS={servedBuilder:eN,servedApp:tN,servedAppPreview:rN};async function nN(t,e){let r={userId:t._id,viaScim:pt(),audited:{email:t.email}};await A("user:created",r,e)}s(nN,"created");async function iN(t){let e={userId:t._id,viaScim:pt(),audited:{email:t.email}};await A("user:updated",e)}s(iN,"updated");async function sN(t){let e={userId:t._id,viaScim:pt(),audited:{email:t.email}};await A("user:deleted",e)}s(sN,"deleted");async function oN(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}s(oN,"permissionAdminAssigned");async function aN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}s(aN,"permissionAdminRemoved");async function uN(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}s(uN,"permissionBuilderAssigned");async function cN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}s(cN,"permissionBuilderRemoved");async function lN(t){let e={audited:{email:t}};await A("user:invited",e)}s(lN,"invited");async function dN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}s(dN,"inviteAccepted");async function fN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}s(fN,"passwordForceReset");async function pN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}s(pN,"passwordUpdated");async function mN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}s(mN,"passwordResetRequested");async function hN(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}s(hN,"passwordReset");async function EN(t){let e={users:t};await A("user:data:collaboration",e)}s(EN,"dataCollaboration");var Le={created:nN,updated:iN,deleted:sN,permissionAdminAssigned:oN,permissionAdminRemoved:aN,permissionBuilderAssigned:uN,permissionBuilderRemoved:cN,invited:lN,inviteAccepted:dN,passwordForceReset:fN,passwordUpdated:pN,passwordResetRequested:mN,passwordReset:hN,dataCollaboration:EN};async function gN(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}s(gN,"created");async function yN(t){let e={tableId:t.tableId};await A("view:updated",e)}s(yN,"updated");async function TN(t,e){let r={...Ne.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}s(TN,"deleted");async function SN(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}s(SN,"exported");async function AN({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}s(AN,"filterCreated");async function _N({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}s(_N,"filterUpdated");async function ON(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}s(ON,"filterDeleted");async function IN({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}s(IN,"calculationCreated");async function wN(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}s(wN,"calculationUpdated");async function DN(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}s(DN,"calculationDeleted");async function RN(t,e){let r={tableId:t};await A("view:join:created",r,e)}s(RN,"viewJoinCreated");var QS={created:gN,updated:yN,deleted:TN,exported:SN,filterCreated:AN,filterUpdated:_N,filterDeleted:ON,calculationCreated:IN,calculationUpdated:wN,calculationDeleted:DN,viewJoinCreated:RN};async function CN(t){let e={currentVersion:t};await A("installation:version:checked",e)}s(CN,"versionChecked");async function bN(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}s(bN,"upgraded");async function xN(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}s(xN,"downgraded");async function vN(){let t={};await A("installation:firstStartup",t)}s(vN,"firstStartup");var fo={versionChecked:CN,upgraded:bN,downgraded:xN,firstStartup:vN};var di=!E.SELF_HOSTED&&!E.isDev();async function PN(t){di||await A("app:backfill:succeeded",t)}s(PN,"appSucceeded");async function NN(t){if(di)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}s(NN,"appFailed");async function UN(t){di||await A("tenant:backfill:succeeded",t)}s(UN,"tenantSucceeded");async function LN(t){if(di)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}s(LN,"tenantFailed");async function kN(){if(di)return;let t={};await A("installation:backfill:succeeded",t)}s(kN,"installationSucceeded");async function MN(t){if(di)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}s(MN,"installationFailed");var jS={appSucceeded:PN,appFailed:NN,tenantSucceeded:UN,tenantFailed:LN,installationSucceeded:kN,installationFailed:MN};async function FN(t,e){let r={groupId:t._id,viaScim:pt(),audited:{name:t.name}};await A("user_group:created",r,e)}s(FN,"created");async function BN(t){let e={groupId:t._id,viaScim:pt(),audited:{name:t.name}};await A("user_group:updated",e)}s(BN,"updated");async function WN(t){let e={groupId:t._id,viaScim:pt(),audited:{name:t.name}};await A("user_group:deleted",e)}s(WN,"deleted");async function $N(t,e){let r={count:t,groupId:e._id,viaScim:pt(),audited:{name:e.name}};await A("user_group:user_added",r)}s($N,"usersAdded");async function GN(t,e){let r={count:t,groupId:e._id,viaScim:pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}s(GN,"usersDeleted");async function VN(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}s(VN,"createdOnboarding");async function qN(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}s(qN,"permissionsEdited");var YS={created:FN,updated:BN,deleted:WN,usersAdded:$N,usersDeleted:GN,createdOnboarding:VN,permissionsEdited:qN};async function KN(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}s(KN,"init");async function QN(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}s(QN,"imported");async function jN(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}s(jN,"deleted");var HS={init:KN,imported:QN,deleted:jN};async function YN(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}s(YN,"appBackupRestored");async function HN(t,e,r,n,i){let o={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",o)}s(HN,"appBackupTriggered");var zS={appBackupRestored:YN,appBackupTriggered:HN};async function zN(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}s(zN,"created");async function JN(t){let e={name:t};await A("environment_variable:deleted",e)}s(JN,"deleted");async function ZN(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}s(ZN,"upgradePanelOpened");var JS={created:zN,deleted:JN,upgradePanelOpened:ZN};async function XN(t){let e={filters:t};await A("audit_log:filtered",e)}s(XN,"filtered");async function eU(t){let e={filters:t};await A("audit_log:downloaded",e)}s(eU,"downloaded");var ZS={filtered:XN,downloaded:eU};async function tU(t,e){await A("row_action:created",t,e)}s(tU,"created");var XS={created:tU};async function rU(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}s(rU,"deleted");var eA={deleted:rU};function nU(){}s(nU,"initAsyncEvents");var iU=s(async()=>{await Kt.shutdown(),console.log("Events shutdown")},"shutdown");var Sp={};N(Sp,{creatorsInList:()=>hn,getAccountHolderFromUsers:()=>ju,hasAdminPermissions:()=>Ir,hasAppBuilderPermissions:()=>sA,hasBuilderPermissions:()=>tt,isAdmin:()=>wr,isAdminOrBuilder:()=>iA,isBuilder:()=>mi,isCreatorAsync:()=>To,isCreatorSync:()=>Ku,isGlobalBuilder:()=>nA,validateUniqueUser:()=>Qu});async function Tp(t){let e=[],r=await tA(t);e.push(...r.map(a=>a.email));let n=await rA(t);e.push(...n.map(a=>a._id));let i=await ci(t);e.push(...i.map(a=>a.email));let o=await np(t);return e.push(...o.map(a=>a.email)),[...new Set(e.map(a=>a.toLowerCase()))]}s(Tp,"searchExistingEmails");async function Lu(t){return await Ws("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}s(Lu,"getPlatformUsers");async function yo(t){return(await Lu(t))[0]??null}s(yo,"getFirstPlatformUser");async function tA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await Bt("by_email2",r,void 0,n)}s(tA,"getExistingTenantUsers");async function rA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Ws("platform_users_lowercase_2",r)}s(rA,"getExistingPlatformUsers");async function ci(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Ws("account_by_email",r)}s(ci,"getExistingAccounts");var qu={};N(qu,{BadRequestError:()=>Fu,BudibaseError:()=>fi,EmailUnavailableError:()=>jt,FeatureDisabledError:()=>Gu,ForbiddenError:()=>Bu,HTTPError:()=>we,InvalidAPIKeyError:()=>pi,NotFoundError:()=>Mu,NotImplementedError:()=>Wu,UnexpectedError:()=>ku,UsageLimitError:()=>$u,getPublicError:()=>Vu});var fi=class extends Error{constructor(r,n){super(r);this.code=n}static{s(this,"BudibaseError")}},Vu=s(t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},"getPublicError"),we=class t extends fi{constructor(r,n,i="http"){super(r,i);this.status=n}static{s(this,"HTTPError")}static async fromResponse(r){let n=await r.text(),i=n,o=r.status,a="http";try{let u=JSON.parse(n);i=u.message,o=u.status,a=u.error?.code}catch{}return new t(i,o,a)}},ku=class extends we{static{s(this,"UnexpectedError")}constructor(e){super(e,500)}},Mu=class extends we{static{s(this,"NotFoundError")}constructor(e){super(e,404)}},Fu=class extends we{static{s(this,"BadRequestError")}constructor(e){super(e,400)}},Bu=class extends we{static{s(this,"ForbiddenError")}constructor(e){super(e,403)}},Wu=class extends we{static{s(this,"NotImplementedError")}constructor(e){super(e,501)}},$u=class extends we{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}static{s(this,"UsageLimitError")}getPublicError(){return{limitName:this.limitName}}},Gu=class extends we{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}static{s(this,"FeatureDisabledError")}getPublicError(){return{featureName:this.featureName}}},pi=class extends fi{static{s(this,"InvalidAPIKeyError")}constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},jt=class extends Error{static{s(this,"EmailUnavailableError")}constructor(e){super(`Email already in use: '${e}'`)}};var mi=Ve.users.isBuilder,wr=Ve.users.isAdmin,nA=Ve.users.isGlobalBuilder,iA=Ve.users.isAdminOrBuilder,Ir=Ve.users.hasAdminPermissions,tt=Ve.users.hasBuilderPermissions,sA=Ve.users.hasAppBuilderPermissions;async function hn(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await H().getMultiple(r,{allowMissing:!0}),t.map(i=>Ku(i,e))}s(hn,"creatorsInList");async function To(t){let e=[];return t.userGroups&&(e=await H().getMultiple(t.userGroups)),Ku(t,e)}s(To,"isCreatorAsync");function Ku(t,e){let r=Ve.users.isCreator(t);return!r&&t?oU(t,e):r}s(Ku,"isCreatorSync");function oU(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}s(oU,"isCreatorByGroupMembership");async function Qu(t,e){if(E.MULTI_TENANCY){let r=await yo(t);if(r!=null&&r.tenantId!==e)throw new jt(t)}if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let r=await Or(t);if(r&&r.verified&&r.tenantId!==e)throw new jt(t)}}s(Qu,"validateUniqueUser");async function ju(t){if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let e=await ci(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}s(ju,"getAccountHolderFromUsers");var Ap=s(async t=>{await Le.deleted(t),tt(t)&&await Le.permissionBuilderRemoved(t),Ir(t)&&await Le.permissionAdminRemoved(t)},"handleDeleteEvents"),aU=s(async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await go.assigned(t,i)},"assignAppRoleEvents"),uU=s(async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await go.unassigned(t,i)},"unassignAppRoleEvents"),cU=s(async(t,e)=>{let r=t.roles,n=e?.roles;await aU(t,r,n),await uU(t,r,n)},"handleAppRoleEvents"),_p=s(async(t,e)=>{let r=V(),n;!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL&&(n=await oi(r)),await gt.identifyUser(t,n),e?(await Le.updated(t),dU(t,e)&&await Le.permissionBuilderRemoved(t),pU(t,e)&&await Le.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Le.passwordForceReset(t),t.password!==e.password&&await Le.passwordUpdated(t)):await Le.created(t),lU(t,e)&&await Le.permissionBuilderAssigned(t),fU(t,e)&&await Le.permissionAdminAssigned(t),await cU(t,e)},"handleSaveEvents"),lU=s((t,e)=>oA(t,e,tt),"isAddingBuilder"),dU=s((t,e)=>aA(t,e,tt),"isRemovingBuilder"),fU=s((t,e)=>oA(t,e,Ir),"isAddingAdmin"),pU=s((t,e)=>aA(t,e,Ir),"isRemovingAdmin"),oA=s((t,e,r)=>!(!r(t)||e&&r(e)),"isAddingPermission"),aA=s((t,e,r)=>!(r(t)||!e||!r(e)),"isRemovingPermission");var Yu={};N(Yu,{createASession:()=>hU,endSession:()=>EU,getSession:()=>Ip,getSessionsForUser:()=>So,invalidateSessions:()=>En,updateSessionTTL:()=>Op});var cA=require("uuid");var lA=E.SESSION_EXPIRY_SECONDS?parseInt(E.SESSION_EXPIRY_SECONDS):he.fromDays(7).toSeconds();function hi(t,e){return`${t}/${e}`}s(hi,"makeSessionID");async function So(t){return t?(await(await fr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}s(So,"getSessionsForUser");async function En(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await So(t)).map(a=>({key:hi(a.userId,a.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(o=>({key:hi(t,o)}))),i&&i.length>0){let o=await fr(),a=[];for(let u of i)a.push(o.delete(u.key));E.isTest()||ii(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(u=>u.key).join(", ")}`),await Promise.all(a)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}s(En,"invalidateSessions");async function hU(t,e){let r=await So(t),n=0;if(r.length>=3){let l=r.sort((p,h)=>new Date(p.createdAt).getTime()-new Date(h.createdAt).getTime()),d=r.length-3+1,f=l.slice(0,d).map(p=>p.sessionId);n=f.length,await En(t,{sessionIds:f,reason:"session limit exceeded"})}let i=await fr(),o=e.sessionId,a=e.csrfToken?e.csrfToken:(0,cA.v4)(),u=hi(t,o),c={...e,csrfToken:a,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(u,c,lA),{session:c,invalidatedSessionCount:n}}s(hU,"createASession");async function Op(t){let e=await fr(),r=hi(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,lA)}s(Op,"updateSessionTTL");async function EU(t,e){await(await fr()).delete(hi(t,e))}s(EU,"endSession");async function Ip(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await fr()).get(hi(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}s(Ip,"getSession");var Cp={};N(Cp,{PASSWORD_MAX_LENGTH:()=>Dp,PASSWORD_MIN_LENGTH:()=>wp,validatePassword:()=>Rp});var wp=+(E.PASSWORD_MIN_LENGTH||12),Dp=+(E.PASSWORD_MAX_LENGTH||512);function Rp(t){return!t||t.length<wp?{valid:!1,error:`Password invalid. Minimum ${wp} characters.`}:t.length>Dp?{valid:!1,error:`Password invalid. Maximum ${Dp} characters.`}:{valid:!0}}s(Rp,"validatePassword");var gU=s(async t=>{let e=t._id;await Et.removeUser(t),await Ap(t),await Dr.invalidateUser(e),await En(e,{reason:"bulk-deletion"})},"bulkDeleteProcessing"),wt=class t{static{s(this,"UserDB")}static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return E.ENABLE_SSO_MAINTENANCE_MODE&&wr(e)?!1:await t.features.isSSOEnforced()||$o(e)?!0:(r||(r=await oi(V())),!!(r&&r.email===e.email&&Wo(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,o){let{password:a,_id:u}=e;i&&!i.password&&(r.requirePassword=!1);let c;if(a){if(await t.isPreventPasswordActions(e,o))throw new we("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=Rp(a);if(!f.valid)throw new we(f.error,400)}c=r.hashPassword?await Nd(a):a}else i&&(c=i.password);let l=r.requirePassword&&!await t.features.isSSOEnforced();if(!c&&l)throw"Password must be specified.";u=u||Jn();let d={createdAt:Date.now(),...i,...e,_id:u,password:c,tenantId:n};return d.roles||(d.roles={}),d.status==null&&(d.status="active"),d}static async allUsers(){return(await H().allDocs(sn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await zu(e,{})).length}}static async getUsersByAppAccess(e){return await bp(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return yt(e)}static async getUser(e){let r=await gn(e);return r&&delete r.password,r}static async bulkGet(e){return await Hu(e)}static async bulkUpdate(e){return await Ao(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=V(),i=H(),{email:o,_id:a,userGroups:u=[],roles:c}=e;if(!o&&!a)throw new Error("_id or email is required");let l;if(a)try{if(l=await gn(a),o&&l.email!==o&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!l&&o&&(l=await yt(o),l&&l._id!==a))throw new jt(o);let d=1,f=0;if((r.isAccountHolder||l)&&(d=0,f=1),l){let[p,h]=await hn([l,e]);f=p!==h?1:0}return t.quotas.addUsers(d,f,async()=>{r.isAccountHolder||await Qu(o,n);let p=await t.buildUser(e,r,n,l);r.currentUserId&&r.currentUserId===l?._id&&(p=xp(p,l)),!l&&c?.length&&(p.roles={...c});let h=[];if(!a&&u.length>0)for(let m of u)h.push(t.groups.addUsers(m,[p._id]));try{let m=await i.put(p);return p._rev=m.rev,await _p(p,l),l&&p.email!==l.email&&await Et.removeUser({email:l.email}),await Et.addUser(n,p._id,p.email,p.ssoId),await Dr.invalidateUser(m.id),await Promise.all(h),i.get(p._id)}catch(m){throw m.status===409?"User exists already":m}})}static async bulkCreate(e,r){let n=V(),i=[],o=[],a=[],u=e.map(p=>p.email),c=await Tp(u),l=[];for(let p of e){let h=o.find(g=>g.email.toLowerCase()===p.email.toLowerCase()),m=c.includes(p.email.toLowerCase());if(h||m){l.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],o.push(p),await To(p)&&a.push(p)}let d=await oi(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(o.length,a.length,async()=>{for(let m of o)f&&delete m.password,i.push(t.buildUser(m,{hashPassword:!0,requirePassword:!f},n,void 0,d));let p=await Promise.all(i);await Ao(p);for(let m of p)await Et.addUser(n,m._id,m.email),await _p(m,void 0);let h=p.map(m=>({_id:m._id,email:m.email}));if(Array.isArray(h)&&r){let m=[],g=h.map(y=>y._id);for(let y of r)m.push(t.groups.addUsers(y,g));await Promise.all(m)}return{successful:h,unsuccessful:l}})}static async bulkDelete(e){let r=H(),n={successful:[],unsuccessful:[]},i=await ju(e);i&&(e=e.filter(h=>h.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let a=(await r.allDocs({include_docs:!0,keys:e.map(h=>h.userId)})).rows.map(h=>h.doc),u=a.map(h=>({...h,_deleted:!0})),c=await Ao(u),d=(await hn(a)).filter(h=>h).length,f=[];for(let h of a){let g=(await yo(h._id)).ssoId;g&&(await Lu(g)).filter(S=>S.ssoId==null).forEach(S=>{f.push({...S,_deleted:!0})}),await gU(h)}await _r().bulkDocs(f),await t.quotas.removeUsers(u.length,d);let p={};return a.reduce((h,m)=>(h[m._id]=m,h),p),c.forEach(h=>{let m=p[h.id].email;h.ok?n.successful.push({_id:h.id,email:m}):n.unsuccessful.push({_id:h.id,email:m,reason:"Database error"})}),n}static async destroy(e){let r=H(),n=await r.get(e),i=n._id;if(!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let a=n.email;if(await Or(a))throw n.userId===kt()._id?new we('Please visit "Account" to delete this user',400):new we("Account holder cannot be deleted",400)}await Et.removeUser(n),await r.remove(i,n._rev);let o=await To(n)?1:0;await t.quotas.removeUsers(1,o),await Ap(n),await Dr.invalidateUser(i),await En(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,o={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(o.ssoId=n.ssoId),await si(ye.CHECKLIST),await t.save(o,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Oo(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}s(Oo,"removeUserPassword");async function Hu(t,e){let n=(await H().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Oo(n)),n}s(Hu,"bulkGetGlobalUsersById");async function TU(){let t=H(),e=`us${b}`;return(await t.allDocs({startkey:e,endkey:`${e}${ve}`})).rows.map(n=>n.id)}s(TU,"getAllUserIds");async function SU(){let t=H(),e=`us${b}`;return(await t.allDocs({startkey:e,endkey:`${e}${ve}`,include_docs:!0})).rows.map(n=>n.doc)}s(SU,"getAllUsers");async function Ao(t){return await H().bulkDocs(t)}s(Ao,"bulkUpdateGlobalUsers");async function gn(t,e){let n=await H().get(t);return e?.cleanup&&(n=Oo(n)),n}s(gn,"getById");async function yt(t,e){if(t==null)throw"Must supply an email address to view";let r=await Bt("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Oo(n)),n}s(yt,"getGlobalUserByEmail");async function AU(t){try{let e=await yt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}s(AU,"doesUserExist");async function zu(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based workspace ID");let n=ru(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await Bt("by_app",n);i||(i=[]);let o=Array.isArray(i)?i:[i];return r?.cleanup&&(o=Oo(o)),o}s(zu,"searchGlobalUsersByApp");async function bp(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let a={[r]:{$exists:!0}};n.push(a)}return(await H().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}s(bp,"searchGlobalUsersByAppAccess");function dA(t,e){if(e)return tu(Ke(t),e._id)}s(dA,"getGlobalUserByAppPage");async function fA(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,o=await Bt("by_email2",{...e,startkey:i,endkey:`${n}${ve}`});o||(o=[]);let a=Array.isArray(o)?o:[o];return r?.cleanup&&(a=Oo(a)),a}s(fA,"searchGlobalUsersByEmail");var _U=8;async function pA({bookmark:t,query:e,appId:r,limit:n}={}){let i=H(),o=n??_U,u={include_docs:!0,limit:o+1};t&&(u.startkey=t);let c,l="_id",d;return e?.equal?._id?c=[await gn(e.equal._id)]:r?(c=await zu(r,u),d=s(f=>dA(r,f),"getKey")):e?.string?.email?(c=await fA(e?.string?.email,u),l="email"):e?.oneOf?._id?c=await Hu(e?.oneOf?._id,{cleanup:!0}):e?(c=(await i.allDocs(sn(null,{...u,limit:void 0}))).rows.map(p=>p.doc),c=ar.search(c,{query:e,limit:u.limit}).rows):c=(await i.allDocs(sn(null,u))).rows.map(p=>p.doc),gf(c,o,{paginate:!0,property:l,getKey:d})}s(pA,"paginatedUsers");async function OU(){return(await Sf("by_email2",{limit:0,include_docs:!1})).total_rows}s(OU,"getUserCount");async function IU(){let t=0;async function e(r){let n=await pA({bookmark:r}),i=await hn(n.data);t+=i.filter(o=>o).length,n.hasNextPage&&await e(n.nextPage)}return s(e,"iterate"),await e(),t}s(IU,"getCreatorCount");function wU(t){return delete t.admin,delete t.builder,t}s(wU,"removePortalUserPermissions");function xp(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}s(xp,"cleanseUserObject");async function DU(t,e){let r=Ke(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await wt.save(t,{hashPassword:!1})}s(DU,"addAppBuilder");async function RU(t,e){let r=Ke(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await wt.save(t,{hashPassword:!1})}s(RU,"removeAppBuilder");var mA=3600;async function CU(t,e){let n=await Of(e).get(t);if(n.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let i=await Or(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}s(CU,"populateFromDB");async function bU(t){let e=await wt.bulkGet(t),r=t.filter((i,o)=>!e[o]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!E.SELF_HOSTED&&!E.DISABLE_ACCOUNT_PORTAL){let o=await Or(i.email);o&&(i.account=o,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}s(bU,"populateUsersFromDB");async function Io({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=CU),!e)try{e=V()}catch{e=await Et.lookupTenantId(t)}let i=await Us(),o=await i.get(t);return o||(o=await n(t,e,r),await i.store(t,o,mA)),o&&!o.tenantId&&e&&(o.tenantId=e),o.userGroups&&!Ve.users.isGlobalBuilder(o)&&await Re(e,async()=>{let a=await wt.getGroupBuilderAppIds(o);if(a.length){let u=o.builder?.apps||[];o.builder={apps:[...new Set(u.concat(a))]}}}),o}s(Io,"getUser");async function xU(t){let e=await Us(),r=await e.bulkGet(t),n=t.filter(a=>!r[a]),i=Object.values(r).filter(a=>!!a),o;if(n.length){let a=await bU(n);o=a.notFoundIds;for(let u of a.users)await e.store(u._id,u,mA);i.push(...a.users)}return{users:i,notFoundIds:o}}s(xU,"getUsers");async function wo(t){await(await Us()).delete(t)}s(wo,"invalidateUser");var Lp={};N(Lp,{Writethrough:()=>Np});var gi={};N(gi,{AUTO_EXTEND_POLLING_MS:()=>EA,doWithLock:()=>vp,newRedlock:()=>yn});var hA=F(require("redlock"));async function PU(t,e){if(t==="custom")return yn(e);switch(t){case"try_once":return yn(Ei.TRY_ONCE);case"try_twice":return yn(Ei.TRY_TWICE);case"default":return yn(Ei.DEFAULT);case"delay_500":return yn(Ei.DELAY_500);case"auto_extend":return yn(Ei.AUTO_EXTEND);default:throw Ct.unreachable(t)}}s(PU,"getClient");var Ei={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function yn(t={}){let e={...Ei.DEFAULT,...t},n=(await df()).client;return new hA.default([n],e)}s(yn,"newRedlock");function NU(t){let r=`lock:${t.systemLock?"system":V()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}s(NU,"getLockName");var EA=he.fromSeconds(10).toMs();async function vp(t,e){let r=await PU(t.type,t.customOptions),n,i;try{let o=NU(t),a=t.type==="auto_extend"?EA:t.ttl;if(n=await r.lock(o,a),t.type==="auto_extend"){let c=s(()=>{i=setTimeout(async()=>{n=await n.extend(a,()=>t.onExtend&&t.onExtend()),c()},a/2)},"extendInIntervals");c()}return{executed:!0,result:await e()}}catch(o){if(o.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw o}else throw o}finally{clearTimeout(i),await n?.unlock()}}s(vp,"doWithLock");var gA=1e4,Pp=null;async function Ju(){if(!Pp){let t=await lf();Pp=new cn(t)}return Pp}s(Ju,"getCache");function Do(t,e){return t.name+e}s(Do,"makeCacheKey");function Up(t,e=null){return{doc:t,lastWrite:e||Date.now()}}s(Up,"makeCacheItem");async function UU(t,e,r=gA){let n=await Ju(),i=e._id,o;i&&(o=await n.get(Do(t,i)));let a=!o||o.lastWrite<Date.now()-r,u=e;return a&&((await vp({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let l=s(async d=>{let f=await t.put(d,{force:!0});u._id=f.id,u._rev=f.rev},"writeDb");try{await l(e)}catch(d){if(d.status!==409)throw d;ii("Ignoring conflict in write-through cache")}})).executed||ii("Ignoring redlock conflict in write-through cache")),o=Up(u,a?null:o?.lastWrite),u._id&&await n.store(Do(t,u._id),o),{ok:!0,id:u._id,rev:u._rev}}s(UU,"put");async function LU(t,e){let r=await Ju(),n=Do(t,e),i=await r.get(n);if(!i){let o=await t.get(e);i=Up(o),await r.store(n,i)}return i.doc}s(LU,"get");async function kU(t,e){let r=await Ju(),n=Do(t,e),i=await r.get(n);if(!i){let o=await t.tryGet(e);if(!o)return null;i=Up(o),await r.store(n,i)}return i.doc}s(kU,"tryGet");async function MU(t,e,r){let n=await Ju();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Do(t,i))}finally{await t.remove(i,r)}}s(MU,"remove");var Np=class{static{s(this,"Writethrough")}constructor(e,r=gA){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return UU(this.db,e,r)}async get(e){return LU(this.db,e)}async tryGet(e){return kU(this.db,e)}async remove(e,r){return MU(this.db,e,r)}};function Zu(t){return`config${b}${t}`}s(Zu,"generateConfigID");async function rt(t){let e=H();try{return await e.get(Zu(t))}catch(r){if(r.status===404)return;throw r}}s(rt,"getConfig");async function FU(t){return t._id||(t._id=Zu(t.type)),H().put(t)}s(FU,"save");async function ri(){let t=await rt("settings");return t||(t={_id:Zu("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ro({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await bu({config:t.config}),t}s(ri,"getSettingsConfigDoc");async function Fp(){return(await ri()).config}s(Fp,"getSettingsConfig");async function Ro(t={tenantAware:!0}){let e=E.PLATFORM_URL||"http://localhost:10000";if(!E.SELF_HOSTED&&E.MULTI_TENANCY&&t.tenantAware){let r=V();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(E.SELF_HOSTED){let r=t?.config?t.config:(await rt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}s(Ro,"getPlatformUrl");var bu=s(async t=>{if(!E.SELF_HOSTED)return!!E.ENABLE_ANALYTICS;let e=await Ar(ye.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await rt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=E.ENABLE_ANALYTICS;return!(r===0||r===!1)},"analyticsEnabled");async function BU(){return await rt("google")}s(BU,"getGoogleConfigDoc");async function Xu(){return(await BU())?.config}s(Xu,"getGoogleConfig");async function Bp(){if(!E.SELF_HOSTED)return kp();let t=await Xu();return(!t||!t.activated)&&(t=kp()),t}s(Bp,"getGoogleDatasourceConfig");function kp(){if(E.GOOGLE_CLIENT_ID&&E.GOOGLE_CLIENT_SECRET)return{clientID:E.GOOGLE_CLIENT_ID,clientSecret:E.GOOGLE_CLIENT_SECRET,activated:!0}}s(kp,"getDefaultGoogleConfig");async function WU(){return rt("logos_oidc")}s(WU,"getOIDCLogosDoc");async function $U(){return rt("oidc")}s($U,"getOIDCConfigDoc");async function GU(){let t=(await $U())?.config;return t?.configs&&t.configs[0]}s(GU,"getOIDCConfig");async function Wp(t){let e=(await rt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}s(Wp,"getOIDCConfigById");async function yA(){return rt("smtp")}s(yA,"getSMTPConfigDoc");async function VU(t){let e=await yA();if(e)return e.config;let r=E.SELF_HOSTED||!t;if(E.SMTP_FALLBACK_ENABLED&&r)return{port:E.SMTP_PORT,host:E.SMTP_HOST,secure:!1,from:E.SMTP_FROM_ADDRESS,auth:{user:E.SMTP_USER,pass:E.SMTP_PASSWORD},fallback:!0}}s(VU,"getSMTPConfig");async function qU(){return(await rt("scim"))?.config}s(qU,"getSCIMConfig");async function KU(){return rt("ai")}s(KU,"getAIConfig");async function QU(){return rt("recaptcha")}s(QU,"getRecaptchaConfig");var zp={};N(zp,{AccessController:()=>Vp,BUILTIN_ROLE_IDS:()=>qp,Role:()=>Rr,RoleHierarchyTraversal:()=>ec,RoleIDVersion:()=>Kp,builtinRoleToNumber:()=>Co,checkForRoleResourceArray:()=>_A,externalRole:()=>ZU,findRole:()=>bo,getAllRoleIds:()=>rL,getAllRoles:()=>Hp,getBuiltinRole:()=>SA,getBuiltinRoles:()=>jp,getDBRoleID:()=>OA,getExternalRoleID:()=>Cr,getExternalRoleIDs:()=>IA,getRole:()=>XU,getUserRoleHierarchy:()=>Yp,getUserRoleIdHierarchy:()=>AA,isBuiltin:()=>Tn,lowerBuiltinRoleID:()=>JU,prefixRoleIDNoBuiltin:()=>Gp,roleIDsAreEqual:()=>nt,roleToNumber:()=>zU,saveRoles:()=>eL,validInherits:()=>HU});var TA=require("lodash"),tc=F(require("lodash/fp/cloneDeep")),$p=F(require("semver"));var qp={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ie={...qp,BUILDER:"BUILDER"},Kp={UUID:void 0,NAME:"name"};function YU(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}s(YU,"rolesInList");var Rr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Kp.NAME}static{s(this,"Role")}addInheritance(e){return e&&typeof e=="string"?e=Gp(e):e&&Array.isArray(e)&&(e=e.map(Gp)),this.inherits=e,this}},ec=class{static{s(this,"RoleHierarchyTraversal")}constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let o of e.inherits){let a=bo(o,n,r);a&&(i=i.concat(this.walk(a)))}else{let o=[],a=e;for(;a&&a.inherits&&!YU(o,a.inherits);){if(Array.isArray(a.inherits))return i.concat(this.walk(a));if(o.push(a.inherits),a=bo(a.inherits,n,r),a&&i.push(a),Ne.roles.checkForRoleInheritanceLoops(i))break}}return(0,TA.uniqBy)(i,o=>o._id)}},Qp={ADMIN:new Rr(ie.ADMIN,ie.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ie.POWER),POWER:new Rr(ie.POWER,ie.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ie.BASIC),BASIC:new Rr(ie.BASIC,ie.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ie.PUBLIC),PUBLIC:new Rr(ie.PUBLIC,ie.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Rr(ie.BUILDER,ie.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function jp(){return(0,tc.default)(Qp)}s(jp,"getBuiltinRoles");function Tn(t){return Object.values(qp).includes(t)}s(Tn,"isBuiltin");function Gp(t){return Tn(t)?t:Mt(t)}s(Gp,"prefixRoleIDNoBuiltin");function SA(t){let e=Object.values(Qp).find(r=>t.includes(r._id));if(e)return(0,tc.default)(e)}s(SA,"getBuiltinRole");function HU(t,e){if(!e)return!1;let r=s(n=>t.find(i=>nt(i._id,n)),"find");if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}s(HU,"validInherits");function Co(t){let e=jp(),r=Object.values(e).length+1;if(nt(t,ie.ADMIN)||nt(t,ie.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}s(Co,"builtinRoleToNumber");async function zU(t){if(Tn(t))return Co(t);let e=await Yp(t,{defaultPublic:!0}),r=s(n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(o=>{let a=e.find(u=>nt(u._id,o));if(a)return r(a)+1}).filter(o=>o).sort().pop();if(i!=null)return i}else if(Tn(n.inherits))return Co(n.inherits)+1;return 0},"findNumber");return Math.max(...e.map(r))}s(zU,"roleToNumber");function JU(t,e){return t?e&&Co(t)>Co(e)?e:t:e}s(JU,"lowerBuiltinRoleID");function nt(t,e){return Mt(t)===Mt(e)}s(nt,"roleIDsAreEqual");function ZU(t){let e;return t._id&&(e=Cr(t._id)),{...t,_id:e,inherits:IA(t.inherits,t.version)}}s(ZU,"externalRole");function bo(t,e,r){let n=SA(t);n||(t=Mt(t));let i=e.find(o=>o._id&&nt(o._id,t));return!i&&!Tn(t)&&r?.defaultPublic?(0,tc.default)(Qp.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Cr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}s(bo,"findRole");async function XU(t,e){let r=zn(),n=[];if(!Tn(t)){let i=await r.tryGet(OA(t));i&&n.push(i)}return bo(t,n,e)}s(XU,"getRole");async function eL(t){await zn().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:Mt(r._id)})))}s(eL,"saveRoles");async function tL(t,e){let r=await Hp();if(nt(t,ie.ADMIN))return r;let n=bo(t,r,e),i=[];return n&&(i=new ec(r,e).walk(n)),i}s(tL,"getAllUserRoles");async function AA(t){return(await Yp(t)).map(r=>r._id)}s(AA,"getUserRoleIdHierarchy");async function Yp(t,e){return tL(t,e)}s(Yp,"getUserRoleHierarchy");function _A(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}s(_A,"checkForRoleResourceArray");async function rL(t){return(await Hp(t)).map(r=>r._id)}s(rL,"getAllRoleIds");async function Hp(t){if(t)return qe(t,e);{let r;try{r=zn()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(nu(null,{include_docs:!0}))).rows.map(u=>u.doc),n.forEach(u=>u._id=Cr(u._id,u.version)));let i=jp(),o=[];!r||await nL(r)?o=[ie.ADMIN,ie.POWER,ie.BASIC,ie.PUBLIC]:o=[ie.ADMIN,ie.BASIC,ie.PUBLIC];for(let a of o){let u=i[a],c=n.filter(l=>nt(l._id,a))[0];c==null?n.push(u||i.BASIC):(n=n.filter(l=>l._id!==c._id),c._id=Cr(u._id,c.version),n.push({...u,...c,name:u.name,_id:Cr(u._id,u.version)}))}for(let a of n)if(a.permissions)for(let u of Object.keys(a.permissions))a.permissions=_A(a.permissions,u);return n}s(e,"internal")}s(Hp,"getAllRoles");async function nL(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!$p.default.valid(r)?!0:!$p.default.gte(r,E.MIN_VERSION_WITHOUT_POWER_ROLE)}s(nL,"shouldIncludePowerRole");var Vp=class{static{s(this,"AccessController")}constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||nt(e,ie.BUILDER)||nt(r,e)||nt(r,ie.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await AA(r),this.userHierarchies[r]=n),n?.find(i=>nt(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let o=await this.checkScreenAccess(i,r);o&&n.push(o)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function OA(t){return t?.startsWith("role")?t:Mt(t)}s(OA,"getDBRoleID");function Cr(t,e){if(t.startsWith(`role${b}`)&&(Tn(t)||e===Kp.NAME)){let r=t.split(b);return r.shift(),r.join(b)}return t}s(Cr,"getExternalRoleID");function IA(t,e){return t&&(typeof t=="string"?Cr(t,e):t.map(r=>Cr(r,e)))}s(IA,"getExternalRoleIDs");var Jp={};N(Jp,{BUILDER:()=>uL,BUILTIN_PERMISSIONS:()=>rc,CREATOR:()=>cL,GLOBAL_BUILDER:()=>lL,PermissionImpl:()=>se,PermissionLevel:()=>Ii,PermissionType:()=>Fo,doesHaveBasePermission:()=>oL,getAllowedLevels:()=>CA,getBuiltinPermissionByID:()=>sL,getBuiltinPermissions:()=>iL,isPermissionLevelHigherThanRead:()=>aL,levelToNumber:()=>RA});var wA=F(require("lodash/flatten")),DA=F(require("lodash/fp/cloneDeep"));var se=class{static{s(this,"PermissionImpl")}constructor(e,r){this.type=e,this.level=r}};function RA(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}s(RA,"levelToNumber");function CA(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}s(CA,"getAllowedLevels");var rc={PUBLIC:{_id:"public",name:"Public",permissions:[new se("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new se("query","read"),new se("table","read"),new se("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new se("query","write"),new se("table","write"),new se("automation","execute"),new se("legacy_view","read"),new se("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new se("table","write"),new se("user","read"),new se("automation","execute"),new se("webhook","read"),new se("legacy_view","read"),new se("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new se("table","admin"),new se("user","admin"),new se("automation","admin"),new se("webhook","read"),new se("query","admin"),new se("legacy_view","read"),new se("app","read")]}};function iL(){return(0,DA.default)(rc)}s(iL,"getBuiltinPermissions");function sL(t){return Object.values(rc).find(r=>r._id===t)}s(sL,"getBuiltinPermissionByID");function oL(t,e,r){let n=[...new Set(r.map(a=>a.permissionId))],i=Object.values(rc),o=(0,wA.default)(i.filter(a=>n.indexOf(a._id)!==-1).map(a=>a.permissions));for(let a of o)if(a.type===t&&CA(a.level).indexOf(e)!==-1)return!0;return!1}s(oL,"doesHaveBasePermission");function aL(t){return RA(t)>1}s(aL,"isPermissionLevelHigherThanRead");var uL="builder",cL="creator",lL="globalBuilder";var cm={};N(cm,{adminOnly:()=>pc,auditLog:()=>cc,authError:()=>Oe,buildAuthMiddleware:()=>jL,buildCsrfMiddleware:()=>HL,buildTenancyMiddleware:()=>YL,builderOnly:()=>hc,builderOrAdmin:()=>mc,google:()=>Yt,internalApi:()=>dc,joiValidator:()=>vo,oidc:()=>Ht,passport:()=>zL,platformLogout:()=>t0,refreshOAuthToken:()=>XL,ssoCallbackUrl:()=>br,updateUserOAuth:()=>e0});var um={};N(um,{adminOnly:()=>pc,auditLog:()=>cc,authError:()=>Oe,authenticated:()=>uc,builderOnly:()=>hc,builderOrAdmin:()=>mc,correlation:()=>GA,csp:()=>YA,csrf:()=>fc,datasource:()=>KL,errorHandling:()=>qA,featureFlagCookie:()=>HA,google:()=>Yt,internalApi:()=>dc,ip:()=>JA,joiValidator:()=>vo,local:()=>yi,oidc:()=>Ht,pino:()=>WA,querystringToBody:()=>KA,ssoCallbackUrl:()=>br,tenancy:()=>lc});var yi={};N(yi,{authenticate:()=>pL,options:()=>fL});function Oe(t,e,r){return t(r,null,{message:e})}s(Oe,"authError");async function br(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Fp(),n="/api/global/auth";return dr()&&(n+=`/${V()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}s(br,"ssoCallbackUrl");var Zp="Invalid credentials",dL="This account has expired. Please reset your password",fL={passReqToCallback:!0};async function pL(t,e,r,n){if(!e)return Oe(n,"Email Required");if(!r)return Oe(n,"Password Required");let i=await yt(e);return i==null?(console.info(`user=${e} could not be found`),Oe(n,Zp)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Oe(n,Zp)):i.password?await Ud(r,i.password)?(delete i.password,n(null,i)):Oe(n,Zp):(console.info(`user=${e} has no password set`,i),Oe(n,dL))}s(pL,"authenticate");var Yt={};N(Yt,{buildVerifyFn:()=>vA,getCallbackUrl:()=>EL,strategyFactory:()=>Xp});var xo=s(t=>Promise.resolve(t),"ssoSaveUserNoOp");async function nc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Oe(r,"sso user id required");if(!t.email)return Oe(r,"sso user email required");let i=Jn(t.userId),o;try{o=await gn(i)}catch(u){if(!u.status||u.status!==404)return Oe(r,"Unexpected error when retrieving existing user",u)}if(o||(o=await yt(t.email)),!o&&e)return Oe(r,"Email does not yet exist. You must set up your local budibase account first.");o||(o={_id:i,email:t.email,roles:{},tenantId:V()});let a=await mL(o,t);a.forceResetPassword=!1;try{delete a.password,a=await n(a,{hashPassword:!1,requirePassword:!1})}catch(u){return Oe(r,"Error saving user",u)}return r(null,a)}s(nc,"authenticate");async function mL(t,e){let r,n,i;if(e.profile){let o=e.profile;if(o.name){let a=o.name;a.givenName&&(r=a.givenName),a.familyName&&(n=a.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}s(mL,"syncUser");var hL=require("passport-google-oauth").OAuth2Strategy;function vA(t){return(e,r,n,i)=>{let o={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return nc(o,!0,i,t)}}s(vA,"buildVerifyFn");async function Xp(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let o=vA(r);return new hL({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},o)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}s(Xp,"strategyFactory");async function EL(t){return br("google",t)}s(EL,"getCallbackUrl");var Ht={};N(Ht,{buildVerifyFn:()=>NA,fetchStrategyConfig:()=>SL,getCallbackUrl:()=>AL,strategyFactory:()=>TL});var PA=F(require("node-fetch"));var gL=require("@techpass/passport-openidconnect").Strategy;function NA(t){return async(e,r,n,i,o,a,u,c,l)=>{let d={provider:e,providerType:"oidc",userId:n.id,profile:n,email:yL(n,i),oauth2:{accessToken:o,refreshToken:a}};return nc(d,!1,l,t)}}s(NA,"buildVerifyFn");function yL(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Rf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}s(yL,"getEmail");async function TL(t,e){try{let r=NA(e),n=new gL(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}s(TL,"strategyFactory");async function SL(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:o}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let a=await(0,PA.default)(i);if(!a.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${a.statusText}`);let u=await a.json();return{issuer:u.issuer,authorizationURL:u.authorization_endpoint,tokenURL:u.token_endpoint,userInfoURL:u.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:o}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}s(SL,"fetchStrategyConfig");async function AL(){return br("oidc")}s(AL,"getCallbackUrl");var em={};N(em,{postAuth:()=>IL,preAuth:()=>OL});var _L=require("passport-google-oauth").OAuth2Strategy;async function UA(){let t=await Bp();if(!t)throw new Error("No google configuration found");return t}s(UA,"fetchGoogleCreds");async function OL(t,e,r){let n=await UA(),o=`${await Ro({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=await Xp(n,o,xo);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(a,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}s(OL,"preAuth");async function IL(t,e,r){let n=await UA(),o=`${await Ro({tenantAware:!1})}/api/global/auth/datasource/google/callback`,a=$t(e,"budibase:datasourceauth");if(!a)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new _L({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:o},(u,c,l,d)=>{hr(e,"budibase:datasourceauth"),d(null,{accessToken:u,refreshToken:c})}),{successRedirect:"/",failureRedirect:"/error"},async(u,c)=>{let l=`/builder/workspace/${a.appId}/data`,d=ne();await qt(`datasource:creation:${a.appId}:google:${d}`,{tokens:c}),e.redirect(`${l}/new?continue_google_setup=${d}`)})(e,r)}s(IL,"postAuth");var wL=/\/:(.*?)(\/.*)?$/g,Sn=s(t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(wL);if(i)for(let o of i){let u="/.*"+(o.endsWith("/")?"/":"");r=r.replace(o,u)}return{regex:new RegExp(r),method:n,route:r}}):[],"buildMatcherRegex"),An=s((t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),o=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&o}),"matches");var om={};N(om,{SecretOption:()=>MA,decrypt:()=>sm,decryptFile:()=>vL,encrypt:()=>CL,encryptFile:()=>bL,getSecret:()=>im});var zt=F(require("crypto")),xr=F(require("fs")),tm=require("path"),rm=F(require("zlib"));var ic="aes-256-ctr",kA="-",DL=1e4,RL=32,sc=16,nm=16,MA=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(MA||{});function im(t){let e,r;switch(t){case"encryption":e=E.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=E.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}s(im,"getSecret");function oc(t,e){return zt.default.pbkdf2Sync(t,new Uint8Array(e),DL,RL,"sha512")}s(oc,"stretchString");function CL(t,e="api"){let r=zt.default.randomBytes(sc),n=oc(im(e),r),i=zt.default.createCipheriv(ic,new Uint8Array(n),new Uint8Array(r)),o=i.update(t,"utf8"),a=i.final(),u=Buffer.concat([new Uint8Array(o),new Uint8Array(a)]).toString("hex");return`${r.toString("hex")}${kA}${u}`}s(CL,"encrypt");function sm(t,e="api"){let[r,n]=t.split(kA),i=Buffer.from(r,"hex"),o=oc(im(e),i),a=zt.default.createDecipheriv(ic,new Uint8Array(o),new Uint8Array(i)),u=a.update(n,"hex"),c=a.final();return Buffer.concat([new Uint8Array(u),new Uint8Array(c)]).toString()}s(sm,"decrypt");async function bL({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,tm.join)(t,e);if(xr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let o=xr.default.createReadStream(i),a=xr.default.createWriteStream((0,tm.join)(t,n)),u=zt.default.randomBytes(sc),c=zt.default.randomBytes(nm),l=oc(r,u),d=zt.default.createCipheriv(ic,new Uint8Array(l),new Uint8Array(c));return a.write(u),a.write(c),o.pipe(rm.default.createGzip()).pipe(d).pipe(a),new Promise(f=>{a.on("finish",()=>{f({filename:n,dir:t})})})}s(bL,"encryptFile");async function xL(t){let e=xr.default.createReadStream(t),r=await LA(e,sc),n=await LA(e,nm);return e.close(),{salt:r,iv:n}}s(xL,"getSaltAndIV");async function vL(t,e,r){if(xr.default.lstatSync(t).isDirectory())throw new Error("Unable to decrypt directory");let{salt:n,iv:i}=await xL(t),o=xr.default.createReadStream(t,{start:sc+nm}),a=xr.default.createWriteStream(e),u=oc(r,n),c=zt.default.createDecipheriv(ic,new Uint8Array(u),new Uint8Array(i)),l=rm.default.createGunzip();return o.pipe(c).pipe(l).pipe(a),new Promise((d,f)=>{a.on("finish",()=>{a.close(),d()}),o.on("error",p=>{a.close(),f(p)}),c.on("error",p=>{a.close(),f(p)}),l.on("error",p=>{a.close(),f(p)}),a.on("error",p=>{a.close(),f(p)})})}s(vL,"decryptFile");function LA(t,e){return new Promise((r,n)=>{let i=0,o=[];t.on("readable",()=>{let a;for(;(a=t.read(e-i))!==null;)o.push(a),i+=a.length;r(Buffer.concat(o.map(u=>new Uint8Array(u))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",a=>{n(a)})})}s(LA,"readBytes");var BA=F(require("dd-trace"));var PL=E.SESSION_UPDATE_PERIOD?parseInt(E.SESSION_UPDATE_PERIOD):60*1e3;function NL(){return new Date(Date.now()-PL).toISOString()}s(NL,"timeMinusOneMinute");function FA(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}s(FA,"finalise");async function UL(t,e){if(Ks(t))return{valid:!0,user:void 0};let n=sm(t).split(b)[0];return Re(n,async()=>{let i;try{let o=H();i=await Bt("by_api_key",{key:t},o)}catch{i=void 0}if(i)return{valid:!0,user:await Io({userId:i,tenantId:n,populateUser:e})};throw new pi})}s(UL,"checkApiKey");function ac(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}s(ac,"getHeader");function uc(t=[],e={publicAllowed:!1}){let r=t?Sn(t):[];return async(n,i)=>{let o=!1,a=ac(n,"x-budibase-api-version");An(n,r)&&(o=!0);try{let c=ac(n,"x-budibase-token"),l=$t(n,"budibase:auth")||su(c),d=ac(n,"x-budibase-api-key");!d&&n.request.headers.authorization&&(d=n.request.headers.authorization.split(" ")[1]);let f=ac(n,"x-budibase-tenant-id"),p=!1,h,m=!1,g;if(l&&!d){let S=l.sessionId,O=l.userId,_;try{_=await Ip(O,S),e&&e.populateUser?h=await Io({userId:O,tenantId:_.tenantId,email:_.email,populateUser:e.populateUser(n)}):h=await Io({userId:O,tenantId:_.tenantId,email:_.email}),h.csrfToken=_.csrfToken,g="cookie",_?.lastAccessedAt<NL()&&await Op(_),p=!0}catch(D){p=!1,console.error(`Auth Error: ${D.message}`),hr(n,"budibase:auth")}}if(!p&&d){let S=e.populateUser?e.populateUser(n):null,{valid:O,user:_}=await UL(d,S);O&&(p=!0,g="api_key",h=_,m=!_)}!h&&f?h={tenantId:f}:h&&"password"in h&&delete h.password,p||(p=!1);let y=s(S=>S&&S.email,"isUser");return y(h)&&BA.default.setUser({id:h._id,tenantId:h.tenantId,budibaseAccess:h.budibaseAccess,status:h.status}),FA(n,{authenticated:p,user:h,internal:m,version:a,publicEndpoint:o,loginMethod:g}),y(h)?Md(h,n,i):i()}catch(c){if(console.error(`Auth Error: ${c.message}`),c?.name==="JsonWebTokenError"?hr(n,"budibase:auth"):c?.code==="invalid_api_key"&&n.throw(403,c.message),e&&e.publicAllowed||o)return FA(n,{authenticated:!1,version:a,publicEndpoint:o}),i();n.throw(c.status||403,c)}}}s(uc,"authenticated");var cc=s(async(t,e)=>e(),"auditLog");function lc(t,e,r={noTenancyRequired:!1}){let n=Sn(t),i=Sn(e);return async function(o,a){let c={allowNoTenant:r.noTenancyRequired||!!An(o,i)};!!An(o,n)||(c.excludeStrategies=["query"]);let d=Gs(o,c);return o.set("x-budibase-tenant-id",d),Re(d,a)}}s(lc,"tenancy");async function dc(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Ks(r)||t.throw(403,"Unauthorized"),e()}s(dc,"internalApi");var LL=["GET","HEAD","OPTIONS"],kL=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function fc(t={noCsrfPatterns:[]}){let e=Sn(t.noCsrfPatterns);return async(r,n)=>{if(An(r,e)||LL.indexOf(r.method)!==-1)return n();let o=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!kL.filter(c=>o.includes(c)).length||r.internal)return n();let a=r.user?.csrfToken;if(!a)return n();let u=r.get("x-csrf-token");return(!u||u!==a)&&r.throw(403,"Invalid CSRF token"),n()}}s(fc,"csrf");var pc=s(async(t,e)=>(!t.internal&&!wr(t.user)&&t.throw(403,"Admin user only endpoint."),e()),"adminOnly");async function mc(t,e){if(t.internal||wr(t.user))return e();let r=await qs(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!tt(t.user)?t.throw(403,"Admin/Builder user only endpoint."):r&&!mi(t.user,r)&&t.throw(403,"Workspace Admin/Builder user only endpoint."),e()}s(mc,"builderOrAdmin");async function hc(t,e){if(t.internal)return e();let r=await qs(t);return!r&&!E.isWorker()?t.throw(403,"This request required a workspace id."):!r&&!tt(t.user)?t.throw(403,"Builder user only endpoint."):r&&!mi(t.user,r)&&t.throw(403,"Workspace builder user only endpoint."),e()}s(hc,"builderOnly");var ML=require("koa-pino-logger"),FL=require("correlation-id");function BL(){return{logger:Ou,genReqId:FL.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}s(BL,"pinoSettings");function WL(){return E.HTTP_LOGGING?ML(BL()):(t,e)=>e()}s(WL,"getMiddleware");var WA=WL();var $A=require("uuid");var $L=require("correlation-id"),GA=s((t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,$A.v4)()),$L.withId(r,()=>e())},"correlationMiddleware");function VA(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of Iy){let r=E[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}s(VA,"stringContainsSecret");async function qA(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Vu(r)};if(VA(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),E.isTest()&&t.headers["x-budibase-include-stacktrace"]){let o=r;for(;o.cause;)o=o.cause;i.stack=o.stack}t.body=i}}s(qA,"errorHandling");function KA(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}s(KA,"querystringToBody");var jA=F(require("crypto"));var QA={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","https://www.google.com/recaptcha/api.js"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},GL=/^[A-Za-z0-9-*:/.]+$/,YA=s(async(t,e)=>{let r=jA.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...QA};if(n["script-src"]=[...QA["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let a=await ks.getWorkspaceMetadata(t.appId);if("name"in a)for(let u of a.scripts||[]){let c=(u.cspWhitelist||"").split(`
38
+ `).filter(l=>GL.test(l));n["default-src"]=[...n["default-src"],...c]}}catch(a){console.error(`Error occurred in Content-Security-Policy middleware: ${a}`)}let o=Object.entries(n).map(([a,u])=>`${a} ${u.join(" ")}`).join("; ");t.set("Content-Security-Policy",o),await e()},"contentSecurityPolicy");var HA=s(async(t,e)=>{let n=$t(t,"budibase:featureflags")?.flags||{};await of(n,async()=>{await e()})},"featureFlagCookie");var vo={};N(vo,{body:()=>VL,params:()=>qL});var am=F(require("joi"));function zA(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,o)=>{if(!t)return o();let a=null,u=i.request?.[e];i[e]!=null?a=i[e]:u!=null&&(a=u),t.append&&(t=t.append({createdAt:am.default.any().optional(),updatedAt:am.default.any().optional()}));let{error:c}=t.validate(a,{allowUnknown:r?.allowUnknown});if(c){let l=c.message;n&&(l=`Invalid ${e} - ${l}`),i.throw(400,l)}return o()}}s(zA,"validate");function VL(t,e){return zA(t,"body",e)}s(VL,"body");function qL(t,e){return zA(t,"params",e)}s(qL,"params");async function JA(t,e){return t.ip?await tf(t.ip,()=>e()):e()}s(JA,"ip");var KL={google:em};var ZA=require("koa-passport"),QL=require("passport-local").Strategy,Ec=require("passport-oauth2-refresh"),jL=uc,YL=lc,HL=fc,zL=ZA;ZA.use(new QL(yi.options,yi.authenticate));async function JL(t,e){let r=await Ht.getCallbackUrl(),n,i;try{if(n=await Ht.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Ht.strategyFactory(n,xo)}catch{throw new Error("Could not refresh OAuth Token")}return Ec.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(o=>{Ec.requestNewAccessToken("oidc",e,(a,u,c,l)=>{o({err:a,accessToken:u,refreshToken:c,params:l})})})}s(JL,"refreshOIDCAccessToken");async function ZL(t,e){let r=await Yt.getCallbackUrl(t),n;try{n=await Yt.strategyFactory(t,r,xo)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Ec.use(n),new Promise(i=>{Ec.requestNewAccessToken("google",e,(o,a,u,c)=>{i({err:o,accessToken:a,refreshToken:u,params:c})})})}s(ZL,"refreshGoogleAccessToken");async function XL(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Wp(r);return n?JL(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Xu();return n?ZL(n,t):{err:{data:"Google configuration not found"}}}}}s(XL,"refreshOAuthToken");async function e0(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=H(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await wo(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}s(e0,"updateUserOAuth");async function t0(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=$t(e,"budibase:auth"),o=await So(r);i&&n?o=o.filter(u=>u.sessionId!==i.sessionId):hr(e,"budibase:auth");let a=o.map(({sessionId:u})=>u);await En(r,{sessionIds:a,reason:"logout"}),await Uu.logout(e.user?.email),await wo(r)}s(t0,"platformLogout");var dm={};N(dm,{validate:()=>o0});var C=F(require("joi"));var r0=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function lm(t,e){let{error:r}=t.validate(e);if(r)throw r}s(lm,"runJoi");function n0(t){let e=C.default.object({type:C.default.string().allow("component").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),settings:C.default.array().items(C.default.object().unknown(!0)).required()}).unknown(!0)});lm(e,t)}s(n0,"validateComponent");function i0(t){let e=C.default.object({type:C.default.string().allow(...Object.values(_c)).required(),required:C.default.boolean().required(),default:C.default.any(),display:C.default.string()}),r=C.default.object({type:C.default.string().allow(...Object.values(Ac)),readable:C.default.boolean(),displayName:C.default.string(),fields:C.default.object().pattern(C.default.string(),e)}).required(),n=C.default.object({type:C.default.string().allow("datasource").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({docs:C.default.string(),plus:C.default.boolean().optional(),isSQL:C.default.boolean().optional(),auth:C.default.object({type:C.default.string().required()}).optional(),features:C.default.object(Object.fromEntries(Object.values(Oc).map(i=>[i,C.default.boolean().optional()]))).optional(),relationships:C.default.boolean().optional(),description:C.default.string().required(),friendlyName:C.default.string().required(),type:C.default.string().allow(...r0),datasource:C.default.object().pattern(C.default.string(),e).required(),query:C.default.object().pattern(C.default.string(),r).unknown(!0).required(),extra:C.default.object().pattern(C.default.string(),C.default.object({type:C.default.string().required(),displayName:C.default.string().required(),required:C.default.boolean(),data:C.default.object()}))})});lm(n,t)}s(i0,"validateDatasource");function s0(t){let e=C.default.object().pattern(C.default.string(),{type:C.default.string().allow(...Object.values(Ic)).required(),customType:C.default.string().allow(...Object.values(wc)),title:C.default.string(),description:C.default.string(),enum:C.default.array().items(C.default.string()),pretty:C.default.array().items(C.default.string())}),r=C.default.object({properties:e,required:C.default.array().items(C.default.string())}).concat(e).required(),n=C.default.object({type:C.default.string().allow("automation").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),tagline:C.default.string().required(),icon:C.default.string().required(),description:C.default.string().required(),type:C.default.string().allow("ACTION","LOGIC").required(),stepId:C.default.string().disallow(...Um).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});lm(n,t)}s(s0,"validateAutomation");function o0(t){switch(t?.type){case"component":n0(t);break;case"datasource":i0(t);break;case"automation":s0(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}s(o0,"validate");var fm={};N(fm,{Client:()=>Ce,clients:()=>pr,locks:()=>gi,utils:()=>Ga});var pm={};N(pm,{isBlacklisted:()=>u0,refreshBlacklist:()=>r_});var XA=F(require("dns")),yc=F(require("net"));var e_=require("util");var gc,a0=(0,e_.promisify)(XA.default.lookup);async function t_(t){return yc.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await a0(t,{all:!0})).map(r=>r.address)}s(t_,"lookup");async function r_(){let e=E.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(yc.default.isIP(i))r.push(i);else{let o=await t_(i);r=r.concat(o)}}gc=r}s(r_,"refreshBlacklist");async function u0(t){if(gc||await r_(),gc?.length===0)return!1;let e;return yc.default.isIP(t)?e=[t]:e=await t_(t),!!gc?.find(r=>e.includes(r))}s(u0,"isBlacklisted");var hm={};N(hm,{init:()=>l0});var c0={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function n_(t,e){let r=c0[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}s(n_,"getDocumentId");var Po=class{constructor(e){this.processors=[];this.processors=e}static{s(this,"DocumentUpdateProcessor")}async processEvent(e,r,n){let i=r.realTenantId,o=n_(e,n);if(!(!i||!o))for(let{events:a,processor:u}of this.processors)a.includes(e)&&await Re(i,async()=>{await u({id:o,tenantId:i,appId:n.appId})})}shutdown(){return bS()}};var i_,mm;function l0(t){Qt||Nu(),mm||(mm=new Po(t)),i_||(i_=Qt.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await mm.processEvent(r,n,i)}))}s(l0,"init");var Im={};N(Im,{COUNT_FIELD_NAME:()=>_m,Sql:()=>p_,SqlTable:()=>Tc,designDoc:()=>Om,utils:()=>Yd});var u_=require("knex");var d0=require("knex");function Em(t){return["link","formula","ai"].indexOf(t)!==-1}s(Em,"isIgnoredType");function s_(t,e,r,n,i){let o=e&&e.primary?e.primary:[],a=Object.values(e.schema),u=a.filter(p=>p.meta),c=u.length===a.length,l=[];n||(c?t.primary(u.map(p=>p.name)):o.length===1?(t.increments(o[0]).primary(),l.push(o[0])):t.primary(o));let d=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,h]of Object.entries(e.schema)){let m=n?.schema[p];if(m&&m.type||l.includes(p)||i?.updated===p)continue;let g=h.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":o.includes(p)?t.string(p,255):t.text(p);break;case"number":if(h.meta&&h.meta.toKey&&h.meta.toTable){let{toKey:y,toTable:S}=h.meta;t.integer(p).unsigned(),t.foreign(p).references(`${S}.${y}`)}else d.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":h.timeOnly?t.time(p):t.datetime(p,{useTz:!h.ignoreTimezones});break;case"array":case"bb_reference":Ne.schema.isDeprecatedSingleUserColumn(h)?t.text(p):t.json(p);break;case"link":if(h.relationshipType!=="many-to-one"&&h.relationshipType!=="many-to-many"){if(!h.foreignKey||!h.tableId)throw new Error("Invalid relationship schema");let{tableName:y}=Vd(h.tableId),S=r[y];if(!S||!S.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=S.primary[0],_=S.schema[O].externalType;_?t.specificType(h.foreignKey,_):t.integer(h.foreignKey).unsigned(),t.foreign(h.foreignKey).references(`${y}.${O}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(p);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${h.type} is not a valid SQL type`);default:Ct.unreachable(g)}}let f=i?n?.schema[i.old].type:void 0;return i&&f&&!Em(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([h,m])=>!Em(m.type)&&e.schema[h]==null).forEach(([h,m])=>{i?.old===h||Em(m.type)||(n.constrained&&n.constrained.indexOf(h)!==-1&&t.dropForeign(h),t.dropColumn(h))}),t}s(s_,"generateSchema");function p0(t,e,r){return t.createTable(e.name,n=>{s_(n,e,r)})}s(p0,"buildCreateTable");function m0(t,e,r,n,i){return t.alterTable(e.name,o=>{s_(o,e,r,n,i)})}s(m0,"buildUpdateTable");function h0(t,e){return t.dropTable(e.name)}s(h0,"buildDeleteTable");var gm=class{static{s(this,"SqlTableQueryBuilder")}constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,d0.knex)({client:this.sqlClient}).schema;e?.schema&&(r=r.withSchema(e.schema));let n;if(!e.table||!e.tables)throw new Error("Cannot execute without table being specified");if(e.table.sourceType==="internal")throw new Error("Cannot perform table actions for SQS.");switch(this._operation(e)){case"CREATE_TABLE":n=p0(r,e.table,e.tables);break;case"UPDATE_TABLE":if(!e.table)throw new Error("Must specify old table for update");if(this.sqlClient==="mysql2"&&e.meta?.renamed){let i=e.meta.renamed.updated;return{sql:`alter table ${e?.schema?`\`${e.schema}\`.\`${e.table.name}\``:`\`${e.table.name}\``} rename column \`${e.meta.renamed.old}\` to \`${i}\`;`,bindings:[]}}if(n=m0(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,o=e.meta.renamed.updated,a=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,u=jn(n);if(Array.isArray(u))for(let c of u)c.sql.startsWith("exec sp_rename")&&(c.sql=`exec sp_rename '${a}.${i}', '${o}', 'COLUMN'`,c.bindings=[]);return u}break;case"DELETE_TABLE":n=h0(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return jn(n)}},Tc=gm;var c_=require("lodash");var _m="__bb_total";function o_(){return(E.SQL_MAX_ROWS?parseInt(E.SQL_MAX_ROWS):null)||5e3}s(o_,"getBaseLimit");function ym(){return(E.SQL_MAX_RELATED_ROWS?parseInt(E.SQL_MAX_RELATED_ROWS):null)||500}s(ym,"getRelationshipLimit");function E0(t,e){return t.sort((r,n)=>{let i=e.find(a=>a&&r.endsWith(a)),o=e.find(a=>a&&n.endsWith(a));return i&&!o?-1:!i&&o?1:r.localeCompare(n)})}s(E0,"prioritisedArraySort");function l_(t){return Array.isArray(t)?t.map(e=>l_(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}s(l_,"convertBooleans");function a_(t){return t.sourceType==="internal"||t.sourceId===Cc}s(a_,"isSqs");function g0(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}s(g0,"escapeQuotes");function d_(t,e='"'){return`${e}${g0(t,e)}${e}`}s(d_,"wrap");function Tm(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=d_(t[r],e));return`[${t.join(",")}]`}s(Tm,"stringifyArray");function f_(t){return km.includes(t.type)&&!Ne.schema.isDeprecatedSingleUserColumn(t)}s(f_,"isJsonColumn");var y0={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Sm=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new ar.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}static{s(this,"InternalBuilder")}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(a=>{let u=a.split(/\./g),c,l=u[0];return u.length>1&&(c=u[0],l=u.slice(1).join(".")),{table:c,column:l,field:a}}).filter(({table:a})=>!a||a===n).map(({table:a,column:u,field:c})=>{let l=i[u];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(l)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([a,u].join(".")),this.knex.raw(this.quote(c))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(l)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(c),this.knex.raw(this.quote(c))]):a?this.rawQuotedIdentifier(`${a}.${u}`):this.rawQuotedIdentifier(c)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),o=this.table.schema[i],a=this.rawQuotedIdentifier(e);return(o.type==="string"||o.type==="longform"||o.type==="bb_reference_single"||o.type==="bb_reference"||o.type==="options"||o.type==="barcodeqr")&&(r?.forSelect?a=this.knex.raw("to_char(??) as ??",[a,this.rawQuotedIdentifier(i)]):a=this.knex.raw("to_char(??)",[a])),a}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&f_(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${e}}`;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),o=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${o}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!Qd(e))return null}else if(r.dateOnly){let n=Kd(e);return n?new Date(n):null}else return r.ignoreTimezones?ja(e)?new Date(e):qd(e)?new Date(e+"Z"):null:ja(e)?new Date(e.trim()):null;return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),o=this.table.schema[i];o&&(e[r]=this.parse(n,o))}return e}parseFilters(e){e=(0,c_.cloneDeep)(e);for(let r of Object.values(Nr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=this.parse(n[i],a))}}for(let r of Object.values(Zt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];a&&(n[i]=n[i].map(u=>this.parse(u,a)))}}for(let r of Object.values(In)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:o}=this.splitter.run(i),a=this.table.schema[o];if(!a)continue;let u=n[i];"low"in u&&(u.low=this.parse(u.low,a)),"high"in u&&(u.high=this.parse(u.high,a))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:o,schema:a,tableAliases:u,table:c}=this.query,l=u?.[c.name]||c.name,d=s(f=>n.match(new RegExp(`^${f}\\.`)),"matches");if(!o)return e;for(let f of o){let p=f.tableName,h=u?.[p]||p,m=d(p)||d(h),g=d(f.column);if((m||g)&&f.to&&f.tableName){let y=this.knex.select(this.knex.raw(1)).from({[h]:p}),S=y.clone(),O=jd(f),_;if(m?_=n:_=n.replace(new RegExp(`^${f.column}.`),`${u?.[f.tableName]||f.tableName}.`),O){let D=u?.[O.through]||f.through,T=this.tableNameWithSchema(O.through,{alias:D,schema:a});S=S.innerJoin(T,function(){this.on(`${h}.${O.toPrimary}`,"=",`${D}.${O.to}`)}).where(`${D}.${O.from}`,"=",this.rawQuotedIdentifier(`${l}.${O.fromPrimary}`)),this.client==="sqlite3"&&(S=this.addJoinFieldCheck(S,O)),e=e.where(I=>{I.whereExists(i(_,S)),r&&I.orWhereNotExists(y.clone().innerJoin(T,function(){this.on(`${l}.${O.fromPrimary}`,"=",`${D}.${O.from}`)}))})}else{let D=`${h}.${f.to}`,T=`${l}.${f.from}`;S=S.where(D,"=",this.rawQuotedIdentifier(T)),e=e.where(I=>{I.whereExists(i(_,S.clone())),r&&I.orWhereNotExists(S)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let o=this.query.tableAliases,a=r.allOr,c=this.client==="sqlite3"?this.table._id:this.table.name;function l(m){return o?.[m]||m}s(l,"getTableAlias");function d(m,g,y,S){let O=s((_,D,T)=>{let[I,...M]=D.split("."),P=M.join("."),k=l(I);return _.andWhere(Y=>y(Y,k?`${k}.${P}`:P,T))},"handleRelationship");for(let _ in m){let D=m[_],T=$s(_),I=T.includes("."),M=n?.relationship&&I,P;if(_==="_complexIdOperator"&&(P=m[_])&&S){let k=l(c);e=S(e,P.id.map(Y=>k?`${k}.${Y}`:Y),P.values)}else if(I)M&&(a&&(e=e.or),e=i.addRelationshipForFilter(e,y0[g],T,(k,Y)=>O(Y,k,D)));else{let k=l(c);e=y(e,k?`${k}.${T}`:T,D)}}}s(d,"iterate");let f=s((m,g,y)=>((r?.fuzzyOr||a)&&(m=m.or),this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),"like"),p=s((m,g=!1)=>{function y(S){return(a||m===r?.containsAny)&&(S=S.or),m===r?.notContains&&(S=S.not),S}s(y,"addModifiers"),this.client==="pg"?d(m,"contains",(S,O,_)=>{S=y(S);let D=this.getFieldSchema(O),T="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(D)&&(T="",_=`{${_.map(M=>M.substring(1,M.length-1))}}`),g?S.whereRaw(T?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(O),T?this.knex.raw(Tm(_,"'")):this.knex.raw(_)]):S.whereRaw(`COALESCE(??${T} @> '??', FALSE)`,[this.rawQuotedIdentifier(O),T?this.knex.raw(Tm(_)):this.knex.raw(_)])}):this.client==="mysql2"||this.client==="mariadb"?d(m,"contains",(S,O,_)=>y(S).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(d_(Tm(_)))])):d(m,"contains",(S,O,_)=>(_.length===0||(S=S.where(D=>(m===r?.notContains&&(D=D.not),D=D.where(T=>{for(let I of _){m===r?.containsAny?T=T.or:T=T.and;let M=typeof I=="string"?`"${I.toLowerCase()}"`:I;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${M}%`)}}),m===r?.notContains&&(D=D.or.whereNull(this.rawQuotedIdentifier(O))),D))),S))},"contains");if(r.$and){let{$and:m}=r;for(let g of m.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:m}=r;e=e.where(g=>{for(let y of m.conditions)g.orWhere(S=>this.addFilters(S,{...y,allOr:!0},n))})}r.oneOf&&d(r.oneOf,"oneOf",(m,g,y)=>{let S=this.getFieldSchema(g),O=Array.isArray(y)?y:[y];if(a&&(m=m.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&S?.type==="datetime"&&S.dateOnly){for(let _ of O)_!=null?m=m.or.whereLike(g,`${_.toISOString().slice(0,10)}%`):m=m.or.whereNull(g);return m}return m.whereIn(g,O)},(m,g,y)=>(a&&(m=m.or),this.client==="oracledb"&&(g=g.map(S=>this.convertClobs(S))),m.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&d(r.string,"string",(m,g,y)=>{if(a&&(m=m.or),this.client==="oracledb"||this.client==="sqlite3")return m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let S=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(S)?m.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(S.name))]):m.whereILike(g,`${y}%`)}}),r.fuzzy&&d(r.fuzzy,"fuzzy",f),r.range&&d(r.range,"range",(m,g,y)=>{let S=s(P=>P&&Object.keys(P).length===0&&Object.getPrototypeOf(P)===Object.prototype,"isEmptyObject");S(y.low)&&(y.low=""),S(y.high)&&(y.high="");let O=Ya(y.low),_=Ya(y.high),D=this.getFieldSchema(g),T=g,I=y.high,M=y.low;return this.client==="sqlite3"&&D?.type==="datetime"&&D.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),M!=null&&(M=M.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&D?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[y.high]),M=this.knex.raw("CAST(? AS INTEGER)",[y.low])),a&&(m=m.or),O&&_?m.whereBetween(T,[M,I]):O?m.where(T,">=",M):_?m.where(T,"<=",I):m}),r.equal&&d(r.equal,"equal",(m,g,y)=>{let S=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(_=>_.whereNotNull(O).andWhere(O,y))}else return this.client==="sqlite3"&&S?.type==="datetime"&&S.dateOnly?y!=null?m.whereLike(g,`${y.toISOString().slice(0,10)}%`):m.whereNull(g):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&d(r.notEqual,"notEqual",(m,g,y)=>{let S=this.getFieldSchema(g);if(a&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(_=>_.not.whereNull(O).and.where(O,"!=",y)).or.whereNull(O)}else return this.client==="sqlite3"&&S?.type==="datetime"&&S.dateOnly?y!=null?m.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):m.not.whereNull(g):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&d(r.empty,"empty",(m,g)=>(a&&(m=m.or),m.whereNull(g))),r.notEmpty&&d(r.notEmpty,"notEmpty",(m,g)=>(a&&(m=m.or),m.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let h=o?.[this.table._id]||this.table._id;return r.documentType&&!Gd(this.table)&&h&&e.andWhereLike(`${h}._id`,`${Xt(r.documentType)}%`),e}isSqs(){return a_(this.table)}getTableName(e){e||(e=this.table);let r=e.name;a_(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${_m}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let o=n.map(a=>this.qualifyIdentifier(a));if(this.client==="oracledb"){let a=o.map(c=>this.convertClobs(c)),u=o.map(c=>this.convertClobs(c,{forSelect:!0}));e=e.groupBy(a).select(u)}else e=e.groupBy(o).select(o)}for(let o of r){let a=o.calculationType;if(a==="count")if("distinct"in o&&o.distinct)if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[u,o.name]))}else e=e.countDistinct(`${i}.${o.field} as ${o.name}`);else if(this.client==="oracledb"){let u=this.convertClobs(`${i}.${o.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[u,o.name]))}else e=e.count(`${o.field} as ${o.name}`);else{let u=this.getFieldSchema(o.field);if(!u)throw new Error(`field schema missing for aggregation target: ${o.field}`);let c=this.knex.raw("??(??)",[this.knex.raw(a),this.rawQuotedIdentifier(`${i}.${o.field}`)]);u.type==="bigint"&&(c=this.castIntToString(c)),e=e.select(this.knex.raw("?? as ??",[c,o.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,o=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[u,c]of Object.entries(r)){let l=c.direction==="ascending"?"asc":"desc",d;(this.client==="pg"||this.client==="oracledb")&&(d=c.direction==="ascending"?"first":"last");let f=`${o}.${u}`,p;this.isAggregateField(u)?p=this.rawQuotedIdentifier(u):this.client==="oracledb"?p=this.convertClobs(f):p=this.rawQuotedIdentifier(f),e=e.orderByRaw(`?? ?? ${d?"nulls ??":""}`,[p,this.knex.raw(l),...d?[this.knex.raw(d)]:[]])}if(!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)){if(i[0]===void 0)throw new Error(`Primary key not found for table ${this.table.name}`);e=e.orderBy(`${o}.${i[0]}`)}return e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],o,a;if(n.length>1){let l=n.shift();o=n.join("."),a=`${l}.${o}`}else o=n.join("."),a=o;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let u=this.rawQuotedIdentifier(a),c=e.schema[i];return c&&c.type==="bigint"&&(u=this.castIntToString(u)),[o,u]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,o=this.knex,{resource:a,tableAliases:u,schema:c,tables:l}=this.query,d=a?.fields||[];for(let f of n){let{tableName:p,through:h,to:m,from:g,fromPrimary:y,toPrimary:S}=f;if(!p||!r)continue;let O=l[p];if(!O)throw new Error(`related table "${p}" not found in datasource`);let _=u?.[p]||p,D=u?.[r]||r,T=h&&u?.[h]||h,I=this.tableNameWithSchema(p,{alias:_,schema:c}),M=[...O?.primary||[],O?.primaryDisplay].filter(W=>W),P=E0(d.filter(W=>W.split(".")[0]===_),M);P=P.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=P.map(W=>this.buildJsonField(O,W));if(!k.length)continue;let Y=k.map(W=>{let J=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${J}??`,[W[0],W[1]]).toString()}).join(","),Dt=`${_}.${S||m}`,B=o.from(I).orderBy(Dt),L=h&&S&&y,v=L?`${T}.${g}`:`${_}.${m}`,$=L?`${D}.${y}`:`${D}.${g}`;if(L){let W=this.tableNameWithSchema(h,{alias:T,schema:c});B=B.join(W,function(){this.on(`${_}.${S}`,"=",`${T}.${m}`)})}B=B.where(this.rawQuotedIdentifier(v),"=",this.rawQuotedIdentifier($));let w=s(W=>(B=B.select(P.map(J=>this.rawQuotedIdentifier(J))).limit(ym()),o.select(W).from({[_]:B})),"standardWrap"),K;switch(i){case"sqlite3":B=this.addJoinFieldCheck(B,f),K=w(this.knex.raw(`json_group_array(json_object(${Y}))`));break;case"pg":K=w(this.knex.raw(`json_agg(json_build_object(${Y}))`));break;case"mariadb":K=B.select(o.raw(`json_arrayagg(json_object(${Y}) LIMIT ${ym()})`));break;case"mysql2":case"oracledb":K=w(this.knex.raw(`json_arrayagg(json_object(${Y}))`));break;case"mssql":{let W=o.select("*").from({[D]:B.select(k.map(J=>o.ref(J[1]).as(J[0]))).limit(ym())});K=o.raw(`(SELECT ?? = (${W} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:o}=this.query,a=r.to,u=r.from,c=r.through,l=i?.[a]||a,d=c&&i?.[c]||c,f=i?.[u]||u,p=this.tableNameWithSchema(a,{alias:l,schema:o}),h=c?this.tableNameWithSchema(c,{alias:d,schema:o}):void 0;return c?e=e.leftJoin(h,function(){for(let m of n){let g=m.fromPrimary,y=m.from;this.orOn(`${f}.${g}`,"=",`${d}.${y}`)}}).leftJoin(p,function(){for(let m of n){let g=m.toPrimary,y=m.to;this.orOn(`${l}.${g}`,`${d}.${y}`)}}):e=e.leftJoin(p,function(){for(let m of n){let g=m.from,y=m.to;this.orOn(`${f}.${g}`,"=",`${l}.${y}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[o,a]of Object.entries(this.query.table.schema)){if(a.constraints?.presence===!0||a.type==="formula"||a.type==="auto"||a.type==="link"||a.type==="ai")continue;i[o]==null&&(i[o]=null)}else for(let[o,a]of Object.entries(i))a==null&&delete i[o];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:o,table:a}=this.query,{limits:u}=e,c=this.qualifiedKnex(),l=null,d=u?.query||u?.base;if(i&&i.page&&i.limit){let h=(i.page<=1?0:i.page-1)*i.limit;d=i.limit,l=h}else i&&i.offset&&i.limit?(d=i.limit,l=i.offset):i&&i.limit&&(d=i.limit);r!=="COUNT"&&(d!=null&&(c=c.limit(d)),l!=null&&(c=c.offset(l)));let f=this.query.resource?.aggregations||[];if(r==="COUNT"?c=this.addDistinctCount(c):f.length>0?c=this.addAggregations(c,f):c=c.select(this.generateSelectStatement()),r!=="COUNT"&&(c=this.addSorting(c)),c=this.addFilters(c,n,{relationship:!0}),o?.length&&f.length===0){let p=this.query.tableAliases?.[a.name]||a.name,h=this.addSorting(this.knex.with("paginated",c.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"paginated"}));return this.addJsonRelationships(h,a.name,o)}return c}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),o=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(o):i.update(o).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Am=class extends Tc{constructor(r,n=o_()){super(r);this.limit=n}static{s(this,"SqlQueryBuilder")}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let o=jn(r);return i==="sqlite3"&&(o=l_(o)),o}}_query(r,n={}){let i=this.getSqlClient(),o={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(o.useNullAsDefault=!0);let a=(0,u_.knex)(o),u,c=new Sm(i,a,r);switch(this._operation(r)){case"CREATE":u=c.create(n);break;case"READ":u=c.read({limits:{query:this.limit,base:o_()}});break;case"COUNT":u=c.read();break;case"UPDATE":u=c.update(n);break;case"DELETE":u=c.delete(n);break;case"BULK_CREATE":u=c.bulkCreate();break;case"BULK_UPSERT":u=c.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(u,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=o=>o){let o=this.getSqlClient(),a=this._operation(r),u=this._query(r,{disableReturning:!0});if(Array.isArray(u)){let f=[];for(let p of u)f.push(await n(p,a));return f}let c;a==="DELETE"&&(c=i(await this.getReturningRow(n,r)));let l=await n(u,a),d=i(l);if(a==="CREATE"||a==="UPDATE"){let f;o==="mssql"?f=d?.[0].id:(o==="mysql2"||o==="mariadb")&&(f=d?.insertId),c=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return a==="COUNT"?d:a!=="READ"?c:d.length?d:[{[a.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Cc){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let o=this.getTableName(r,i);for(let[a,u]of Object.entries(r.schema)){if(!f_(u))continue;let c=`${o}.${a}`;for(let l of n)typeof l[c]=="string"&&(l[c]=JSON.parse(l[c])),typeof l[a]=="string"&&(l[a]=JSON.parse(l[a]))}return n}log(r,n){Os(this.getSqlClient(),r,n)}},p_=Am;var Om={};N(Om,{base:()=>T0});function T0(t){return{_id:Ot,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}s(T0,"base");var wm={};N(wm,{jsonFromCsvString:()=>S0});var m_=F(require("csvtojson"));async function S0(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let o of i){let a,u=!1;try{let c=await(0,m_.default)({ignoreEmpty:r,delimiter:o}).fromString(t);for(let[,l]of c.entries()){let d=Object.keys(l);if(a==null&&(a=d),!n&&d.length===1){u=!0;break}if(a.length!==d.length){u=!0;break}for(let f of a)(l[f]===void 0||l[f]==="")&&(l[f]=null)}if(u)continue;return c}catch{continue}}throw new Error("Unable to determine delimiter")}s(S0,"jsonFromCsvString");var Dm=class{static{s(this,"Endpoint")}constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,o=this.controller,a=this.outputMiddlewares,u=s(()=>{},"complete"),c=[n,...i,o,...a,u];e[r](...c)}},Sc=Dm;var h_=F(require("@koa/router"));var _n=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}static{s(this,"EndpointGroup")}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),o=new Sc(e,r,i);if(n.length!==0)for(let a of n)o.addMiddleware(a);return this.endpoints.push(o),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new h_.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var No=class{constructor(){this.groups=[]}static{s(this,"EndpointGroupList")}group(...e){let r=new _n;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var A0={...Vs,...ue},_0=s((t={})=>{Ka(t.db)},"init");0&&(module.exports={AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DesignDocuments,DocumentType,Duration,DurationType,EmailUnavailableError,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,USER_METADATA_PREFIX,UnexpectedError,UsageLimitError,UserStatus,ViewName,WORKSPACE_DEV,WORKSPACE_DEV_PREFIX,WORKSPACE_PREFIX,accounts,auth,blacklist,cache,configs,constants,context,csv,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
39
39
  //# sourceMappingURL=index.js.map