@budibase/backend-core 3.13.16 → 3.13.18

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 BI=Object.create;var ka=Object.defineProperty;var GI=Object.getOwnPropertyDescriptor;var $I=Object.getOwnPropertyNames;var VI=Object.getPrototypeOf,qI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)ka(t,r,{get:e[r],enumerable:!0})},Uh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $I(e))!qI.call(t,i)&&i!==r&&ka(t,i,{get:()=>e[i],enumerable:!(n=GI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?BI(VI(t)):{},Uh(e||!t||!t.__esModule?ka(r,"default",{value:t,enumerable:!0}):r,t)),WI=t=>Uh(ka({},"__esModule",{value:!0}),t);var ag=H((ql,Wl)=>{"use strict";(function(t,e){typeof ql=="object"&&typeof Wl<"u"?Wl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(ql,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",p="year",f="date",m="Invalid Date",d=/^(\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,E={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($){var F=["th","st","nd","rd"],I=$%100;return"["+$+(F[(I-20)%10]||F[I]||F[0])+"]"}},y=function($,F,I){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(I)+$},S={s:y,z:function($){var F=-$.utcOffset(),I=Math.abs(F),q=Math.floor(I/60),L=I%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(L,2,"0")},m:function $(F,I){if(F.date()<I.date())return-$(I,F);var q=12*(I.year()-F.year())+(I.month()-F.month()),L=F.clone().add(q,c),Y=I-L<0,V=F.clone().add(q+(Y?-1:1),c);return+(-(q+(I-L)/(Y?L-V:V-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:p,w:u,d:a,D:f,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},O="en",R={};R[O]=E;var T="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[T])},B=function $(F,I,q){var L;if(!F)return O;if(typeof F=="string"){var Y=F.toLowerCase();R[Y]&&(L=Y),I&&(R[Y]=I,L=Y);var V=F.split("-");if(!L&&V.length>1)return $(V[0])}else{var ue=F.name;R[ue]=F,L=ue}return!q&&L&&(O=L),L||!q&&O},b=function($,F){if(_($))return $.clone();var I=typeof F=="object"?F:{};return I.date=$,I.args=arguments,new de(I)},k=S;k.l=B,k.i=_,k.w=function($,F){return b($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function $(I){this.$L=B(I.locale,null,!0),this.parse(I),this.$x=this.$x||I.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(I){this.$d=function(q){var L=q.date,Y=q.utc;if(L===null)return new Date(NaN);if(k.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var V=L.match(d);if(V){var ue=V[2]-1||0,xe=(V[7]||"0").substring(0,3);return Y?new Date(Date.UTC(V[1],ue,V[3]||1,V[4]||0,V[5]||0,V[6]||0,xe)):new Date(V[1],ue,V[3]||1,V[4]||0,V[5]||0,V[6]||0,xe)}}return new Date(L)}(I),this.init()},F.init=function(){var I=this.$d;this.$y=I.getFullYear(),this.$M=I.getMonth(),this.$D=I.getDate(),this.$W=I.getDay(),this.$H=I.getHours(),this.$m=I.getMinutes(),this.$s=I.getSeconds(),this.$ms=I.getMilliseconds()},F.$utils=function(){return k},F.isValid=function(){return this.$d.toString()!==m},F.isSame=function(I,q){var L=b(I);return this.startOf(q)<=L&&L<=this.endOf(q)},F.isAfter=function(I,q){return b(I)<this.startOf(q)},F.isBefore=function(I,q){return this.endOf(q)<b(I)},F.$g=function(I,q,L){return k.u(I)?this[q]:this.set(L,I)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(I,q){var L=this,Y=!!k.u(q)||q,V=k.p(I),ue=function(ln,Qe){var _r=k.w(L.$u?Date.UTC(L.$y,Qe,ln):new Date(L.$y,Qe,ln),L);return Y?_r:_r.endOf(a)},xe=function(ln,Qe){return k.w(L.toDate()[ln].apply(L.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(Qe)),L)},ve=this.$W,Fe=this.$M,Q=this.$D,Ti="set"+(this.$u?"UTC":"");switch(V){case p:return Y?ue(1,0):ue(31,11);case c:return Y?ue(1,Fe):ue(0,Fe+1);case u:var cn=this.$locale().weekStart||0,Is=(ve<cn?ve+7:ve)-cn;return ue(Y?Q-Is:Q+(6-Is),Fe);case a:case f:return xe(Ti+"Hours",0);case o:return xe(Ti+"Minutes",1);case s:return xe(Ti+"Seconds",2);case i:return xe(Ti+"Milliseconds",3);default:return this.clone()}},F.endOf=function(I){return this.startOf(I,!1)},F.$set=function(I,q){var L,Y=k.p(I),V="set"+(this.$u?"UTC":""),ue=(L={},L[a]=V+"Date",L[f]=V+"Date",L[c]=V+"Month",L[p]=V+"FullYear",L[o]=V+"Hours",L[s]=V+"Minutes",L[i]=V+"Seconds",L[n]=V+"Milliseconds",L)[Y],xe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===p){var ve=this.clone().set(f,1);ve.$d[ue](xe),ve.init(),this.$d=ve.set(f,Math.min(this.$D,ve.daysInMonth())).$d}else ue&&this.$d[ue](xe);return this.init(),this},F.set=function(I,q){return this.clone().$set(I,q)},F.get=function(I){return this[k.p(I)]()},F.add=function(I,q){var L,Y=this;I=Number(I);var V=k.p(q),ue=function(Fe){var Q=b(Y);return k.w(Q.date(Q.date()+Math.round(Fe*I)),Y)};if(V===c)return this.set(c,this.$M+I);if(V===p)return this.set(p,this.$y+I);if(V===a)return ue(1);if(V===u)return ue(7);var xe=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,ve=this.$d.getTime()+I*xe;return k.w(ve,this)},F.subtract=function(I,q){return this.add(-1*I,q)},F.format=function(I){var q=this,L=this.$locale();if(!this.isValid())return L.invalidDate||m;var Y=I||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ue=this.$H,xe=this.$m,ve=this.$M,Fe=L.weekdays,Q=L.months,Ti=L.meridiem,cn=function(Qe,_r,Os,Fa){return Qe&&(Qe[_r]||Qe(q,Y))||Os[_r].slice(0,Fa)},Is=function(Qe){return k.s(ue%12||12,Qe,"0")},ln=Ti||function(Qe,_r,Os){var Fa=Qe<12?"AM":"PM";return Os?Fa.toLowerCase():Fa};return Y.replace(g,function(Qe,_r){return _r||function(Os){switch(Os){case"YY":return String(q.$y).slice(-2);case"YYYY":return k.s(q.$y,4,"0");case"M":return ve+1;case"MM":return k.s(ve+1,2,"0");case"MMM":return cn(L.monthsShort,ve,Q,3);case"MMMM":return cn(Q,ve);case"D":return q.$D;case"DD":return k.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return cn(L.weekdaysMin,q.$W,Fe,2);case"ddd":return cn(L.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(ue);case"HH":return k.s(ue,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return ln(ue,xe,!0);case"A":return ln(ue,xe,!1);case"m":return String(xe);case"mm":return k.s(xe,2,"0");case"s":return String(q.$s);case"ss":return k.s(q.$s,2,"0");case"SSS":return k.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(I,q,L){var Y,V=this,ue=k.p(q),xe=b(I),ve=(xe.utcOffset()-this.utcOffset())*e,Fe=this-xe,Q=function(){return k.m(V,xe)};switch(ue){case p:Y=Q()/12;break;case c:Y=Q();break;case l:Y=Q()/3;break;case u:Y=(Fe-ve)/6048e5;break;case a:Y=(Fe-ve)/864e5;break;case o:Y=Fe/r;break;case s:Y=Fe/e;break;case i:Y=Fe/t;break;default:Y=Fe}return L?Y:k.a(Y)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return R[this.$L]},F.locale=function(I,q){if(!I)return this.$L;var L=this.clone(),Y=B(I,q,!0);return Y&&(L.$L=Y),L},F.clone=function(){return k.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},$}(),un=de.prototype;return b.prototype=un,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",p],["$D",f]].forEach(function($){un[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),b.extend=function($,F){return $.$i||($(F,de,b),$.$i=!0),b},b.locale=B,b.isDayjs=_,b.unix=function($){return b(1e3*$)},b.en=R[O],b.Ls=R,b.p={},b})});var xt=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var yx=t=>new su(t);He.valid=yx;var Ex=t=>new ou(t);He.err=Ex;var su=class{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,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=su;var ou=class{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,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=ou});var Rt=H(dg=>{"use strict";Object.defineProperty(dg,"__esModule",{value:!0})});var Cr=H(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Wt();var oe=xt();Rt();var Tx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Ax=["sun","mon","tue","wed","thu","fri","sat"],Sx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ps=(t,e,r)=>{if(e==="months"&&r.useAliases&&Tx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Ax.indexOf(t.toLowerCase())!==-1)return(0,oe.valid)(!0);let n=Number(t);if(isNaN(n))return(0,oe.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,oe.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,oe.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,oe.valid)(!0)},_x=(t,e,r)=>{if(t==="*")return Sx(e,r)?(0,oe.valid)(!0):(0,oe.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,oe.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,oe.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,oe.valid)(!0):Ps(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,oe.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,oe.valid)(!0):Ps(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,oe.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,oe.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,oe.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ps(n,e,r)}return Ps(t,e,r)},pg=(t,e,r,n)=>t==="*"?(0,oe.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,oe.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,oe.valid)(!0):Ps(t,e,r),Ix=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return _x(n[0],e,r);if(n.length===2){let i=pg(n[0],e,r,0),s=pg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,oe.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,oe.valid)(!0)}return(0,oe.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},Ox=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '/')`);let i=Ix(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,oe.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,oe.valid)(!0)},xx=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,oe.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,oe.valid)(!0):(0,oe.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,oe.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(Ox(o,e,r))}),i.every(o=>o.isValid()))return(0,oe.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,oe.err)(s)};Kl.default=xx});var fg=H(Us=>{"use strict";var Rx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Wt();var wx=xt(),bx=Rx(Cr());Rt();var Dx=(t,e)=>{if(!t.seconds)return(0,wx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,bx.default)(r,"seconds",e)};Us.default=Dx});var mg=H(Ls=>{"use strict";var Cx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Wt();var vx=xt(),Nx=Cx(Cr());Rt();var Px=(t,e)=>{if(!t.minutes)return(0,vx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Nx.default)(r,"minutes",e)};Ls.default=Px});var hg=H(Ms=>{"use strict";var Ux=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Wt();var Lx=xt(),Mx=Ux(Cr());Rt();var Fx=(t,e)=>{if(!t.hours)return(0,Lx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Mx.default)(r,"hours",e)};Ms.default=Fx});var gg=H(ks=>{"use strict";var kx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Wt();var Fs=xt(),Bx=kx(Cr());Rt();var Gx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Bx.default)(r,"daysOfMonth",e)};ks.default=Gx});var yg=H(Bs=>{"use strict";var $x=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});Wt();var Vx=xt(),qx=$x(Cr());Rt();var Wx=(t,e)=>{if(!t.months)return(0,Vx.err)(["months field is undefined."]);let{months:r}=t;return(0,qx.default)(r,"months",e)};Bs.default=Wx});var Eg=H($s=>{"use strict";var Qx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Wt();var Gs=xt(),jx=Qx(Cr());Rt();var Hx=(t,e)=>{if(!t.daysOfWeek)return(0,Gs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Gs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Gs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,jx.default)(r,"daysOfWeek",e)};$s.default=Hx});var Tg=H(Vs=>{"use strict";var Kx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});Wt();var Yx=xt(),Jx=Kx(Cr());Rt();var zx=(t,e)=>{if(!t.years)return(0,Yx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Jx.default)(r,"years",e)};Vs.default=zx});var Ig=H((gQ,_g)=>{"use strict";var Yl;try{Yl=Map}catch{}var Jl;try{Jl=Set}catch{}function Ag(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(Sg);if(Yl&&t instanceof Yl)return new Map(Array.from(t.entries()));if(Jl&&t instanceof Jl)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 s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:Ag(t[i],e,r)}return n}return t}function Sg(t){return Ag(t,[],[])}_g.exports=Sg});var qs=H(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=iR;var Zx=Object.prototype.toString,Xx=Error.prototype.toString,eR=RegExp.prototype.toString,tR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",rR=/^Symbol\((.*)\)(.*)$/;function nR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Og(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return nR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return tR.call(t).replace(rR,"Symbol($1)");let n=Zx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Xx.call(t)+"]":n==="RegExp"?eR.call(t):null}function iR(t,e){let r=Og(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Og(this[n],e);return s!==null?s:i},2)}});var tr=H(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=Ne.array=Ne.object=Ne.boolean=Ne.date=Ne.number=Ne.string=Ne.mixed=void 0;var xg=sR(qs());function sR(t){return t&&t.__esModule?t:{default:t}}var Rg={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,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,xg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,xg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ne.mixed=Rg;var wg={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"};Ne.string=wg;var bg={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"};Ne.number=bg;var Dg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Dg;var Cg={isValue:"${path} field must be ${value}"};Ne.boolean=Cg;var vg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=vg;var Ng={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"};Ne.array=Ng;var oR=Object.assign(Object.create(null),{mixed:Rg,string:wg,number:bg,date:Dg,object:vg,array:Ng,boolean:Cg});Ne.default=oR});var Ni=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var aR=t=>t&&t.__isYupSchema__;au.default=aR});var Ug=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var uR=Pg(require("lodash/has")),cR=Pg(Ni());function Pg(t){return t&&t.__esModule?t:{default:t}}var Zl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,uR.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:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.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,cR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},lR=Zl;uu.default=lR});var ed=H(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=dR;function dR(t){return t==null?[]:[].concat(t)}});var Dn=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.default=void 0;var pR=Lg(qs()),fR=Lg(ed());function Lg(t){return t&&t.__esModule?t:{default:t}}function td(){return td=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},td.apply(this,arguments)}var mR=/\$\{\s*(\w+)\s*\}/g,rd=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=td({},r,{path:n})),typeof e=="string"?e.replace(mR,(i,s)=>(0,pR.default)(r[s])):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,fR.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};cu.default=rd});var lu=H(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=yR;var nd=hR(Dn());function hR(t){return t&&t.__esModule?t:{default:t}}var gR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function yR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=gR(e),l=n.length,p=[];if(o=o||[],!l)return o.length?c(new nd.default(o,s,u)):c(null,s);for(let f=0;f<n.length;f++){let m=n[f];m(i,function(g){if(g){if(!nd.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);p.push(g)}if(--l<=0){if(p.length&&(a&&p.sort(a),o.length&&p.push(...o),o=p),o.length){c(new nd.default(o,s,u),s);return}c(null,s)}})}}});var Ws=H((OQ,Gg)=>{"use strict";function Cn(t){this._maxSize=t,this.clear()}Cn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Cn.prototype.get=function(t){return this._values[t]};Cn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var ER=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Bg=/^\d+$/,TR=/^\d/,AR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,SR=/^\s*(['"]?)(.*?)(\1)\s*$/,ad=512,Mg=new Cn(ad),Fg=new Cn(ad),kg=new Cn(ad);Gg.exports={Cache:Cn,split:od,normalizePath:sd,setter:function(t){var e=sd(t);return Fg.get(t)||Fg.set(t,function(n,i){for(var s=0,o=e.length,a=n;s<o-1;){var u=e[s];if(u==="__proto__"||u==="constructor"||u==="prototype")return n;a=a[e[s++]]}a[e[s]]=i})},getter:function(t,e){var r=sd(t);return kg.get(t)||kg.set(t,function(i){for(var s=0,o=r.length;s<o;)if(i!=null||!e)i=i[r[s++]];else return;return i})},join:function(t){return t.reduce(function(e,r){return e+(ud(r)||Bg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){_R(Array.isArray(t)?t:od(t),e,r)}};function sd(t){return Mg.get(t)||Mg.set(t,od(t).map(function(e){return e.replace(SR,"$2")}))}function od(t){return t.match(ER)||[""]}function _R(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(xR(i)&&(i='"'+i+'"'),a=ud(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ud(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function IR(t){return t.match(TR)&&!t.match(Bg)}function OR(t){return AR.test(t)}function xR(t){return!ud(t)&&(IR(t)||OR(t))}});var vn=H(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.create=wR;js.default=void 0;var RR=Ws(),du={context:"$",value:"."};function wR(t,e){return new Qs(t,e)}var Qs=class{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]===du.context,this.isValue=this.key[0]===du.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?du.context:this.isValue?du.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,RR.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}};js.default=Qs;Qs.prototype.__isYupRef=!0});var $g=H(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=vR;var bR=cd(require("lodash/mapValues")),pu=cd(Dn()),DR=cd(vn());function cd(t){return t&&t.__esModule?t:{default:t}}function fu(){return fu=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},fu.apply(this,arguments)}function CR(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function vR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=CR(r,["value","path","label","options","originalValue","sync"]),{name:p,test:f,params:m,message:d}=t,{parent:g,context:E}=a;function y(_){return DR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,bR.default)(fu({value:i,originalValue:u,label:o,path:_.path||s},m,_.params),y),b=new pu.default(pu.default.formatError(_.message||d,B),i,B.path,_.type||p);return b.params=B,b}let O=fu({path:s,parent:g,type:p,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(f.call(O,i,O)).then(_=>{pu.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=f.call(O,i,O),typeof((T=R)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}pu.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var dd=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.getIn=Vg;Hs.default=void 0;var NR=Ws(),PR=t=>t.substr(0,t.length-1).substr(1);function Vg(t,e,r,n=r){let i,s,o;return e?((0,NR.forEach)(e,(a,u,c)=>{let l=u?PR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let p=c?parseInt(l,10):0;if(r&&p>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[p],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var UR=(t,e,r,n)=>Vg(t,e,r,n).schema,LR=UR;Hs.default=LR});var Wg=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var qg=MR(vn());function MR(t){return t&&t.__esModule?t:{default:t}}var pd=class t{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){qg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){qg.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}};mu.default=pd});var nr=H(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var Qg=rr(Ig()),Pi=tr(),FR=rr(Ug()),jg=rr(lu()),hu=rr($g()),Hg=rr(qs()),kR=rr(vn()),BR=dd(),GR=rr(ed()),Kg=rr(Dn()),Yg=rr(Wg());function rr(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=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},ft.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Yg.default,this._blacklist=new Yg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Pi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ft({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=ft({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Qg.default)(ft({},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=ft({},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(s=>{e.tests.forEach(o=>{s.test(o.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,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ft({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Hg.default)(e),o=(0,Hg.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 qI=Object.create;var Ba=Object.defineProperty;var WI=Object.getOwnPropertyDescriptor;var QI=Object.getOwnPropertyNames;var jI=Object.getPrototypeOf,HI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Ba(t,r,{get:e[r],enumerable:!0})},Fh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of QI(e))!HI.call(t,i)&&i!==r&&Ba(t,i,{get:()=>e[i],enumerable:!(n=WI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?qI(jI(t)):{},Fh(e||!t||!t.__esModule?Ba(r,"default",{value:t,enumerable:!0}):r,t)),YI=t=>Fh(Ba({},"__esModule",{value:!0}),t);var lg=H((Ql,jl)=>{"use strict";(function(t,e){typeof Ql=="object"&&typeof jl<"u"?jl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Ql,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",p="year",f="date",m="Invalid Date",d=/^(\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,E={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($){var F=["th","st","nd","rd"],I=$%100;return"["+$+(F[(I-20)%10]||F[I]||F[0])+"]"}},y=function($,F,I){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(I)+$},S={s:y,z:function($){var F=-$.utcOffset(),I=Math.abs(F),q=Math.floor(I/60),U=I%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(U,2,"0")},m:function $(F,I){if(F.date()<I.date())return-$(I,F);var q=12*(I.year()-F.year())+(I.month()-F.month()),U=F.clone().add(q,c),K=I-U<0,V=F.clone().add(q+(K?-1:1),c);return+(-(q+(I-U)/(K?U-V:V-U))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:p,w:u,d:a,D:f,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},O="en",R={};R[O]=E;var T="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[T])},B=function $(F,I,q){var U;if(!F)return O;if(typeof F=="string"){var K=F.toLowerCase();R[K]&&(U=K),I&&(R[K]=I,U=K);var V=F.split("-");if(!U&&V.length>1)return $(V[0])}else{var ue=F.name;R[ue]=F,U=ue}return!q&&U&&(O=U),U||!q&&O},b=function($,F){if(_($))return $.clone();var I=typeof F=="object"?F:{};return I.date=$,I.args=arguments,new de(I)},k=S;k.l=B,k.i=_,k.w=function($,F){return b($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function $(I){this.$L=B(I.locale,null,!0),this.parse(I),this.$x=this.$x||I.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(I){this.$d=function(q){var U=q.date,K=q.utc;if(U===null)return new Date(NaN);if(k.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var V=U.match(d);if(V){var ue=V[2]-1||0,xe=(V[7]||"0").substring(0,3);return K?new Date(Date.UTC(V[1],ue,V[3]||1,V[4]||0,V[5]||0,V[6]||0,xe)):new Date(V[1],ue,V[3]||1,V[4]||0,V[5]||0,V[6]||0,xe)}}return new Date(U)}(I),this.init()},F.init=function(){var I=this.$d;this.$y=I.getFullYear(),this.$M=I.getMonth(),this.$D=I.getDate(),this.$W=I.getDay(),this.$H=I.getHours(),this.$m=I.getMinutes(),this.$s=I.getSeconds(),this.$ms=I.getMilliseconds()},F.$utils=function(){return k},F.isValid=function(){return this.$d.toString()!==m},F.isSame=function(I,q){var U=b(I);return this.startOf(q)<=U&&U<=this.endOf(q)},F.isAfter=function(I,q){return b(I)<this.startOf(q)},F.isBefore=function(I,q){return this.endOf(q)<b(I)},F.$g=function(I,q,U){return k.u(I)?this[q]:this.set(U,I)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(I,q){var U=this,K=!!k.u(q)||q,V=k.p(I),ue=function(ln,Qe){var _r=k.w(U.$u?Date.UTC(U.$y,Qe,ln):new Date(U.$y,Qe,ln),U);return K?_r:_r.endOf(a)},xe=function(ln,Qe){return k.w(U.toDate()[ln].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Qe)),U)},ve=this.$W,Fe=this.$M,Q=this.$D,Ti="set"+(this.$u?"UTC":"");switch(V){case p:return K?ue(1,0):ue(31,11);case c:return K?ue(1,Fe):ue(0,Fe+1);case u:var cn=this.$locale().weekStart||0,Is=(ve<cn?ve+7:ve)-cn;return ue(K?Q-Is:Q+(6-Is),Fe);case a:case f:return xe(Ti+"Hours",0);case o:return xe(Ti+"Minutes",1);case s:return xe(Ti+"Seconds",2);case i:return xe(Ti+"Milliseconds",3);default:return this.clone()}},F.endOf=function(I){return this.startOf(I,!1)},F.$set=function(I,q){var U,K=k.p(I),V="set"+(this.$u?"UTC":""),ue=(U={},U[a]=V+"Date",U[f]=V+"Date",U[c]=V+"Month",U[p]=V+"FullYear",U[o]=V+"Hours",U[s]=V+"Minutes",U[i]=V+"Seconds",U[n]=V+"Milliseconds",U)[K],xe=K===a?this.$D+(q-this.$W):q;if(K===c||K===p){var ve=this.clone().set(f,1);ve.$d[ue](xe),ve.init(),this.$d=ve.set(f,Math.min(this.$D,ve.daysInMonth())).$d}else ue&&this.$d[ue](xe);return this.init(),this},F.set=function(I,q){return this.clone().$set(I,q)},F.get=function(I){return this[k.p(I)]()},F.add=function(I,q){var U,K=this;I=Number(I);var V=k.p(q),ue=function(Fe){var Q=b(K);return k.w(Q.date(Q.date()+Math.round(Fe*I)),K)};if(V===c)return this.set(c,this.$M+I);if(V===p)return this.set(p,this.$y+I);if(V===a)return ue(1);if(V===u)return ue(7);var xe=(U={},U[s]=e,U[o]=r,U[i]=t,U)[V]||1,ve=this.$d.getTime()+I*xe;return k.w(ve,this)},F.subtract=function(I,q){return this.add(-1*I,q)},F.format=function(I){var q=this,U=this.$locale();if(!this.isValid())return U.invalidDate||m;var K=I||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ue=this.$H,xe=this.$m,ve=this.$M,Fe=U.weekdays,Q=U.months,Ti=U.meridiem,cn=function(Qe,_r,Os,ka){return Qe&&(Qe[_r]||Qe(q,K))||Os[_r].slice(0,ka)},Is=function(Qe){return k.s(ue%12||12,Qe,"0")},ln=Ti||function(Qe,_r,Os){var ka=Qe<12?"AM":"PM";return Os?ka.toLowerCase():ka};return K.replace(g,function(Qe,_r){return _r||function(Os){switch(Os){case"YY":return String(q.$y).slice(-2);case"YYYY":return k.s(q.$y,4,"0");case"M":return ve+1;case"MM":return k.s(ve+1,2,"0");case"MMM":return cn(U.monthsShort,ve,Q,3);case"MMMM":return cn(Q,ve);case"D":return q.$D;case"DD":return k.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return cn(U.weekdaysMin,q.$W,Fe,2);case"ddd":return cn(U.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(ue);case"HH":return k.s(ue,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return ln(ue,xe,!0);case"A":return ln(ue,xe,!1);case"m":return String(xe);case"mm":return k.s(xe,2,"0");case"s":return String(q.$s);case"ss":return k.s(q.$s,2,"0");case"SSS":return k.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(I,q,U){var K,V=this,ue=k.p(q),xe=b(I),ve=(xe.utcOffset()-this.utcOffset())*e,Fe=this-xe,Q=function(){return k.m(V,xe)};switch(ue){case p:K=Q()/12;break;case c:K=Q();break;case l:K=Q()/3;break;case u:K=(Fe-ve)/6048e5;break;case a:K=(Fe-ve)/864e5;break;case o:K=Fe/r;break;case s:K=Fe/e;break;case i:K=Fe/t;break;default:K=Fe}return U?K:k.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return R[this.$L]},F.locale=function(I,q){if(!I)return this.$L;var U=this.clone(),K=B(I,q,!0);return K&&(U.$L=K),U},F.clone=function(){return k.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},$}(),un=de.prototype;return b.prototype=un,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",p],["$D",f]].forEach(function($){un[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),b.extend=function($,F){return $.$i||($(F,de,b),$.$i=!0),b},b.locale=B,b.isDayjs=_,b.unix=function($){return b(1e3*$)},b.en=R[O],b.Ls=R,b.p={},b})});var xt=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var Sx=t=>new ou(t);He.valid=Sx;var _x=t=>new au(t);He.err=_x;var ou=class{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,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=ou;var au=class{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,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=au});var Rt=H(mg=>{"use strict";Object.defineProperty(mg,"__esModule",{value:!0})});var Cr=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Wt();var oe=xt();Rt();var Ix=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Ox=["sun","mon","tue","wed","thu","fri","sat"],xx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ps=(t,e,r)=>{if(e==="months"&&r.useAliases&&Ix.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Ox.indexOf(t.toLowerCase())!==-1)return(0,oe.valid)(!0);let n=Number(t);if(isNaN(n))return(0,oe.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,oe.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,oe.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,oe.valid)(!0)},Rx=(t,e,r)=>{if(t==="*")return xx(e,r)?(0,oe.valid)(!0):(0,oe.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,oe.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,oe.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,oe.valid)(!0):Ps(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,oe.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,oe.valid)(!0):Ps(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,oe.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,oe.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,oe.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ps(n,e,r)}return Ps(t,e,r)},hg=(t,e,r,n)=>t==="*"?(0,oe.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,oe.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,oe.valid)(!0):Ps(t,e,r),wx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Rx(n[0],e,r);if(n.length===2){let i=hg(n[0],e,r,0),s=hg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,oe.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,oe.valid)(!0)}return(0,oe.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},bx=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '/')`);let i=wx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,oe.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,oe.valid)(!0)},Dx=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,oe.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,oe.valid)(!0):(0,oe.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,oe.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(bx(o,e,r))}),i.every(o=>o.isValid()))return(0,oe.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,oe.err)(s)};Jl.default=Dx});var gg=H(Ls=>{"use strict";var Cx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Wt();var vx=xt(),Nx=Cx(Cr());Rt();var Px=(t,e)=>{if(!t.seconds)return(0,vx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Nx.default)(r,"seconds",e)};Ls.default=Px});var yg=H(Us=>{"use strict";var Lx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Wt();var Ux=xt(),Mx=Lx(Cr());Rt();var Fx=(t,e)=>{if(!t.minutes)return(0,Ux.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Mx.default)(r,"minutes",e)};Us.default=Fx});var Eg=H(Ms=>{"use strict";var kx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Wt();var Bx=xt(),Gx=kx(Cr());Rt();var $x=(t,e)=>{if(!t.hours)return(0,Bx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Gx.default)(r,"hours",e)};Ms.default=$x});var Tg=H(ks=>{"use strict";var Vx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Wt();var Fs=xt(),qx=Vx(Cr());Rt();var Wx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,qx.default)(r,"daysOfMonth",e)};ks.default=Wx});var Ag=H(Bs=>{"use strict";var Qx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});Wt();var jx=xt(),Hx=Qx(Cr());Rt();var Yx=(t,e)=>{if(!t.months)return(0,jx.err)(["months field is undefined."]);let{months:r}=t;return(0,Hx.default)(r,"months",e)};Bs.default=Yx});var Sg=H($s=>{"use strict";var Kx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Wt();var Gs=xt(),Jx=Kx(Cr());Rt();var zx=(t,e)=>{if(!t.daysOfWeek)return(0,Gs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Gs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Gs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Gs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Jx.default)(r,"daysOfWeek",e)};$s.default=zx});var _g=H(Vs=>{"use strict";var Zx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});Wt();var Xx=xt(),eR=Zx(Cr());Rt();var tR=(t,e)=>{if(!t.years)return(0,Xx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,eR.default)(r,"years",e)};Vs.default=tR});var Rg=H((AQ,xg)=>{"use strict";var zl;try{zl=Map}catch{}var Zl;try{Zl=Set}catch{}function Ig(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(Og);if(zl&&t instanceof zl)return new Map(Array.from(t.entries()));if(Zl&&t instanceof Zl)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 s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:Ig(t[i],e,r)}return n}return t}function Og(t){return Ig(t,[],[])}xg.exports=Og});var qs=H(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=uR;var rR=Object.prototype.toString,nR=Error.prototype.toString,iR=RegExp.prototype.toString,sR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",oR=/^Symbol\((.*)\)(.*)$/;function aR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function wg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return aR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return sR.call(t).replace(oR,"Symbol($1)");let n=rR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+nR.call(t)+"]":n==="RegExp"?iR.call(t):null}function uR(t,e){let r=wg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=wg(this[n],e);return s!==null?s:i},2)}});var tr=H(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=Ne.array=Ne.object=Ne.boolean=Ne.date=Ne.number=Ne.string=Ne.mixed=void 0;var bg=cR(qs());function cR(t){return t&&t.__esModule?t:{default:t}}var Dg={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,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,bg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,bg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ne.mixed=Dg;var Cg={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"};Ne.string=Cg;var vg={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"};Ne.number=vg;var Ng={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Ng;var Pg={isValue:"${path} field must be ${value}"};Ne.boolean=Pg;var Lg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=Lg;var Ug={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"};Ne.array=Ug;var lR=Object.assign(Object.create(null),{mixed:Dg,string:Cg,number:vg,date:Ng,object:Lg,array:Ug,boolean:Pg});Ne.default=lR});var Ni=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var dR=t=>t&&t.__isYupSchema__;uu.default=dR});var Fg=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.default=void 0;var pR=Mg(require("lodash/has")),fR=Mg(Ni());function Mg(t){return t&&t.__esModule?t:{default:t}}var ed=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,pR.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:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.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,fR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},mR=ed;cu.default=mR});var rd=H(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.default=hR;function hR(t){return t==null?[]:[].concat(t)}});var Dn=H(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var gR=kg(qs()),yR=kg(rd());function kg(t){return t&&t.__esModule?t:{default:t}}function nd(){return nd=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},nd.apply(this,arguments)}var ER=/\$\{\s*(\w+)\s*\}/g,id=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=nd({},r,{path:n})),typeof e=="string"?e.replace(ER,(i,s)=>(0,gR.default)(r[s])):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,yR.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};lu.default=id});var du=H(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=SR;var sd=TR(Dn());function TR(t){return t&&t.__esModule?t:{default:t}}var AR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function SR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=AR(e),l=n.length,p=[];if(o=o||[],!l)return o.length?c(new sd.default(o,s,u)):c(null,s);for(let f=0;f<n.length;f++){let m=n[f];m(i,function(g){if(g){if(!sd.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);p.push(g)}if(--l<=0){if(p.length&&(a&&p.sort(a),o.length&&p.push(...o),o=p),o.length){c(new sd.default(o,s,u),s);return}c(null,s)}})}}});var Ws=H((bQ,qg)=>{"use strict";function Cn(t){this._maxSize=t,this.clear()}Cn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Cn.prototype.get=function(t){return this._values[t]};Cn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var _R=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Vg=/^\d+$/,IR=/^\d/,OR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,xR=/^\s*(['"]?)(.*?)(\1)\s*$/,cd=512,Bg=new Cn(cd),Gg=new Cn(cd),$g=new Cn(cd);qg.exports={Cache:Cn,split:ud,normalizePath:ad,setter:function(t){var e=ad(t);return Gg.get(t)||Gg.set(t,function(n,i){for(var s=0,o=e.length,a=n;s<o-1;){var u=e[s];if(u==="__proto__"||u==="constructor"||u==="prototype")return n;a=a[e[s++]]}a[e[s]]=i})},getter:function(t,e){var r=ad(t);return $g.get(t)||$g.set(t,function(i){for(var s=0,o=r.length;s<o;)if(i!=null||!e)i=i[r[s++]];else return;return i})},join:function(t){return t.reduce(function(e,r){return e+(ld(r)||Vg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){RR(Array.isArray(t)?t:ud(t),e,r)}};function ad(t){return Bg.get(t)||Bg.set(t,ud(t).map(function(e){return e.replace(xR,"$2")}))}function ud(t){return t.match(_R)||[""]}function RR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(DR(i)&&(i='"'+i+'"'),a=ld(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ld(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function wR(t){return t.match(IR)&&!t.match(Vg)}function bR(t){return OR.test(t)}function DR(t){return!ld(t)&&(wR(t)||bR(t))}});var vn=H(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.create=vR;js.default=void 0;var CR=Ws(),pu={context:"$",value:"."};function vR(t,e){return new Qs(t,e)}var Qs=class{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]===pu.context,this.isValue=this.key[0]===pu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?pu.context:this.isValue?pu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,CR.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}};js.default=Qs;Qs.prototype.__isYupRef=!0});var Wg=H(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=UR;var NR=dd(require("lodash/mapValues")),fu=dd(Dn()),PR=dd(vn());function dd(t){return t&&t.__esModule?t:{default:t}}function mu(){return mu=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},mu.apply(this,arguments)}function LR(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function UR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=LR(r,["value","path","label","options","originalValue","sync"]),{name:p,test:f,params:m,message:d}=t,{parent:g,context:E}=a;function y(_){return PR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,NR.default)(mu({value:i,originalValue:u,label:o,path:_.path||s},m,_.params),y),b=new fu.default(fu.default.formatError(_.message||d,B),i,B.path,_.type||p);return b.params=B,b}let O=mu({path:s,parent:g,type:p,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(f.call(O,i,O)).then(_=>{fu.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=f.call(O,i,O),typeof((T=R)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}fu.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var fd=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.getIn=Qg;Hs.default=void 0;var MR=Ws(),FR=t=>t.substr(0,t.length-1).substr(1);function Qg(t,e,r,n=r){let i,s,o;return e?((0,MR.forEach)(e,(a,u,c)=>{let l=u?FR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let p=c?parseInt(l,10):0;if(r&&p>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[p],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var kR=(t,e,r,n)=>Qg(t,e,r,n).schema,BR=kR;Hs.default=BR});var Hg=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var jg=GR(vn());function GR(t){return t&&t.__esModule?t:{default:t}}var md=class t{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){jg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){jg.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}};hu.default=md});var nr=H(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.default=void 0;var Yg=rr(Rg()),Pi=tr(),$R=rr(Fg()),Kg=rr(du()),gu=rr(Wg()),Jg=rr(qs()),VR=rr(vn()),qR=fd(),WR=rr(rd()),zg=rr(Dn()),Zg=rr(Hg());function rr(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=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},ft.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Zg.default,this._blacklist=new Zg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Pi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ft({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=ft({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Yg.default)(ft({},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=ft({},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(s=>{e.tests.forEach(o=>{s.test(o.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,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ft({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Jg.default)(e),o=(0,Jg.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: ${s}
4
- `+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let p={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,jg.default)({args:p,value:l,path:s,sync:i,tests:f,endEarly:c},m=>{if(m)return void n(m,l);(0,jg.default)({tests:this.tests,args:p,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Kg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Kg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Qg.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=Pi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Pi.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=Pi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,hu.default)(r),s=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(o=>!(o.OPTIONS.name===r.name&&(s||o.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,GR.default)(e).map(s=>new kR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new FR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,hu.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=Pi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,hu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Pi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,hu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.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(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};gu.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,BR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])wt.prototype[t]=wt.prototype.oneOf;for(let t of["not","nope"])wt.prototype[t]=wt.prototype.notOneOf;wt.prototype.optional=wt.prototype.notRequired});var zg=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Jg;Ks.default=void 0;var $R=VR(nr());function VR(t){return t&&t.__esModule?t:{default:t}}var fd=$R.default,qR=fd;Ks.default=qR;function Jg(){return new fd}Jg.prototype=fd.prototype});var Ui=H(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.default=void 0;var WR=t=>t==null;yu.default=WR});var ry=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=ty;Js.default=void 0;var QR=ey(nr()),Zg=tr(),Xg=ey(Ui());function ey(t){return t&&t.__esModule?t:{default:t}}function ty(){return new Ys}var Ys=class extends QR.default{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=Zg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Xg.default)(r)||r===!0}})}isFalse(e=Zg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Xg.default)(r)||r===!1}})}};Js.default=Ys;ty.prototype=Ys.prototype});var sy=H(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=iy;Zs.default=void 0;var Qt=tr(),ir=ny(Ui()),jR=ny(nr());function ny(t){return t&&t.__esModule?t:{default:t}}var HR=/^((([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,KR=/^((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,YR=/^(?:[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,JR=t=>(0,ir.default)(t)||t===t.trim(),zR={}.toString();function iy(){return new zs}var zs=class extends jR.default{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===zR?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=Qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,ir.default)(n)||n.length===this.resolve(e)}})}min(e,r=Qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,ir.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,ir.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Qt.string.matches,params:{regex:e},test:o=>(0,ir.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Qt.string.email){return this.matches(HR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Qt.string.url){return this.matches(KR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Qt.string.uuid){return this.matches(YR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:JR})}lowercase(e=Qt.string.lowercase){return this.transform(r=>(0,ir.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toLowerCase()})}uppercase(e=Qt.string.uppercase){return this.transform(r=>(0,ir.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toUpperCase()})}};Zs.default=zs;iy.prototype=zs.prototype});var uy=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=ay;eo.default=void 0;var Nn=tr(),Pn=oy(Ui()),ZR=oy(nr());function oy(t){return t&&t.__esModule?t:{default:t}}var XR=t=>t!=+t;function ay(){return new Xs}var Xs=class extends ZR.default{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"&&!XR(e)}min(e,r=Nn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Pn.default)(n)||n>=this.resolve(e)}})}max(e,r=Nn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Pn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Nn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Pn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Nn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Pn.default)(n)||n>this.resolve(e)}})}positive(e=Nn.number.positive){return this.moreThan(0,e)}negative(e=Nn.number.negative){return this.lessThan(0,e)}integer(e=Nn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Pn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Pn.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,Pn.default)(i)?i:Math[e](i))}};eo.default=Xs;ay.prototype=Xs.prototype});var cy=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.default=tw;var ew=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function tw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=ew.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||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}});var py=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=gd;to.default=void 0;var rw=Eu(cy()),ly=tr(),dy=Eu(Ui()),nw=Eu(vn()),iw=Eu(nr());function Eu(t){return t&&t.__esModule?t:{default:t}}var hd=new Date(""),sw=t=>Object.prototype.toString.call(t)==="[object Date]";function gd(){return new Li}var Li=class extends iw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,rw.default)(e),isNaN(e)?hd:new Date(e))})})}_typeCheck(e){return sw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(nw.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=ly.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,dy.default)(i)||i>=this.resolve(n)}})}max(e,r=ly.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,dy.default)(i)||i<=this.resolve(n)}})}};to.default=Li;Li.INVALID_DATE=hd;gd.prototype=Li.prototype;gd.INVALID_DATE=hd});var my=H((FQ,yd)=>{"use strict";yd.exports=function(t){return fy(ow(t),t)};yd.exports.array=fy;function fy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=aw(e),a=uw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,p){if(p.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){p.add(c);do{var d=m[--l];u(d,a.get(d),p)}while(l);p.delete(c)}n[--r]=c}}}function ow(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)}function aw(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}function uw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var hy=H(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.default=mw;var cw=Tu(require("lodash/has")),lw=Tu(my()),dw=Ws(),pw=Tu(vn()),fw=Tu(Ni());function Tu(t){return t&&t.__esModule?t:{default:t}}function mw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,dw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,cw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),pw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,fw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return lw.default.array(n,r).reverse()}});var yy=H(Td=>{"use strict";Object.defineProperty(Td,"__esModule",{value:!0});Td.default=hw;function gy(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function hw(t){return(e,r)=>gy(t,e)-gy(t,r)}});var Oy=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=Iy;no.default=void 0;var Ey=jt(require("lodash/has")),Ty=jt(require("lodash/snakeCase")),gw=jt(require("lodash/camelCase")),yw=jt(require("lodash/mapKeys")),Ew=jt(require("lodash/mapValues")),Tw=Ws(),Ay=tr(),Aw=jt(hy()),_y=jt(yy()),Sw=jt(lu()),_w=jt(Dn()),Ad=jt(nr());function jt(t){return t&&t.__esModule?t:{default:t}}function Mi(){return Mi=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},Mi.apply(this,arguments)}var Sy=t=>Object.prototype.toString.call(t)==="[object Object]";function Iw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Ow=(0,_y.default)([]),ro=class extends Ad.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Ow,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return Sy(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 s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(p=>this._nodes.indexOf(p)===-1)),u={},c=Mi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let p of a){let f=s[p],m=(0,Ey.default)(i,p);if(f){let d,g=i[p];c.path=(r.path?`${r.path}.`:"")+p,f=f.resolve({value:g,context:r.context,parent:u});let E="spec"in f?f.spec:void 0,y=E?.strict;if(E?.strip){l=l||p in i;continue}d=!r.__validating||!y?f.cast(i[p],c):i[p],d!==void 0&&(u[p]=d)}else m&&!o&&(u[p]=i[p]);u[p]!==i[p]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,p)=>{if(l){if(!_w.default.isError(l)||u)return void n(l,p);i.push(l)}if(!c||!Sy(p)){n(i[0]||null,p);return}a=a||p;let f=this._nodes.map(m=>(d,g)=>{let E=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,y=this.fields[m];if(y&&"validate"in y){y.validate(p[m],Mi({},r,{path:E,from:o,strict:!0,parent:p,originalValue:a[m]}),g);return}g(null)});(0,Sw.default)({sync:s,tests:f,value:p,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Mi({},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,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof Ad.default&&s instanceof Ad.default&&(n[i]=s.concat(o))}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,_y.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,Aw.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,Tw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Ey.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Ay.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 s=Iw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Ay.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,yw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(gw.default)}snakeCase(){return this.transformKeys(Ty.default)}constantCase(){return this.transformKeys(e=>(0,Ty.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Ew.default)(this.fields,r=>r.describe()),e}};no.default=ro;function Iy(t){return new ro(t)}Iy.prototype=ro.prototype});var Ry=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=xy;so.default=void 0;var Sd=Fi(Ui()),xw=Fi(Ni()),Rw=Fi(qs()),_d=tr(),ww=Fi(lu()),bw=Fi(Dn()),Dw=Fi(nr());function Fi(t){return t&&t.__esModule?t:{default:t}}function Au(){return Au=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},Au.apply(this,arguments)}function xy(t){return new io(t)}var io=class extends Dw.default{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,s=n.map((o,a)=>{let u=this.innerType.cast(o,Au({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,p=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,d)=>{if(m){if(!bw.default.isError(m)||l)return void n(m,d);o.push(m)}if(!p||!c||!this._typeCheck(d)){n(o[0]||null,d);return}f=f||d;let g=new Array(d.length);for(let E=0;E<d.length;E++){let y=d[E],S=`${r.path||""}[${E}]`,O=Au({},r,{path:S,strict:!0,parent:d,index:E,originalValue:f[E]});g[E]=(R,T)=>c.validate(y,O,T)}(0,ww.default)({sync:a,path:u,value:d,errors:o,endEarly:l,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,xw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Rw.default)(e));return r.innerType=e,r}length(e,r=_d.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Sd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||_d.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Sd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||_d.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Sd.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,s)=>!e(n,i,s):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)}};so.default=io;xy.prototype=io.prototype});var wy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=Nw;oo.default=void 0;var Cw=vw(Ni());function vw(t){return t&&t.__esModule?t:{default:t}}function Nw(t){return new Su(t)}var Su=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Cw.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)}},Pw=Su;oo.default=Pw});var by=H(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});Id.default=Mw;var Uw=Lw(tr());function Lw(t){return t&&t.__esModule?t:{default:t}}function Mw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Uw.default[e][r]=t[e][r]})})}});var xd=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=qw;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Od.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Od.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Od.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return Cy.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return vy.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return vy.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return Ny.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return Ny.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return Py.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return Py.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return Uy.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return Uy.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return Fw.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return kw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return Bw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return Gw.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return Ly.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return $w.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return Vw.default}});var Dy=Un(zg()),Od=Un(ry()),Cy=Un(sy()),vy=Un(uy()),Ny=Un(py()),Py=Un(Oy()),Uy=Un(Ry()),Fw=vn(),kw=wy(),Bw=ao(Dn()),Gw=ao(dd()),Ly=ao(Ni()),$w=ao(by()),Vw=ao(nr());function ao(t){return t&&t.__esModule?t:{default:t}}function My(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return My=function(){return t},t}function Un(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=My();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 s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function qw(t,e,r){if(!t||!(0,Ly.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}});var Fy=H(wd=>{"use strict";Object.defineProperty(wd,"__esModule",{value:!0});var Rd=bd();wd.default=()=>{(0,Rd.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,Rd.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,Rd.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 bd=H(Pe=>{"use strict";var Ww=Pe&&Pe.__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]}),Qw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),jw=Pe&&Pe.__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)&&Ww(e,t,r);return Qw(e,t),e},Hw=Pe&&Pe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateOptions=Pe.registerOptionPreset=Pe.getOptionPresets=Pe.getOptionPreset=void 0;var w=jw(xd());xd();var uo=xt(),Kw=Hw(Fy());Rt();var Ln={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}}},ky=w.object({presetId:w.string().required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),minutes:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),hours:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfMonth:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),months:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfWeek:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),years:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required()}).required(),Yw=t=>Ln[t]?(0,uo.valid)(Ln[t]):(0,uo.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Yw;var Jw=()=>Ln;Pe.getOptionPresets=Jw;var zw=(t,e)=>{Ln[t]=ky.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=zw;var Zw=t=>{var e,r,n,i,s,o,a,u,c,l,p,f,m,d,g,E,y,S,O,R;try{(0,Kw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Ln[t.preset])return(0,uo.err)([`Option preset ${t.preset} does not exist.`]);T=Ln[t.preset]}else T=t.preset;else T=Ln.default;let _=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:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(p=T.hours.lowerLimit)!==null&&p!==void 0?p:T.hours.minValue,upperLimit:(f=T.hours.upperLimit)!==null&&f!==void 0?f:T.hours.maxValue},daysOfMonth:{lowerLimit:(m=T.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:T.daysOfMonth.minValue,upperLimit:(d=T.daysOfMonth.upperLimit)!==null&&d!==void 0?d:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(R=T.years.upperLimit)!==null&&R!==void 0?R:T.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:ky.required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({lowerLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:w.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:w.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,uo.valid)(b)}catch(T){return(0,uo.err)(T.errors)}};Pe.validateOptions=Zw});var Wt=H((co,Cd)=>{"use strict";var Fn=co&&co.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(co,"__esModule",{value:!0});var Mn=xt(),Xw=Fn(fg()),eb=Fn(mg()),tb=Fn(hg()),rb=Fn(gg()),nb=Fn(yg()),ib=Fn(Eg()),sb=Fn(Tg()),ob=bd();Rt();var ab=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Mn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Mn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Mn.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,Mn.valid)(n)},Dd=(t,e={})=>{let r=(0,ob.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=ab(t,n);if(i.isError())return(0,Mn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Xw.default)(s,n)),o.push((0,eb.default)(s,n)),o.push((0,tb.default)(s,n)),o.push((0,rb.default)(s,n)),o.push((0,nb.default)(s,n)),o.push((0,ib.default)(s,n)),n.useYears&&o.push((0,sb.default)(s,n)),o.every(u=>u.isValid()))return(0,Mn.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Mn.err)(a)};co.default=Dd;Cd.exports=Dd;Cd.exports.default=Dd});var uT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var or=class extends Error{},Bd=class extends or{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Gd=class extends or{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},$d=class extends or{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends or{},bu=class extends or{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends or{},Ht=class extends or{constructor(){super("Zone is an abstract class")}},C="numeric",Ct="short",nt="long",Du={year:C,month:C,day:C},lE={year:C,month:Ct,day:C},ub={year:C,month:Ct,day:C,weekday:Ct},dE={year:C,month:nt,day:C},pE={year:C,month:nt,day:C,weekday:nt},fE={hour:C,minute:C},mE={hour:C,minute:C,second:C},hE={hour:C,minute:C,second:C,timeZoneName:Ct},gE={hour:C,minute:C,second:C,timeZoneName:nt},yE={hour:C,minute:C,hourCycle:"h23"},EE={hour:C,minute:C,second:C,hourCycle:"h23"},TE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Ct},AE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},SE={year:C,month:C,day:C,hour:C,minute:C},_E={year:C,month:C,day:C,hour:C,minute:C,second:C},IE={year:C,month:Ct,day:C,hour:C,minute:C},OE={year:C,month:Ct,day:C,hour:C,minute:C,second:C},cb={year:C,month:Ct,day:C,weekday:Ct,hour:C,minute:C},xE={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Ct},RE={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Ct},wE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},bE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,timeZoneName:nt},Ur=class{get type(){throw new Ht}get name(){throw new Ht}get ianaName(){return this.name}get isUniversal(){throw new Ht}offsetName(e,r){throw new Ht}formatOffset(e,r){throw new Ht}offset(e){throw new Ht}equals(e){throw new Ht}get isValid(){throw new Ht}},vd=null,yo=class t extends Ur{static get instance(){return vd===null&&(vd=new t),vd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return CE(e,r,n)}formatOffset(e,r){return go(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Ru={};function lb(t){return Ru[t]||(Ru[t]=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"})),Ru[t]}var db={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function pb(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,s,o,a,u,c,l]=n;return[o,i,s,a,u,c,l]}function fb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=db[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var _u={},ar=class t extends Ur{static create(e){return _u[e]||(_u[e]=new t(e)),_u[e]}static resetCache(){_u={},Ru={}}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 CE(e,r,n,this.name)}formatOffset(e,r){return go(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=lb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?fb(n,r):pb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let f=Xd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,d=m%1e3;return m-=d>=0?d:1e3+d,(f-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},By={};function mb(t,e={}){let r=JSON.stringify([t,e]),n=By[r];return n||(n=new Intl.ListFormat(t,e),By[r]=n),n}var Vd={};function qd(t,e={}){let r=JSON.stringify([t,e]),n=Vd[r];return n||(n=new Intl.DateTimeFormat(t,e),Vd[r]=n),n}var Wd={};function hb(t,e={}){let r=JSON.stringify([t,e]),n=Wd[r];return n||(n=new Intl.NumberFormat(t,e),Wd[r]=n),n}var Qd={};function gb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Qd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Qd[i]=s),s}var mo=null;function yb(){return mo||(mo=new Intl.DateTimeFormat().resolvedOptions().locale,mo)}function Eb(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=qd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=qd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Tb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Ab(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function Sb(t){let e=[];for(let r=1;r<=7;r++){let n=Ie.utc(2016,11,13+r);e.push(t(n))}return e}function Iu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function _b(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var jd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=hb(e,a)}}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):Zd(e,3);return Re(r,this.padTo)}}},Hd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ar.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ie.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=qd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Kd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&DE()&&(this.rtf=gb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):kb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||Ee.defaultLocale,o=s||(i?"en-US":yb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){mo=null,Vd={},Wd={},Qd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Eb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Tb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=_b(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,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Iu(this,e,n,PE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Ab(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Iu(this,e,n,ME,()=>{let i=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=r?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=Sb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Iu(this,void 0,e,()=>FE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ie.utc(2016,11,13,9),Ie.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Iu(this,e,r,kE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ie.utc(-40,1,1),Ie.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new jd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Hd(e,this.intl,r)}relFormatter(e={}){return new Kd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return mb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},Nd=null,it=class t extends Ur{static get utcInstance(){return Nd===null&&(Nd=new t(0)),Nd}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(Lu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${go(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${go(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return go(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}},Cu=class extends Ur{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 Pr(t,e){if(ae(t)||t===null)return e;if(t instanceof Ur)return t;if(Ib(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?yo.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||ar.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Cu(t)}var Gy=()=>Date.now(),$y="system",Vy=null,qy=null,Wy=null,Qy=60,jy,Ee=class{static get now(){return Gy}static set now(e){Gy=e}static set defaultZone(e){$y=e}static get defaultZone(){return Pr($y,yo.instance)}static get defaultLocale(){return Vy}static set defaultLocale(e){Vy=e}static get defaultNumberingSystem(){return qy}static set defaultNumberingSystem(e){qy=e}static get defaultOutputCalendar(){return Wy}static set defaultOutputCalendar(e){Wy=e}static get twoDigitCutoffYear(){return Qy}static set twoDigitCutoffYear(e){Qy=e%100}static get throwOnInvalid(){return jy}static set throwOnInvalid(e){jy=e}static resetCaches(){_e.resetCache(),ar.resetCache()}};function ae(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Uu(t){return typeof t=="number"&&t%1===0}function Ib(t){return typeof t=="string"}function Ob(t){return Object.prototype.toString.call(t)==="[object Date]"}function DE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function xb(t){return Array.isArray(t)?t:[t]}function Hy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Rb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function $i(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function sr(t,e,r){return Uu(t)&&t>=e&&t<=r}function wb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Nr(t){if(!(ae(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ae(t)||t===null||t===""))return parseFloat(t)}function zd(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Zd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function Eo(t){return t%4===0&&(t%100!==0||t%400===0)}function ho(t){return Eo(t)?366:365}function vu(t,e){let r=wb(e-1,12)+1,n=t+(e-r)/12;return r===2?Eo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Xd(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(e.getUTCFullYear()-1900)),+e}function Nu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Yd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function CE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Lu(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}function vE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ke(`Invalid unit value ${t}`);return e}function Pu(t,e){let r={};for(let n in t)if($i(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=vE(i)}return r}function go(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}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Mu(t){return Rb(t,["hour","minute","second","millisecond"])}var bb=["January","February","March","April","May","June","July","August","September","October","November","December"],NE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Db=["J","F","M","A","M","J","J","A","S","O","N","D"];function PE(t){switch(t){case"narrow":return[...Db];case"short":return[...NE];case"long":return[...bb];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}}var UE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],LE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Cb=["M","T","W","T","F","S","S"];function ME(t){switch(t){case"narrow":return[...Cb];case"short":return[...LE];case"long":return[...UE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var FE=["AM","PM"],vb=["Before Christ","Anno Domini"],Nb=["BC","AD"],Pb=["B","A"];function kE(t){switch(t){case"narrow":return[...Pb];case"short":return[...Nb];case"long":return[...vb];default:return null}}function Ub(t){return FE[t.hour<12?0:1]}function Lb(t,e){return ME(e)[t.weekday-1]}function Mb(t,e){return PE(e)[t.month-1]}function Fb(t,e){return kE(e)[t.year<0?0:1]}function kb(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."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let p=t==="days";switch(e){case 1:return p?"tomorrow":`next ${i[t][0]}`;case-1:return p?"yesterday":`last ${i[t][0]}`;case 0:return p?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function Ky(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Bb={D:Du,DD:lE,DDD:dE,DDDD:pE,t:fE,tt:mE,ttt:hE,tttt:gE,T:yE,TT:EE,TTT:TE,TTTT:AE,f:SE,ff:IE,fff:xE,ffff:wE,F:_E,FF:OE,FFF:RE,FFFF:bE},tt=class t{static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,s=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);a==="'"?(n.length>0&&s.push({literal:i,val:n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:!1,val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i,val:n}),s}static macroTokenToFormatOpts(e){return Bb[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()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(m,d)=>this.loc.extract(e,m,d),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?Ub(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,d)=>n?Mb(e,m):s(d?{month:m}:{month:m,day:"numeric"},"month"),c=(m,d)=>n?Lb(e,m):s(d?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let d=t.macroTokenToFormatOpts(m);return d?this.formatWithSystemDefault(e,d):m},p=m=>n?Fb(e,m):s({era:m},"era"),f=m=>{switch(m){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 o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({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 a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return p("short");case"GG":return p("long");case"GGGGG":return p("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"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 l(m)}};return Ky(t.parseFormat(r),f)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return Ky(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},BE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Vi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function qi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function Wi(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]}function GE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Nr(e[r+i]);return[n,null,r+i]}}var $E=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Gb=`(?:${$E.source}?(?:\\[(${BE.source})\\])?)?`,ep=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,VE=RegExp(`${ep.source}${Gb}`),tp=RegExp(`(?:T${VE.source})?`),$b=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Vb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,qb=/(\d{4})-?(\d{3})/,Wb=GE("weekYear","weekNumber","weekDay"),Qb=GE("year","ordinal"),jb=/(\d{4})-(\d\d)-(\d\d)/,qE=RegExp(`${ep.source} ?(?:${$E.source}|(${BE.source}))?`),Hb=RegExp(`(?: ${qE.source})?`);function Gi(t,e,r){let n=t[e];return ae(n)?r:Nr(n)}function Kb(t,e){return[{year:Gi(t,e),month:Gi(t,e+1,1),day:Gi(t,e+2,1)},null,e+3]}function Qi(t,e){return[{hours:Gi(t,e,0),minutes:Gi(t,e+1,0),seconds:Gi(t,e+2,0),milliseconds:zd(t[e+3])},null,e+4]}function To(t,e){let r=!t[e]&&!t[e+1],n=Lu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function Ao(t,e){let r=t[e]?ar.create(t[e]):null;return[{},r,e+1]}var Yb=RegExp(`^T?${ep.source}$`),Jb=/^-?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 zb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",p=u&&u[0]==="-",f=(m,d=!1)=>m!==void 0&&(d||m&&l)?-m:m;return[{years:f(kn(r)),months:f(kn(n)),weeks:f(kn(i)),days:f(kn(s)),hours:f(kn(o)),minutes:f(kn(a)),seconds:f(kn(u),u==="-0"),milliseconds:f(zd(c),p)}]}var Zb={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 rp(t,e,r,n,i,s,o){let a={year:e.length===2?Yd(Nr(e)):Nr(e),month:NE.indexOf(r)+1,day:Nr(n),hour:Nr(i),minute:Nr(s)};return o&&(a.second=Nr(o)),t&&(a.weekday=t.length>3?UE.indexOf(t)+1:LE.indexOf(t)+1),a}var Xb=/^(?:(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 eD(t){let[,e,r,n,i,s,o,a,u,c,l,p]=t,f=rp(e,i,n,r,s,o,a),m;return u?m=Zb[u]:c?m=0:m=Lu(l,p),[f,new it(m)]}function tD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var rD=/^(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$/,iD=/^(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 Yy(t){let[,e,r,n,i,s,o,a]=t;return[rp(e,i,n,r,s,o,a),it.utcInstance]}function sD(t){let[,e,r,n,i,s,o,a]=t;return[rp(e,a,r,n,i,s,o),it.utcInstance]}var oD=Vi($b,tp),aD=Vi(Vb,tp),uD=Vi(qb,tp),cD=Vi(VE),WE=qi(Kb,Qi,To,Ao),lD=qi(Wb,Qi,To,Ao),dD=qi(Qb,Qi,To,Ao),pD=qi(Qi,To,Ao);function fD(t){return Wi(t,[oD,WE],[aD,lD],[uD,dD],[cD,pD])}function mD(t){return Wi(tD(t),[Xb,eD])}function hD(t){return Wi(t,[rD,Yy],[nD,Yy],[iD,sD])}function gD(t){return Wi(t,[Jb,zb])}var yD=qi(Qi);function ED(t){return Wi(t,[Yb,yD])}var TD=Vi(jb,Hb),AD=Vi(qE),SD=qi(Qi,To,Ao);function _D(t){return Wi(t,[TD,WE],[AD,SD])}var ID="Invalid Duration",QE={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}},OD={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},...QE},mt=146097/400,ki=146097/4800,xD={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:ki/7,days:ki,hours:ki*24,minutes:ki*24*60,seconds:ki*24*60*60,milliseconds:ki*24*60*60*1e3},...QE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],RD=Bn.slice(0).reverse();function vr(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 De(n)}function wD(t){return t<0?Math.floor(t):Math.ceil(t)}function jE(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?wD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function bD(t,e){RD.reduce((r,n)=>ae(e[n])?r:(r&&jE(t,e,r,e,n),n),null)}function DD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var De=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?xD:OD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.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 Ke(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Pu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ke(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=gD(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]=ED(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 Ke("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new $d(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 bu(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?tt.create(this.loc,n).formatDurationFromString(this,e):ID}toHuman(e={}){let r=Bn.map(n=>{let i=this.values[n];return ae(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(i)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(r)}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+=Zd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Bn)($i(r.values,i)||$i(this.values,i))&&(n[i]=r.get(i)+this.get(i));return vr(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]=vE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Pu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return bD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=DD(this.normalize().shiftToAll().toObject());return vr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Bn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;Vn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)Bn.indexOf(c)>Bn.indexOf(o)&&jE(this.matrix,i,c,r,o)}else Vn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return vr(this,{values:r},!0).normalize()}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 vr(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}for(let n of Bn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Bi="Invalid Interval";function CD(t,e){return!t||!t.isValid?qn.invalid("missing or invalid start"):!e||!e.isValid?qn.invalid("missing or invalid end"):e<t?qn.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}var qn=class t{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 Ke("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Gd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=fo(e),i=fo(r),s=CD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=fo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=fo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=Ie.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ie.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.fromISO(n,r);if(c.isValid)return t.before(a,c)}}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 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"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}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(fo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=De.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}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,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.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()})`:Bi}toLocaleString(e=Du,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):Bi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Bi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Bi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Bi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Bi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):De.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},$n=class{static hasDST(e=Ee.defaultZone){let r=Ie.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ar.isValidZone(e)}static normalizeZone(e){return Pr(e,Ee.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:DE()}}};function Jy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(De.fromMillis(n).as("days"))}function vD(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=Jy(u,c);return(l-l%7)/7}],["days",Jy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function ND(t,e,r,n){let[i,s,o,a]=vD(t,e,r),u=e-i,c=r.filter(p=>["hours","minutes","seconds","milliseconds"].indexOf(p)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var np={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"},zy={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]},PD=np.hanidec.replace(/[\[|\]]/g,"").split("");function UD(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(np.hanidec)!==-1)e+=PD.indexOf(t[r]);else for(let i in zy){let[s,o]=zy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${np[t||"latn"]}${e}`)}var LD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(UD(r))}}var MD=String.fromCharCode(160),HE=`[ ${MD}]`,KE=new RegExp(HE,"g");function FD(t){return t.replace(/\./g,"\\.?").replace(KE,HE)}function Zy(t){return t.replace(/\./g,"").replace(KE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(FD).join("|")),deser:([r])=>t.findIndex(n=>Zy(r)===Zy(n))+e}}function Xy(t,e){return{regex:t,deser:([,r,n])=>Lu(r,n),groups:e}}function Pd(t){return{regex:t,deser:([e])=>e}}function kD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function BD(t,e){let r=bt(e),n=bt(e,"{2}"),i=bt(e,"{3}"),s=bt(e,"{4}"),o=bt(e,"{6}"),a=bt(e,"{1,2}"),u=bt(e,"{1,3}"),c=bt(e,"{1,6}"),l=bt(e,"{1,9}"),p=bt(e,"{2,4}"),f=bt(e,"{4,6}"),m=E=>({regex:RegExp(kD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return m(E);switch(E.val){case"G":return Dt(e.eras("short",!1),0);case"GG":return Dt(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(p,Yd);case"yyyy":return le(s);case"yyyyy":return le(f);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return Dt(e.months("short",!0,!1),1);case"MMMM":return Dt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return Dt(e.months("short",!1,!1),1);case"LLLL":return Dt(e.months("long",!1,!1),1);case"d":return le(a);case"dd":return le(n);case"o":return le(u);case"ooo":return le(i);case"HH":return le(n);case"H":return le(a);case"hh":return le(n);case"h":return le(a);case"mm":return le(n);case"m":return le(a);case"q":return le(a);case"qq":return le(n);case"s":return le(a);case"ss":return le(n);case"S":return le(u);case"SSS":return le(i);case"u":return Pd(l);case"uu":return Pd(a);case"uuu":return le(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(p,Yd);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return Dt(e.weekdays("short",!1,!1),1);case"EEEE":return Dt(e.weekdays("long",!1,!1),1);case"ccc":return Dt(e.weekdays("short",!0,!1),1);case"cccc":return Dt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Xy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Xy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Pd(/[a-z_+-/]{1,256}?/i);default:return m(E)}})(t)||{invalidReason:LD};return g.token=t,g}var GD={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",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function $D(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=GD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function VD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function qD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if($i(r,o)){let a=r[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(i[a.token.val[0]]=a.deser(n.slice(s,s+u))),s+=u}return[n,i]}else return[n,{}]}function WD(t){let e=s=>{switch(s){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}},r=null,n;return ae(t.z)||(r=ar.create(t.z)),ae(t.Z)||(r||(r=new it(t.Z)),n=t.Z),ae(t.q)||(t.M=(t.q-1)*3+1),ae(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),ae(t.u)||(t.S=zd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Ud=null;function QD(){return Ud||(Ud=Ie.fromMillis(1555555555555)),Ud}function jD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=zE(r,e);return n==null||n.includes(void 0)?t:n}function YE(t,e){return Array.prototype.concat(...t.map(r=>jD(r,e)))}function JE(t,e,r){let n=YE(tt.parseFormat(r),t),i=n.map(o=>BD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=VD(i),u=RegExp(o,"i"),[c,l]=qD(e,u,a),[p,f,m]=l?WD(l):[null,null,void 0];if($i(l,"a")&&$i(l,"H"))throw new Gn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:p,zone:f,specificOffset:m}}}function HD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=JE(t,e,r);return[n,i,s,o]}function zE(t,e){return t?tt.create(e,t).formatDateTimeParts(QD()).map(i=>$D(i,t)):null}var ZE=[0,31,59,90,120,151,181,212,243,273,304,334],XE=[0,31,60,91,121,152,182,213,244,274,305,335];function ht(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function eT(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}function tT(t,e,r){return r+(Eo(t)?XE:ZE)[e-1]}function rT(t,e){let r=Eo(t)?XE:ZE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Jd(t){let{year:e,month:r,day:n}=t,i=tT(e,r,n),s=eT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Nu(a)):o>Nu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Mu(t)}}function eE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=eT(e,1,4),s=ho(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=ho(a)):o>s?(a=e+1,o-=ho(e)):a=e;let{month:u,day:c}=rT(a,o);return{year:a,month:u,day:c,...Mu(t)}}function Ld(t){let{year:e,month:r,day:n}=t,i=tT(e,r,n);return{year:e,ordinal:i,...Mu(t)}}function tE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=rT(e,r);return{year:e,month:n,day:i,...Mu(t)}}function KD(t){let e=Uu(t.weekYear),r=sr(t.weekNumber,1,Nu(t.weekYear)),n=sr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function YD(t){let e=Uu(t.year),r=sr(t.ordinal,1,ho(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function nT(t){let e=Uu(t.year),r=sr(t.month,1,12),n=sr(t.day,1,vu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function iT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=sr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=sr(r,0,59),a=sr(n,0,59),u=sr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Md="Invalid DateTime",rE=864e13;function Ou(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Fd(t){return t.weekData===null&&(t.weekData=Jd(t.c)),t.weekData}function lo(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ie({...r,...e,old:r})}function sT(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 s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function nE(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()}}function wu(t,e,r){return sT(Xd(t),e,r)}function iE(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,s={...t.c,year:n,month:i,day:Math.min(t.c.day,vu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.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"),a=Xd(s),[u,c]=sT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function po(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ie.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ie.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function xu(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function kd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function sE(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var oT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},JD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},zD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},aT=["year","month","day","hour","minute","second","millisecond"],ZD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],XD=["year","ordinal","hour","minute","second","millisecond"];function oE(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 bu(t);return e}function aE(t,e){let r=Pr(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(ae(t.year))s=i;else{for(let c of aT)ae(t[c])&&(t[c]=oT[c]);let a=nT(t)||iT(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=wu(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function uE(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=Zd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function cE(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]}var Ie=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:Ou(r));this.ts=ae(e.ts)?Ee.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=nE(this.ts,a),n=Number.isNaN(i.year)?new rt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=cE(arguments),[n,i,s,o,a,u,c]=r;return aE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=cE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,aE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Ob(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Pr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(Ou(i))}static fromMillis(e,r={}){if(Vn(e))return e<-rE||e>rE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Pr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ke(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Vn(e))return new t({ts:e*1e3,zone:Pr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ke("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Pr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(Ou(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Pu(e,oE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,p=o.weekYear||o.weekNumber,f=_e.fromObject(r);if((l||a)&&p)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Gn("Can't mix ordinal dates with month/day");let m=p||o.weekday&&!l,d,g,E=nE(i,s);m?(d=ZD,g=JD,E=Jd(E)):a?(d=XD,g=zD,E=Ld(E)):(d=aT,g=oT);let y=!1;for(let b of d){let k=o[b];ae(k)?y?o[b]=g[b]:o[b]=E[b]:y=!0}let S=m?KD(o):a?YD(o):nT(o),O=S||iT(o);if(O)return t.invalid(O);let R=m?eE(o):a?tE(o):o,[T,_]=wu(R,s,n),B=new t({ts:T,zone:n,o:_,loc:f});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=fD(e);return po(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=mD(e);return po(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=hD(e);return po(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ae(e)||ae(r))throw new Ke("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=HD(o,e,r);return l?t.invalid(l):po(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=_D(e);return po(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ke("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Bd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=zE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return YE(tt.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}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?Fd(this).weekYear:NaN}get weekNumber(){return this.isValid?Fd(this).weekNumber:NaN}get weekday(){return this.isValid?Fd(this).weekday:NaN}get ordinal(){return this.isValid?Ld(this.c).ordinal:NaN}get monthShort(){return this.isValid?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.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}get isInLeapYear(){return Eo(this.year)}get daysInMonth(){return vu(this.year,this.month)}get daysInYear(){return this.isValid?ho(this.year):NaN}get weeksInWeekYear(){return this.isValid?Nu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Pr(e,Ee.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=wu(o,s,e)}return lo(this,{ts:i,zone:e})}else return t.invalid(Ou(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return lo(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Pu(e,oE),n=!ae(r.weekYear)||!ae(r.weekNumber)||!ae(r.weekday),i=!ae(r.ordinal),s=!ae(r.year),o=!ae(r.month)||!ae(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Gn("Can't mix ordinal dates with month/day");let c;n?c=eE({...Jd(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(vu(c.year,c.month),c.day))):c=tE({...Ld(this.c),...r});let[l,p]=wu(c,this.o,this.zone);return lo(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return lo(this,iE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return lo(this,iE(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=De.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?tt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Md}toLocaleString(e=Du,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Md}toLocaleParts(e={}){return this.isValid?tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=kd(this,o);return a+="T",a+=sE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?kd(this,e==="extended"):null}toISOWeekDate(){return xu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+sE(this,o==="extended",r,e,n,s):null}toRFC2822(){return xu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return xu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?kd(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")),xu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Md}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 De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=xb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=ND(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?qn.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}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"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),uE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?uE(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 Ke("min requires all arguments be DateTimes");return Hy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("max requires all arguments be DateTimes");return Hy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return JE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Du}static get DATE_MED(){return lE}static get DATE_MED_WITH_WEEKDAY(){return ub}static get DATE_FULL(){return dE}static get DATE_HUGE(){return pE}static get TIME_SIMPLE(){return fE}static get TIME_WITH_SECONDS(){return mE}static get TIME_WITH_SHORT_OFFSET(){return hE}static get TIME_WITH_LONG_OFFSET(){return gE}static get TIME_24_SIMPLE(){return yE}static get TIME_24_WITH_SECONDS(){return EE}static get TIME_24_WITH_SHORT_OFFSET(){return TE}static get TIME_24_WITH_LONG_OFFSET(){return AE}static get DATETIME_SHORT(){return SE}static get DATETIME_SHORT_WITH_SECONDS(){return _E}static get DATETIME_MED(){return IE}static get DATETIME_MED_WITH_SECONDS(){return OE}static get DATETIME_MED_WITH_WEEKDAY(){return cb}static get DATETIME_FULL(){return xE}static get DATETIME_FULL_WITH_SECONDS(){return RE}static get DATETIME_HUGE(){return wE}static get DATETIME_HUGE_WITH_SECONDS(){return bE}};function fo(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&Vn(t.valueOf()))return Ie.fromJSDate(t);if(t&&typeof t=="object")return Ie.fromObject(t);throw new Ke(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var eC="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=ar;st.Info=$n;st.Interval=qn;st.InvalidZone=Cu;st.Settings=Ee;st.SystemZone=yo;st.VERSION=eC;st.Zone=Ur});var lT=H((KQ,cT)=>{"use strict";var Wn=uT();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.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}))};z.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}))};z.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}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.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}))};z.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}))};z.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}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=Wn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Wn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Wn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Wn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Wn.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))}cT.exports=z});var fT=H((YQ,pT)=>{"use strict";function Qn(t){return{start:t,count:1}}function dT(t,e){t.end=e,t.step=e-t.start,t.count=2}function ip(t,e,r){e&&(e.count===2?(t.push(Qn(e.start)),t.push(Qn(e.end))):t.push(e)),r&&t.push(r)}function tC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(ip(e,r,Qn(i)),r=void 0):r?r.count===1?dT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Qn(r.start)),r=Qn(r.end),dT(r,i)):(ip(e,r),r=Qn(i)):r=Qn(i)}return ip(e,r),e}pT.exports=tC});var hT=H((JQ,mT)=>{"use strict";var rC=fT();function nC(t,e,r){var n=rC(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(f,m){var d=c.start+m;return(d-c.start)%c.step===0?d:null}).filter(function(f){return f!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}mT.exports=nC});var ET=H((zQ,yT)=>{"use strict";var jn=lT(),iC=hT(),gT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new jn(e.currentDate,this._tz),this._startDate=e.startDate?new jn(e.startDate,this._tz):null,this._endDate=e.endDate?new jn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}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=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});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 s(u){var c=[];function l(d){if(d instanceof Array)for(var g=0,E=d.length;g<E;g++){var y=d[g];if(U._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(U._isValidConstraintChar(n,d)){c.push(d);return}var S=+d;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+d+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var p=u.split(",");if(!p.every(function(d){return d.length>0}))throw new Error("Invalid list value format");if(p.length>1)for(var f=0,m=p.length;f<m;f++)l(o(p[f]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],p=u.split("-");if(p.length>1){if(p.length<2)return+u;if(!p[0].length){if(!p[1].length)throw new Error("Invalid range: "+u);return+u}var f=+p[0],m=+p[1];if(Number.isNaN(f)||Number.isNaN(m)||f<n.min||m>n.max)throw new Error("Constraint error, got range "+f+"-"+m+" expected range "+n.min+"-"+n.max);if(f>m)throw new Error("Invalid range: "+u);var d=+c;if(Number.isNaN(d)||d<=0)throw new Error("Constraint error, cannot repeat at every "+d+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var g=f,E=m;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&d>0&&d%c===0?(d=1,l.push(g)):d++}return l}return Number.isNaN(+u)?u:+u}return s(r)};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 s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(y,S){for(var O=0,R=S.length;O<R;O++)if(S[O]>=y)return S[O]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var O=y.getDate()%7?1:0,R=y.getDate()-y.getDate()%7,T=Math.floor(R/7)+O;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new jn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function p(y){return y.some(function(S){if(!i([S]))return!1;var O=Number.parseInt(S[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===O&&o.isLastWeekdayOfMonth()})}for(;l<gT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var f=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||p(this.fields.dayOfWeek));var d=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,E=o.getHours();if(!f&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!d&&g&&!f){this._applyTimezoneShift(o,s,"Day");continue}if(d&&!g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=gT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new jn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};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=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new jn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(iC(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new jn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,p=U.map.length;l<p;++l){var f=U.map[l],m=u[u.length>p?l:l-c];if(l<c||!m)a.push(U._parseField(f,U.parseDefaults[l],U.constraints[l]));else{var d=f==="dayOfWeek"?S(m):m;a.push(U._parseField(f,d,U.constraints[l]))}}for(var g={},l=0,p=U.map.length;l<p;l++){var E=U.map[l];g[E]=a[l]}var y=U._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new U(g,o);function S(O){var R=O.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,R[0]}return O}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(f,m,d){if(!m)throw new Error("Validation error, Field "+f+" is missing");if(m.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var g=0,E=m.length;g<E;g++){var y=m[g];if(!U._isValidConstraintChar(d,y)&&(typeof y!="number"||Number.isNaN(y)||y<d.min||y>d.max))throw new Error("Constraint error, got value "+y+" expected range "+d.min+"-"+d.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(f,m,d){return!m||f!==d[m-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var p=U._handleMaxDaysInMonth(i);return i.dayOfMonth=p||i.dayOfMonth,new U(i,r||{})};yT.exports=U});var AT=H((ZQ,TT)=>{"use strict";var Fu=ET();function Lr(){}Lr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Fu.parse(e)};if(r.length>6)return{interval:Fu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Lr.parseExpression=function(e,r){return Fu.parse(e,r)};Lr.fieldsToExpression=function(e,r){return Fu.fieldsToExpression(e,r)};Lr.parseString=function(e){for(var r=e.split(`
5
- `),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Lr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Lr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Lr.parseString(i.toString()))})};TT.exports=Lr});var Xk={};N(Xk,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Rp,BadRequestError:()=>Dc,BudibaseError:()=>fs,Config:()=>Np,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Ci,DEFAULT_EMPLOYEE_TABLE_ID:()=>Cp,DEFAULT_EXPENSES_TABLE_ID:()=>Dp,DEFAULT_INVENTORY_TABLE_ID:()=>bp,DEFAULT_JOBS_TABLE_ID:()=>wp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Ki,DesignDocuments:()=>Hu,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Ff,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>vc,GlobalRole:()=>vp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>xr,InvalidAPIKeyError:()=>ms,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>MT,NotFoundError:()=>bc,RedisClient:()=>We,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>xp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>Cc,UserStatus:()=>Ku,ViewName:()=>kr,accounts:()=>di,auth:()=>Eh,blacklist:()=>_h,cache:()=>xa,configs:()=>tn,constants:()=>Pp,context:()=>Se,db:()=>jr,docIds:()=>Rf,docUpdates:()=>Oh,encryption:()=>hh,env:()=>h,errors:()=>Pc,events:()=>Es,features:()=>oh,getPublicError:()=>Nc,init:()=>Zk,installation:()=>Wc,locks:()=>ui,logging:()=>oa,middleware:()=>yh,objectStore:()=>Zf,permissions:()=>nh,platform:()=>ea,plugins:()=>Ah,queue:()=>hm,redis:()=>Sh,roles:()=>rh,security:()=>Nm,sessions:()=>Jc,setEnv:()=>wo,sql:()=>Ph,tenancy:()=>zk,timers:()=>$c,userUtils:()=>um,users:()=>Ts,utils:()=>os,withEnv:()=>VT});module.exports=WI(Xk);var tn={};N(tn,{analyticsEnabled:()=>Bc,generateConfigID:()=>tl,getAIConfig:()=>dF,getConfig:()=>$t,getDefaultGoogleConfig:()=>Vm,getGoogleConfig:()=>rl,getGoogleDatasourceConfig:()=>Qm,getOIDCConfig:()=>uF,getOIDCConfigById:()=>jm,getOIDCLogosDoc:()=>oF,getPlatformUrl:()=>va,getSCIMConfig:()=>lF,getSMTPConfig:()=>cF,getSMTPConfigDoc:()=>k_,getSettingsConfig:()=>Wm,getSettingsConfigDoc:()=>jc,save:()=>iF});var QI=["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"],Lh=[...QI],Mh={"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};var wl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(wl||{}),bl=(f=>(f.STRING="string",f.CODE="code",f.LONGFORM="longForm",f.BOOLEAN="boolean",f.NUMBER="number",f.PASSWORD="password",f.LIST="list",f.OBJECT="object",f.JSON="json",f.FILE="file",f.FIELD_GROUP="fieldGroup",f.SELECT="select",f))(bl||{}),Ba=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Ba||{});var Dl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Dl||{});var jI=W(require("lodash")),Ir=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Ir||{}),zt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(zt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ai=(r=>(r.AND="$and",r.OR="$or",r))(Ai||{});function Ga(t){return Object.values(Ai).includes(t)}function Fh(t){return Object.values(Ir).includes(t)}function kh(t){return Object.values(zt).includes(t)}function $a(t){return Object.values(dn).includes(t)}var Si=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Si||{});var Bh=t=>typeof t=="object"&&t._id&&t._rev;var xs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(xs||{});var Gh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACE_APPS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var tG={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Rs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Rs||{});var Va=(p=>(p.APP="app",p.TABLE="table",p.USER="user",p.AUTOMATION="automation",p.WEBHOOK="webhook",p.BUILDER="builder",p.CREATOR="creator",p.GLOBAL_BUILDER="globalBuilder",p.QUERY="query",p.VIEW="view",p.LEGACY_VIEW="legacy_view",p))(Va||{});var qa=t=>t.hosting==="cloud";var Wa=t=>t.authType==="sso";var v="_",Ge="\uFFF0",Or=t=>`${t}${v}`,ye=(Q=>(Q.USER="us",Q.GROUP="gr",Q.WORKSPACE="workspace",Q.CONFIG="config",Q.TEMPLATE="template",Q.APP="app",Q.DEV="dev",Q.APP_DEV="app_dev",Q.APP_METADATA="app_metadata",Q.ROLE="role",Q.DEV_INFO="devinfo",Q.AUTOMATION_LOG="log_au",Q.ACCOUNT_METADATA="acc_metadata",Q.PLUGIN="plg",Q.DATASOURCE="datasource",Q.DATASOURCE_PLUS="datasource_plus",Q.APP_BACKUP="backup",Q.TABLE="ta",Q.ROW="ro",Q.AUTOMATION="au",Q.LINK="li",Q.WEBHOOK="wh",Q.INSTANCE="inst",Q.LAYOUT="layout",Q.SCREEN="screen",Q.QUERY="query",Q.DEPLOYMENTS="deployments",Q.METADATA="metadata",Q.MEM_VIEW="view",Q.USER_FLAG="flag",Q.AUTOMATION_METADATA="meta_au",Q.AUDIT_LOG="al",Q.SCIM_LOG="scimlog",Q.ROW_ACTIONS="ra",Q.OAUTH2_CONFIG="oauth2",Q.OAUTH2_CONFIG_LOG="oauth2log",Q.AGENT_CHAT="agentchat",Q.AGENT_TOOL_SOURCE="agenttoolsource",Q.WORKSPACE_APP="workspace_app",Q))(ye||{});var xr=(e=>(e.USER_METADATA="ta_users",e))(xr||{}),Cl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Cl||{});var ee=(l=>(l.OBJECT="object",l.STRING="string",l.BOOLEAN="boolean",l.NUMBER="number",l.ARRAY="array",l.JSON="json",l.DATE="date",l.DATETIME="datetime",l.ATTACHMENT="attachment",l.LONGFORM="longform",l))(ee||{}),pe=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R))(pe||{}),It=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(It||{});var ie=(I=>(I.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",I.CREATE_ROW="CREATE_ROW",I.UPDATE_ROW="UPDATE_ROW",I.DELETE_ROW="DELETE_ROW",I.EXECUTE_BASH="EXECUTE_BASH",I.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",I.EXECUTE_SCRIPT="EXECUTE_SCRIPT",I.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",I.EXECUTE_QUERY="EXECUTE_QUERY",I.SERVER_LOG="SERVER_LOG",I.DELAY="DELAY",I.FILTER="FILTER",I.API_REQUEST="API_REQUEST",I.QUERY_ROWS="QUERY_ROWS",I.LOOP="LOOP",I.COLLECT="COLLECT",I.OPENAI="OPENAI",I.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",I.BRANCH="BRANCH",I.CLASSIFY_CONTENT="CLASSIFY_CONTENT",I.PROMPT_LLM="PROMPT_LLM",I.TRANSLATE="TRANSLATE",I.SUMMARISE="SUMMARISE",I.GENERATE_TEXT="GENERATE_TEXT",I.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",I.discord="discord",I.slack="slack",I.zapier="zapier",I.integromat="integromat",I.n8n="n8n",I))(ie||{}),$h=[...Object.values(ie),...Object.values(It)];var vl=(a=>(a.EMAIL="email",a.DOCUMENT="document",a.BLOG_POST="blog_post",a.CHAT_MESSAGE="chat_message",a.LETTER="letter",a.PROPOSAL="proposal",a.OTHER="other",a))(vl||{}),Vh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Nl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Nl||{}),Pl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Pl||{});function qh(t){return t.stepId==="BRANCH"}var Ul=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Ul||{});var Ll=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Ll||{});var Ml="bb_internal";var Wh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Qa(t){return!!t.providerType}var Fl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Fl||{});var sV=Object.values(Fl);var lV=["rows","queries","automations"],dV=["queries","automations"];var se;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(se||(se={}));var Bl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Bl||(Bl={}));var M=se.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Rr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},x=se.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),JI=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,se.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Oi=(t,e)=>{let r;switch(t.code){case x.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,se.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${se.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${se.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${se.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:se.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case x.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,se.assertNever(t)}return{message:r}},Hh=Oi;function zI(t){Hh=t}function ja(){return Hh}var Ha=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},ZI=[];function P(t,e){let r=ja(),n=Ha({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Oi?void 0:Oi].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),Ii=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Gl=t=>t.status==="aborted",$l=t=>t.status==="dirty",Ds=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Ka(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Kh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var ws,bs,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Qh=(t,e)=>{if(Ds(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Rr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Cs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Qh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return Qh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:x.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Ze({schema:this,typeName:K.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return qt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return er.create(this,this._def)}promise(){return Dr.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return An.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:K.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:K.ZodDefault})}brand(){return new vs({typeName:K.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,catchValue:r,typeName:K.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ns.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},XI=/^c[^\s-]{8,}$/i,eO=/^[0-9a-z]+$/,tO=/^[0-9A-HJKMNP-TV-Z]{26}$/,rO=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nO=/^[a-z0-9_-]{21}$/i,iO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,sO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,oO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kl,aO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,uO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,cO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Yh="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",lO=new RegExp(`^${Yh}$`);function Jh(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function dO(t){return new RegExp(`^${Jh(t)}$`)}function zh(t){let e=`${Yh}T${Jh(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function pO(t,e){return!!((e==="v4"||!e)&&aO.test(t)||(e==="v6"||!e)&&uO.test(t))}var wr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.string,received:s.parsedType}),J}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")sO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")kl||(kl=new RegExp(oO,"u")),kl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")rO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")nO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")eO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")tO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:x.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:x.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?zh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?lO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?dO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?iO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?pO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?cO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):se.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};wr.create=t=>{var e;return new wr({checks:[],typeName:K.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function fO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?se.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?fO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_finite,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&se.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};fn.create=t=>new fn({checks:[],typeName:K.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.bigint,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};mn.create=t=>{var e;return new mn({checks:[],typeName:K.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.boolean,received:n.parsedType}),J}return $e(e.data)}};hn.create=t=>new hn({typeName:K.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_date}),J}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):se.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:K.ZodDate,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.symbol,received:n.parsedType}),J}return $e(e.data)}};xi.create=t=>new xi({typeName:K.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.undefined,received:n.parsedType}),J}return $e(e.data)}};yn.create=t=>new yn({typeName:K.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.null,received:n.parsedType}),J}return $e(e.data)}};En.create=t=>new En({typeName:K.ZodNull,...Z(t)});var br=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};br.create=t=>new br({typeName:K.ZodAny,...Z(t)});var Xt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};Xt.create=t=>new Xt({typeName:K.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:x.invalid_type,expected:M.never,received:r.parsedType}),J}};Ot.create=t=>new Ot({typeName:K.ZodNever,...Z(t)});var Ri=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.void,received:n.parsedType}),J}return $e(e.data)}};Ri.create=t=>new Ri({typeName:K.ZodVoid,...Z(t)});var er=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return P(r,{code:x.invalid_type,expected:M.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?x.too_big:x.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:x.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:x.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};er.create=(t,e)=>new er({type:t,minLength:null,maxLength:null,exactLength:null,typeName:K.ZodArray,...Z(e)});function _i(t){if(t instanceof je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(_i(n))}return new je({...t._def,shape:()=>e})}else return t instanceof er?new er({...t._def,type:_i(t.element)}):t instanceof dt?dt.create(_i(t.unwrap())):t instanceof qt?qt.create(_i(t.unwrap())):t instanceof Vt?Vt.create(t.items.map(e=>_i(e))):t}var je=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=se.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return P(c,{code:x.invalid_type,expected:M.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],p=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,p,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:x.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let p=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,p,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let p=await l.key,f=await l.value;c.push({key:p,value:f,alwaysSet:l.alwaysSet})}return c}).then(c=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:K.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return se.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return se.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return _i(this)}partial(e){let r={};return se.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return se.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Zh(se.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:K.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:K.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:K.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return P(r,{code:x.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return P(r,{code:x.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:K.ZodUnion,...Z(e)});var Zt=t=>t instanceof Sn?Zt(t.schema):t instanceof Ze?Zt(t.innerType()):t instanceof _n?[t.value]:t instanceof In?t.options:t instanceof On?se.objectValues(t.enum):t instanceof xn?Zt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...Zt(t.unwrap())]:t instanceof qt?[null,...Zt(t.unwrap())]:t instanceof vs||t instanceof wn?Zt(t.unwrap()):t instanceof Rn?Zt(t._def.innerType):[],Ya=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return P(r,{code:x.invalid_type,expected:M.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:x.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:K.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Vl(t,e){let r=Rr(t),n=Rr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=se.objectKeys(e),s=se.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Vl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Vl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var An=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Gl(s)||Gl(o))return J;let a=Vl(s.value,o.value);return a.valid?(($l(s)||$l(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:x.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};An.create=(t,e,r)=>new An({left:t,right:e,typeName:K.ZodIntersection,...Z(r)});var Vt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return P(n,{code:x.invalid_type,expected:M.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Vt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Vt({items:t,typeName:K.ZodTuple,rest:null,...Z(e)})};var Ja=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return P(n,{code:x.invalid_type,expected:M.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:K.ZodRecord,...Z(n)}):new t({keyType:wr.create(),valueType:e,typeName:K.ZodRecord,...Z(r)})}},wi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return P(n,{code:x.invalid_type,expected:M.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};wi.create=(t,e,r)=>new wi({valueType:e,keyType:t,typeName:K.ZodMap,...Z(r)});var bi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return P(n,{code:x.invalid_type,expected:M.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:x.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:x.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};bi.create=(t,e)=>new bi({valueType:t,minSize:null,maxSize:null,typeName:K.ZodSet,...Z(e)});var za=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return P(r,{code:x.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return Ha({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),Oi].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Ha({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),Oi].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Dr){let a=this;return $e(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(m=>{throw c.addIssue(n(u,m)),c}),p=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(p,s).catch(m=>{throw c.addIssue(i(p,m)),c})})}else{let a=this;return $e(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),p=a._def.returns.safeParse(l,s);if(!p.success)throw new ze([i(l,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Vt.create(e).rest(Xt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Vt.create([]).rest(Xt.create()),returns:r||Xt.create(),typeName:K.ZodFunction,...Z(n)})}},Sn=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Sn.create=(t,e)=>new Sn({getter:t,typeName:K.ZodLazy,...Z(e)});var _n=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};_n.create=(t,e)=>new _n({value:t,typeName:K.ZodLiteral,...Z(e)});function Zh(t,e){return new In({values:t,typeName:K.ZodEnum,...Z(e)})}var In=class t extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:se.joinValues(n),received:r.parsedType,code:x.invalid_type}),J}if(Ka(this,ws,"f")||Kh(this,ws,new Set(this._def.values),"f"),!Ka(this,ws,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:x.invalid_enum_value,options:n}),J}return $e(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};ws=new WeakMap;In.create=Zh;var On=class extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){let r=se.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=se.objectValues(r);return P(n,{expected:se.joinValues(i),received:n.parsedType,code:x.invalid_type}),J}if(Ka(this,bs,"f")||Kh(this,bs,new Set(se.getValidEnumValues(this._def.values)),"f"),!Ka(this,bs,"f").has(e.data)){let i=se.objectValues(r);return P(n,{received:n.data,code:x.invalid_enum_value,options:i}),J}return $e(e.data)}get enum(){return this._def.values}};bs=new WeakMap;On.create=(t,e)=>new On({values:t,typeName:K.ZodNativeEnum,...Z(e)});var Dr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return P(r,{code:x.invalid_type,expected:M.promise,received:r.parsedType}),J;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return $e(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Dr.create=(t,e)=>new Dr({type:t,typeName:K.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===K.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?Ii(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?Ii(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ds(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ds(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);se.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:K.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:K.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:K.ZodOptional,...Z(e)});var qt=class extends X{_parse(e){return this._getType(e)===M.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};qt.create=(t,e)=>new qt({innerType:t,typeName:K.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:K.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:K.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var Di=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};Di.create=t=>new Di({typeName:K.ZodNaN,...Z(t)});var mO=Symbol("zod_brand"),vs=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ns=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),Ii(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:K.ZodPipeline})}},wn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Ds(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:K.ZodReadonly,...Z(e)});function Xh(t,e={},r){return t?br.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):br.create()}var hO={object:je.lazycreate},K;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(K||(K={}));var gO=(t,e={message:`Input not instance of ${t.name}`})=>Xh(r=>r instanceof t,e),eg=wr.create,tg=fn.create,yO=Di.create,EO=mn.create,rg=hn.create,TO=gn.create,AO=xi.create,SO=yn.create,_O=En.create,IO=br.create,OO=Xt.create,xO=Ot.create,RO=Ri.create,wO=er.create,bO=je.create,DO=je.strictCreate,CO=Tn.create,vO=Ya.create,NO=An.create,PO=Vt.create,UO=Ja.create,LO=wi.create,MO=bi.create,FO=za.create,kO=Sn.create,BO=_n.create,GO=In.create,$O=On.create,VO=Dr.create,jh=Ze.create,qO=dt.create,WO=qt.create,QO=Ze.createWithPreprocess,jO=Ns.create,HO=()=>eg().optional(),KO=()=>tg().optional(),YO=()=>rg().optional(),JO={string:t=>wr.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>hn.create({...t,coerce:!0}),bigint:t=>mn.create({...t,coerce:!0}),date:t=>gn.create({...t,coerce:!0})},zO=J,re=Object.freeze({__proto__:null,defaultErrorMap:Oi,setErrorMap:zI,getErrorMap:ja,makeIssue:Ha,EMPTY_PATH:ZI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:Ii,OK:$e,isAborted:Gl,isDirty:$l,isValid:Ds,isAsync:Cs,get util(){return se},get objectUtil(){return Bl},ZodParsedType:M,getParsedType:Rr,ZodType:X,datetimeRegex:zh,ZodString:wr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:xi,ZodUndefined:yn,ZodNull:En,ZodAny:br,ZodUnknown:Xt,ZodNever:Ot,ZodVoid:Ri,ZodArray:er,ZodObject:je,ZodUnion:Tn,ZodDiscriminatedUnion:Ya,ZodIntersection:An,ZodTuple:Vt,ZodRecord:Ja,ZodMap:wi,ZodSet:bi,ZodFunction:za,ZodLazy:Sn,ZodLiteral:_n,ZodEnum:In,ZodNativeEnum:On,ZodPromise:Dr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:dt,ZodNullable:qt,ZodDefault:xn,ZodCatch:Rn,ZodNaN:Di,BRAND:mO,ZodBranded:vs,ZodPipeline:Ns,ZodReadonly:wn,custom:Xh,Schema:X,ZodSchema:X,late:hO,get ZodFirstPartyTypeKind(){return K},coerce:JO,any:IO,array:wO,bigint:EO,boolean:rg,date:TO,discriminatedUnion:vO,effect:jh,enum:GO,function:FO,instanceof:gO,intersection:NO,lazy:kO,literal:BO,map:LO,nan:yO,nativeEnum:$O,never:xO,null:_O,nullable:WO,number:tg,object:bO,oboolean:YO,onumber:KO,optional:qO,ostring:HO,pipeline:jO,preprocess:QO,promise:VO,record:UO,set:MO,strictObject:DO,string:eg,symbol:AO,transformer:jh,tuple:PO,undefined:SO,union:CO,unknown:OO,void:RO,NEVER:zO,ZodIssueCode:x,quotelessJson:JI,ZodError:ze});var bn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(bn||{}),Za=(r=>(r.STRING="string",r.NUMBER="number",r))(Za||{});var ru=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),ng=re.record(ru,re.string()),Xa=re.record(ru,re.any()),eu=re.record(ru,re.union([re.any().array(),re.string()])),ig=re.lazy(()=>re.object({conditions:re.array(re.object(sg))})),tu=re.union([re.string(),re.number()]),sg={string:ng.optional(),fuzzy:ng.optional(),range:re.record(ru,re.union([re.object({high:tu,low:tu}),re.object({high:tu}),re.object({low:tu})])).optional(),equal:Xa.optional(),notEqual:Xa.optional(),empty:Xa.optional(),notEmpty:Xa.optional(),oneOf:eu.optional(),contains:eu.optional(),notContains:eu.optional(),containsAny:eu.optional(),$and:ig.optional(),$or:ig.optional()},oq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Si).optional(),...sg}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(bn).optional(),sortType:re.nativeEnum(Za).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Pp={};N(Pp,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Rp,Config:()=>Np,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Ci,DEFAULT_EMPLOYEE_TABLE_ID:()=>Cp,DEFAULT_EXPENSES_TABLE_ID:()=>Dp,DEFAULT_INVENTORY_TABLE_ID:()=>bp,DEFAULT_JOBS_TABLE_ID:()=>wp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Ki,DesignDocuments:()=>Hu,DocumentType:()=>ye,GlobalRole:()=>vp,Header:()=>Xe,InternalTable:()=>xr,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>MT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>xp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Ku,ViewName:()=>kr});var bW={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Xe=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Xe||{});var NW={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"],json:["json","array","attachment","attachment_single","bb_reference","signature_single"]};var kW="darkest",BW="light",ex=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var et={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"}},og={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Ci="datasource_internal_bb_default";var Mr={};N(Mr,{ColumnSplitter:()=>dp,NoEmptyFilterStrings:()=>wT,buildQuery:()=>bT,cleanupQuery:()=>mp,fixupFilterArrays:()=>gp,getKeyNumbering:()=>hp,getValidOperatorsForType:()=>RC,hasFilters:()=>pp,limit:()=>CT,recurseLogicalOperators:()=>fp,removeKeyNumbering:()=>nu,runQuery:()=>ku,search:()=>DC,sort:()=>DT,splitFiltersArray:()=>iu});var ji=W(ag());var vi={};N(vi,{filterValueToLabel:()=>ox,hasSchema:()=>ax,isSupportedUserSearch:()=>cg,parallelForeach:()=>sx,processSearchFilters:()=>Ql,toMap:()=>cx,trimOtherProps:()=>ux,unreachable:()=>ix});var ug=W(require("lodash")),nx=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function ix(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function sx(t,e,r){let n=[],i=0,s=async()=>{for(;i<t.length;){let o=i++,a=t[o];await e(a)}};for(let o=0;o<Math.min(r,t.length);o++)n.push(s());await Promise.all(n)}function ox(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function ax(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ux(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function cg(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(Ga(s)){for(let c of t[s].conditions)if(!cg(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Ql(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=iu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=ug.default.pick(i,nx);return s.field=nu(s.field),s})}]}}function cx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var gt={};N(gt,{cancelableTimeout:()=>lg,cron:()=>sp,deepGet:()=>jl,duplicateName:()=>_C,getSequentialName:()=>IC,getUserColor:()=>dx,getUserInitials:()=>lx,getUserLabel:()=>px,isGoogleSheets:()=>mx,isSQL:()=>hx,lists:()=>lp,retry:()=>gx,roles:()=>cp,schema:()=>So,views:()=>up,wait:()=>Hl,withTimeout:()=>fx});var jl=(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},lx=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"},dx=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%)`},px=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function lg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function fx(t,e){let[r,n]=lg(t),i=await Promise.race([e(),r]);return n(),i}function mx(t){return t==="GOOGLE_SHEETS"}function hx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Hl(t){return new Promise(e=>setTimeout(e,t))}async function gx(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 s=1.5**i*1e3*(Math.random()+.5);await Hl(s);try{return await t()}catch(o){n=o}}throw n}var sp={};N(sp,{getNextExecutionDates:()=>aC,validate:()=>uC});var _T=W(Wt()),IT=W(AT()),ST="(Input cron: ",sC={"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 oC(t){let e=[];for(let r of t){r.includes(ST)&&(r=r.split(ST)[0].trim());for(let[n,i]of Object.entries(sC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function aC(t,e=4){let r=IT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function uC(t){let e=(0,_T.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:oC(e.getError())}}var So={};N(So,{decodeNonAscii:()=>op,encodeNonAscii:()=>dC,isDeprecatedSingleUserColumn:()=>cC,isNumeric:()=>pC,isRequired:()=>lC});function cC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function lC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function dC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function op(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function pC(t){return t.type==="number"||t.type==="bigint"}var up={};N(up,{basicFields:()=>yC,calculationFields:()=>gC,hasCalculationFields:()=>hC,isBasicViewField:()=>fC,isCalculationField:()=>_o,isCalculationView:()=>mC,isV2:()=>EC,isVisible:()=>OT});var ap=require("lodash");function _o(t){return"calculationType"in t}function fC(t){return!_o(t)}function mC(t){return t.type==="calculation"}function hC(t){return Object.values(t.schema||{}).some(_o)}function gC(t){return(0,ap.pickBy)(t.schema||{},_o)}function OT(t){return t.visible!==!1}function yC(t,e){let{visible:r=!0}=e||{};return(0,ap.pickBy)(t.schema||{},n=>!_o(n)&&(!r||OT(n)))}function EC(t){return t.version===2}var cp={};N(cp,{checkForRoleInheritanceLoops:()=>AC});function TC(t){return`role${v}${t}`}function AC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=TC(s);if(n.has(s)||n.has(o))return!0;if(r.has(s)||r.has(o))return!1;n.add(s);let a=e.get(o)||e.get(s);if(!a)return n.delete(s),!1;let u=Array.isArray(a.inherits)?a.inherits:[a.inherits];for(let c of u)if(c&&i(c))return!0;return n.delete(s),r.add(s),!1}return!!t.find(s=>i(s._id))}var lp={};N(lp,{punctuateList:()=>SC});function SC(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]}var _C=(t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];e.filter(a=>{if(a===n)return!0;let u=a.match(i);return u?(s.push(parseInt(u[1])),!0):!1}),s.sort((a,u)=>a-u);let o;if(s.length===0)o=1;else{for(let a=0;a<s.length;a++)if(s[a]!==a+1){o=a+1;break}o||(o=s.length+1)}return`${n} ${o}`},IC=(t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let s=e.trim(),o=n?`${e}1`:s;if(!t?.length)return o;let a=0;return t.forEach(u=>{let c=r?.(u)??u;if(typeof c!="string"||!c.startsWith(s))return;let l=c.split(s);if(l.length!==2)return;l[1].trim()===""&&(l[1]="1");let p=parseInt(l[1]);p>a&&(a=p)}),a===0?o:`${e}${i}${a+1}`};var Hn=require("lodash");var OC=/{{([^{].*?)}}/g,RT=Object.values(Ai),xC=[...Object.values(Ir),...Object.values(zt),...Object.values(dn)],RC=(t,e,r)=>{let n=et,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||So.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"?o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]:a==="barcodeqr"&&(o=i);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},wT=[et.StartsWith.value,et.Like.value,et.Equals.value,et.NotEquals.value,et.Contains.value,et.NotContains.value,et.ContainsAny.value,et.In.value];function fp(t,e){for(let r of RT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var mp=t=>{for(let e of wT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||wC(s))&&delete t[e][i]}return t=fp(t,mp),t};function wC(t){return Array.isArray(t)&&t.length===0}var nu=t=>hp(t).key,hp=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}},dp=class{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}=hp(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=op(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function bC(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(OC)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if($a(r))return e[r]??={},e[r][n]=o,e}break;case"number":typeof o=="string"&&!a&&(r==="oneOf"?o=o.split(",").map(parseFloat):o=parseFloat(o));break;case"boolean":o=`${o}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof o=="string"&&(o=o.split(","));break}if($a(r)){let c=og[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?c.min:"0000-00-00T00:00:00.000Z",high:i==="number"?c.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],high:o};else if(r==="rangeLow"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],low:o};else if(Fh(r)||kh(r)||$a(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function iu(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}function bT(t){if(!t)return{};if(Array.isArray(t)&&(t=Ql(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=xT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=bT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=iu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=xT(n.logicalOperator)),{[a]:{conditions:o.map(bC).filter(u=>u)}}})},e}function xT(t){return t==="all"?"$and":"$or"}function gp(t){if(!t)return t;for(let e of Object.values(zt)){let r=t[e];if(!(r==null||!(0,Hn.isPlainObject)(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(s=>s.trim()):r[n]=[i]}}return fp(t,gp),t}function DC(t,e){let r=ku(t,e.query);e.sort&&(r=DT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=CT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function ku(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=mp(e),e=gp(e),!pp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=Ga(T)?B:jl(B,nu(b)),un=_(de,k);if(e.allOr&&un)return!0;if(!e.allOr&&!un)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,Hn.isPlainObject)(_.low)&&(0,Hn.isEmpty)(_.low)&&(_.low=void 0),(0,Hn.isPlainObject)(_.high)&&(0,Hn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let k=+_.low,de=+_.high;if(!isNaN(k)&&!isNaN(de))return B>=k&&B<=de;if(isNaN(k)){if(!isNaN(de))return B<=de}else return B>=k}let b=(0,ji.default)(T);if(b.isValid()){let k=(0,ji.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,ji.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&de.isValid())return b.isAfter(k)&&b.isBefore(de)||b.isSame(k)||b.isSame(de);if(k.isValid())return b.isAfter(k)||b.isSame(k);if(de.isValid())return b.isBefore(de)||b.isSame(de)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let b of T)if(o(b,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,ji.default)(T);if(B.isValid()){let b=(0,ji.default)(_);if(b.isValid())return B.isSame(b)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,p=r("empty",l),f=r("notEmpty",a(l)),m=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),d=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(b=>parseFloat(b)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](b=>o(_,b)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:d("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(d("every"))(T,_)),y=r("containsAny",d("some")),S=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!ku([T],B).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(ku([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:p,notEmpty:f,oneOf:m,contains:g,containsAny:y,notContains:E,$and:S,$or:O},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(T)??!1);return pp(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function DT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function CT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var pp=t=>{if(!t)return!1;let e=r=>{for(let n of RT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of xC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var ot={};N(ot,{applications:()=>Ep,automations:()=>Tp,screens:()=>Op,users:()=>Ip});var Ep={};N(Ep,{getDevAppID:()=>CC,getProdAppID:()=>Bu});var yp=Or("app"),Io=Or("app_dev");function CC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(yp);e.shift();let r=e.join(yp);return`${Io}${r}`}function Bu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Io))return t;let e=t.split(Io);e.shift();let r=e.join(Io);return`${yp}${r}`}var Tp={};N(Tp,{checkForCollectStep:()=>UC,isAppAction:()=>PC,isRowAction:()=>vC,isWebhookAction:()=>NC});function vC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function NC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function PC(t){return t.definition.trigger?.stepId==="APP"}function vT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(qh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(vT(r))return!0}}return!1}function UC(t){return vT(t.definition.steps)}var Ip={};N(Ip,{canCreateApps:()=>LC,containsUserID:()=>$C,getGlobalUserID:()=>GC,getUserAppGroups:()=>VC,getUserGroups:()=>_p,hasAdminPermissions:()=>Sp,hasAppBuilderPermissions:()=>Vu,hasAppCreatorPermissions:()=>NT,hasBuilderPermissions:()=>kC,hasCreatorPermissions:()=>qu,isAdmin:()=>$u,isAdminOrBuilder:()=>MC,isAdminOrGlobalBuilder:()=>FC,isBuilder:()=>Ap,isCreator:()=>BC,isGlobalBuilder:()=>Gu,userAppAccessList:()=>qC});var Fr=W(require("lodash/fp"));function Ap(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Bu(e))):!1}function Gu(t){return Ap(t)&&!Vu(t)||$u(t)}function LC(t){return Gu(t)||qu(t)}function $u(t){return t?Sp(t):!1}function MC(t,e){return Ap(t,e)||$u(t)}function FC(t){return Gu(t)||$u(t)}function Vu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function NT(t){return t?Fr.flow(Fr.get("roles"),Fr.values,Fr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function kC(t){return t?t.builder?.global||Vu(t)||qu(t):!1}function Sp(t){return t?!!t.admin?.global:!1}function qu(t){return t?!!t.builder?.creator:!1}function BC(t){return t?Gu(t)||Sp(t)||qu(t)||Vu(t)||NT(t):!1}function GC(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function $C(t){return typeof t!="string"?!1:t.includes(`us${v}`)}function _p(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function VC(t,e,r){let n=Bu(t);return _p(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function qC(t,e){let n=_p(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Op={};N(Op,{findInSettings:()=>WC});function WC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var Xj={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},eH={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!0,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},tH={number:!0,json:!0,datetime:!0,longform:!0,string:!0,options:!0,array:!0,bigint:!0,boolean:!0,auto:!1,internal:!1,barcodeqr:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,bb_reference:!0,bb_reference_single:!0};var cH={name:"Bash Scripting",tagline:"Execute a bash command",icon:"git-branch",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var pH={name:"Branch",icon:"git-branch",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var hH={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"stack",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var EH={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"rows-plus-bottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var SH={name:"Delay",icon:"clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var OH={description:"Delete a row from your database",icon:"trash-simple",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var wH={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var CH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var PH={name:"API Request",tagline:"Execute a REST request",icon:"globe",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,new:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var MH={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var BH={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"brackets-angle",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var rv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},VH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Ul),pretty:Object.values(rv)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var QH={name:"Looping",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var KH={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var zH={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Ll)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var PT=(i=>(i.GPT_4O_MINI="gpt-4o-mini",i.GPT_4O="gpt-4o",i.GPT_4="gpt-4",i.GPT_35_TURBO="gpt-3.5-turbo",i))(PT||{}),eK={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(PT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var UT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(UT||{}),nK={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(UT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var cv={ascending:"Ascending",descending:"Descending"},oK={description:"Query rows from the database",icon:"magnifying-glass",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(bn),pretty:Object.values(cv)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var cK={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"envelope",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var pK={name:"Backend log",tagline:"Console log a value in the backend",icon:"activity",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var hK={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var EK={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"arrows-clockwise",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var SK={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"arrow-clockwise",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var OK={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var wK={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var CK={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var PK={name:"Translate",tagline:"Translate text to a different language",icon:"globe",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var LT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(LT||{}),MK={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(LT)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var BK={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(vl),pretty:Object.values(Vh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var VK={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(Nl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Pl),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var Ov={name:"User action",event:"app:trigger",icon:"cursor-click",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var Rv={name:"CRON / Schedule",event:"cron:trigger",icon:"clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var bv={name:"Row Deleted",event:"row:delete",icon:"trash-simple",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var Cv={name:"Row Created",event:"row:save",icon:"rows-plus-bottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Nv={name:"Row Updated",event:"row:update",icon:"arrow-clockwise",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Uv={name:"Webhook",event:"web:trigger",icon:"paper-plane-right",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var Mv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"tree-structure",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"row action workflow",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var iY=Object.values(ye).sort((t,e)=>e.length-t.length);var sY=Object.values(Cl).sort((t,e)=>e.length-t.length);var oY=new RegExp("^datasource_plus_(.+)__(.+)$"),Wu=t=>e=>!!e&&e.startsWith(`${t}${v}`);var aY=Wu("ta"),uY=Wu("view"),cY=Wu("datasource"),lY=Wu("query");var Qu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Qu||{}),kr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes_2",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(kr||{}),Ki={by_email2:["by_email"]},Te={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"}},yt=Or("app"),ju=Or("app_dev"),Et=ju,xp="internal",Rp="budibase",Kt="_design/sqlite",wp="ta_bb_jobs",bp="ta_bb_inventory",Dp="ta_bb_expenses",Cp="ta_bb_employee",Hu=(r=>(r[r.SQLITE=Kt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Hu||{});var Ku=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Ku||{}),Kn=(o=>(o.Auth="budibase:auth",o.Init="budibase:init",o.ACCOUNT_RETURN_URL="budibase:account:returnurl",o.DatasourceAuth="budibase:datasourceauth",o.OIDC_CONFIG="budibase:oidc:config",o.FeatureFlags="budibase:featureflags",o))(Kn||{}),vp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(vp||{}),Np=(u=>(u.SETTINGS="settings",u.ACCOUNT="account",u.SMTP="smtp",u.GOOGLE="google",u.OIDC="oidc",u.OIDC_LOGOS="logos_oidc",u.SCIM="scim",u.AI="AI",u))(Np||{}),MT=new Date(-2147483647e3),Yu=new Date(2147483647e3),Ae="default";var xa={};N(xa,{CacheKey:()=>Ce,TTL:()=>ni,app:()=>Ho,bustCache:()=>rs,destroy:()=>qo,docWritethrough:()=>$m,generic:()=>Wo,get:()=>ii,invite:()=>om,keys:()=>dc,passwordReset:()=>Bm,store:()=>cr,user:()=>rn,withCache:()=>Wr,withCacheWithDynamicTTL:()=>lA,writethrough:()=>km});var Wo={};N(Wo,{CacheKey:()=>Ce,TTL:()=>ni,bustCache:()=>rs,destroy:()=>qo,get:()=>ii,keys:()=>dc,store:()=>cr,withCache:()=>Wr,withCacheWithDynamicTTL:()=>lA});var Se={};N(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>No,doInAppContext:()=>ON,doInAppMigrationContext:()=>RN,doInAutomationContext:()=>TN,doInContext:()=>ef,doInEnvironmentContext:()=>DN,doInFeatureFlagOverrideContext:()=>uf,doInIPContext:()=>nf,doInIdentityContext:()=>xo,doInLicenseContext:()=>SN,doInScimContext:()=>CN,doInSelfHostTenantUsingCloud:()=>AN,doInTenant:()=>qe,ensureSnippetContext:()=>oA,getAppDB:()=>es,getAppId:()=>Ue,getAuditLogDBName:()=>nA,getAuditLogsDB:()=>NN,getAutomationId:()=>tf,getCurrentContext:()=>zn,getDevAppDB:()=>UN,getDevAppId:()=>wN,getEnvironmentVariables:()=>vN,getFeatureFlagOverrides:()=>af,getFeatureFlags:()=>sf,getGlobalDB:()=>ne,getGlobalDBName:()=>Jn,getIP:()=>rf,getIdentity:()=>ur,getLicense:()=>_N,getPlatformURL:()=>Xp,getProdAppDB:()=>PN,getProdAppId:()=>bN,getScimDBName:()=>hN,getSelfHostCloudDB:()=>IN,getTableForView:()=>LN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>Oo,isMultiTenant:()=>$r,isScim:()=>Ut,isSelfHostUsingCloud:()=>iA,isTenancyEnabled:()=>yN,isTenantIdSet:()=>gN,setFeatureFlags:()=>of,setTableForView:()=>MN});var Oo={};N(Oo,{doInAccountContext:()=>Gv,doInIdentityContext:()=>Lp,doInUserContext:()=>Mp,getAccountUserId:()=>FT,getIdentity:()=>Up});function Up(){return ur()}function Lp(t,e){return xo(t,e)}function Mp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Lp(n,r)}function Gv(t,e){let r=FT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Lp(i,e)}function FT(t){let e;return qa(t)?e=t.budibaseUserId:e=t.accountId,e}var Zu=require("fs");var GT=require("lodash"),Fp=require("crypto"),Ro=require("path"),$v=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Ro.resolve)((0,Ro.join)(__dirname,"..","..","..")),kT=!1;!kT&&zu()&&!kp()&&(require("dotenv").config({path:(0,Ro.join)($v,".env")}),kT=!0);function kp(){return $T()}function $T(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function zu(){return process.env.NODE_ENV!=="production"}function Vv(t){if(t)return parseInt(t)}var Yi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},BT=!!parseInt(process.env.SELF_HOSTED||"");function qv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Wv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Qv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Zu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Zu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(zu()&&!kp())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:""}}}function jv(){return vt.SERVICE_TYPE==="worker"}function Hv(){return vt.SERVICE_TYPE==="apps"}function Kv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}function Yv(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}var vt={isTest:kp,isJest:$T,isDev:zu,isWorker:jv,isApps:Hv,isQA:Kv,isProd:()=>!zu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Fp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Fp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:qv(),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:BT,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||Yi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Yv(),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:Wv(),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:BT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Qv(),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,vt[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:Vv(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,GT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function VT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var qT=["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(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var WT=require("async_hooks"),we=class t{static{this.storage=new WT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Bp="No app provided";function Br(t){if(!t)throw Bp;return t.startsWith(Et)}function Jv(t){if(!t)throw Bp;return t.startsWith(yt)&&!Br(t)}function bo(t){if(!t)throw Bp;return Br(t.appId)}function Xu(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var Gp=Xu;function at(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function zv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=$p(t),r,n;if(e.auth?.username)r=e.auth.username;else if(h.COUCH_DB_USERNAME)r=h.COUCH_DB_USERNAME;else if(!h.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(h.COUCH_DB_PASSWORD)n=h.COUCH_DB_PASSWORD;else if(!h.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=h.COUCH_DB_SQL_URL;if(h.isDev()&&!s)s="http://localhost:4006";else if(!s&&e.url){let o=new URL(e.url);s=e.url.replace(o.port,"4984")}return{url:e.url,sqlUrl:$p(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},$p=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let p=l.split(":");r=p[0],n=p.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var tA=W(require("@budibase/nano"));var QT=W(require("node-fetch"));function ec(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function jT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({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,QT.default)(ec(encodeURI(t)),i)}async function Vp(t,e="GET",r){let n=await jT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=W(require("pouchdb"));var HT,KT=!1,qp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function tc(t){HT=qp(t),KT=!0}var Xv=()=>{if(!KT)throw new Error("init has not been called")};function Tt(t,e){Xv();let r=new HT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Co(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var YT=require("uuid");function me(){return(0,YT.v4)().replace(/-/g,"")}var Oe=W(require("dd-trace")),Ji=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Oe.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 Oe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Oe.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 Oe.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 Oe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return Oe.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 Oe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return Oe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Oe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Oe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Oe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Oe.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 Oe.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 Oe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var zp={};N(zp,{breakExternalTableId:()=>jp,breakRowIdField:()=>pN,buildExternalTableId:()=>oN,convertRowId:()=>dN,encodeTableId:()=>aN,encodeViewId:()=>uN,extractDate:()=>Kp,generateRowIdField:()=>cN,getNativeSql:()=>zi,isExternalTable:()=>Qp,isExternalTableID:()=>rc,isInternalTableID:()=>sN,isRowId:()=>lN,isValidFilter:()=>ic,isValidISODateString:()=>nc,isValidISODateStringWithoutTimezone:()=>Hp,isValidTime:()=>Yp,sqlLog:()=>vo,validateManyToMany:()=>Jp});var Wp=`${v}${v}`,zT=/^\[.*]$/g,eN=encodeURIComponent(" "),tN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,rN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,nN=/(\d{4}-\d{2}-\d{2})/,iN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function rc(t){return t.startsWith("datasource"+v)}function sN(t){return!rc(t)}function zi(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}}function Qp(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==Ci||t?.sourceType==="external"?!0:!!(t?._id&&rc(t._id))}function oN(t,e){return`${t}${Wp}${encodeURIComponent(e)}`}function aN(t){return rc(t)?encodeURIComponent(t):t}function uN(t){return encodeURIComponent(t)}function jp(t){let e=t.split(Wp),r=e.shift(),n=e.join(Wp);if(n.includes(eN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function cN(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,"'"))}function lN(t){return Array.isArray(t)||typeof t=="string"&&t.match(zT)!=null}function dN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(zT)!=null?t.substring(1,t.length-1):t}function pN(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]}}function nc(t){let e=t.trim();if(!tN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Hp(t){let e=t.trim();if(!rN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Kp(t){let e=t.match(nN);if(e)return e[0]}function ic(t){return t!=null&&t!==""}function Yp(t){return iN.test(t)}function vo(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function fN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Jp(t){if(fN(t))return t}var ZT="Database does not exist.";function XT(t){return(0,tA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Gr=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"}};function mN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zi(t,r,e);return new Ji(n)}var Zi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=XT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=XT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({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 Gr(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===ZT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Gr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Gr(`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}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Bh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Gr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=me()),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()=>n.insert(e)})}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===ZT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=ec(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Gr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${Kt}`;return vo("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,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(Kt)){let e=await this.get(Kt);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 Gr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function Ve(t,e){return new Ji(new Zi(t,e))}async function ut(t,e,r){let n=Ve(t,r);return await e(n)}async function Zp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Vp(e)}var rA=null;function Jn(t){return t||(t=j()),No(t)}function nA(t){return t||(t=j()),t===Ae?Te.AUDIT_LOGS.name:`${t}${v}${Te.AUDIT_LOGS.name}`}function hN(t){return t||(t=j()),t===Ae?Te.SCIM_LOGS.name:`${t}${v}${Te.SCIM_LOGS.name}`}function No(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${v}${Te.GLOBAL.name}`}function Xp(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function gN(){return!!we.get()?.tenantId}function yN(){return h.MULTI_TENANCY}function Xi(t){if(!t)return;if(!$r())return Ae;let e=t.split(v),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function EN(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){xN();let r=EN(t);return we.run(r,e)}async function TN(t){return await oA(),await Pt({tenantId:Xi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function ef(t,e){let r=Xi(t);return Pt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Ae),Pt(t?{tenantId:t}:{},e)}async function AN(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function SN(t,e){return Pt({license:t},e)}function _N(){return we.get()?.license}function iA(){return!!we.get()?.isSelfHostUsingCloud}function IN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ve(Te.SELF_HOST_CLOUD.name)}async function ON(t,e){return sA(t,e)}async function sA(t,e,r){if(!t)throw new Error("appId is required");let n=Xi(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(i,e)}async function xo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Pt(r,e)}function xN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function RN(t,e){return sA(t,e,{isMigrating:!0})}function ur(){try{return we.get()?.identity}catch{}}function j(){if(!$r())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function tf(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&rA?rA:e}function rf(){return we.get()?.ip}var wN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return Gp(t)},bN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function DN(t,e){if(!t)throw new Error("Must supply environment variables.");return Pt({environmentVariables:t},e)}function CN(t){return Pt({isScim:!0},t)}function nf(t,e){return Pt({ip:t},e)}async function oA(){let t=zn();if(!t||t.snippets)return;let e,r=es();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function vN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function ne(){let t=we.get();if(!t||h.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 Ve(No(t?.tenantId))}function NN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(nA())}function es(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(iA())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function PN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function UN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Xu(e),t)}function Ut(){return!!we.get()?.isScim}function zn(){try{return we.get()}catch{return}}function sf(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function of(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function af(){return zn()?.featureFlagOverrides||{}}async function uf(t,e){return await Pt({featureFlagOverrides:t},e)}function LN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function MN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var qr={};N(qr,{getAppClient:()=>lc,getCacheClient:()=>mf,getDocWritethroughClient:()=>$N,getInviteClient:()=>ei,getLockClient:()=>gf,getPasswordResetClient:()=>Vo,getSessionClient:()=>Vr,getSocketClient:()=>GN,getUserClient:()=>$o,getWritethroughClient:()=>hf,init:()=>Lt,shutdown:()=>cA});var cc=W(require("ioredis"));var ac={};N(ac,{Databases:()=>cf,SEPARATOR:()=>ts,SelectableDatabase:()=>sc,getRedisClusterOptions:()=>lf,getRedisConnectionDetails:()=>oc,getRedisOptions:()=>Zn,removeDbPrefix:()=>df});var ts="-",cf=(y=>(y.PW_RESETS="pwReset",y.VERIFICATIONS="verification",y.INVITATIONS="invitation",y.DEV_LOCKS="devLocks",y.DEBOUNCE="debounce",y.SESSIONS="session",y.USER_CACHE="users",y.FLAGS="flags",y.APP_METADATA="appMetadata",y.QUERY_VARS="queryVars",y.LICENSES="license",y.GENERIC_CACHE="data_cache",y.WRITE_THROUGH="writeThrough",y.LOCKS="locks",y.SOCKET_IO="socket_io",y.BPM_EVENTS="bpmEvents",y.DOC_WRITE_THROUGH="docWriteThrough",y))(cf||{}),sc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(sc||{});function oc(){let t=h.REDIS_PASSWORD,e=h.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}}function lf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zn(),tls:{}}}}function Zn(){let{host:t,password:e,port:r}=oc();return{connectTimeout:3e4,port:r,host:t,password:e}}function df(t){let e=t.split(ts);return e.length>=2?(e.shift(),e.join(ts)):e[0]}var uc=require("dd-trace"),uA=require("lodash"),aA;if(h.MOCK_REDIS)try{aA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function FN(t=0){return await uc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new aA(Zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=oc();r=new cc.Cluster([{host:n,port:i}],lf())}else r=new cc.default(Zn());return new Promise((n,i)=>{r.on("error",s=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,s),i(s)}),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)})})})}function kN(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",s=>s.forEach(o=>i.add(o))),t.on("error",s=>n(s)),t.on("end",async()=>{try{let s=Array.from(i).map(async o=>{let a=await e.get(o);return a&&(a=JSON.parse(a)),{key:df(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function BN(t){return t.isCluster}var pf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await uc.tracer.trace("RedisWrapper.init",async n=>{let i=await FN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return uc.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${ts}${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}${ts}${e}`;let n;BN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await kN(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,uA.zip)(e,n).reduce((i,[s,o])=>{if(s===void 0||o===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[s]=o?JSON.parse(o):null}catch{i[s]=o}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((o,[a,u])=>(o[this.prefixed(a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.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
+ `+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let p={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Kg.default)({args:p,value:l,path:s,sync:i,tests:f,endEarly:c},m=>{if(m)return void n(m,l);(0,Kg.default)({tests:this.tests,args:p,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(zg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(zg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Yg.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=Pi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Pi.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=Pi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,gu.default)(r),s=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(o=>!(o.OPTIONS.name===r.name&&(s||o.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,WR.default)(e).map(s=>new VR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new $R.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,gu.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=Pi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,gu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Pi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,gu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.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(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};yu.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,qR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])wt.prototype[t]=wt.prototype.oneOf;for(let t of["not","nope"])wt.prototype[t]=wt.prototype.notOneOf;wt.prototype.optional=wt.prototype.notRequired});var ey=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Xg;Ys.default=void 0;var QR=jR(nr());function jR(t){return t&&t.__esModule?t:{default:t}}var hd=QR.default,HR=hd;Ys.default=HR;function Xg(){return new hd}Xg.prototype=hd.prototype});var Li=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var YR=t=>t==null;Eu.default=YR});var sy=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=iy;Js.default=void 0;var KR=ny(nr()),ty=tr(),ry=ny(Li());function ny(t){return t&&t.__esModule?t:{default:t}}function iy(){return new Ks}var Ks=class extends KR.default{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=ty.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,ry.default)(r)||r===!0}})}isFalse(e=ty.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,ry.default)(r)||r===!1}})}};Js.default=Ks;iy.prototype=Ks.prototype});var uy=H(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=ay;Zs.default=void 0;var Qt=tr(),ir=oy(Li()),JR=oy(nr());function oy(t){return t&&t.__esModule?t:{default:t}}var zR=/^((([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,ZR=/^((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,XR=/^(?:[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,ew=t=>(0,ir.default)(t)||t===t.trim(),tw={}.toString();function ay(){return new zs}var zs=class extends JR.default{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===tw?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=Qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,ir.default)(n)||n.length===this.resolve(e)}})}min(e,r=Qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,ir.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,ir.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Qt.string.matches,params:{regex:e},test:o=>(0,ir.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Qt.string.email){return this.matches(zR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Qt.string.url){return this.matches(ZR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Qt.string.uuid){return this.matches(XR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:ew})}lowercase(e=Qt.string.lowercase){return this.transform(r=>(0,ir.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toLowerCase()})}uppercase(e=Qt.string.uppercase){return this.transform(r=>(0,ir.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toUpperCase()})}};Zs.default=zs;ay.prototype=zs.prototype});var dy=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=ly;eo.default=void 0;var Nn=tr(),Pn=cy(Li()),rw=cy(nr());function cy(t){return t&&t.__esModule?t:{default:t}}var nw=t=>t!=+t;function ly(){return new Xs}var Xs=class extends rw.default{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"&&!nw(e)}min(e,r=Nn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Pn.default)(n)||n>=this.resolve(e)}})}max(e,r=Nn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Pn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Nn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Pn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Nn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Pn.default)(n)||n>this.resolve(e)}})}positive(e=Nn.number.positive){return this.moreThan(0,e)}negative(e=Nn.number.negative){return this.lessThan(0,e)}integer(e=Nn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Pn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Pn.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,Pn.default)(i)?i:Math[e](i))}};eo.default=Xs;ly.prototype=Xs.prototype});var py=H(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.default=sw;var iw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function sw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=iw.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||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}});var hy=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Ed;to.default=void 0;var ow=Tu(py()),fy=tr(),my=Tu(Li()),aw=Tu(vn()),uw=Tu(nr());function Tu(t){return t&&t.__esModule?t:{default:t}}var yd=new Date(""),cw=t=>Object.prototype.toString.call(t)==="[object Date]";function Ed(){return new Ui}var Ui=class extends uw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,ow.default)(e),isNaN(e)?yd:new Date(e))})})}_typeCheck(e){return cw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(aw.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=fy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,my.default)(i)||i>=this.resolve(n)}})}max(e,r=fy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,my.default)(i)||i<=this.resolve(n)}})}};to.default=Ui;Ui.INVALID_DATE=yd;Ed.prototype=Ui.prototype;Ed.INVALID_DATE=yd});var yy=H(($Q,Td)=>{"use strict";Td.exports=function(t){return gy(lw(t),t)};Td.exports.array=gy;function gy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=dw(e),a=pw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,p){if(p.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){p.add(c);do{var d=m[--l];u(d,a.get(d),p)}while(l);p.delete(c)}n[--r]=c}}}function lw(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)}function dw(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}function pw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Ey=H(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});Ad.default=Ew;var fw=Au(require("lodash/has")),mw=Au(yy()),hw=Ws(),gw=Au(vn()),yw=Au(Ni());function Au(t){return t&&t.__esModule?t:{default:t}}function Ew(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,hw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,fw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),gw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,yw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return mw.default.array(n,r).reverse()}});var Ay=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=Tw;function Ty(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function Tw(t){return(e,r)=>Ty(t,e)-Ty(t,r)}});var wy=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=Ry;no.default=void 0;var Sy=jt(require("lodash/has")),_y=jt(require("lodash/snakeCase")),Aw=jt(require("lodash/camelCase")),Sw=jt(require("lodash/mapKeys")),_w=jt(require("lodash/mapValues")),Iw=Ws(),Iy=tr(),Ow=jt(Ey()),xy=jt(Ay()),xw=jt(du()),Rw=jt(Dn()),_d=jt(nr());function jt(t){return t&&t.__esModule?t:{default:t}}function Mi(){return Mi=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},Mi.apply(this,arguments)}var Oy=t=>Object.prototype.toString.call(t)==="[object Object]";function ww(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var bw=(0,xy.default)([]),ro=class extends _d.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=bw,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return Oy(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 s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(p=>this._nodes.indexOf(p)===-1)),u={},c=Mi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let p of a){let f=s[p],m=(0,Sy.default)(i,p);if(f){let d,g=i[p];c.path=(r.path?`${r.path}.`:"")+p,f=f.resolve({value:g,context:r.context,parent:u});let E="spec"in f?f.spec:void 0,y=E?.strict;if(E?.strip){l=l||p in i;continue}d=!r.__validating||!y?f.cast(i[p],c):i[p],d!==void 0&&(u[p]=d)}else m&&!o&&(u[p]=i[p]);u[p]!==i[p]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,p)=>{if(l){if(!Rw.default.isError(l)||u)return void n(l,p);i.push(l)}if(!c||!Oy(p)){n(i[0]||null,p);return}a=a||p;let f=this._nodes.map(m=>(d,g)=>{let E=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,y=this.fields[m];if(y&&"validate"in y){y.validate(p[m],Mi({},r,{path:E,from:o,strict:!0,parent:p,originalValue:a[m]}),g);return}g(null)});(0,xw.default)({sync:s,tests:f,value:p,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Mi({},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,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof _d.default&&s instanceof _d.default&&(n[i]=s.concat(o))}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,xy.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,Ow.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,Iw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Sy.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Iy.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 s=ww(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Iy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Sw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Aw.default)}snakeCase(){return this.transformKeys(_y.default)}constantCase(){return this.transformKeys(e=>(0,_y.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,_w.default)(this.fields,r=>r.describe()),e}};no.default=ro;function Ry(t){return new ro(t)}Ry.prototype=ro.prototype});var Dy=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=by;so.default=void 0;var Id=Fi(Li()),Dw=Fi(Ni()),Cw=Fi(qs()),Od=tr(),vw=Fi(du()),Nw=Fi(Dn()),Pw=Fi(nr());function Fi(t){return t&&t.__esModule?t:{default:t}}function Su(){return Su=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},Su.apply(this,arguments)}function by(t){return new io(t)}var io=class extends Pw.default{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,s=n.map((o,a)=>{let u=this.innerType.cast(o,Su({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,p=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,d)=>{if(m){if(!Nw.default.isError(m)||l)return void n(m,d);o.push(m)}if(!p||!c||!this._typeCheck(d)){n(o[0]||null,d);return}f=f||d;let g=new Array(d.length);for(let E=0;E<d.length;E++){let y=d[E],S=`${r.path||""}[${E}]`,O=Su({},r,{path:S,strict:!0,parent:d,index:E,originalValue:f[E]});g[E]=(R,T)=>c.validate(y,O,T)}(0,vw.default)({sync:a,path:u,value:d,errors:o,endEarly:l,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,Dw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Cw.default)(e));return r.innerType=e,r}length(e,r=Od.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Id.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Od.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Id.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Od.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Id.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,s)=>!e(n,i,s):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)}};so.default=io;by.prototype=io.prototype});var Cy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=Mw;oo.default=void 0;var Lw=Uw(Ni());function Uw(t){return t&&t.__esModule?t:{default:t}}function Mw(t){return new _u(t)}var _u=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Lw.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)}},Fw=_u;oo.default=Fw});var vy=H(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});xd.default=Gw;var kw=Bw(tr());function Bw(t){return t&&t.__esModule?t:{default:t}}function Gw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{kw.default[e][r]=t[e][r]})})}});var wd=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=Hw;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Ny.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Ny.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Rd.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Rd.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Rd.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return Py.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return Py.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return Ly.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return Ly.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return Uy.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return Uy.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return My.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return My.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return Fy.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return Fy.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return $w.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Vw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return qw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return Ww.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return ky.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Qw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return jw.default}});var Ny=Ln(ey()),Rd=Ln(sy()),Py=Ln(uy()),Ly=Ln(dy()),Uy=Ln(hy()),My=Ln(wy()),Fy=Ln(Dy()),$w=vn(),Vw=Cy(),qw=ao(Dn()),Ww=ao(fd()),ky=ao(Ni()),Qw=ao(vy()),jw=ao(nr());function ao(t){return t&&t.__esModule?t:{default:t}}function By(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return By=function(){return t},t}function Ln(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=By();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 s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function Hw(t,e,r){if(!t||!(0,ky.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}});var Gy=H(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});var bd=Cd();Dd.default=()=>{(0,bd.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,bd.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,bd.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 Cd=H(Pe=>{"use strict";var Yw=Pe&&Pe.__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]}),Kw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Jw=Pe&&Pe.__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)&&Yw(e,t,r);return Kw(e,t),e},zw=Pe&&Pe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateOptions=Pe.registerOptionPreset=Pe.getOptionPresets=Pe.getOptionPreset=void 0;var w=Jw(wd());wd();var uo=xt(),Zw=zw(Gy());Rt();var Un={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}}},$y=w.object({presetId:w.string().required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),minutes:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),hours:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfMonth:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),months:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfWeek:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),years:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required()}).required(),Xw=t=>Un[t]?(0,uo.valid)(Un[t]):(0,uo.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Xw;var eb=()=>Un;Pe.getOptionPresets=eb;var tb=(t,e)=>{Un[t]=$y.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=tb;var rb=t=>{var e,r,n,i,s,o,a,u,c,l,p,f,m,d,g,E,y,S,O,R;try{(0,Zw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,uo.err)([`Option preset ${t.preset} does not exist.`]);T=Un[t.preset]}else T=t.preset;else T=Un.default;let _=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:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(p=T.hours.lowerLimit)!==null&&p!==void 0?p:T.hours.minValue,upperLimit:(f=T.hours.upperLimit)!==null&&f!==void 0?f:T.hours.maxValue},daysOfMonth:{lowerLimit:(m=T.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:T.daysOfMonth.minValue,upperLimit:(d=T.daysOfMonth.upperLimit)!==null&&d!==void 0?d:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(R=T.years.upperLimit)!==null&&R!==void 0?R:T.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:$y.required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({lowerLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:w.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:w.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,uo.valid)(b)}catch(T){return(0,uo.err)(T.errors)}};Pe.validateOptions=rb});var Wt=H((co,Nd)=>{"use strict";var Fn=co&&co.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(co,"__esModule",{value:!0});var Mn=xt(),nb=Fn(gg()),ib=Fn(yg()),sb=Fn(Eg()),ob=Fn(Tg()),ab=Fn(Ag()),ub=Fn(Sg()),cb=Fn(_g()),lb=Cd();Rt();var db=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Mn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Mn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Mn.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,Mn.valid)(n)},vd=(t,e={})=>{let r=(0,lb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=db(t,n);if(i.isError())return(0,Mn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,nb.default)(s,n)),o.push((0,ib.default)(s,n)),o.push((0,sb.default)(s,n)),o.push((0,ob.default)(s,n)),o.push((0,ab.default)(s,n)),o.push((0,ub.default)(s,n)),n.useYears&&o.push((0,cb.default)(s,n)),o.every(u=>u.isValid()))return(0,Mn.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Mn.err)(a)};co.default=vd;Nd.exports=vd;Nd.exports.default=vd});var dT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var or=class extends Error{},$d=class extends or{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Vd=class extends or{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},qd=class extends or{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends or{},Du=class extends or{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends or{},Ht=class extends or{constructor(){super("Zone is an abstract class")}},C="numeric",Ct="short",nt="long",Cu={year:C,month:C,day:C},fE={year:C,month:Ct,day:C},pb={year:C,month:Ct,day:C,weekday:Ct},mE={year:C,month:nt,day:C},hE={year:C,month:nt,day:C,weekday:nt},gE={hour:C,minute:C},yE={hour:C,minute:C,second:C},EE={hour:C,minute:C,second:C,timeZoneName:Ct},TE={hour:C,minute:C,second:C,timeZoneName:nt},AE={hour:C,minute:C,hourCycle:"h23"},SE={hour:C,minute:C,second:C,hourCycle:"h23"},_E={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Ct},IE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},OE={year:C,month:C,day:C,hour:C,minute:C},xE={year:C,month:C,day:C,hour:C,minute:C,second:C},RE={year:C,month:Ct,day:C,hour:C,minute:C},wE={year:C,month:Ct,day:C,hour:C,minute:C,second:C},fb={year:C,month:Ct,day:C,weekday:Ct,hour:C,minute:C},bE={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Ct},DE={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Ct},CE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},vE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,timeZoneName:nt},Lr=class{get type(){throw new Ht}get name(){throw new Ht}get ianaName(){return this.name}get isUniversal(){throw new Ht}offsetName(e,r){throw new Ht}formatOffset(e,r){throw new Ht}offset(e){throw new Ht}equals(e){throw new Ht}get isValid(){throw new Ht}},Pd=null,yo=class t extends Lr{static get instance(){return Pd===null&&(Pd=new t),Pd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return PE(e,r,n)}formatOffset(e,r){return go(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},wu={};function mb(t){return wu[t]||(wu[t]=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"})),wu[t]}var hb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function gb(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,s,o,a,u,c,l]=n;return[o,i,s,a,u,c,l]}function yb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=hb[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var Iu={},ar=class t extends Lr{static create(e){return Iu[e]||(Iu[e]=new t(e)),Iu[e]}static resetCache(){Iu={},wu={}}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 PE(e,r,n,this.name)}formatOffset(e,r){return go(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=mb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?yb(n,r):gb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let f=tp({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,d=m%1e3;return m-=d>=0?d:1e3+d,(f-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Vy={};function Eb(t,e={}){let r=JSON.stringify([t,e]),n=Vy[r];return n||(n=new Intl.ListFormat(t,e),Vy[r]=n),n}var Wd={};function Qd(t,e={}){let r=JSON.stringify([t,e]),n=Wd[r];return n||(n=new Intl.DateTimeFormat(t,e),Wd[r]=n),n}var jd={};function Tb(t,e={}){let r=JSON.stringify([t,e]),n=jd[r];return n||(n=new Intl.NumberFormat(t,e),jd[r]=n),n}var Hd={};function Ab(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Hd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Hd[i]=s),s}var mo=null;function Sb(){return mo||(mo=new Intl.DateTimeFormat().resolvedOptions().locale,mo)}function _b(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=Qd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Qd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Ib(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Ob(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function xb(t){let e=[];for(let r=1;r<=7;r++){let n=Ie.utc(2016,11,13+r);e.push(t(n))}return e}function Ou(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Rb(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var Yd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=Tb(e,a)}}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):ep(e,3);return Re(r,this.padTo)}}},Kd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ar.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ie.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Qd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Jd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&NE()&&(this.rtf=Ab(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Vb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||Ee.defaultLocale,o=s||(i?"en-US":Sb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){mo=null,Wd={},jd={},Hd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=_b(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Ib(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Rb(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,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Ou(this,e,n,ME,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Ob(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Ou(this,e,n,BE,()=>{let i=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=r?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=xb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Ou(this,void 0,e,()=>GE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ie.utc(2016,11,13,9),Ie.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Ou(this,e,r,$E,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ie.utc(-40,1,1),Ie.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Yd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Kd(e,this.intl,r)}relFormatter(e={}){return new Jd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Eb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},Ld=null,it=class t extends Lr{static get utcInstance(){return Ld===null&&(Ld=new t(0)),Ld}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(Mu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${go(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${go(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return go(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}},vu=class extends Lr{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 Pr(t,e){if(ae(t)||t===null)return e;if(t instanceof Lr)return t;if(wb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?yo.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||ar.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new vu(t)}var qy=()=>Date.now(),Wy="system",Qy=null,jy=null,Hy=null,Yy=60,Ky,Ee=class{static get now(){return qy}static set now(e){qy=e}static set defaultZone(e){Wy=e}static get defaultZone(){return Pr(Wy,yo.instance)}static get defaultLocale(){return Qy}static set defaultLocale(e){Qy=e}static get defaultNumberingSystem(){return jy}static set defaultNumberingSystem(e){jy=e}static get defaultOutputCalendar(){return Hy}static set defaultOutputCalendar(e){Hy=e}static get twoDigitCutoffYear(){return Yy}static set twoDigitCutoffYear(e){Yy=e%100}static get throwOnInvalid(){return Ky}static set throwOnInvalid(e){Ky=e}static resetCaches(){_e.resetCache(),ar.resetCache()}};function ae(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Uu(t){return typeof t=="number"&&t%1===0}function wb(t){return typeof t=="string"}function bb(t){return Object.prototype.toString.call(t)==="[object Date]"}function NE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Db(t){return Array.isArray(t)?t:[t]}function Jy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Cb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function $i(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function sr(t,e,r){return Uu(t)&&t>=e&&t<=r}function vb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Nr(t){if(!(ae(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ae(t)||t===null||t===""))return parseFloat(t)}function Xd(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function ep(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function Eo(t){return t%4===0&&(t%100!==0||t%400===0)}function ho(t){return Eo(t)?366:365}function Nu(t,e){let r=vb(e-1,12)+1,n=t+(e-r)/12;return r===2?Eo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function tp(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(e.getUTCFullYear()-1900)),+e}function Pu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function zd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function PE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Mu(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}function LE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function Lu(t,e){let r={};for(let n in t)if($i(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=LE(i)}return r}function go(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}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Fu(t){return Cb(t,["hour","minute","second","millisecond"])}var Nb=["January","February","March","April","May","June","July","August","September","October","November","December"],UE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Pb=["J","F","M","A","M","J","J","A","S","O","N","D"];function ME(t){switch(t){case"narrow":return[...Pb];case"short":return[...UE];case"long":return[...Nb];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}}var FE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],kE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Lb=["M","T","W","T","F","S","S"];function BE(t){switch(t){case"narrow":return[...Lb];case"short":return[...kE];case"long":return[...FE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var GE=["AM","PM"],Ub=["Before Christ","Anno Domini"],Mb=["BC","AD"],Fb=["B","A"];function $E(t){switch(t){case"narrow":return[...Fb];case"short":return[...Mb];case"long":return[...Ub];default:return null}}function kb(t){return GE[t.hour<12?0:1]}function Bb(t,e){return BE(e)[t.weekday-1]}function Gb(t,e){return ME(e)[t.month-1]}function $b(t,e){return $E(e)[t.year<0?0:1]}function Vb(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."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let p=t==="days";switch(e){case 1:return p?"tomorrow":`next ${i[t][0]}`;case-1:return p?"yesterday":`last ${i[t][0]}`;case 0:return p?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function zy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var qb={D:Cu,DD:fE,DDD:mE,DDDD:hE,t:gE,tt:yE,ttt:EE,tttt:TE,T:AE,TT:SE,TTT:_E,TTTT:IE,f:OE,ff:RE,fff:bE,ffff:CE,F:xE,FF:wE,FFF:DE,FFFF:vE},tt=class t{static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,s=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);a==="'"?(n.length>0&&s.push({literal:i,val:n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:!1,val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i,val:n}),s}static macroTokenToFormatOpts(e){return qb[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()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(m,d)=>this.loc.extract(e,m,d),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?kb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,d)=>n?Gb(e,m):s(d?{month:m}:{month:m,day:"numeric"},"month"),c=(m,d)=>n?Bb(e,m):s(d?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let d=t.macroTokenToFormatOpts(m);return d?this.formatWithSystemDefault(e,d):m},p=m=>n?$b(e,m):s({era:m},"era"),f=m=>{switch(m){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 o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({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 a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return p("short");case"GG":return p("long");case"GGGGG":return p("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"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 l(m)}};return zy(t.parseFormat(r),f)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return zy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},VE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Vi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function qi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function Wi(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]}function qE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Nr(e[r+i]);return[n,null,r+i]}}var WE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Wb=`(?:${WE.source}?(?:\\[(${VE.source})\\])?)?`,rp=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,QE=RegExp(`${rp.source}${Wb}`),np=RegExp(`(?:T${QE.source})?`),Qb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,jb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Hb=/(\d{4})-?(\d{3})/,Yb=qE("weekYear","weekNumber","weekDay"),Kb=qE("year","ordinal"),Jb=/(\d{4})-(\d\d)-(\d\d)/,jE=RegExp(`${rp.source} ?(?:${WE.source}|(${VE.source}))?`),zb=RegExp(`(?: ${jE.source})?`);function Gi(t,e,r){let n=t[e];return ae(n)?r:Nr(n)}function Zb(t,e){return[{year:Gi(t,e),month:Gi(t,e+1,1),day:Gi(t,e+2,1)},null,e+3]}function Qi(t,e){return[{hours:Gi(t,e,0),minutes:Gi(t,e+1,0),seconds:Gi(t,e+2,0),milliseconds:Xd(t[e+3])},null,e+4]}function To(t,e){let r=!t[e]&&!t[e+1],n=Mu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function Ao(t,e){let r=t[e]?ar.create(t[e]):null;return[{},r,e+1]}var Xb=RegExp(`^T?${rp.source}$`),eD=/^-?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 tD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",p=u&&u[0]==="-",f=(m,d=!1)=>m!==void 0&&(d||m&&l)?-m:m;return[{years:f(kn(r)),months:f(kn(n)),weeks:f(kn(i)),days:f(kn(s)),hours:f(kn(o)),minutes:f(kn(a)),seconds:f(kn(u),u==="-0"),milliseconds:f(Xd(c),p)}]}var rD={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 ip(t,e,r,n,i,s,o){let a={year:e.length===2?zd(Nr(e)):Nr(e),month:UE.indexOf(r)+1,day:Nr(n),hour:Nr(i),minute:Nr(s)};return o&&(a.second=Nr(o)),t&&(a.weekday=t.length>3?FE.indexOf(t)+1:kE.indexOf(t)+1),a}var nD=/^(?:(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 iD(t){let[,e,r,n,i,s,o,a,u,c,l,p]=t,f=ip(e,i,n,r,s,o,a),m;return u?m=rD[u]:c?m=0:m=Mu(l,p),[f,new it(m)]}function sD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var oD=/^(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$/,aD=/^(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 Zy(t){let[,e,r,n,i,s,o,a]=t;return[ip(e,i,n,r,s,o,a),it.utcInstance]}function cD(t){let[,e,r,n,i,s,o,a]=t;return[ip(e,a,r,n,i,s,o),it.utcInstance]}var lD=Vi(Qb,np),dD=Vi(jb,np),pD=Vi(Hb,np),fD=Vi(QE),HE=qi(Zb,Qi,To,Ao),mD=qi(Yb,Qi,To,Ao),hD=qi(Kb,Qi,To,Ao),gD=qi(Qi,To,Ao);function yD(t){return Wi(t,[lD,HE],[dD,mD],[pD,hD],[fD,gD])}function ED(t){return Wi(sD(t),[nD,iD])}function TD(t){return Wi(t,[oD,Zy],[aD,Zy],[uD,cD])}function AD(t){return Wi(t,[eD,tD])}var SD=qi(Qi);function _D(t){return Wi(t,[Xb,SD])}var ID=Vi(Jb,zb),OD=Vi(jE),xD=qi(Qi,To,Ao);function RD(t){return Wi(t,[ID,HE],[OD,xD])}var wD="Invalid Duration",YE={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}},bD={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},...YE},mt=146097/400,ki=146097/4800,DD={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:ki/7,days:ki,hours:ki*24,minutes:ki*24*60,seconds:ki*24*60*60,milliseconds:ki*24*60*60*1e3},...YE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],CD=Bn.slice(0).reverse();function vr(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 De(n)}function vD(t){return t<0?Math.floor(t):Math.ceil(t)}function KE(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?vD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function ND(t,e){CD.reduce((r,n)=>ae(e[n])?r:(r&&KE(t,e,r,e,n),n),null)}function PD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var De=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?DD:bD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.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 Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Lu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=AD(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]=_D(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 Ye("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new qd(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 Du(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?tt.create(this.loc,n).formatDurationFromString(this,e):wD}toHuman(e={}){let r=Bn.map(n=>{let i=this.values[n];return ae(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(i)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(r)}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+=ep(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Bn)($i(r.values,i)||$i(this.values,i))&&(n[i]=r.get(i)+this.get(i));return vr(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]=LE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Lu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return ND(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=PD(this.normalize().shiftToAll().toObject());return vr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Bn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;Vn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)Bn.indexOf(c)>Bn.indexOf(o)&&KE(this.matrix,i,c,r,o)}else Vn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return vr(this,{values:r},!0).normalize()}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 vr(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}for(let n of Bn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Bi="Invalid Interval";function LD(t,e){return!t||!t.isValid?qn.invalid("missing or invalid start"):!e||!e.isValid?qn.invalid("missing or invalid end"):e<t?qn.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}var qn=class t{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 Ye("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Vd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=fo(e),i=fo(r),s=LD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=fo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=fo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=Ie.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ie.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.fromISO(n,r);if(c.isValid)return t.before(a,c)}}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 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"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}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(fo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=De.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}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,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.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()})`:Bi}toLocaleString(e=Cu,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):Bi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Bi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Bi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Bi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Bi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):De.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},$n=class{static hasDST(e=Ee.defaultZone){let r=Ie.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ar.isValidZone(e)}static normalizeZone(e){return Pr(e,Ee.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:NE()}}};function Xy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(De.fromMillis(n).as("days"))}function UD(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=Xy(u,c);return(l-l%7)/7}],["days",Xy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function MD(t,e,r,n){let[i,s,o,a]=UD(t,e,r),u=e-i,c=r.filter(p=>["hours","minutes","seconds","milliseconds"].indexOf(p)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var sp={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"},eE={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]},FD=sp.hanidec.replace(/[\[|\]]/g,"").split("");function kD(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(sp.hanidec)!==-1)e+=FD.indexOf(t[r]);else for(let i in eE){let[s,o]=eE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${sp[t||"latn"]}${e}`)}var BD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(kD(r))}}var GD=String.fromCharCode(160),JE=`[ ${GD}]`,zE=new RegExp(JE,"g");function $D(t){return t.replace(/\./g,"\\.?").replace(zE,JE)}function tE(t){return t.replace(/\./g,"").replace(zE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map($D).join("|")),deser:([r])=>t.findIndex(n=>tE(r)===tE(n))+e}}function rE(t,e){return{regex:t,deser:([,r,n])=>Mu(r,n),groups:e}}function Ud(t){return{regex:t,deser:([e])=>e}}function VD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function qD(t,e){let r=bt(e),n=bt(e,"{2}"),i=bt(e,"{3}"),s=bt(e,"{4}"),o=bt(e,"{6}"),a=bt(e,"{1,2}"),u=bt(e,"{1,3}"),c=bt(e,"{1,6}"),l=bt(e,"{1,9}"),p=bt(e,"{2,4}"),f=bt(e,"{4,6}"),m=E=>({regex:RegExp(VD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return m(E);switch(E.val){case"G":return Dt(e.eras("short",!1),0);case"GG":return Dt(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(p,zd);case"yyyy":return le(s);case"yyyyy":return le(f);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return Dt(e.months("short",!0,!1),1);case"MMMM":return Dt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return Dt(e.months("short",!1,!1),1);case"LLLL":return Dt(e.months("long",!1,!1),1);case"d":return le(a);case"dd":return le(n);case"o":return le(u);case"ooo":return le(i);case"HH":return le(n);case"H":return le(a);case"hh":return le(n);case"h":return le(a);case"mm":return le(n);case"m":return le(a);case"q":return le(a);case"qq":return le(n);case"s":return le(a);case"ss":return le(n);case"S":return le(u);case"SSS":return le(i);case"u":return Ud(l);case"uu":return Ud(a);case"uuu":return le(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(p,zd);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return Dt(e.weekdays("short",!1,!1),1);case"EEEE":return Dt(e.weekdays("long",!1,!1),1);case"ccc":return Dt(e.weekdays("short",!0,!1),1);case"cccc":return Dt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return rE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return rE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Ud(/[a-z_+-/]{1,256}?/i);default:return m(E)}})(t)||{invalidReason:BD};return g.token=t,g}var WD={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",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function QD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=WD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function jD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function HD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if($i(r,o)){let a=r[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(i[a.token.val[0]]=a.deser(n.slice(s,s+u))),s+=u}return[n,i]}else return[n,{}]}function YD(t){let e=s=>{switch(s){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}},r=null,n;return ae(t.z)||(r=ar.create(t.z)),ae(t.Z)||(r||(r=new it(t.Z)),n=t.Z),ae(t.q)||(t.M=(t.q-1)*3+1),ae(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),ae(t.u)||(t.S=Xd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Md=null;function KD(){return Md||(Md=Ie.fromMillis(1555555555555)),Md}function JD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=eT(r,e);return n==null||n.includes(void 0)?t:n}function ZE(t,e){return Array.prototype.concat(...t.map(r=>JD(r,e)))}function XE(t,e,r){let n=ZE(tt.parseFormat(r),t),i=n.map(o=>qD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=jD(i),u=RegExp(o,"i"),[c,l]=HD(e,u,a),[p,f,m]=l?YD(l):[null,null,void 0];if($i(l,"a")&&$i(l,"H"))throw new Gn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:p,zone:f,specificOffset:m}}}function zD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=XE(t,e,r);return[n,i,s,o]}function eT(t,e){return t?tt.create(e,t).formatDateTimeParts(KD()).map(i=>QD(i,t)):null}var tT=[0,31,59,90,120,151,181,212,243,273,304,334],rT=[0,31,60,91,121,152,182,213,244,274,305,335];function ht(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function nT(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}function iT(t,e,r){return r+(Eo(t)?rT:tT)[e-1]}function sT(t,e){let r=Eo(t)?rT:tT,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Zd(t){let{year:e,month:r,day:n}=t,i=iT(e,r,n),s=nT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Pu(a)):o>Pu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Fu(t)}}function nE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=nT(e,1,4),s=ho(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=ho(a)):o>s?(a=e+1,o-=ho(e)):a=e;let{month:u,day:c}=sT(a,o);return{year:a,month:u,day:c,...Fu(t)}}function Fd(t){let{year:e,month:r,day:n}=t,i=iT(e,r,n);return{year:e,ordinal:i,...Fu(t)}}function iE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=sT(e,r);return{year:e,month:n,day:i,...Fu(t)}}function ZD(t){let e=Uu(t.weekYear),r=sr(t.weekNumber,1,Pu(t.weekYear)),n=sr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function XD(t){let e=Uu(t.year),r=sr(t.ordinal,1,ho(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function oT(t){let e=Uu(t.year),r=sr(t.month,1,12),n=sr(t.day,1,Nu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function aT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=sr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=sr(r,0,59),a=sr(n,0,59),u=sr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var kd="Invalid DateTime",sE=864e13;function xu(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Bd(t){return t.weekData===null&&(t.weekData=Zd(t.c)),t.weekData}function lo(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ie({...r,...e,old:r})}function uT(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 s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function oE(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()}}function bu(t,e,r){return uT(tp(t),e,r)}function aE(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,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Nu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.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"),a=tp(s),[u,c]=uT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function po(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ie.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ie.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ru(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Gd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function uE(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var cT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},eC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},tC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},lT=["year","month","day","hour","minute","second","millisecond"],rC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],nC=["year","ordinal","hour","minute","second","millisecond"];function cE(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 Du(t);return e}function lE(t,e){let r=Pr(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(ae(t.year))s=i;else{for(let c of lT)ae(t[c])&&(t[c]=cT[c]);let a=oT(t)||aT(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=bu(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function dE(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=ep(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function pE(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]}var Ie=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:xu(r));this.ts=ae(e.ts)?Ee.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=oE(this.ts,a),n=Number.isNaN(i.year)?new rt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=pE(arguments),[n,i,s,o,a,u,c]=r;return lE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=pE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,lE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=bb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Pr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(xu(i))}static fromMillis(e,r={}){if(Vn(e))return e<-sE||e>sE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Pr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Vn(e))return new t({ts:e*1e3,zone:Pr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Pr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(xu(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Lu(e,cE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,p=o.weekYear||o.weekNumber,f=_e.fromObject(r);if((l||a)&&p)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Gn("Can't mix ordinal dates with month/day");let m=p||o.weekday&&!l,d,g,E=oE(i,s);m?(d=rC,g=eC,E=Zd(E)):a?(d=nC,g=tC,E=Fd(E)):(d=lT,g=cT);let y=!1;for(let b of d){let k=o[b];ae(k)?y?o[b]=g[b]:o[b]=E[b]:y=!0}let S=m?ZD(o):a?XD(o):oT(o),O=S||aT(o);if(O)return t.invalid(O);let R=m?nE(o):a?iE(o):o,[T,_]=bu(R,s,n),B=new t({ts:T,zone:n,o:_,loc:f});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=yD(e);return po(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=ED(e);return po(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=TD(e);return po(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ae(e)||ae(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=zD(o,e,r);return l?t.invalid(l):po(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=RD(e);return po(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new $d(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=eT(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return ZE(tt.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}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?Bd(this).weekYear:NaN}get weekNumber(){return this.isValid?Bd(this).weekNumber:NaN}get weekday(){return this.isValid?Bd(this).weekday:NaN}get ordinal(){return this.isValid?Fd(this.c).ordinal:NaN}get monthShort(){return this.isValid?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.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}get isInLeapYear(){return Eo(this.year)}get daysInMonth(){return Nu(this.year,this.month)}get daysInYear(){return this.isValid?ho(this.year):NaN}get weeksInWeekYear(){return this.isValid?Pu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Pr(e,Ee.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=bu(o,s,e)}return lo(this,{ts:i,zone:e})}else return t.invalid(xu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return lo(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Lu(e,cE),n=!ae(r.weekYear)||!ae(r.weekNumber)||!ae(r.weekday),i=!ae(r.ordinal),s=!ae(r.year),o=!ae(r.month)||!ae(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Gn("Can't mix ordinal dates with month/day");let c;n?c=nE({...Zd(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Nu(c.year,c.month),c.day))):c=iE({...Fd(this.c),...r});let[l,p]=bu(c,this.o,this.zone);return lo(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return lo(this,aE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return lo(this,aE(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=De.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?tt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):kd}toLocaleString(e=Cu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):kd}toLocaleParts(e={}){return this.isValid?tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Gd(this,o);return a+="T",a+=uE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Gd(this,e==="extended"):null}toISOWeekDate(){return Ru(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+uE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ru(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ru(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Gd(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")),Ru(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():kd}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 De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Db(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=MD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?qn.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}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"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),dE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?dE(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 Ye("min requires all arguments be DateTimes");return Jy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return Jy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return XE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Cu}static get DATE_MED(){return fE}static get DATE_MED_WITH_WEEKDAY(){return pb}static get DATE_FULL(){return mE}static get DATE_HUGE(){return hE}static get TIME_SIMPLE(){return gE}static get TIME_WITH_SECONDS(){return yE}static get TIME_WITH_SHORT_OFFSET(){return EE}static get TIME_WITH_LONG_OFFSET(){return TE}static get TIME_24_SIMPLE(){return AE}static get TIME_24_WITH_SECONDS(){return SE}static get TIME_24_WITH_SHORT_OFFSET(){return _E}static get TIME_24_WITH_LONG_OFFSET(){return IE}static get DATETIME_SHORT(){return OE}static get DATETIME_SHORT_WITH_SECONDS(){return xE}static get DATETIME_MED(){return RE}static get DATETIME_MED_WITH_SECONDS(){return wE}static get DATETIME_MED_WITH_WEEKDAY(){return fb}static get DATETIME_FULL(){return bE}static get DATETIME_FULL_WITH_SECONDS(){return DE}static get DATETIME_HUGE(){return CE}static get DATETIME_HUGE_WITH_SECONDS(){return vE}};function fo(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&Vn(t.valueOf()))return Ie.fromJSDate(t);if(t&&typeof t=="object")return Ie.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var iC="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=ar;st.Info=$n;st.Interval=qn;st.InvalidZone=vu;st.Settings=Ee;st.SystemZone=yo;st.VERSION=iC;st.Zone=Lr});var fT=H((ZQ,pT)=>{"use strict";var Wn=dT();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.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}))};z.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}))};z.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}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.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}))};z.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}))};z.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}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=Wn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Wn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Wn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Wn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Wn.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))}pT.exports=z});var gT=H((XQ,hT)=>{"use strict";function Qn(t){return{start:t,count:1}}function mT(t,e){t.end=e,t.step=e-t.start,t.count=2}function op(t,e,r){e&&(e.count===2?(t.push(Qn(e.start)),t.push(Qn(e.end))):t.push(e)),r&&t.push(r)}function sC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(op(e,r,Qn(i)),r=void 0):r?r.count===1?mT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Qn(r.start)),r=Qn(r.end),mT(r,i)):(op(e,r),r=Qn(i)):r=Qn(i)}return op(e,r),e}hT.exports=sC});var ET=H((ej,yT)=>{"use strict";var oC=gT();function aC(t,e,r){var n=oC(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(f,m){var d=c.start+m;return(d-c.start)%c.step===0?d:null}).filter(function(f){return f!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}yT.exports=aC});var ST=H((tj,AT)=>{"use strict";var jn=fT(),uC=ET(),TT=1e4;function L(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new jn(e.currentDate,this._tz),this._startDate=e.startDate?new jn(e.startDate,this._tz):null,this._endDate=e.endDate?new jn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=L._freezeFields(t)}L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.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"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.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}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};L._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!L.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 s(u){var c=[];function l(d){if(d instanceof Array)for(var g=0,E=d.length;g<E;g++){var y=d[g];if(L._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(L._isValidConstraintChar(n,d)){c.push(d);return}var S=+d;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+d+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var p=u.split(",");if(!p.every(function(d){return d.length>0}))throw new Error("Invalid list value format");if(p.length>1)for(var f=0,m=p.length;f<m;f++)l(o(p[f]));else l(o(u));return c.sort(L._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],p=u.split("-");if(p.length>1){if(p.length<2)return+u;if(!p[0].length){if(!p[1].length)throw new Error("Invalid range: "+u);return+u}var f=+p[0],m=+p[1];if(Number.isNaN(f)||Number.isNaN(m)||f<n.min||m>n.max)throw new Error("Constraint error, got range "+f+"-"+m+" expected range "+n.min+"-"+n.max);if(f>m)throw new Error("Invalid range: "+u);var d=+c;if(Number.isNaN(d)||d<=0)throw new Error("Constraint error, cannot repeat at every "+d+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var g=f,E=m;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&d>0&&d%c===0?(d=1,l.push(g)):d++}return l}return Number.isNaN(+u)?u:+u}return s(r)};L._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)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.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(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.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 s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};L.prototype._findSchedule=function(e){function r(y,S){for(var O=0,R=S.length;O<R;O++)if(S[O]>=y)return S[O]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var O=y.getDate()%7?1:0,R=y.getDate()-y.getDate()%7,T=Math.floor(R/7)+O;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new jn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function p(y){return y.some(function(S){if(!i([S]))return!1;var O=Number.parseInt(S[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===O&&o.isLastWeekdayOfMonth()})}for(;l<TT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var f=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||p(this.fields.dayOfWeek));var d=this.fields.dayOfMonth.length>=L.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,E=o.getHours();if(!f&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!d&&g&&!f){this._applyTimezoneShift(o,s,"Day");continue}if(d&&!g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=TT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new jn(o,this._tz),this._hasIterated=!0,o};L.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};L.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};L.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}};L.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}};L.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};L.prototype.reset=function(e){this._currentDate=new jn(e||this._options.currentDate)};L.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var s=L.map[n],o=this.fields[s],a=L.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(uC(o,a.min,a.max))}return r.join(" ")};L.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new jn(void 0,n._tz)),L.predefined[s]&&(s=L.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=L.map.length-u.length,l=0,p=L.map.length;l<p;++l){var f=L.map[l],m=u[u.length>p?l:l-c];if(l<c||!m)a.push(L._parseField(f,L.parseDefaults[l],L.constraints[l]));else{var d=f==="dayOfWeek"?S(m):m;a.push(L._parseField(f,d,L.constraints[l]))}}for(var g={},l=0,p=L.map.length;l<p;l++){var E=L.map[l];g[E]=a[l]}var y=L._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new L(g,o);function S(O){var R=O.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,R[0]}return O}}return i(e,r)};L.fieldsToExpression=function(e,r){function n(f,m,d){if(!m)throw new Error("Validation error, Field "+f+" is missing");if(m.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var g=0,E=m.length;g<E;g++){var y=m[g];if(!L._isValidConstraintChar(d,y)&&(typeof y!="number"||Number.isNaN(y)||y<d.min||y>d.max))throw new Error("Constraint error, got value "+y+" expected range "+d.min+"-"+d.max)}}for(var i={},s=0,o=L.map.length;s<o;++s){var a=L.map[s],u=e[a];n(a,u,L.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(L._sortCompareFn).filter(function(f,m,d){return!m||f!==d[m-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var p=L._handleMaxDaysInMonth(i);return i.dayOfMonth=p||i.dayOfMonth,new L(i,r||{})};AT.exports=L});var IT=H((rj,_T)=>{"use strict";var ku=ST();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:ku.parse(e)};if(r.length>6)return{interval:ku.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return ku.parse(e,r)};Ur.fieldsToExpression=function(e,r){return ku.fieldsToExpression(e,r)};Ur.parseString=function(e){for(var r=e.split(`
5
+ `),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Ur._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Ur.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Ur.parseString(i.toString()))})};_T.exports=Ur});var nB={};N(nB,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>bp,BadRequestError:()=>Cc,BudibaseError:()=>fs,Config:()=>Lp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>Ci,DEFAULT_EMPLOYEE_TABLE_ID:()=>Np,DEFAULT_EXPENSES_TABLE_ID:()=>vp,DEFAULT_INVENTORY_TABLE_ID:()=>Cp,DEFAULT_JOBS_TABLE_ID:()=>Dp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Yi,DesignDocuments:()=>Yu,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Bf,EmailUnavailableError:()=>hr,Endpoint:()=>bl,EndpointGroup:()=>Fa,FeatureDisabledError:()=>Nc,GlobalRole:()=>Pp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>xr,InvalidAPIKeyError:()=>ms,MAX_VALID_DATE:()=>Ju,MIN_VALID_DATE:()=>BT,NotFoundError:()=>Dc,RedisClient:()=>We,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Yt,SQS_DATASOURCE_INTERNAL:()=>wp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>vc,UserStatus:()=>Ku,ViewName:()=>kr,accounts:()=>di,auth:()=>Ah,blacklist:()=>Oh,cache:()=>xa,configs:()=>tn,constants:()=>Up,context:()=>Se,db:()=>jr,docIds:()=>bf,docUpdates:()=>Rh,encryption:()=>yh,env:()=>h,errors:()=>Lc,events:()=>Es,features:()=>uh,getPublicError:()=>Pc,init:()=>rB,installation:()=>Qc,locks:()=>ui,logging:()=>oa,middleware:()=>Th,objectStore:()=>em,permissions:()=>sh,platform:()=>ea,plugins:()=>_h,queue:()=>ym,redis:()=>Ih,roles:()=>ih,security:()=>Lm,sessions:()=>zc,setEnv:()=>wo,sql:()=>Uh,tenancy:()=>tB,timers:()=>Vc,userUtils:()=>lm,users:()=>Ts,utils:()=>os,withEnv:()=>QT});module.exports=YI(nB);var tn={};N(tn,{analyticsEnabled:()=>Gc,generateConfigID:()=>rl,getAIConfig:()=>hF,getConfig:()=>$t,getDefaultGoogleConfig:()=>Wm,getGoogleConfig:()=>nl,getGoogleDatasourceConfig:()=>Hm,getOIDCConfig:()=>pF,getOIDCConfigById:()=>Ym,getOIDCLogosDoc:()=>lF,getPlatformUrl:()=>va,getSCIMConfig:()=>mF,getSMTPConfig:()=>fF,getSMTPConfigDoc:()=>$_,getSettingsConfig:()=>jm,getSettingsConfigDoc:()=>Hc,save:()=>uF});var KI=["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"],kh=[...KI],Bh={"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};var Dl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Dl||{}),Cl=(f=>(f.STRING="string",f.CODE="code",f.LONGFORM="longForm",f.BOOLEAN="boolean",f.NUMBER="number",f.PASSWORD="password",f.LIST="list",f.OBJECT="object",f.JSON="json",f.FILE="file",f.FIELD_GROUP="fieldGroup",f.SELECT="select",f))(Cl||{}),Ga=(y=>(y.AIRTABLE="AIRTABLE",y.ARANGODB="ARANGODB",y.BUDIBASE="BUDIBASE",y.COUCHDB="COUCHDB",y.DYNAMODB="DYNAMODB",y.ELASTICSEARCH="ELASTICSEARCH",y.FIRESTORE="FIRESTORE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.MONGODB="MONGODB",y.MYSQL="MYSQL",y.ORACLE="ORACLE",y.POSTGRES="POSTGRES",y.REDIS="REDIS",y.REST="REST",y.S3="S3",y.SNOWFLAKE="SNOWFLAKE",y.SQL_SERVER="SQL_SERVER",y))(Ga||{});var vl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(vl||{});var JI=W(require("lodash")),Ir=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Ir||{}),zt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(zt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ai=(r=>(r.AND="$and",r.OR="$or",r))(Ai||{});function $a(t){return Object.values(Ai).includes(t)}function Gh(t){return Object.values(Ir).includes(t)}function $h(t){return Object.values(zt).includes(t)}function Va(t){return Object.values(dn).includes(t)}var Si=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Si||{});var Vh=t=>typeof t=="object"&&t._id&&t._rev;var xs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(xs||{});var qh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACE_APPS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var sG={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Rs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Rs||{});var qa=(p=>(p.APP="app",p.TABLE="table",p.USER="user",p.AUTOMATION="automation",p.WEBHOOK="webhook",p.BUILDER="builder",p.CREATOR="creator",p.GLOBAL_BUILDER="globalBuilder",p.QUERY="query",p.VIEW="view",p.LEGACY_VIEW="legacy_view",p))(qa||{});var Wa=t=>t.hosting==="cloud";var Qa=t=>t.authType==="sso";var v="_",Ge="\uFFF0",Or=t=>`${t}${v}`,ye=(Q=>(Q.USER="us",Q.GROUP="gr",Q.WORKSPACE="workspace",Q.CONFIG="config",Q.TEMPLATE="template",Q.APP="app",Q.DEV="dev",Q.APP_DEV="app_dev",Q.APP_METADATA="app_metadata",Q.ROLE="role",Q.DEV_INFO="devinfo",Q.AUTOMATION_LOG="log_au",Q.ACCOUNT_METADATA="acc_metadata",Q.PLUGIN="plg",Q.DATASOURCE="datasource",Q.DATASOURCE_PLUS="datasource_plus",Q.APP_BACKUP="backup",Q.TABLE="ta",Q.ROW="ro",Q.AUTOMATION="au",Q.LINK="li",Q.WEBHOOK="wh",Q.INSTANCE="inst",Q.LAYOUT="layout",Q.SCREEN="screen",Q.QUERY="query",Q.DEPLOYMENTS="deployments",Q.METADATA="metadata",Q.MEM_VIEW="view",Q.USER_FLAG="flag",Q.AUTOMATION_METADATA="meta_au",Q.AUDIT_LOG="al",Q.SCIM_LOG="scimlog",Q.ROW_ACTIONS="ra",Q.OAUTH2_CONFIG="oauth2",Q.OAUTH2_CONFIG_LOG="oauth2log",Q.AGENT_CHAT="agentchat",Q.AGENT_TOOL_SOURCE="agenttoolsource",Q.WORKSPACE_APP="workspace_app",Q))(ye||{});var xr=(e=>(e.USER_METADATA="ta_users",e))(xr||{}),Nl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Nl||{});var ee=(l=>(l.OBJECT="object",l.STRING="string",l.BOOLEAN="boolean",l.NUMBER="number",l.ARRAY="array",l.JSON="json",l.DATE="date",l.DATETIME="datetime",l.ATTACHMENT="attachment",l.LONGFORM="longform",l))(ee||{}),pe=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R))(pe||{}),It=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(It||{});var ie=(I=>(I.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",I.CREATE_ROW="CREATE_ROW",I.UPDATE_ROW="UPDATE_ROW",I.DELETE_ROW="DELETE_ROW",I.EXECUTE_BASH="EXECUTE_BASH",I.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",I.EXECUTE_SCRIPT="EXECUTE_SCRIPT",I.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",I.EXECUTE_QUERY="EXECUTE_QUERY",I.SERVER_LOG="SERVER_LOG",I.DELAY="DELAY",I.FILTER="FILTER",I.API_REQUEST="API_REQUEST",I.QUERY_ROWS="QUERY_ROWS",I.LOOP="LOOP",I.COLLECT="COLLECT",I.OPENAI="OPENAI",I.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",I.BRANCH="BRANCH",I.CLASSIFY_CONTENT="CLASSIFY_CONTENT",I.PROMPT_LLM="PROMPT_LLM",I.TRANSLATE="TRANSLATE",I.SUMMARISE="SUMMARISE",I.GENERATE_TEXT="GENERATE_TEXT",I.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",I.discord="discord",I.slack="slack",I.zapier="zapier",I.integromat="integromat",I.n8n="n8n",I))(ie||{}),Wh=[...Object.values(ie),...Object.values(It)];var Pl=(a=>(a.EMAIL="email",a.DOCUMENT="document",a.BLOG_POST="blog_post",a.CHAT_MESSAGE="chat_message",a.LETTER="letter",a.PROPOSAL="proposal",a.OTHER="other",a))(Pl||{}),Qh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Ll=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Ll||{}),Ul=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Ul||{});function jh(t){return t.stepId==="BRANCH"}var Ml=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Ml||{});var Fl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Fl||{});var kl="bb_internal";var Hh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function ja(t){return!!t.providerType}var Bl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Bl||{});var cV=Object.values(Bl);var mV=["rows","queries","automations"],hV=["queries","automations"];var se;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(se||(se={}));var $l;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})($l||($l={}));var M=se.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Rr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},x=se.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),eO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,se.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Oi=(t,e)=>{let r;switch(t.code){case x.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,se.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${se.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${se.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${se.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:se.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case x.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,se.assertNever(t)}return{message:r}},Jh=Oi;function tO(t){Jh=t}function Ha(){return Jh}var Ya=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},rO=[];function P(t,e){let r=Ha(),n=Ya({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Oi?void 0:Oi].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),Ii=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Vl=t=>t.status==="aborted",ql=t=>t.status==="dirty",Ds=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Ka(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function zh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var ws,bs,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Yh=(t,e)=>{if(Ds(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Rr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Cs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Yh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return Yh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:x.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Ze({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return qt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return er.create(this,this._def)}promise(){return Dr.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return An.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new vs({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ns.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nO=/^c[^\s-]{8,}$/i,iO=/^[0-9a-z]+$/,sO=/^[0-9A-HJKMNP-TV-Z]{26}$/,oO=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,aO=/^[a-z0-9_-]{21}$/i,uO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,cO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Gl,dO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,pO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,fO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Zh="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",mO=new RegExp(`^${Zh}$`);function Xh(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function hO(t){return new RegExp(`^${Xh(t)}$`)}function eg(t){let e=`${Zh}T${Xh(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function gO(t,e){return!!((e==="v4"||!e)&&dO.test(t)||(e==="v6"||!e)&&pO.test(t))}var wr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.string,received:s.parsedType}),J}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")cO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Gl||(Gl=new RegExp(lO,"u")),Gl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")oO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")aO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")nO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")iO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")sO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:x.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:x.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?eg(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?mO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?hO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?uO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?gO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?fO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):se.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};wr.create=t=>{var e;return new wr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function yO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?se.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?yO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_finite,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&se.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};fn.create=t=>new fn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.bigint,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};mn.create=t=>{var e;return new mn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.boolean,received:n.parsedType}),J}return $e(e.data)}};hn.create=t=>new hn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_date}),J}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):se.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.symbol,received:n.parsedType}),J}return $e(e.data)}};xi.create=t=>new xi({typeName:Y.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.undefined,received:n.parsedType}),J}return $e(e.data)}};yn.create=t=>new yn({typeName:Y.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.null,received:n.parsedType}),J}return $e(e.data)}};En.create=t=>new En({typeName:Y.ZodNull,...Z(t)});var br=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};br.create=t=>new br({typeName:Y.ZodAny,...Z(t)});var Xt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};Xt.create=t=>new Xt({typeName:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:x.invalid_type,expected:M.never,received:r.parsedType}),J}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...Z(t)});var Ri=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.void,received:n.parsedType}),J}return $e(e.data)}};Ri.create=t=>new Ri({typeName:Y.ZodVoid,...Z(t)});var er=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return P(r,{code:x.invalid_type,expected:M.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?x.too_big:x.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:x.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:x.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};er.create=(t,e)=>new er({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function _i(t){if(t instanceof je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(_i(n))}return new je({...t._def,shape:()=>e})}else return t instanceof er?new er({...t._def,type:_i(t.element)}):t instanceof dt?dt.create(_i(t.unwrap())):t instanceof qt?qt.create(_i(t.unwrap())):t instanceof Vt?Vt.create(t.items.map(e=>_i(e))):t}var je=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=se.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return P(c,{code:x.invalid_type,expected:M.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],p=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,p,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:x.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let p=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,p,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let p=await l.key,f=await l.value;c.push({key:p,value:f,alwaysSet:l.alwaysSet})}return c}).then(c=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return se.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return se.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return _i(this)}partial(e){let r={};return se.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return se.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return tg(se.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return P(r,{code:x.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return P(r,{code:x.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:Y.ZodUnion,...Z(e)});var Zt=t=>t instanceof Sn?Zt(t.schema):t instanceof Ze?Zt(t.innerType()):t instanceof _n?[t.value]:t instanceof In?t.options:t instanceof On?se.objectValues(t.enum):t instanceof xn?Zt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...Zt(t.unwrap())]:t instanceof qt?[null,...Zt(t.unwrap())]:t instanceof vs||t instanceof wn?Zt(t.unwrap()):t instanceof Rn?Zt(t._def.innerType):[],Ja=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return P(r,{code:x.invalid_type,expected:M.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:x.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Wl(t,e){let r=Rr(t),n=Rr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=se.objectKeys(e),s=se.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Wl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Wl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var An=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Vl(s)||Vl(o))return J;let a=Wl(s.value,o.value);return a.valid?((ql(s)||ql(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:x.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};An.create=(t,e,r)=>new An({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Vt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return P(n,{code:x.invalid_type,expected:M.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Vt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Vt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var za=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return P(n,{code:x.invalid_type,expected:M.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:Y.ZodRecord,...Z(n)}):new t({keyType:wr.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},wi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return P(n,{code:x.invalid_type,expected:M.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};wi.create=(t,e,r)=>new wi({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var bi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return P(n,{code:x.invalid_type,expected:M.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:x.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:x.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};bi.create=(t,e)=>new bi({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var Za=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return P(r,{code:x.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return Ya({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ha(),Oi].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Ya({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ha(),Oi].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Dr){let a=this;return $e(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(m=>{throw c.addIssue(n(u,m)),c}),p=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(p,s).catch(m=>{throw c.addIssue(i(p,m)),c})})}else{let a=this;return $e(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),p=a._def.returns.safeParse(l,s);if(!p.success)throw new ze([i(l,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Vt.create(e).rest(Xt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Vt.create([]).rest(Xt.create()),returns:r||Xt.create(),typeName:Y.ZodFunction,...Z(n)})}},Sn=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Sn.create=(t,e)=>new Sn({getter:t,typeName:Y.ZodLazy,...Z(e)});var _n=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};_n.create=(t,e)=>new _n({value:t,typeName:Y.ZodLiteral,...Z(e)});function tg(t,e){return new In({values:t,typeName:Y.ZodEnum,...Z(e)})}var In=class t extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:se.joinValues(n),received:r.parsedType,code:x.invalid_type}),J}if(Ka(this,ws,"f")||zh(this,ws,new Set(this._def.values),"f"),!Ka(this,ws,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:x.invalid_enum_value,options:n}),J}return $e(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};ws=new WeakMap;In.create=tg;var On=class extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){let r=se.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=se.objectValues(r);return P(n,{expected:se.joinValues(i),received:n.parsedType,code:x.invalid_type}),J}if(Ka(this,bs,"f")||zh(this,bs,new Set(se.getValidEnumValues(this._def.values)),"f"),!Ka(this,bs,"f").has(e.data)){let i=se.objectValues(r);return P(n,{received:n.data,code:x.invalid_enum_value,options:i}),J}return $e(e.data)}get enum(){return this._def.values}};bs=new WeakMap;On.create=(t,e)=>new On({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var Dr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return P(r,{code:x.invalid_type,expected:M.promise,received:r.parsedType}),J;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return $e(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Dr.create=(t,e)=>new Dr({type:t,typeName:Y.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?Ii(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?Ii(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ds(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ds(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);se.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:Y.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var qt=class extends X{_parse(e){return this._getType(e)===M.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};qt.create=(t,e)=>new qt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var Di=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};Di.create=t=>new Di({typeName:Y.ZodNaN,...Z(t)});var EO=Symbol("zod_brand"),vs=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ns=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),Ii(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},wn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Ds(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function rg(t,e={},r){return t?br.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):br.create()}var TO={object:je.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var AO=(t,e={message:`Input not instance of ${t.name}`})=>rg(r=>r instanceof t,e),ng=wr.create,ig=fn.create,SO=Di.create,_O=mn.create,sg=hn.create,IO=gn.create,OO=xi.create,xO=yn.create,RO=En.create,wO=br.create,bO=Xt.create,DO=Ot.create,CO=Ri.create,vO=er.create,NO=je.create,PO=je.strictCreate,LO=Tn.create,UO=Ja.create,MO=An.create,FO=Vt.create,kO=za.create,BO=wi.create,GO=bi.create,$O=Za.create,VO=Sn.create,qO=_n.create,WO=In.create,QO=On.create,jO=Dr.create,Kh=Ze.create,HO=dt.create,YO=qt.create,KO=Ze.createWithPreprocess,JO=Ns.create,zO=()=>ng().optional(),ZO=()=>ig().optional(),XO=()=>sg().optional(),ex={string:t=>wr.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>hn.create({...t,coerce:!0}),bigint:t=>mn.create({...t,coerce:!0}),date:t=>gn.create({...t,coerce:!0})},tx=J,re=Object.freeze({__proto__:null,defaultErrorMap:Oi,setErrorMap:tO,getErrorMap:Ha,makeIssue:Ya,EMPTY_PATH:rO,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:Ii,OK:$e,isAborted:Vl,isDirty:ql,isValid:Ds,isAsync:Cs,get util(){return se},get objectUtil(){return $l},ZodParsedType:M,getParsedType:Rr,ZodType:X,datetimeRegex:eg,ZodString:wr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:xi,ZodUndefined:yn,ZodNull:En,ZodAny:br,ZodUnknown:Xt,ZodNever:Ot,ZodVoid:Ri,ZodArray:er,ZodObject:je,ZodUnion:Tn,ZodDiscriminatedUnion:Ja,ZodIntersection:An,ZodTuple:Vt,ZodRecord:za,ZodMap:wi,ZodSet:bi,ZodFunction:Za,ZodLazy:Sn,ZodLiteral:_n,ZodEnum:In,ZodNativeEnum:On,ZodPromise:Dr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:dt,ZodNullable:qt,ZodDefault:xn,ZodCatch:Rn,ZodNaN:Di,BRAND:EO,ZodBranded:vs,ZodPipeline:Ns,ZodReadonly:wn,custom:rg,Schema:X,ZodSchema:X,late:TO,get ZodFirstPartyTypeKind(){return Y},coerce:ex,any:wO,array:vO,bigint:_O,boolean:sg,date:IO,discriminatedUnion:UO,effect:Kh,enum:WO,function:$O,instanceof:AO,intersection:MO,lazy:VO,literal:qO,map:BO,nan:SO,nativeEnum:QO,never:DO,null:RO,nullable:YO,number:ig,object:NO,oboolean:XO,onumber:ZO,optional:HO,ostring:zO,pipeline:JO,preprocess:KO,promise:jO,record:kO,set:GO,strictObject:PO,string:ng,symbol:OO,transformer:Kh,tuple:FO,undefined:xO,union:LO,unknown:bO,void:CO,NEVER:tx,ZodIssueCode:x,quotelessJson:eO,ZodError:ze});var bn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(bn||{}),Xa=(r=>(r.STRING="string",r.NUMBER="number",r))(Xa||{});var nu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),og=re.record(nu,re.string()),eu=re.record(nu,re.any()),tu=re.record(nu,re.union([re.any().array(),re.string()])),ag=re.lazy(()=>re.object({conditions:re.array(re.object(ug))})),ru=re.union([re.string(),re.number()]),ug={string:og.optional(),fuzzy:og.optional(),range:re.record(nu,re.union([re.object({high:ru,low:ru}),re.object({high:ru}),re.object({low:ru})])).optional(),equal:eu.optional(),notEqual:eu.optional(),empty:eu.optional(),notEmpty:eu.optional(),oneOf:tu.optional(),contains:tu.optional(),notContains:tu.optional(),containsAny:tu.optional(),$and:ag.optional(),$or:ag.optional()},lq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Si).optional(),...ug}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(bn).optional(),sortType:re.nativeEnum(Xa).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Up={};N(Up,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>bp,Config:()=>Lp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>Ci,DEFAULT_EMPLOYEE_TABLE_ID:()=>Np,DEFAULT_EXPENSES_TABLE_ID:()=>vp,DEFAULT_INVENTORY_TABLE_ID:()=>Cp,DEFAULT_JOBS_TABLE_ID:()=>Dp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Yi,DesignDocuments:()=>Yu,DocumentType:()=>ye,GlobalRole:()=>Pp,Header:()=>Xe,InternalTable:()=>xr,MAX_VALID_DATE:()=>Ju,MIN_VALID_DATE:()=>BT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Yt,SQS_DATASOURCE_INTERNAL:()=>wp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Ku,ViewName:()=>kr});var NW={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Xe=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Xe||{});var MW={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"],json:["json","array","attachment","attachment_single","bb_reference","signature_single"]};var VW="darkest",qW="light",ix=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var et={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"}},cg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Ci="datasource_internal_bb_default";var Mr={};N(Mr,{ColumnSplitter:()=>fp,NoEmptyFilterStrings:()=>CT,buildQuery:()=>vT,cleanupQuery:()=>gp,fixupFilterArrays:()=>Ep,getKeyNumbering:()=>yp,getValidOperatorsForType:()=>CC,hasFilters:()=>mp,limit:()=>PT,recurseLogicalOperators:()=>hp,removeKeyNumbering:()=>iu,runQuery:()=>Bu,search:()=>PC,sort:()=>NT,splitFiltersArray:()=>su});var ji=W(lg());var vi={};N(vi,{filterValueToLabel:()=>lx,hasSchema:()=>dx,isSupportedUserSearch:()=>pg,parallelForeach:()=>cx,processSearchFilters:()=>Hl,toMap:()=>fx,trimOtherProps:()=>px,unreachable:()=>ux});var dg=W(require("lodash")),ax=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function ux(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function cx(t,e,r){let n=[],i=0,s=async()=>{for(;i<t.length;){let o=i++,a=t[o];await e(a)}};for(let o=0;o<Math.min(r,t.length);o++)n.push(s());await Promise.all(n)}function lx(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function dx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function px(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function pg(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if($a(s)){for(let c of t[s].conditions)if(!pg(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Hl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=su(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=dg.default.pick(i,ax);return s.field=iu(s.field),s})}]}}function fx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var gt={};N(gt,{cancelableTimeout:()=>fg,cron:()=>ap,deepGet:()=>Yl,duplicateName:()=>RC,getSequentialName:()=>wC,getUserColor:()=>hx,getUserInitials:()=>mx,getUserLabel:()=>gx,isGoogleSheets:()=>Ex,isSQL:()=>Tx,lists:()=>pp,retry:()=>Ax,roles:()=>dp,schema:()=>So,views:()=>lp,wait:()=>Kl,withTimeout:()=>yx});var Yl=(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},mx=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"},hx=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%)`},gx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function fg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function yx(t,e){let[r,n]=fg(t),i=await Promise.race([e(),r]);return n(),i}function Ex(t){return t==="GOOGLE_SHEETS"}function Tx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Kl(t){return new Promise(e=>setTimeout(e,t))}async function Ax(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 s=1.5**i*1e3*(Math.random()+.5);await Kl(s);try{return await t()}catch(o){n=o}}throw n}var ap={};N(ap,{getNextExecutionDates:()=>dC,validate:()=>pC});var xT=W(Wt()),RT=W(IT()),OT="(Input cron: ",cC={"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 lC(t){let e=[];for(let r of t){r.includes(OT)&&(r=r.split(OT)[0].trim());for(let[n,i]of Object.entries(cC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function dC(t,e=4){let r=RT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function pC(t){let e=(0,xT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:lC(e.getError())}}var So={};N(So,{decodeNonAscii:()=>up,encodeNonAscii:()=>hC,isDeprecatedSingleUserColumn:()=>fC,isNumeric:()=>gC,isRequired:()=>mC});function fC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function mC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function hC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function up(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function gC(t){return t.type==="number"||t.type==="bigint"}var lp={};N(lp,{basicFields:()=>SC,calculationFields:()=>AC,hasCalculationFields:()=>TC,isBasicViewField:()=>yC,isCalculationField:()=>_o,isCalculationView:()=>EC,isV2:()=>_C,isVisible:()=>wT});var cp=require("lodash");function _o(t){return"calculationType"in t}function yC(t){return!_o(t)}function EC(t){return t.type==="calculation"}function TC(t){return Object.values(t.schema||{}).some(_o)}function AC(t){return(0,cp.pickBy)(t.schema||{},_o)}function wT(t){return t.visible!==!1}function SC(t,e){let{visible:r=!0}=e||{};return(0,cp.pickBy)(t.schema||{},n=>!_o(n)&&(!r||wT(n)))}function _C(t){return t.version===2}var dp={};N(dp,{checkForRoleInheritanceLoops:()=>OC});function IC(t){return`role${v}${t}`}function OC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=IC(s);if(n.has(s)||n.has(o))return!0;if(r.has(s)||r.has(o))return!1;n.add(s);let a=e.get(o)||e.get(s);if(!a)return n.delete(s),!1;let u=Array.isArray(a.inherits)?a.inherits:[a.inherits];for(let c of u)if(c&&i(c))return!0;return n.delete(s),r.add(s),!1}return!!t.find(s=>i(s._id))}var pp={};N(pp,{punctuateList:()=>xC});function xC(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]}var RC=(t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];e.filter(a=>{if(a===n)return!0;let u=a.match(i);return u?(s.push(parseInt(u[1])),!0):!1}),s.sort((a,u)=>a-u);let o;if(s.length===0)o=1;else{for(let a=0;a<s.length;a++)if(s[a]!==a+1){o=a+1;break}o||(o=s.length+1)}return`${n} ${o}`},wC=(t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let s=e.trim(),o=n?`${e}1`:s;if(!t?.length)return o;let a=0;return t.forEach(u=>{let c=r?.(u)??u;if(typeof c!="string"||!c.startsWith(s))return;let l=c.split(s);if(l.length!==2)return;l[1].trim()===""&&(l[1]="1");let p=parseInt(l[1]);p>a&&(a=p)}),a===0?o:`${e}${i}${a+1}`};var Hn=require("lodash");var bC=/{{([^{].*?)}}/g,DT=Object.values(Ai),DC=[...Object.values(Ir),...Object.values(zt),...Object.values(dn)],CC=(t,e,r)=>{let n=et,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||So.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"?o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]:a==="barcodeqr"&&(o=i);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},CT=[et.StartsWith.value,et.Like.value,et.Equals.value,et.NotEquals.value,et.Contains.value,et.NotContains.value,et.ContainsAny.value,et.In.value];function hp(t,e){for(let r of DT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var gp=t=>{for(let e of CT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||vC(s))&&delete t[e][i]}return t=hp(t,gp),t};function vC(t){return Array.isArray(t)&&t.length===0}var iu=t=>yp(t).key,yp=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}},fp=class{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}=yp(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=up(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function NC(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(bC)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if(Va(r))return e[r]??={},e[r][n]=o,e}break;case"number":typeof o=="string"&&!a&&(r==="oneOf"?o=o.split(",").map(parseFloat):o=parseFloat(o));break;case"boolean":o=`${o}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof o=="string"&&(o=o.split(","));break}if(Va(r)){let c=cg[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?c.min:"0000-00-00T00:00:00.000Z",high:i==="number"?c.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],high:o};else if(r==="rangeLow"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],low:o};else if(Gh(r)||$h(r)||Va(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function su(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}function vT(t){if(!t)return{};if(Array.isArray(t)&&(t=Hl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=bT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=vT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=su(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=bT(n.logicalOperator)),{[a]:{conditions:o.map(NC).filter(u=>u)}}})},e}function bT(t){return t==="all"?"$and":"$or"}function Ep(t){if(!t)return t;for(let e of Object.values(zt)){let r=t[e];if(!(r==null||!(0,Hn.isPlainObject)(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(s=>s.trim()):r[n]=[i]}}return hp(t,Ep),t}function PC(t,e){let r=Bu(t,e.query);e.sort&&(r=NT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=PT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Bu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=gp(e),e=Ep(e),!mp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=$a(T)?B:Yl(B,iu(b)),un=_(de,k);if(e.allOr&&un)return!0;if(!e.allOr&&!un)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,Hn.isPlainObject)(_.low)&&(0,Hn.isEmpty)(_.low)&&(_.low=void 0),(0,Hn.isPlainObject)(_.high)&&(0,Hn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let k=+_.low,de=+_.high;if(!isNaN(k)&&!isNaN(de))return B>=k&&B<=de;if(isNaN(k)){if(!isNaN(de))return B<=de}else return B>=k}let b=(0,ji.default)(T);if(b.isValid()){let k=(0,ji.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,ji.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&de.isValid())return b.isAfter(k)&&b.isBefore(de)||b.isSame(k)||b.isSame(de);if(k.isValid())return b.isAfter(k)||b.isSame(k);if(de.isValid())return b.isBefore(de)||b.isSame(de)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let b of T)if(o(b,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,ji.default)(T);if(B.isValid()){let b=(0,ji.default)(_);if(b.isValid())return B.isSame(b)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,p=r("empty",l),f=r("notEmpty",a(l)),m=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),d=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(b=>parseFloat(b)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](b=>o(_,b)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:d("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(d("every"))(T,_)),y=r("containsAny",d("some")),S=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Bu([T],B).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Bu([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:p,notEmpty:f,oneOf:m,contains:g,containsAny:y,notContains:E,$and:S,$or:O},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(T)??!1);return mp(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function NT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function PT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var mp=t=>{if(!t)return!1;let e=r=>{for(let n of DT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of DC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var ot={};N(ot,{applications:()=>Ap,automations:()=>Sp,screens:()=>Rp,users:()=>xp});var Ap={};N(Ap,{getDevAppID:()=>LC,getProdAppID:()=>Gu});var Tp=Or("app"),Io=Or("app_dev");function LC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(Tp);e.shift();let r=e.join(Tp);return`${Io}${r}`}function Gu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Io))return t;let e=t.split(Io);e.shift();let r=e.join(Io);return`${Tp}${r}`}var Sp={};N(Sp,{checkForCollectStep:()=>kC,isAppAction:()=>FC,isRowAction:()=>UC,isWebhookAction:()=>MC});function UC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function MC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function FC(t){return t.definition.trigger?.stepId==="APP"}function LT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(jh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(LT(r))return!0}}return!1}function kC(t){return LT(t.definition.steps)}var xp={};N(xp,{canCreateApps:()=>BC,containsUserID:()=>QC,getGlobalUserID:()=>WC,getUserAppGroups:()=>jC,getUserGroups:()=>Op,hasAdminPermissions:()=>Ip,hasAppBuilderPermissions:()=>qu,hasAppCreatorPermissions:()=>UT,hasBuilderPermissions:()=>VC,hasCreatorPermissions:()=>Wu,isAdmin:()=>Vu,isAdminOrBuilder:()=>GC,isAdminOrGlobalBuilder:()=>$C,isBuilder:()=>_p,isCreator:()=>qC,isGlobalBuilder:()=>$u,userAppAccessList:()=>HC});var Fr=W(require("lodash/fp"));function _p(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Gu(e))):!1}function $u(t){return _p(t)&&!qu(t)||Vu(t)}function BC(t){return $u(t)||Wu(t)}function Vu(t){return t?Ip(t):!1}function GC(t,e){return _p(t,e)||Vu(t)}function $C(t){return $u(t)||Vu(t)}function qu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function UT(t){return t?Fr.flow(Fr.get("roles"),Fr.values,Fr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function VC(t){return t?t.builder?.global||qu(t)||Wu(t):!1}function Ip(t){return t?!!t.admin?.global:!1}function Wu(t){return t?!!t.builder?.creator:!1}function qC(t){return t?$u(t)||Ip(t)||Wu(t)||qu(t)||UT(t):!1}function WC(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function QC(t){return typeof t!="string"?!1:t.includes(`us${v}`)}function Op(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function jC(t,e,r){let n=Gu(t);return Op(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function HC(t,e){let n=Op(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Rp={};N(Rp,{findInSettings:()=>YC});function YC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var nH={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},iH={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!0,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},sH={number:!0,json:!0,datetime:!0,longform:!0,string:!0,options:!0,array:!0,bigint:!0,boolean:!0,auto:!1,internal:!1,barcodeqr:!1,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,bb_reference:!0,bb_reference_single:!0};var fH={name:"Bash Scripting",tagline:"Execute a bash command",icon:"git-branch",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var gH={name:"Branch",icon:"git-branch",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var TH={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"stack",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var _H={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"rows-plus-bottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var xH={name:"Delay",icon:"clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var bH={description:"Delete a row from your database",icon:"trash-simple",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var vH={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var LH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var FH={name:"API Request",tagline:"Execute a REST request",icon:"globe",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,new:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var GH={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var qH={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"brackets-angle",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var ov={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},jH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Ml),pretty:Object.values(ov)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var KH={name:"Looping",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var ZH={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var tY={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Fl)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var MT=(i=>(i.GPT_4O_MINI="gpt-4o-mini",i.GPT_4O="gpt-4o",i.GPT_4="gpt-4",i.GPT_35_TURBO="gpt-3.5-turbo",i))(MT||{}),iY={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(MT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var FT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(FT||{}),aY={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(FT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var fv={ascending:"Ascending",descending:"Descending"},lY={description:"Query rows from the database",icon:"magnifying-glass",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(bn),pretty:Object.values(fv)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var fY={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"envelope",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var gY={name:"Backend log",tagline:"Console log a value in the backend",icon:"activity",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var TY={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var _Y={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"arrows-clockwise",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var xY={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"arrow-clockwise",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var bY={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var vY={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var LY={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var FY={name:"Translate",tagline:"Translate text to a different language",icon:"globe",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var kT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(kT||{}),GY={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(kT)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var qY={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(Pl),pretty:Object.values(Qh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var jY={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(Ll),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Ul),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var bv={name:"User action",event:"app:trigger",icon:"cursor-click",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var Cv={name:"CRON / Schedule",event:"cron:trigger",icon:"clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var Nv={name:"Row Deleted",event:"row:delete",icon:"trash-simple",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var Lv={name:"Row Created",event:"row:save",icon:"rows-plus-bottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Mv={name:"Row Updated",event:"row:update",icon:"arrow-clockwise",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var kv={name:"Webhook",event:"web:trigger",icon:"paper-plane-right",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var Gv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"tree-structure",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"row action workflow",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var uK=Object.values(ye).sort((t,e)=>e.length-t.length);var cK=Object.values(Nl).sort((t,e)=>e.length-t.length);var lK=new RegExp("^datasource_plus_(.+)__(.+)$"),Qu=t=>e=>!!e&&e.startsWith(`${t}${v}`);var dK=Qu("ta"),pK=Qu("view"),fK=Qu("datasource"),mK=Qu("query");var ju=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(ju||{}),kr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes_2",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(kr||{}),Yi={by_email2:["by_email"]},Te={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"}},yt=Or("app"),Hu=Or("app_dev"),Et=Hu,wp="internal",bp="budibase",Yt="_design/sqlite",Dp="ta_bb_jobs",Cp="ta_bb_inventory",vp="ta_bb_expenses",Np="ta_bb_employee",Yu=(r=>(r[r.SQLITE=Yt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Yu||{});var Ku=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Ku||{}),Yn=(o=>(o.Auth="budibase:auth",o.Init="budibase:init",o.ACCOUNT_RETURN_URL="budibase:account:returnurl",o.DatasourceAuth="budibase:datasourceauth",o.OIDC_CONFIG="budibase:oidc:config",o.FeatureFlags="budibase:featureflags",o))(Yn||{}),Pp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Pp||{}),Lp=(u=>(u.SETTINGS="settings",u.ACCOUNT="account",u.SMTP="smtp",u.GOOGLE="google",u.OIDC="oidc",u.OIDC_LOGOS="logos_oidc",u.SCIM="scim",u.AI="AI",u))(Lp||{}),BT=new Date(-2147483647e3),Ju=new Date(2147483647e3),Ae="default";var xa={};N(xa,{CacheKey:()=>Ce,TTL:()=>ni,app:()=>Ho,bustCache:()=>rs,destroy:()=>qo,docWritethrough:()=>qm,generic:()=>Wo,get:()=>ii,invite:()=>um,keys:()=>pc,passwordReset:()=>$m,store:()=>cr,user:()=>rn,withCache:()=>Wr,withCacheWithDynamicTTL:()=>fA,writethrough:()=>Gm});var Wo={};N(Wo,{CacheKey:()=>Ce,TTL:()=>ni,bustCache:()=>rs,destroy:()=>qo,get:()=>ii,keys:()=>pc,store:()=>cr,withCache:()=>Wr,withCacheWithDynamicTTL:()=>fA});var Se={};N(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>No,doInAppContext:()=>bN,doInAppMigrationContext:()=>CN,doInAutomationContext:()=>IN,doInContext:()=>rf,doInEnvironmentContext:()=>PN,doInFeatureFlagOverrideContext:()=>lf,doInIPContext:()=>of,doInIdentityContext:()=>xo,doInLicenseContext:()=>xN,doInScimContext:()=>LN,doInSelfHostTenantUsingCloud:()=>ON,doInTenant:()=>qe,ensureSnippetContext:()=>cA,getAppDB:()=>es,getAppId:()=>Le,getAuditLogDBName:()=>oA,getAuditLogsDB:()=>MN,getAutomationId:()=>nf,getCurrentContext:()=>zn,getDevAppDB:()=>kN,getDevAppId:()=>vN,getEnvironmentVariables:()=>UN,getFeatureFlagOverrides:()=>cf,getFeatureFlags:()=>af,getGlobalDB:()=>ne,getGlobalDBName:()=>Jn,getIP:()=>sf,getIdentity:()=>ur,getLicense:()=>RN,getPlatformURL:()=>tf,getProdAppDB:()=>FN,getProdAppId:()=>NN,getScimDBName:()=>TN,getSelfHostCloudDB:()=>wN,getTableForView:()=>BN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>Oo,isMultiTenant:()=>$r,isScim:()=>Lt,isSelfHostUsingCloud:()=>aA,isTenancyEnabled:()=>SN,isTenantIdSet:()=>AN,setFeatureFlags:()=>uf,setTableForView:()=>GN});var Oo={};N(Oo,{doInAccountContext:()=>Wv,doInIdentityContext:()=>Fp,doInUserContext:()=>kp,getAccountUserId:()=>GT,getIdentity:()=>Mp});function Mp(){return ur()}function Fp(t,e){return xo(t,e)}function kp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Fp(n,r)}function Wv(t,e){let r=GT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Fp(i,e)}function GT(t){let e;return Wa(t)?e=t.budibaseUserId:e=t.accountId,e}var Xu=require("fs");var qT=require("lodash"),Bp=require("crypto"),Ro=require("path"),Qv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Ro.resolve)((0,Ro.join)(__dirname,"..","..","..")),$T=!1;!$T&&Zu()&&!Gp()&&(require("dotenv").config({path:(0,Ro.join)(Qv,".env")}),$T=!0);function Gp(){return WT()}function WT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Zu(){return process.env.NODE_ENV!=="production"}function jv(t){if(t)return parseInt(t)}var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},VT=!!parseInt(process.env.SELF_HOSTED||"");function Hv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Yv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Kv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Xu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Xu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Zu()&&!Gp())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:""}}}function Jv(){return vt.SERVICE_TYPE==="worker"}function zv(){return vt.SERVICE_TYPE==="apps"}function Zv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}function Xv(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}var vt={isTest:Gp,isJest:WT,isDev:Zu,isWorker:Jv,isApps:zv,isQA:Zv,isProd:()=>!Zu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Bp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Bp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Hv(),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:VT,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||Ki.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Ki.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Ki.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Ki.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Ki.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Ki.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Xv(),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:Yv(),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:VT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Kv(),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,vt[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:jv(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,qT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function QT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var jT=["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(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var HT=require("async_hooks"),we=class t{static{this.storage=new HT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var $p="No app provided";function Br(t){if(!t)throw $p;return t.startsWith(Et)}function eN(t){if(!t)throw $p;return t.startsWith(yt)&&!Br(t)}function bo(t){if(!t)throw $p;return Br(t.appId)}function ec(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var Vp=ec;function at(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function tN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=qp(t),r,n;if(e.auth?.username)r=e.auth.username;else if(h.COUCH_DB_USERNAME)r=h.COUCH_DB_USERNAME;else if(!h.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(h.COUCH_DB_PASSWORD)n=h.COUCH_DB_PASSWORD;else if(!h.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=h.COUCH_DB_SQL_URL;if(h.isDev()&&!s)s="http://localhost:4006";else if(!s&&e.url){let o=new URL(e.url);s=e.url.replace(o.port,"4984")}return{url:e.url,sqlUrl:qp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},qp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let p=l.split(":");r=p[0],n=p.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var iA=W(require("@budibase/nano"));var YT=W(require("node-fetch"));function tc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function KT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({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,YT.default)(tc(encodeURI(t)),i)}async function Wp(t,e="GET",r){let n=await KT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Kn=W(require("pouchdb"));var JT,zT=!1,Qp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Kn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Kn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Kn.default.plugin(i.plugin),Kn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Kn.default.plugin(i)}return Kn.default.defaults(n)};function rc(t){JT=Qp(t),zT=!0}var nN=()=>{if(!zT)throw new Error("init has not been called")};function Tt(t,e){nN();let r=new JT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Co(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var ZT=require("uuid");function me(){return(0,ZT.v4)().replace(/-/g,"")}var Oe=W(require("dd-trace")),Ji=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Oe.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 Oe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Oe.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 Oe.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 Oe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return Oe.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 Oe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return Oe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Oe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Oe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Oe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Oe.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 Oe.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 Oe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Xp={};N(Xp,{breakExternalTableId:()=>Yp,breakRowIdField:()=>gN,buildExternalTableId:()=>lN,convertRowId:()=>hN,encodeTableId:()=>dN,encodeViewId:()=>pN,extractDate:()=>Jp,generateRowIdField:()=>fN,getNativeSql:()=>zi,isExternalTable:()=>Hp,isExternalTableID:()=>nc,isInternalTableID:()=>cN,isRowId:()=>mN,isValidFilter:()=>sc,isValidISODateString:()=>ic,isValidISODateStringWithoutTimezone:()=>Kp,isValidTime:()=>zp,sqlLog:()=>vo,validateManyToMany:()=>Zp});var jp=`${v}${v}`,eA=/^\[.*]$/g,iN=encodeURIComponent(" "),sN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,oN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,aN=/(\d{4}-\d{2}-\d{2})/,uN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function nc(t){return t.startsWith("datasource"+v)}function cN(t){return!nc(t)}function zi(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}}function Hp(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==Ci||t?.sourceType==="external"?!0:!!(t?._id&&nc(t._id))}function lN(t,e){return`${t}${jp}${encodeURIComponent(e)}`}function dN(t){return nc(t)?encodeURIComponent(t):t}function pN(t){return encodeURIComponent(t)}function Yp(t){let e=t.split(jp),r=e.shift(),n=e.join(jp);if(n.includes(iN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function fN(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,"'"))}function mN(t){return Array.isArray(t)||typeof t=="string"&&t.match(eA)!=null}function hN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(eA)!=null?t.substring(1,t.length-1):t}function gN(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]}}function ic(t){let e=t.trim();if(!sN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Kp(t){let e=t.trim();if(!oN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Jp(t){let e=t.match(aN);if(e)return e[0]}function sc(t){return t!=null&&t!==""}function zp(t){return uN.test(t)}function vo(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function yN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Zp(t){if(yN(t))return t}var tA="Database does not exist.";function rA(t){return(0,iA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Gr=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"}};function EN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zi(t,r,e);return new Ji(n)}var Zi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=rA(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=rA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({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 Gr(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===tA)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Gr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Gr(`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}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Vh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Gr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=me()),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()=>n.insert(e)})}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===tA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=tc(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Gr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${Yt}`;return vo("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,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(Yt)){let e=await this.get(Yt);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 Gr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function Ve(t,e){return new Ji(new Zi(t,e))}async function ut(t,e,r){let n=Ve(t,r);return await e(n)}async function ef(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Wp(e)}var sA=null;function Jn(t){return t||(t=j()),No(t)}function oA(t){return t||(t=j()),t===Ae?Te.AUDIT_LOGS.name:`${t}${v}${Te.AUDIT_LOGS.name}`}function TN(t){return t||(t=j()),t===Ae?Te.SCIM_LOGS.name:`${t}${v}${Te.SCIM_LOGS.name}`}function No(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${v}${Te.GLOBAL.name}`}function tf(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function AN(){return!!we.get()?.tenantId}function SN(){return h.MULTI_TENANCY}function Xi(t){if(!t)return;if(!$r())return Ae;let e=t.split(v),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function _N(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){DN();let r=_N(t);return we.run(r,e)}async function IN(t){return await cA(),await Pt({tenantId:Xi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function rf(t,e){let r=Xi(t);return Pt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Ae),Pt(t?{tenantId:t}:{},e)}async function ON(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function xN(t,e){return Pt({license:t},e)}function RN(){return we.get()?.license}function aA(){return!!we.get()?.isSelfHostUsingCloud}function wN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ve(Te.SELF_HOST_CLOUD.name)}async function bN(t,e){return uA(t,e)}async function uA(t,e,r){if(!t)throw new Error("appId is required");let n=Xi(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(i,e)}async function xo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Pt(r,e)}function DN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function CN(t,e){return uA(t,e,{isMigrating:!0})}function ur(){try{return we.get()?.identity}catch{}}function j(){if(!$r())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function nf(){return we.get()?.automationId}function Le(){let e=we.get()?.appId;return!e&&h.isTest()&&sA?sA:e}function sf(){return we.get()?.ip}var vN=()=>{let t=Le();if(!t)throw new Error("Could not get appId");return Vp(t)},NN=()=>{let t=Le();if(!t)throw new Error("Could not get appId");return at(t)};function PN(t,e){if(!t)throw new Error("Must supply environment variables.");return Pt({environmentVariables:t},e)}function LN(t){return Pt({isScim:!0},t)}function of(t,e){return Pt({ip:t},e)}async function cA(){let t=zn();if(!t||t.snippets)return;let e,r=es();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function UN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function ne(){let t=we.get();if(!t||h.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 Ve(No(t?.tenantId))}function MN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(oA())}function es(t){let e=Le();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(aA())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function FN(t){let e=Le();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function kN(t){let e=Le();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(ec(e),t)}function Lt(){return!!we.get()?.isScim}function zn(){try{return we.get()}catch{return}}function af(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function uf(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function cf(){return zn()?.featureFlagOverrides||{}}async function lf(t,e){return await Pt({featureFlagOverrides:t},e)}function BN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function GN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var qr={};N(qr,{getAppClient:()=>dc,getCacheClient:()=>gf,getDocWritethroughClient:()=>QN,getInviteClient:()=>ei,getLockClient:()=>Ef,getPasswordResetClient:()=>Vo,getSessionClient:()=>Vr,getSocketClient:()=>WN,getUserClient:()=>$o,getWritethroughClient:()=>yf,init:()=>Ut,shutdown:()=>pA});var lc=W(require("ioredis"));var uc={};N(uc,{Databases:()=>df,SEPARATOR:()=>ts,SelectableDatabase:()=>oc,getRedisClusterOptions:()=>pf,getRedisConnectionDetails:()=>ac,getRedisOptions:()=>Zn,removeDbPrefix:()=>ff});var ts="-",df=(y=>(y.PW_RESETS="pwReset",y.VERIFICATIONS="verification",y.INVITATIONS="invitation",y.DEV_LOCKS="devLocks",y.DEBOUNCE="debounce",y.SESSIONS="session",y.USER_CACHE="users",y.FLAGS="flags",y.APP_METADATA="appMetadata",y.QUERY_VARS="queryVars",y.LICENSES="license",y.GENERIC_CACHE="data_cache",y.WRITE_THROUGH="writeThrough",y.LOCKS="locks",y.SOCKET_IO="socket_io",y.BPM_EVENTS="bpmEvents",y.DOC_WRITE_THROUGH="docWriteThrough",y))(df||{}),oc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(oc||{});function ac(){let t=h.REDIS_PASSWORD,e=h.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}}function pf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zn(),tls:{}}}}function Zn(){let{host:t,password:e,port:r}=ac();return{connectTimeout:3e4,port:r,host:t,password:e}}function ff(t){let e=t.split(ts);return e.length>=2?(e.shift(),e.join(ts)):e[0]}var cc=require("dd-trace"),dA=require("lodash"),lA;if(h.MOCK_REDIS)try{lA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function $N(t=0){return await cc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new lA(Zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=ac();r=new lc.Cluster([{host:n,port:i}],pf())}else r=new lc.default(Zn());return new Promise((n,i)=>{r.on("error",s=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,s),i(s)}),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)})})})}function VN(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",s=>s.forEach(o=>i.add(o))),t.on("error",s=>n(s)),t.on("end",async()=>{try{let s=Array.from(i).map(async o=>{let a=await e.get(o);return a&&(a=JSON.parse(a)),{key:ff(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function qN(t){return t.isCluster}var mf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await cc.tracer.trace("RedisWrapper.init",async n=>{let i=await $N(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return cc.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${ts}${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}${ts}${e}`;let n;qN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await VN(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,dA.zip)(e,n).reduce((i,[s,o])=>{if(s===void 0||o===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[s]=o?JSON.parse(o):null}catch{i[s]=o}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((o,[a,u])=>(o[this.prefixed(a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.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)})}},We=pf;var Po,Uo,Lo,Mo,Xn,Fo,ko,Bo,Go,ff;async function Lt(){Po=await We.init("users"),Uo=await We.init("session"),Lo=await We.init("appMetadata"),Mo=await We.init("data_cache"),Fo=await We.init("locks"),Xn=await We.init("writeThrough"),Bo=await We.init("invitation"),Go=await We.init("pwReset"),ko=await We.init("socket_io",1),ff=await We.init("docWriteThrough")}async function cA(){Po&&await Po.finish(),Uo&&await Uo.finish(),Lo&&await Lo.finish(),Mo&&await Mo.finish(),Xn&&await Xn.finish(),Fo&&await Fo.finish(),Bo&&await Bo.finish(),Go&&await Go.finish(),ko&&await ko.finish(),ff&&await ff.finish()}process.on("exit",async()=>{await cA()});async function $o(){return Po||await Lt(),Po}async function Vr(){return Uo||await Lt(),Uo}async function lc(){return Lo||await Lt(),Lo}async function mf(){return Mo||await Lt(),Mo}async function hf(){return Xn||await Lt(),Xn}async function gf(){return Fo||await Lt(),Fo}async function GN(){return ko||await Lt(),ko}async function ei(){return Bo||await Lt(),Bo}async function Vo(){return Go||await Lt(),Go}async function $N(){return Xn||await Lt(),Xn}function Yt(t){let e=j();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await mf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Yt(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((s,[o,a])=>(s[Yt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ri=new ti,Ce={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}`},ni=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ni||{}),dc=(...t)=>ri.keys(...t),ii=(...t)=>ri.get(...t),cr=(...t)=>ri.store(...t),qo=(...t)=>ri.delete(...t),Wr=(...t)=>ri.withCache(...t),lA=(...t)=>ri.withCacheWithDynamicTTL(...t),rs=(...t)=>ri.bustCache(...t);var rn={};N(rn,{getUser:()=>wa,getUsers:()=>H0,invalidateUser:()=>ba});var jo={};N(jo,{addTenantToUrl:()=>VN,getTenantDB:()=>yf,getTenantIDFromCtx:()=>Qo,isUserInAppTenant:()=>qN});function yf(t){return Ve(Jn(t))}function VN(t){let e=j();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var qN=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=j(),(Xi(t)||Ae)===r},WN=Object.values(xs),Qo=(t,e)=>{if(!$r())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=WN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};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(Xp()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var ea={};N(ea,{getPlatformDB:()=>ct,tenants:()=>Gf,users:()=>Mt});var Mt={};N(Mt,{addSsoUser:()=>pA,addUser:()=>JN,getUserDoc:()=>dA,lookupTenantId:()=>QN,removeUser:()=>zN,updateUserDoc:()=>jN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function QN(t){return h.MULTI_TENANCY?(await dA(t)).tenantId:Ae}async function dA(t){return ct().get(t)}async function jN(t){await ct().put(t)}function HN(t,e){return{_id:t,tenantId:e}}function KN(t,e,r){return{_id:e,userId:t,tenantId:r}}function YN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Ef(t,e){let r=ct(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function pA(t,e,r,n){return Ef(t,()=>YN(t,e,r,n))}async function JN(t,e,r,n){let i=[Ef(e,()=>HN(e,t)),Ef(r,()=>KN(e,r,t))];n&&i.push(pA(n,r,e,t)),await Promise.all(i)}async function zN(t){let e=ct(),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})}var Gf={};N(Gf,{addTenant:()=>PP,exists:()=>CP,getTenantIds:()=>DP,removeTenant:()=>UP,tenacyLockOptions:()=>Bf});var ui={};N(ui,{AUTO_EXTEND_POLLING_MS:()=>tS,doWithLock:()=>us,newRedlock:()=>ai});var eS=W(require("redlock"));var os={};N(os,{Duration:()=>be,DurationType:()=>Ff,clearCookie:()=>Hr,compare:()=>Sf,getAppIdFromCtx:()=>SP,getCookie:()=>fr,hasCircularStructure:()=>IP,hash:()=>Af,isAudited:()=>Lf,isClient:()=>_P,isPublicApiRequest:()=>AP,isServingApp:()=>yP,isServingBuilder:()=>EP,isServingBuilderPreview:()=>TP,isValidInternalAPIKey:()=>Xo,newid:()=>me,openJwt:()=>yc,resolveAppUrl:()=>zA,setCookie:()=>ZA,time:()=>xP,timeout:()=>Uf,urlHasProtocol:()=>OP,validEmail:()=>Mf});var Tf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),ZN=h.SALT_ROUNDS||10;async function Af(t){let e=await Tf.genSalt(ZN);return Tf.hash(t,e)}async function Sf(t,e){return Tf.compare(t,e)}var jr={};N(jr,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Rp,DEFAULT_BB_DATASOURCE_ID:()=>Ci,DEFAULT_EMPLOYEE_TABLE_ID:()=>Cp,DEFAULT_EXPENSES_TABLE_ID:()=>Dp,DEFAULT_INVENTORY_TABLE_ID:()=>bp,DEFAULT_JOBS_TABLE_ID:()=>wp,DatabaseImpl:()=>Zi,DatabaseWithConnection:()=>mN,DeprecatedViews:()=>Ki,DesignDocuments:()=>Hu,DocumentType:()=>ye,InternalTable:()=>xr,QueryBuilder:()=>pr,Replication:()=>VA,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>xp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>kr,baseGlobalDBName:()=>No,checkErrorCode:()=>jA,closePouchDB:()=>Co,createApiKeyView:()=>FA,createNewUserEmailView:()=>LA,createPlatformAccountEmailView:()=>BA,createPlatformUserView:()=>GA,createUserAppView:()=>MA,createView:()=>is,dbExists:()=>uP,directCouchAllDbs:()=>Zp,directCouchCall:()=>jT,directCouchQuery:()=>Vp,directCouchUrlCall:()=>Do,doWithDB:()=>ut,extractAppUUID:()=>zv,fullSearch:()=>pP,generateAgentChatID:()=>OA,generateAgentToolSourceID:()=>xA,generateAppID:()=>mA,generateAppUserID:()=>fc,generateDevInfoID:()=>SA,generateGlobalUserID:()=>ns,generateOAuth2LogID:()=>IA,generatePluginID:()=>_A,generateRoleID:()=>Of,generateRowID:()=>If,generateTableID:()=>hA,generateTemplateID:()=>AA,generateUserMetadataID:()=>EA,generateWorkspaceAppID:()=>RA,generateWorkspaceID:()=>gA,getAllApps:()=>Yo,getAllDbs:()=>UA,getAppsByIDs:()=>iP,getCouchInfo:()=>Nt,getDB:()=>Ve,getDevAppID:()=>Gp,getDevAppIDs:()=>oP,getDevelopmentAppID:()=>Xu,getDocParams:()=>Qr,getGlobalDBName:()=>Jn,getGlobalIDFromUserMetadataID:()=>TA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>NA,getPluginParams:()=>vA,getPouch:()=>qp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>sP,getQueryIndex:()=>wA,getRoleParams:()=>hc,getRowParams:()=>xf,getStartEndKeyURL:()=>Ko,getTemplateParams:()=>CA,getUrlInfo:()=>$p,getUserMetadataParams:()=>DA,getUsersByAppParams:()=>mc,getWorkspaceAppParams:()=>PA,getWorkspaceParams:()=>bA,init:()=>tc,isDevApp:()=>bo,isDevAppID:()=>Br,isDocumentConflictError:()=>mP,isGlobalUserID:()=>yA,isProdAppID:()=>Jv,isSameAppID:()=>aP,paginatedSearch:()=>dP,pagination:()=>wf,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>Cf,queryPlatformView:()=>zo,queryView:()=>Df,queryViewRaw:()=>Jo,removeKeyNumbering:()=>Zo,searchIndexes:()=>Nf});var Ho={};N(Ho,{AppState:()=>_f,getAppMetadata:()=>pc,invalidateAppMetadata:()=>rP});var _f=(e=>(e.INVALID="invalid",e))(_f||{}),fA=3600,XN=60;async function eP(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function tP(t){return!t||t.state==="invalid"}async function pc(t){let e=await lc(),r=await e.get(t);if(!r){let n=fA;try{r=await eP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=XN;else throw i}if(tP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function rP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await lc();await r.delete(t),e&&await r.store(t,e,fA)}var Rf={};N(Rf,{generateAgentChatID:()=>OA,generateAgentToolSourceID:()=>xA,generateAppID:()=>mA,generateAppUserID:()=>fc,generateDevInfoID:()=>SA,generateGlobalUserID:()=>ns,generateOAuth2LogID:()=>IA,generatePluginID:()=>_A,generateRoleID:()=>Of,generateRowID:()=>If,generateTableID:()=>hA,generateTemplateID:()=>AA,generateUserMetadataID:()=>EA,generateWorkspaceAppID:()=>RA,generateWorkspaceID:()=>gA,getDocParams:()=>Qr,getGlobalIDFromUserMetadataID:()=>TA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>NA,getPluginParams:()=>vA,getQueryIndex:()=>wA,getRoleParams:()=>hc,getRowParams:()=>xf,getStartEndKeyURL:()=>Ko,getTemplateParams:()=>CA,getUserMetadataParams:()=>DA,getUsersByAppParams:()=>mc,getWorkspaceAppParams:()=>PA,getWorkspaceParams:()=>bA,isGlobalUserID:()=>yA,prefixRoleID:()=>lr});var mA=t=>{let e=yt;return t&&(e+=`${t}${v}`),`${e}${me()}`};function hA(){return`ta${v}${me()}`}function If(t,e){return e=e||me(),`ro${v}${t}${v}${e}`}function gA(){return`workspace${v}${me()}`}function ns(t){return`us${v}${t||me()}`}var nP=new RegExp(`^us${v}.+`);function yA(t){return nP.test(t)}function EA(t){return If("ta_users",t)}function TA(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function AA(t){return`template${v}${t}${v}${me()}`}function fc(t,e){return`${t}${v}${e}`}function Of(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return Of(t)}var SA=t=>`devinfo${v}${t}`,_A=t=>`plg${v}${t}`,IA=t=>`oauth2log${v}${t}`,OA=()=>`agentchat${v}${me()}`,xA=()=>`agenttoolsource${v}${me()}`,RA=()=>`workspace_app${v}${me()}`;function Qr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${Ge}`}}function xf(t,e,r={}){if(t==null)return Qr("ro",null,r);let n=e??`${t}${v}`;return Qr("ro",n,r)}function wA(t){return`database/${t}`}function bA(t="",e={}){return{...e,startkey:`workspace${v}${t}`,endkey:`workspace${v}${t}${Ge}`}}function si(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${v}${t}`,endkey:`us${v}${t}${Ge}`}}function DA(t,e={}){return xf("ta_users",t,e)}function mc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function CA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function hc(t,e={}){return Qr("role",t,e)}function Ko(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var vA=(t,e={})=>Qr("plg",t,e),NA=(t,e={})=>Qr("oauth2",t,e),PA=(t,e={})=>Qr("workspace_app",t,e);async function UA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Zp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Ae?await n():(await n(Ko("app",i)),await n(Ko("app_dev",i)),r.push(Jn(i))),r}async function Yo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await UA({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(v);if(c[0]==="app"){let l=c[c.length-2],p=c.length===2||l==="dev";return i===Ae&&p||l===i}return!1});if(r){let u=o.filter(l=>Br(l)),c=o.filter(l=>!Br(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>pc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:bo(l)?"development":"published"})):c.filter(l=>t?bo(l):!bo(l))}}async function iP(t){return(await Promise.allSettled(t.map(r=>pc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function sP(){return(await Yo({idsOnly:!0})).filter(e=>!Br(e))}async function oP(){return(await Yo({idsOnly:!0})).filter(e=>Br(e))}function aP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function uP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function wf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var bf="_design/database";function cP(){return{_id:bf,views:{}}}async function lP(t,e){if(Ki[e])try{let r=await t.get(bf);for(let n of Ki[e])delete r.views?.[n];await t.put(r)}catch{}}async function is(t,e,r){let n;try{n=await t.get(bf)}catch{n=cP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await is(t,e,r);throw s}}var LA=async()=>{let t=ne(),e=`function(doc) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},We=mf;var Po,Lo,Uo,Mo,Xn,Fo,ko,Bo,Go,hf;async function Ut(){Po=await We.init("users"),Lo=await We.init("session"),Uo=await We.init("appMetadata"),Mo=await We.init("data_cache"),Fo=await We.init("locks"),Xn=await We.init("writeThrough"),Bo=await We.init("invitation"),Go=await We.init("pwReset"),ko=await We.init("socket_io",1),hf=await We.init("docWriteThrough")}async function pA(){Po&&await Po.finish(),Lo&&await Lo.finish(),Uo&&await Uo.finish(),Mo&&await Mo.finish(),Xn&&await Xn.finish(),Fo&&await Fo.finish(),Bo&&await Bo.finish(),Go&&await Go.finish(),ko&&await ko.finish(),hf&&await hf.finish()}process.on("exit",async()=>{await pA()});async function $o(){return Po||await Ut(),Po}async function Vr(){return Lo||await Ut(),Lo}async function dc(){return Uo||await Ut(),Uo}async function gf(){return Mo||await Ut(),Mo}async function yf(){return Xn||await Ut(),Xn}async function Ef(){return Fo||await Ut(),Fo}async function WN(){return ko||await Ut(),ko}async function ei(){return Bo||await Ut(),Bo}async function Vo(){return Go||await Ut(),Go}async function QN(){return Xn||await Ut(),Xn}function Kt(t){let e=j();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await gf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Kt(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((s,[o,a])=>(s[Kt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Kt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Kt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ri=new ti,Ce={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}`},ni=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ni||{}),pc=(...t)=>ri.keys(...t),ii=(...t)=>ri.get(...t),cr=(...t)=>ri.store(...t),qo=(...t)=>ri.delete(...t),Wr=(...t)=>ri.withCache(...t),fA=(...t)=>ri.withCacheWithDynamicTTL(...t),rs=(...t)=>ri.bustCache(...t);var rn={};N(rn,{getUser:()=>wa,getUsers:()=>z0,invalidateUser:()=>ba});var jo={};N(jo,{addTenantToUrl:()=>jN,getTenantDB:()=>Tf,getTenantIDFromCtx:()=>Qo,isUserInAppTenant:()=>HN});function Tf(t){return Ve(Jn(t))}function jN(t){let e=j();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var HN=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=j(),(Xi(t)||Ae)===r},YN=Object.values(xs),Qo=(t,e)=>{if(!$r())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=YN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};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(tf()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var ea={};N(ea,{getPlatformDB:()=>ct,tenants:()=>Vf,users:()=>Mt});var Mt={};N(Mt,{addSsoUser:()=>hA,addUser:()=>eP,getUserDoc:()=>mA,lookupTenantId:()=>KN,removeUser:()=>tP,updateUserDoc:()=>JN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function KN(t){return h.MULTI_TENANCY?(await mA(t)).tenantId:Ae}async function mA(t){return ct().get(t)}async function JN(t){await ct().put(t)}function zN(t,e){return{_id:t,tenantId:e}}function ZN(t,e,r){return{_id:e,userId:t,tenantId:r}}function XN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Af(t,e){let r=ct(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function hA(t,e,r,n){return Af(t,()=>XN(t,e,r,n))}async function eP(t,e,r,n){let i=[Af(e,()=>zN(e,t)),Af(r,()=>ZN(e,r,t))];n&&i.push(hA(n,r,e,t)),await Promise.all(i)}async function tP(t){let e=ct(),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})}var Vf={};N(Vf,{addTenant:()=>FP,exists:()=>LP,getTenantIds:()=>PP,removeTenant:()=>kP,tenacyLockOptions:()=>$f});var ui={};N(ui,{AUTO_EXTEND_POLLING_MS:()=>iS,doWithLock:()=>us,newRedlock:()=>ai});var nS=W(require("redlock"));var os={};N(os,{Duration:()=>be,DurationType:()=>Bf,clearCookie:()=>Hr,compare:()=>If,getAppIdFromCtx:()=>xP,getCookie:()=>fr,hasCircularStructure:()=>wP,hash:()=>_f,isAudited:()=>Ff,isClient:()=>RP,isPublicApiRequest:()=>OP,isServingApp:()=>SP,isServingBuilder:()=>_P,isServingBuilderPreview:()=>IP,isValidInternalAPIKey:()=>Xo,newid:()=>me,openJwt:()=>Ec,resolveAppUrl:()=>eS,setCookie:()=>tS,time:()=>DP,timeout:()=>Mf,urlHasProtocol:()=>bP,validEmail:()=>kf});var Sf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),rP=h.SALT_ROUNDS||10;async function _f(t){let e=await Sf.genSalt(rP);return Sf.hash(t,e)}async function If(t,e){return Sf.compare(t,e)}var jr={};N(jr,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>bp,DEFAULT_BB_DATASOURCE_ID:()=>Ci,DEFAULT_EMPLOYEE_TABLE_ID:()=>Np,DEFAULT_EXPENSES_TABLE_ID:()=>vp,DEFAULT_INVENTORY_TABLE_ID:()=>Cp,DEFAULT_JOBS_TABLE_ID:()=>Dp,DatabaseImpl:()=>Zi,DatabaseWithConnection:()=>EN,DeprecatedViews:()=>Yi,DesignDocuments:()=>Yu,DocumentType:()=>ye,InternalTable:()=>xr,QueryBuilder:()=>pr,Replication:()=>QA,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Yt,SQS_DATASOURCE_INTERNAL:()=>wp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>kr,baseGlobalDBName:()=>No,checkErrorCode:()=>KA,closePouchDB:()=>Co,createApiKeyView:()=>GA,createNewUserEmailView:()=>kA,createPlatformAccountEmailView:()=>VA,createPlatformUserView:()=>qA,createUserAppView:()=>BA,createView:()=>is,dbExists:()=>pP,directCouchAllDbs:()=>ef,directCouchCall:()=>KT,directCouchQuery:()=>Wp,directCouchUrlCall:()=>Do,doWithDB:()=>ut,extractAppUUID:()=>tN,fullSearch:()=>gP,generateAgentChatID:()=>wA,generateAgentToolSourceID:()=>bA,generateAppID:()=>yA,generateAppUserID:()=>mc,generateDevInfoID:()=>OA,generateGlobalUserID:()=>ns,generateOAuth2LogID:()=>RA,generatePluginID:()=>xA,generateRoleID:()=>Rf,generateRowID:()=>xf,generateTableID:()=>EA,generateTemplateID:()=>IA,generateUserMetadataID:()=>SA,generateWorkspaceAppID:()=>DA,generateWorkspaceID:()=>TA,getAllApps:()=>Ko,getAllDbs:()=>FA,getAppsByIDs:()=>uP,getCouchInfo:()=>Nt,getDB:()=>Ve,getDevAppID:()=>Vp,getDevAppIDs:()=>lP,getDevelopmentAppID:()=>ec,getDocParams:()=>Qr,getGlobalDBName:()=>Jn,getGlobalIDFromUserMetadataID:()=>_A,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>UA,getPluginParams:()=>LA,getPouch:()=>Qp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>cP,getQueryIndex:()=>CA,getRoleParams:()=>gc,getRowParams:()=>wf,getStartEndKeyURL:()=>Yo,getTemplateParams:()=>PA,getUrlInfo:()=>qp,getUserMetadataParams:()=>NA,getUsersByAppParams:()=>hc,getWorkspaceAppParams:()=>MA,getWorkspaceParams:()=>vA,init:()=>rc,isDevApp:()=>bo,isDevAppID:()=>Br,isDocumentConflictError:()=>EP,isGlobalUserID:()=>AA,isProdAppID:()=>eN,isSameAppID:()=>dP,paginatedSearch:()=>hP,pagination:()=>Df,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>Nf,queryPlatformView:()=>zo,queryView:()=>vf,queryViewRaw:()=>Jo,removeKeyNumbering:()=>Zo,searchIndexes:()=>Lf});var Ho={};N(Ho,{AppState:()=>Of,getAppMetadata:()=>fc,invalidateAppMetadata:()=>oP});var Of=(e=>(e.INVALID="invalid",e))(Of||{}),gA=3600,nP=60;async function iP(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function sP(t){return!t||t.state==="invalid"}async function fc(t){let e=await dc(),r=await e.get(t);if(!r){let n=gA;try{r=await iP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=nP;else throw i}if(sP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function oP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await dc();await r.delete(t),e&&await r.store(t,e,gA)}var bf={};N(bf,{generateAgentChatID:()=>wA,generateAgentToolSourceID:()=>bA,generateAppID:()=>yA,generateAppUserID:()=>mc,generateDevInfoID:()=>OA,generateGlobalUserID:()=>ns,generateOAuth2LogID:()=>RA,generatePluginID:()=>xA,generateRoleID:()=>Rf,generateRowID:()=>xf,generateTableID:()=>EA,generateTemplateID:()=>IA,generateUserMetadataID:()=>SA,generateWorkspaceAppID:()=>DA,generateWorkspaceID:()=>TA,getDocParams:()=>Qr,getGlobalIDFromUserMetadataID:()=>_A,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>UA,getPluginParams:()=>LA,getQueryIndex:()=>CA,getRoleParams:()=>gc,getRowParams:()=>wf,getStartEndKeyURL:()=>Yo,getTemplateParams:()=>PA,getUserMetadataParams:()=>NA,getUsersByAppParams:()=>hc,getWorkspaceAppParams:()=>MA,getWorkspaceParams:()=>vA,isGlobalUserID:()=>AA,prefixRoleID:()=>lr});var yA=t=>{let e=yt;return t&&(e+=`${t}${v}`),`${e}${me()}`};function EA(){return`ta${v}${me()}`}function xf(t,e){return e=e||me(),`ro${v}${t}${v}${e}`}function TA(){return`workspace${v}${me()}`}function ns(t){return`us${v}${t||me()}`}var aP=new RegExp(`^us${v}.+`);function AA(t){return aP.test(t)}function SA(t){return xf("ta_users",t)}function _A(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function IA(t){return`template${v}${t}${v}${me()}`}function mc(t,e){return`${t}${v}${e}`}function Rf(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return Rf(t)}var OA=t=>`devinfo${v}${t}`,xA=t=>`plg${v}${t}`,RA=t=>`oauth2log${v}${t}`,wA=()=>`agentchat${v}${me()}`,bA=()=>`agenttoolsource${v}${me()}`,DA=()=>`workspace_app${v}${me()}`;function Qr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${Ge}`}}function wf(t,e,r={}){if(t==null)return Qr("ro",null,r);let n=e??`${t}${v}`;return Qr("ro",n,r)}function CA(t){return`database/${t}`}function vA(t="",e={}){return{...e,startkey:`workspace${v}${t}`,endkey:`workspace${v}${t}${Ge}`}}function si(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${v}${t}`,endkey:`us${v}${t}${Ge}`}}function NA(t,e={}){return wf("ta_users",t,e)}function hc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function PA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function gc(t,e={}){return Qr("role",t,e)}function Yo(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var LA=(t,e={})=>Qr("plg",t,e),UA=(t,e={})=>Qr("oauth2",t,e),MA=(t,e={})=>Qr("workspace_app",t,e);async function FA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await ef(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Ae?await n():(await n(Yo("app",i)),await n(Yo("app_dev",i)),r.push(Jn(i))),r}async function Ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await FA({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(v);if(c[0]==="app"){let l=c[c.length-2],p=c.length===2||l==="dev";return i===Ae&&p||l===i}return!1});if(r){let u=o.filter(l=>Br(l)),c=o.filter(l=>!Br(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>fc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:bo(l)?"development":"published"})):c.filter(l=>t?bo(l):!bo(l))}}async function uP(t){return(await Promise.allSettled(t.map(r=>fc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function cP(){return(await Ko({idsOnly:!0})).filter(e=>!Br(e))}async function lP(){return(await Ko({idsOnly:!0})).filter(e=>Br(e))}function dP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function pP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function Df(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var Cf="_design/database";function fP(){return{_id:Cf,views:{}}}async function mP(t,e){if(Yi[e])try{let r=await t.get(Cf);for(let n of Yi[e])delete r.views?.[n];await t.put(r)}catch{}}async function is(t,e,r){let n;try{n=await t.get(Cf)}catch{n=fP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await is(t,e,r);throw s}}var kA=async()=>{let t=ne(),e=`function(doc) {
10
10
  if (doc._id.startsWith("us${v}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await is(t,e,"by_email2")},MA=async()=>{let t=ne(),e=`function(doc) {
13
+ }`;await is(t,e,"by_email2")},BA=async()=>{let t=ne(),e=`function(doc) {
14
14
  if (doc._id.startsWith("us${v}") && doc.roles) {
15
15
  for (let prodAppId of Object.keys(doc.roles)) {
16
16
  let emitted = prodAppId + "${v}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await is(t,e,"by_app")},FA=async()=>{let t=ne(),e=`function(doc) {
20
+ }`;await is(t,e,"by_app")},GA=async()=>{let t=ne(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await is(t,e,"by_api_key")};async function Jo(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await lP(r,t),await n(),Jo(t,e,r,n,i);if(s.status===409)return Jo(t,e,r,n,i);throw s}}var Df=async(t,e,r,n,i)=>{let a=(await Jo(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function kA(t,e){try{await ut(Te.PLATFORM_INFO.name,async r=>{await is(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var BA=async()=>{let t=`function(doc) {
24
+ }`;await is(t,e,"by_api_key")};async function Jo(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await mP(r,t),await n(),Jo(t,e,r,n,i);if(s.status===409)return Jo(t,e,r,n,i);throw s}}var vf=async(t,e,r,n,i)=>{let a=(await Jo(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function $A(t,e){try{await ut(Te.PLATFORM_INFO.name,async r=>{await is(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var VA=async()=>{let t=`function(doc) {
25
25
  if (doc._id.startsWith("acc_metadata${v}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await kA(t,"account_by_email")},GA=async()=>{await kA(`function(doc) {
28
+ }`;await $A(t,"account_by_email")},qA=async()=>{await $A(`function(doc) {
29
29
  if (doc.tenantId) {
30
30
  emit(doc._id.toLowerCase(), doc._id)
31
31
  }
@@ -33,7 +33,7 @@ attempted value: ${s}
33
33
  if (doc.ssoId) {
34
34
  emit(doc.ssoId, doc._id)
35
35
  }
36
- }`,"platform_users_lowercase_2")},zo=async(t,e)=>{let r={account_by_email:BA,platform_users_lowercase_2:GA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return Df(t,e,n,i,{arrayResponse:!0})})},$A={by_email2:LA,by_api_key:FA,by_app:MA},dr=async(t,e,r,n)=>{r||(r=ne());let i=$A[t];return Df(t,e,r,i,n)};async function Cf(t,e,r){let n=ne(),i=$A[t];return Jo(t,e,n,i,r)}var vf=class{constructor({source:e,target:r}){this.source=Tt(e),this.target=Tt(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([Co(this.source),Co(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";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")?!1:s._deleted?!0:s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},VA=vf;var WA=W(require("node-fetch"));var Zo=Mr.removeKeyNumbering;function oi(t){return t==null||t===""}var pr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#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.#p=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:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="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 s of Object.keys(e)){let o=Zo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(d,g)=>oi(g)?null:`${d}:${e.preprocess(g,s)}`,u=(d,g,E="AND")=>{if(oi(g))return null;if(!Array.isArray(g))return`${d}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${d}:(${y})`},c=(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${d}:/.*${g}.*/`),l=(d,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(d,g,y)},p=(d,g)=>u(d,g,"OR"),f=(d,g)=>{if(oi(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${d}:(${E})`};function m(d,g,E){let y="";for(let[S,O]of Object.entries(d)){S=Zo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,O);if(R!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=R,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==o&&O!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&m(this.#e.string,(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${d}:${g}*`)),this.#e.range&&m(this.#e.range,(d,g)=>{if(oi(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${d}:[${E} TO ${y}]`}),this.#e.fuzzy&&m(this.#e.fuzzy,c),this.#e.equal&&m(this.#e.equal,a),this.#e.notEqual&&m(this.#e.notEqual,(d,g)=>oi(g)?null:typeof g=="boolean"?`(*:* AND !${d}:${g})`:`!${d}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,d=>(i=!1,`(*:* -${d}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,d=>(i=!1,`${d}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,f),this.#e.contains&&m(this.#e.contains,u),this.#e.notContains&&m(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&m(this.#e.containsAny,p),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,m({tableId:o},a)),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.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Nt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await qA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await qA(n,i,r);throw s}}};async function qA(t,e,r){let n=await(0,WA.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),s={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(s.rows=i.rows.map(o=>o.doc)),i.bookmark&&(s.bookmark=i.bookmark),i.total_rows&&(s.totalRows=i.total_rows),s}async function QA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=pr.maxLimit;n.limit&&s.length>n.limit-pr.maxLimit&&(o=n.limit-s.length);let a=new pr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<pr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await QA(t,e,r,c)}async function dP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,pr.maxLimit);let s=new pr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function pP(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 QA(t,e,r,n)}}var Nf={};N(Nf,{createUserIndex:()=>fP});async function fP(){let t=ne(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function jA(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)}function mP(t){return jA(t,409)}var gc=W(require("jsonwebtoken")),Pf="app"+v,KA="/app/",YA="/app/preview",hP="/builder",JA=`${hP}/app/`,gP="/api/public/v";function ss(t){return t&&t.startsWith(Pf)?t:void 0}async function zA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Qo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Yo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function yP(t){return t.path.startsWith(`/${Pf}`)?!0:t.path.startsWith(KA)}function EP(t){return t.path.startsWith(JA)}function TP(t){return t.path.startsWith(YA)}function AP(t){return t.path.startsWith(gP)}async function SP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=ss(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=ss(t.request.body.appId));let n=HA(t.path);!r&&n&&(r=ss(n)),!r&&t.query?.appId&&(r=ss(t.query?.appId));let i=t.path.startsWith(YA),s=t.path.startsWith(KA)&&!i;!r&&s&&(r=ss(await zA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(JA)){let a=HA(t.request.headers.referer);r=ss(a)}return r}function HA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Pf))}function yc(t){if(t)try{return gc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return gc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function Xo(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function fr(t,e){let r=t.cookies.get(e);if(r)return yc(r)}function ZA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=gc.default.sign(e,h.JWT_SECRET));let i={expires:Yu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Hr(t,e){ZA(t,null,e)}function _P(t){return t.headers["x-budibase-type"]==="client"}function Uf(t){return new Promise(e=>setTimeout(e,t))}function Lf(t){return!!Mh[t]}function IP(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}function OP(t){return!!t.match(/^.+:\/\/.+$/)}function Mf(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,}))$/)}var Ff=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Ff||{}),Ec={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/Ec[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Ec[e]/Ec[r]}static from(e,r){return new t(r*Ec[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 xP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function RP(t,e){if(t==="custom")return ai(e);switch(t){case"try_once":return ai(as.TRY_ONCE);case"try_twice":return ai(as.TRY_TWICE);case"default":return ai(as.DEFAULT);case"delay_500":return ai(as.DELAY_500);case"auto_extend":return ai(as.AUTO_EXTEND);default:throw vi.unreachable(t)}}var as={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 ai(t={}){let e={...as.DEFAULT,...t},n=(await gf()).client;return new eS.default([n],e)}function wP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var tS=be.fromSeconds(10).toMs();async function us(t,e){let r=await RP(t.type,t.customOptions),n,i;try{let s=wP(t),o=t.type==="auto_extend"?tS:t.ttl;if(n=await r.lock(s,o),t.type==="auto_extend"){let u=()=>{i=setTimeout(async()=>{n=await n.extend(o,()=>t.onExtend&&t.onExtend()),u()},o/2)};u()}return{executed:!0,result:await e()}}catch(s){if(s.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw s}else throw s}finally{clearTimeout(i),await n?.unlock()}}var kf=Te.PLATFORM_INFO.docs.tenants,Bf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function DP(){return(await Tc()).tenantIds}async function Tc(){let t=ct(),e;try{e=await t.get(kf)}catch(r){if(r.status===404)e=await NP();else throw r}return e}async function CP(t){return(await Tc()).tenantIds.indexOf(t)!==-1}function vP(){return{_id:kf,tenantIds:[]}}async function NP(){let t=ct(),e=vP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(kf);throw r}return e}async function PP(t){let e=ct();await us(Bf,async()=>{let r=await Tc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function UP(t){try{await us(Bf,async()=>{let e=ct(),r=await Tc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var di={};N(di,{getAccount:()=>Zr,getAccountByTenantId:()=>ds,getStatus:()=>fU});var US=W(require("node-fetch"));var oa={};N(oa,{correlation:()=>ta,logAlert:()=>li,logAlertWithInfo:()=>pU,logWarn:()=>ls,logger:()=>Rc,system:()=>tm});var ta={};N(ta,{getId:()=>$f,setHeader:()=>LP});var rS=require("correlation-id"),LP=t=>{let e=rS.getId();e&&(t["x-budibase-correlation-id"]=e)};function $f(){return rS.getId()}var xc=W(require("pino")),NS=W(require("pino-pretty"));var rm=W(require("dd-trace")),PS=require("dd-trace/ext");var tm={};N(tm,{getLogReadStream:()=>oU,getSingleFileMaxSizeInfo:()=>vS,localFileDestination:()=>em});var sa=W(require("fs")),Xf=W(require("path")),wS=W(require("rotating-file-stream"));var Zf={};N(Zf,{ObjectStore:()=>Ft,ObjectStoreBuckets:()=>FP,SIGNED_FILE_PREFIX:()=>Kf,bucketTTLConfig:()=>Ac,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>XP,clientLibraryPath:()=>ES,clientLibraryUrl:()=>eU,createBucketIfNotExists:()=>ia,deleteFile:()=>jP,deleteFiles:()=>HP,deleteFolder:()=>hS,downloadTarball:()=>YP,downloadTarballDirect:()=>KP,enrichPWAImages:()=>tU,enrichPluginURLs:()=>nU,extractBucketAndPath:()=>Vf,getAppFileUrl:()=>TS,getGlobalFileS3Key:()=>AS,getGlobalFileUrl:()=>rU,getObjectMetadata:()=>JP,getPluginIconKey:()=>IS,getPluginJSKey:()=>_S,getPluginS3Dir:()=>xS,getPresignedUrl:()=>Jr,getReadStream:()=>Sc,listAllObjects:()=>mS,processAutomationAttachment:()=>BP,processObjectStoreAttachment:()=>aS,retrieve:()=>fS,retrieveDirectory:()=>QP,retrieveToTmp:()=>WP,sanitizeBucket:()=>Ye,sanitizeKey:()=>Le,streamUpload:()=>pS,upload:()=>qP,uploadDirectory:()=>Yf});var Ic=require("@aws-sdk/client-s3"),qf=require("@aws-sdk/lib-storage"),uS=require("@aws-sdk/s3-request-presigner"),na=W(require("stream")),Wf=W(require("node-fetch")),Qf=W(require("tar-fs")),jf=W(require("zlib")),cS=require("util"),Yr=require("path"),mr=W(require("fs"));var ra=W(require("path")),nS=require("os"),iS=W(require("fs"));var sS=W(require("stream")),FP={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},oS=(0,ra.join)((0,nS.tmpdir)(),".budibase");try{iS.default.mkdirSync(oS)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return oS}var Ac=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function kP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ra.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:sS.default.Readable.fromWeb(e.body)}}async function aS(t){let e=Vf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Sc(r,n),s=ra.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function BP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await kP(t):await aS(t)}var Hf=require("uuid");var lS=W(require("fs/promises")),GP=require("sanitize-s3-objectkey"),dS=(0,cS.promisify)(na.default.pipeline),$P={bucketCreationPromises:{}},Kf="/files/signed",Kr={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"},VP=[Kr.html,Kr.css,Kr.js,Kr.json];function Le(t){return GP(Ye(t)).replace(/\\/g,"/")}function Ye(t){return t.replace(new RegExp(Et,"g"),yt)}function Ft(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new Ic.S3(e)}async function ia(t,e){e=Ye(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=$P.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),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.")}}async function qP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await lS.default.open(r)).createReadStream():s,c=Ft(),l=await ia(c,t);if(o&&l.created){let g=Ac(t,o);await c.putBucketLifecycleConfiguration(g)}let p=n,f=p||(a?Kr[a.toLowerCase()]:Kr.txt),m={Bucket:Ye(t),Key:Le(e),Body:u,ContentType:f};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new qf.Upload({client:c,params:m}).done()}async function pS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Ft(),u=await ia(a,t);if(s&&u.created){let E=Ac(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Kr[o.toLowerCase()]:Kr.txt);let l=Ye(t),p=Le(r),f={Bucket:l,Key:p,Body:e,ContentType:c,...i},d=await new qf.Upload({client:a,params:f}).done(),g=await a.headObject({Bucket:l,Key:p});return{...d,ContentLength:g.ContentLength}}async function fS(t,e){let r=Ft(),n={Bucket:Ye(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(VP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return na.default.Readable.fromWeb(s)}}async function mS(t,e){let r=Ft(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ye(t),Prefix:Le(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Jr(t,e,r=3600){let n=Ft({presigning:!0}),i={Bucket:Ye(t),Key:Le(e)},s=await(0,uS.getSignedUrl)(n,new Ic.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Kf}${a}${u}`}else return s}async function WP(t,e){t=Ye(t),e=Le(e);let r=await fS(t,e),n=(0,Yr.join)(ci(),(0,Hf.v4)());return r instanceof na.default.Readable?r.pipe(mr.default.createWriteStream(n)):mr.default.writeFileSync(n,r),n}async function QP(t,e){let r=(0,Yr.join)(ci(),(0,Hf.v4)());mr.default.mkdirSync(r);let n=await mS(t,e),i=await Promise.all(n.map(a=>Sc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),p=l.slice(0,l.length-1),f=(0,Yr.join)(r,...p);l.length>1&&!mr.default.existsSync(f)&&mr.default.mkdirSync(f,{recursive:!0});let m=mr.default.createWriteStream((0,Yr.join)(r,...l),{mode:420});c.pipe(m),o.push(new Promise((d,g)=>{m.on("finish",()=>d()),c.on("error",g),m.on("error",g)}))}return await Promise.all(o),r}async function jP(t,e){let r=Ft();await ia(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function HP(t,e){let r=Ft();await ia(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function hS(t,e){t=Ye(t),e=Le(e);let r=Ft(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return hS(t,e)}async function Yf(t,e,r){t=Ye(t);let n=[],i=mr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Le((0,Yr.join)(r,s.name)),a=(0,Yr.join)(e,s.name);s.isDirectory()?n.push(Yf(t,a,o)):n.push(pS({bucket:t,filename:o,stream:mr.default.createReadStream(a)}))}return await Promise.all(n),i}async function KP(t,e,r={}){e=Le(e);let n=await(0,Wf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await dS(n.body,jf.default.createUnzip(),Qf.default.extract(e))}async function YP(t,e,r){e=Ye(e),r=Le(r);let n=await(0,Wf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(ci(),r);return await dS(n.body,jf.default.createUnzip(),Qf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Yf(e,i,r),i}async function Sc(t,e){t=Ye(t),e=Le(e);let r=Ft(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof na.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function JP(t,e){t=Ye(t),e=Le(e);let r=Ft(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Vf(t){let e=t.split("?")[0],r=new RegExp(`^${Kf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var gS=W(require("aws-cloudfront-sign")),Oc;function zP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Oc||(Oc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Oc)}var ZP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:zP(),expireTime:new Date().getTime()+1e3*60*60*24}),cs=t=>{let e=Jf(t);return gS.getSignedUrl(e,ZP())},Jf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var yS=W(require("querystring"));function ES(t){return`${Le(t)}/budibase-client.js`}async function XP(t,e){let r=ES(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Jf(r)):await Jr(h.APPS_BUCKET_NAME,r)}function eU(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${yS.default.encode(n)}`}async function TS(t){return h.CLOUDFRONT_CDN?cs(t):await Jr(h.APPS_BUCKET_NAME,t)}async function tU(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await TS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var rU=async(t,e,r)=>{let n=AS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),cs(n)):await Jr(h.GLOBAL_BUCKET_NAME,n)},AS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function nU(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await iU(e),n=await sU(e);return{...e,jsUrl:r,iconUrl:n}}))}async function iU(t){let e=_S(t);return SS(e)}async function sU(t){let e=IS(t);if(e)return SS(e)}async function SS(t){return h.CLOUDFRONT_CDN?cs(t):await Jr(h.PLUGIN_BUCKET_NAME,t)}function _S(t){return OS(t,"plugin.min.js")}function IS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return OS(t,e)}function OS(t,e){return`${xS(t.name)}/${e}`}function xS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var bS="budibase.log",DS="budibase-logs-history.txt",CS=Xf.default.join(ci(),"systemlogs");function RS(t){return Xf.default.join(CS,t)}function vS(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}}function em(){let t=vS(h.ROLLING_LOG_MAX_SIZE);return wS.createStream(bS,{size:t?.size,path:CS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:DS,initialRotation:!1})}function oU(){let t=[],e=RS(DS);if(sa.default.existsSync(e)){let i=sa.default.readFileSync(e,"utf-8").split(`
37
- `);for(let s of i.filter(o=>o))t.push(sa.default.readFileSync(s))}return t.push(sa.default.readFileSync(RS(bS))),Buffer.concat(t)}function aU(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function uU(t){return t instanceof Error}function cU(t){return typeof t=="string"}var zr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,NS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:em(),level:t}),zr=r.length?(0,xc.default)(e,xc.default.multistream(r)):(0,xc.default)(e);let n=u=>{let c,l=[],p="";u.forEach(E=>{cU(E)&&(p=`${p} ${E}`.trimStart()),aU(E)&&l.push(E),uU(E)&&(c=E)});let f=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:f?._id,identityType:f?.type,correlationId:$f()};let d=rm.default.scope().active();d&&rm.default.inject(d.context(),PS.formats.LOG,m);let g={err:c,pid:process.pid,...m};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let O=l[S],R=O._logKey;R?(delete O._logKey,g[R]=O):(E[y]=O,y++)}Object.keys(E).length&&(g.data=E)}return[g,p]};console.log=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);zr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=tf()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var Rc=zr;var lU=["AccountError"];function dU(t){return t&&t.suppressAlert}function li(t,e){e&&lU.includes(e.name)&&dU(e)||console.error(`bb-alert: ${t}`,e)}function pU(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,li(t,n)}function ls(t,e){console.warn(`bb-warn: ${t}`,e)}var aa=class{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";ta.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,US.default)(`${this.host}${r}`,s)}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 nm=new aa(h.INTERNAL_ACCOUNT_PORTAL_URL),im=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(im)return;let e={email:t},r=await nm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ds=async t=>{if(im)return;let e={tenantId:t},r=await nm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},fU=async()=>{if(im)return;let t=await nm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Ts={};N(Ts,{UserDB:()=>Jt,addAppBuilder:()=>q0,bulkGetGlobalUsersById:()=>zc,bulkUpdateGlobalUsers:()=>Oa,cleanseUserObject:()=>Um,creatorsInList:()=>pi,doesUserExist:()=>k0,getAccountHolderFromUsers:()=>Mc,getAllUserIds:()=>M0,getAllUsers:()=>F0,getById:()=>hi,getCreatorCount:()=>$0,getExistingAccounts:()=>ps,getExistingPlatformUsers:()=>kS,getExistingTenantUsers:()=>FS,getFirstPlatformUser:()=>ua,getGlobalUserByAppPage:()=>N_,getGlobalUserByEmail:()=>Gt,getPlatformUsers:()=>wc,getUserCount:()=>G0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>GS,isBuilder:()=>hs,isCreatorAsync:()=>ca,isCreatorSync:()=>Uc,isGlobalBuilder:()=>BS,paginatedUsers:()=>U_,removeAppBuilder:()=>W0,removePortalUserPermissions:()=>V0,searchExistingEmails:()=>am,searchGlobalUsersByApp:()=>Zc,searchGlobalUsersByAppAccess:()=>Pm,searchGlobalUsersByEmail:()=>P_,validateUniqueUser:()=>Lc});var um={};N(um,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Mc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>GS,isBuilder:()=>hs,isCreatorAsync:()=>ca,isCreatorSync:()=>Uc,isGlobalBuilder:()=>BS,validateUniqueUser:()=>Lc});var om={};N(om,{createCode:()=>hU,deleteCode:()=>yU,getCode:()=>gU,getExistingInvites:()=>sm,getInviteCodes:()=>MS,updateCode:()=>mU});var LS=be.fromDays(7).toSeconds();async function mU(t,e){await(await ei()).store(t,e,LS)}async function hU(t,e){let r=me();return await(await ei()).store(r,{email:t,info:e},LS),r}async function gU(t){let r=await(await ei()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function yU(t){await(await ei()).delete(t)}async function MS(){let r=(await(await ei()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=j();return r.filter(i=>n===i.info.tenantId)}async function sm(t){return(await MS()).filter(e=>t.includes(e.email))}async function am(t){let e=[],r=await FS(t);e.push(...r.map(o=>o.email));let n=await kS(t);e.push(...n.map(o=>o._id));let i=await ps(t);e.push(...i.map(o=>o.email));let s=await sm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function wc(t){return await zo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ua(t){return(await wc(t))[0]??null}async function FS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await dr("by_email2",r,void 0,n)}async function kS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await zo("platform_users_lowercase_2",r)}async function ps(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await zo("account_by_email",r)}var Pc={};N(Pc,{BadRequestError:()=>Dc,BudibaseError:()=>fs,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>vc,HTTPError:()=>lt,InvalidAPIKeyError:()=>ms,NotFoundError:()=>bc,UsageLimitError:()=>Cc,getPublicError:()=>Nc});var fs=class extends Error{constructor(r,n){super(r);this.code=n}},Nc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class t extends fs{constructor(r,n,i="http"){super(r,i);this.status=n}static async fromResponse(r){let n=await r.text(),i=n,s=r.status,o="http";try{let a=JSON.parse(n);i=a.message,s=a.status,o=a.error?.code}catch{}return new t(i,s,o)}},bc=class extends lt{constructor(e){super(e,404)}},Dc=class extends lt{constructor(e){super(e,400)}},Cc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},vc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},ms=class extends fs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var hs=ot.users.isBuilder,Xr=ot.users.isAdmin,BS=ot.users.isGlobalBuilder,GS=ot.users.isAdminOrBuilder,en=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,$S=ot.users.hasAppBuilderPermissions;async function pi(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ne().getMultiple(r,{allowMissing:!0}),t.map(i=>Uc(i,e))}async function ca(t){let e=[];return t.userGroups&&(e=await ne().getMultiple(t.userGroups)),Uc(t,e)}function Uc(t,e){let r=ot.users.isCreator(t);return!r&&t?TU(t,e):r}function TU(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}async function Lc(t,e){if(h.MULTI_TENANCY){let r=await ua(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Mc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ps(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Es={};N(Es,{account:()=>i_,action:()=>s_,ai:()=>l_,analytics:()=>kc,app:()=>o_,auditLog:()=>x_,auth:()=>Yc,automation:()=>a_,backfill:()=>A_,backfillCache:()=>Hc,backup:()=>I_,datasource:()=>u_,email:()=>c_,environmentVariable:()=>O_,group:()=>S_,identification:()=>Bt,initAsyncEvents:()=>_0,installation:()=>ya,layout:()=>p_,license:()=>d_,org:()=>f_,plugin:()=>__,processors:()=>gm,publishEvent:()=>A,query:()=>m_,role:()=>_a,rowAction:()=>R_,rows:()=>g_,screen:()=>h_,serve:()=>E_,shutdown:()=>I0,table:()=>y_,user:()=>Je,view:()=>T_});var gm={};N(gm,{analyticsProcessor:()=>XS,init:()=>BU,processors:()=>yr});var kc={};N(kc,{enabled:()=>Fc});var Fc=async()=>Bc();var jS=require("posthog-node");var AU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",SU=t=>t==="served:app:preview"||t==="served:app";var qS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},WS=async t=>{if(!AU(t))return!1;let e=await _U(t);if(e){let r=new Date(e.timestamp);switch(qS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await VS(t,{timestamp:Date.now()}),!1):!0}}else return await VS(t,{timestamp:Date.now()}),!1},QS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return SU(t)&&(e=e+":"+Ue()),e},_U=async t=>{let e=QS(t);return await ii(e)},VS=async(t,e)=>{let r=QS(t),n=qS[t],i;switch(n){case"calendarDay":i=86400}await cr(r,e,i)};var OU=["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"],la=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new jS.PostHog(e)}async processEvent(e,r,n,i){if(OU.includes(e)||await WS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Ue();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}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 HS=la;var xU=["installation:version:upgraded","installation:version:downgraded"],RU=["installation","tenant"],da=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new HS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!xU.includes(e)&&!await Fc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!RU.includes(e.type)&&!await Fc()||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 cm=h.SELF_HOSTED&&!h.isDev(),pa=class{async processEvent(e,r,n){cm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){cm||console.log("[audit] identified",e)}async identifyGroup(e){cm||console.log("[audit] group identified",e)}async shutdown(){}};var hm={};N(hm,{BudibaseQueue:()=>kt,InMemoryQueue:()=>Gc,JobQueue:()=>gs,QueuedProcessor:()=>mm,UnretriableError:()=>qc,shutdown:()=>MU});var KS=W(require("events"));function wU(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var Gc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new KS.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((u,c)=>{r(n,(p,f)=>{p?c(p):u(f)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await gt.wait(100*c),await o(i(),c);throw l}}try{let u=await o(i());this._emitter.emit("completed",n,u);let c=this._messages.indexOf(n);if(c===-1)throw"Failed deleting a processed message";this._messages.splice(c,1)}catch(u){console.error(u),this._emitter.emit("error",n,u)}this._runCount++;let a=n.opts?.jobId?.toString();a&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}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 s=me(),o=()=>{let u={id:s,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{u._isDiscarded=!0}};this._messages.push(u),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",u)},a=n?.delay;return a?setTimeout(o,a):o(),{id:i,finished:()=>new Promise((u,c)=>{let l=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",p),c(m))},p=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",p),u(m))};this._emitter.on("error",l),this._emitter.on("completed",p)})}}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=>wU(e))}async whenCurrentJobsFinished(){do await Uf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},YS=Gc;var pm=W(require("bull"));var gs=(a=>(a.AUTOMATION="automationQueue",a.APP_BACKUP="appBackupQueue",a.AUDIT_LOG="auditLogQueue",a.SYSTEM_EVENT_QUEUE="systemEventQueue",a.APP_MIGRATION="appMigration",a.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",a.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",a))(gs||{});function JS(t,e,r){CU(t,e),r&&bU(t,r)}function bU(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 s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function St(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var DU={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 CU(t,e){let r=DU[e];function n(i,s){let o=i.data.event?.appId;if(o)return ef(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...St(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...St(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...St(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...St(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...St(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...St(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...St(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...St(r,"paused"))}).on("resumed",()=>{console.info(...St(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...St(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...St(r,"drained"))}).on("removed",i=>{console.info(...St(r,"removed",{job:i}))})}var $c={};N($c,{cleanup:()=>vU,clear:()=>dm,set:()=>lm});var fa=[];function lm(t,e){let r=setInterval(t,e);return fa.push(r),r}function dm(t){let e=fa.indexOf(t);e!==-1&&fa.splice(e,1),clearInterval(t)}function vU(){for(let t of fa)clearInterval(t);fa=[]}var gr=W(require("dd-trace")),ma=W(require("object-sizeof")),NU=be.fromMinutes(5).toMs(),PU=be.fromSeconds(30).toMs(),fm=be.fromSeconds(60).toMs(),ha=[],Vc;async function zS(){for(let t of ha)await t.clean(fm,"completed"),await t.clean(fm,"failed")}async function UU(t,e,r){let n=performance.now();try{let i=await e();return gr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw gr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;gr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),gr.default.dogstatsd.increment(t,1,r)}}function ZS(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}}function LU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ma.default)(t.data),...ZS(t.opts||{})}}var kt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:Zn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:NU,lockRenewTime:PU}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new pm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new YS(this.jobQueue,r):n=new pm.default(this.jobQueue,r),JS(n,this.jobQueue,this.opts.removeStalledCb),ha.push(n),!Vc&&!h.isTest()&&(Vc=lm(zS,fm),zS().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=async(o,a)=>{await gr.default.trace("queue.process",async u=>{if(o.data._parentSpanContext){let c=o.data._parentSpanContext,l={traceId:c.traceId,spanId:c.spanId,toTraceId:()=>c.traceId,toSpanId:()=>c.spanId,toTraceparent:()=>""};u.addLink(l)}u.addTags({"queue.name":this.jobQueue,...LU(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),gr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,ma.default)(o.data),this.metricTags()),await this.withMetrics("queue.process",()=>a?n(o,a):n(o))})},s;return n.length===1?s=o=>i(o):s=i,r?this.queue.process(r,s):this.queue.process(s)}async add(e,r){return await gr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ma.default)(e),...ZS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},gr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ma.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return UU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function MU(){Vc&&dm(Vc),console.log("Waiting for current queue jobs to finish...");for(let t of ha)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of ha)await t.close();ha=[],console.log("Queues shutdown")}var qc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},mm=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new kt(e,{maxStalledCount:o,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:s}}),this._queue.process(async(a,u)=>{try{let c=await this.processFn(a.data);u?.(null,c)}catch(c){c instanceof qc&&await a.discard(),li(`Failed to process job in ${this._queue.name}`,c),u?.(c)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await gt.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var ys=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new kt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await qe(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=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:s})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Lf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ga=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.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 XS=new da,FU=new pa,kU=new ys;function BU(t){return ys.init(t)}var yr=new ga([XS,FU,kU]);var Wc={};N(Wc,{checkInstallVersion:()=>VU,getInstall:()=>Ea,getInstallFromDB:()=>Em});var ym=W(require("semver"));var Ea=async()=>Wr(Ce.INSTALLATION,86400,Em,{useTenancy:!1});async function GU(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:me(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Em();throw r}}var Em=async()=>ut(Te.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Te.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await GU(t);else throw r}return e}),$U=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await Ea();r.version=t,await e.put(r),await rs(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},VU=async()=>{let t=await Ea(),e=t.version,r=h.VERSION;try{if(e!==r){let n=ym.default.gt(r,e),i=ym.default.lt(r,e);await $U(r)&&(await xo({_id:t.installId,type:"installation"},async()=>{n?await ya.upgraded(e,r):i&&await ya.downgraded(e,r)}),await Bt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?li(`Invalid version "${r}" - is it semver?`):li("Failed to retrieve version",n)}};var qU=async()=>{let t=Up(),e=Sa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=Ta();return{id:e_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await Qc(j()),s=Ta();return{id:e_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await Qc(j()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=Ta(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},WU=async(t,e)=>{let r=t,n="installation",i=Ta(),s=h.VERSION,o=Sa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Tm(a,e),await Aa({...a,id:`$${n}_${r}`},e)},QU=async(t,e,r)=>{let n=await Qc(t),i="tenant",s=await fi(),o=Sa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Tm(a,r),await Aa({...a,id:`$${i}_${n}`},r)},jU=async(t,e,r)=>{let n=t._id,i=await Qc(t.tenantId),s="user",o=At(t),a=en(t),u;Qa(t)&&(u=t.providerType);let l=(await ps([t.email])).length>0,p=!!e&&l&&e.verified,f=await fi(),m=e?e.hosting:Ta(),d=Sa();await Aa({id:n,type:s,hosting:m,installationId:f,tenantId:i,verified:p,accountHolder:l,providerType:u,builder:o,admin:a,environment:d},r)},HU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Wa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=Sa();if(qa(t)){let p=await Gt(t.email);p?._id&&(e=p._id)}await Aa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Aa=async(t,e)=>{await yr.identify(t,e)},Tm=async(t,e)=>{await yr.identifyGroup(t,e)},Sa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ta=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>KU()?"account-portal":(await Ea()).installId,Qc=async t=>h.SELF_HOSTED?t_(t):t,t_=async t=>qe(t,()=>Wr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ne(),r=await jc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),KU=()=>h.SERVICE==="account-portal",e_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Bt={getCurrentIdentity:qU,identifyInstallationGroup:WU,identifyTenantGroup:QU,identifyUser:jU,identifyAccount:HU,identify:Aa,identifyGroup:Tm,getInstallationId:fi,getUniqueTenantId:t_};var Hc={};N(Hc,{end:()=>JU,isAlreadySent:()=>_m,isBackfillingEvent:()=>Sm,recordEvent:()=>Am,start:()=>YU});var YU=async t=>ZU({eventWhitelist:t}),Am=async(t,e)=>{let r=Im(t,e);await cr(r,e,void 0,{useTenancy:!1})},JU=async()=>{await XU(),await eL()},zU=async()=>ii(Ce.BACKFILL_METADATA),ZU=async t=>cr(Ce.BACKFILL_METADATA,t),XU=async()=>{await qo(Ce.BACKFILL_METADATA)},eL=async()=>{let t=Im(),e=await dc(t);for(let r of e)await qo(r,{useTenancy:!1})},Sm=async t=>{let r=(await zU())?.eventWhitelist;return!!(r&&r.includes(t))},_m=async(t,e)=>{let r=Im(t,e);return!!await ii(r,{useTenancy:!1})},tL={"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}`},Im=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=tL[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Er;function Kc(){Er=new kt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function r_(){Er&&await Er.close()}async function n_(t){Er||Kc();let{event:e,identity:r}=t;Lh.indexOf(e)!==-1&&r.tenantId&&await Er.add(t)}var A=async(t,e,r,n)=>{let i=n||await Bt.getCurrentIdentity();if(!(n?!1:await Sm(t))){await n_({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await _m(t,e)||(await yr.processEvent(t,i,e,r),await Am(t,e))};async function rL(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function nL(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function iL(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var i_={created:rL,deleted:nL,verified:iL};async function sL(t,e){await A("action:automation_step:executed",t,e)}async function oL(t,e){await A("action:crud:executed",t,e)}async function aL(t,e){await A("action:ai_agent:executed",t,e)}var s_={aiAgentExecuted:aL,automationStepExecuted:sL,crudExecuted:oL};var uL=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function cL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function lL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function dL(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function pL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function fL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function mL(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function hL(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function gL(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function yL(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function EL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function TL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var o_={created:uL,updated:cL,deleted:lL,published:dL,unpublished:pL,fileImported:fL,duplicated:mL,templateImported:hL,versionUpdated:gL,versionReverted:yL,reverted:EL,exported:TL};async function AL(t,e){let n={userId:(await Bt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function SL(t){let r={userId:(await Bt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function _L(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function IL(t){let e={type:t};await A("auth:sso:updated",e)}async function OL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function xL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Yc={login:AL,logout:SL,SSOCreated:_L,SSOUpdated:IL,SSOActivated:OL,SSODeactivated:xL};async function RL(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)}async function wL(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)}async function bL(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)}async function DL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var CL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function vL(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)}async function NL(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)}var a_={created:RL,triggerUpdated:wL,deleted:bL,tested:DL,run:CL,stepCreated:vL,stepDeleted:NL};function Om(t){return!Object.values(Ba).includes(t.source)}async function PL(t,e){let r={datasourceId:t._id,source:t.source,custom:Om(t)};await A("datasource:created",r,e)}async function UL(t){let e={datasourceId:t._id,source:t.source,custom:Om(t)};await A("datasource:updated",e)}async function LL(t){let e={datasourceId:t._id,source:t.source,custom:Om(t)};await A("datasource:deleted",e)}var u_={created:PL,updated:UL,deleted:LL};async function ML(t){let e={};await A("email:smtp:created",e,t)}async function FL(){let t={};await A("email:smtp:updated",t)}var c_={SMTPCreated:ML,SMTPUpdated:FL};async function kL(t){let e={};await A("ai:config:created",e,t)}async function BL(){let t={};await A("ai:config:updated",t)}var l_={AIConfigCreated:kL,AIConfigUpdated:BL};async function GL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function $L(t){let e={accountId:t.accountId};await A("license:activated",e)}async function VL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function qL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function WL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function QL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function jL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var d_={planChanged:GL,activated:$L,checkoutOpened:VL,checkoutSuccess:qL,portalOpened:WL,paymentFailed:QL,paymentRecovered:jL};async function HL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function KL(t){let e={layoutId:t};await A("layout:deleted",e)}var p_={created:HL,deleted:KL};async function YL(t){let e={};await A("org:info:name:updated",e,t)}async function JL(t){let e={};await A("org:info:logo:updated",e,t)}async function zL(t){let e={};await A("org:platformurl:updated",e,t)}async function ZL(){let t={};await A("analytics:opt:out",t)}async function XL(){let t={};await A("analytics:opt:out",t)}var f_={nameUpdated:YL,logoUpdated:JL,platformURLUpdated:zL,analyticsOptOut:ZL,analyticsOptIn:XL};var eM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},tM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},rM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},nM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},iM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},sM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},m_={created:eM,updated:tM,deleted:rM,imported:nM,run:iM,previewed:sM};async function oM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function aM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function uM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function cM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function lM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var _a={created:oM,updated:aM,deleted:uM,assigned:cM,unassigned:lM};async function dM(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)}async function pM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var h_={created:dM,deleted:pM};var fM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},mM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},g_={created:fM,imported:mM};async function hM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function gM(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function yM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function EM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function TM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var y_={created:hM,updated:gM,deleted:yM,exported:EM,imported:TM};async function AM(t){let e={timezone:t};await A("served:builder",e)}async function SM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function _M(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var E_={servedBuilder:AM,servedApp:SM,servedAppPreview:_M};async function IM(t,e){let r={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:created",r,e)}async function OM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:updated",e)}async function xM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:deleted",e)}async function RM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function wM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function bM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function CM(t){let e={audited:{email:t}};await A("user:invited",e)}async function vM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function NM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function PM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function UM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function LM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function MM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:IM,updated:OM,deleted:xM,permissionAdminAssigned:RM,permissionAdminRemoved:wM,permissionBuilderAssigned:bM,permissionBuilderRemoved:DM,invited:CM,inviteAccepted:vM,passwordForceReset:NM,passwordUpdated:PM,passwordResetRequested:UM,passwordReset:LM,dataCollaboration:MM};async function FM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function kM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function BM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function GM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function $M({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function VM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function qM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function WM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function QM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function jM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function HM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var T_={created:FM,updated:kM,deleted:BM,exported:GM,filterCreated:$M,filterUpdated:VM,filterDeleted:qM,calculationCreated:WM,calculationUpdated:QM,calculationDeleted:jM,viewJoinCreated:HM};async function KM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function YM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function JM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function zM(){let t={};await A("installation:firstStartup",t)}var ya={versionChecked:KM,upgraded:YM,downgraded:JM,firstStartup:zM};var As=!h.SELF_HOSTED&&!h.isDev();async function ZM(t){As||await A("app:backfill:succeeded",t)}async function XM(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function e0(t){As||await A("tenant:backfill:succeeded",t)}async function t0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function r0(){if(As)return;let t={};await A("installation:backfill:succeeded",t)}async function n0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var A_={appSucceeded:ZM,appFailed:XM,tenantSucceeded:e0,tenantFailed:t0,installationSucceeded:r0,installationFailed:n0};async function i0(t,e){let r={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:created",r,e)}async function s0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:updated",e)}async function o0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:deleted",e)}async function a0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:user_added",r)}async function u0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function c0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function l0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var S_={created:i0,updated:s0,deleted:o0,usersAdded:a0,usersDeleted:u0,createdOnboarding:c0,permissionsEdited:l0};async function d0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function p0(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)}async function f0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var __={init:d0,imported:p0,deleted:f0};async function m0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function h0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var I_={appBackupRestored:m0,appBackupTriggered:h0};async function g0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function y0(t){let e={name:t};await A("environment_variable:deleted",e)}async function E0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var O_={created:g0,deleted:y0,upgradePanelOpened:E0};async function T0(t){let e={filters:t};await A("audit_log:filtered",e)}async function A0(t){let e={filters:t};await A("audit_log:downloaded",e)}var x_={filtered:T0,downloaded:A0};async function S0(t,e){await A("row_action:created",t,e)}var R_={created:S0};function _0(){}var I0=async()=>{await yr.shutdown(),console.log("Events shutdown")};var xm=async t=>{await Je.deleted(t),At(t)&&await Je.permissionBuilderRemoved(t),en(t)&&await Je.permissionAdminRemoved(t)},O0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await _a.assigned(t,i)},x0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await _a.unassigned(t,i)},R0=async(t,e)=>{let r=t.roles,n=e?.roles;await O0(t,r,n),await x0(t,r,n)},Rm=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ds(r)),await Bt.identifyUser(t,n),e?(await Je.updated(t),b0(t,e)&&await Je.permissionBuilderRemoved(t),C0(t,e)&&await Je.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Je.passwordForceReset(t),t.password!==e.password&&await Je.passwordUpdated(t)):await Je.created(t),w0(t,e)&&await Je.permissionBuilderAssigned(t),D0(t,e)&&await Je.permissionAdminAssigned(t),await R0(t,e)},w0=(t,e)=>w_(t,e,At),b0=(t,e)=>b_(t,e,At),D0=(t,e)=>w_(t,e,en),C0=(t,e)=>b_(t,e,en),w_=(t,e,r)=>!(!r(t)||e&&r(e)),b_=(t,e,r)=>!(r(t)||!e||!r(e));var Jc={};N(Jc,{createASession:()=>N0,endSession:()=>P0,getSession:()=>bm,getSessionsForUser:()=>Ia,invalidateSessions:()=>mi,updateSessionTTL:()=>wm});var C_=require("uuid");var v_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function Ia(t){return t?(await(await Vr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function mi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Ia(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await Vr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ls(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function N0(t,e){let r=await Ia(t),n=0;if(r.length>=3){let c=r.sort((f,m)=>new Date(f.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,p=c.slice(0,l).map(f=>f.sessionId);n=p.length,await mi(t,{sessionIds:p,reason:"session limit exceeded"})}let i=await Vr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,C_.v4)(),a=Ss(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,v_),{session:u,invalidatedSessionCount:n}}async function wm(t){let e=await Vr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,v_)}async function P0(t,e){await(await Vr()).delete(Ss(t,e))}async function bm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Vr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Nm={};N(Nm,{PASSWORD_MAX_LENGTH:()=>Cm,PASSWORD_MIN_LENGTH:()=>Dm,validatePassword:()=>vm});var Dm=+(h.PASSWORD_MIN_LENGTH||12),Cm=+(h.PASSWORD_MAX_LENGTH||512);function vm(t){return!t||t.length<Dm?{valid:!1,error:`Password invalid. Minimum ${Dm} characters.`}:t.length>Cm?{valid:!1,error:`Password invalid. Maximum ${Cm} characters.`}:{valid:!0}}var U0=async t=>{let e=t._id;await Mt.removeUser(t),await xm(t),await rn.invalidateUser(e),await mi(e,{reason:"bulk-deletion"})},Jt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&Xr(e)?!1:await t.features.isSSOEnforced()||Qa(e)?!0:(r||(r=await ds(j())),!!(r&&r.email===e.email&&Wa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let p=vm(o);if(!p.valid)throw new lt(p.error,400)}u=r.hashPassword?await Af(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||ns();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ne().allDocs(si(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Zc(e,{})).length}}static async getUsersByAppAccess(e){return await Pm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Gt(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await zc(e)}static async bulkUpdate(e){return await Oa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),i=ne(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await hi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(f){if(f.status!==404)throw f}if(!c&&s&&(c=await Gt(s),c&&c._id!==o))throw new hr(s);let l=1,p=0;if((r.isAccountHolder||c)&&(l=0,p=1),c){let[f,m]=await pi([c,e]);p=f!==m?1:0}return t.quotas.addUsers(l,p,async()=>{r.isAccountHolder||await Lc(s,n);let f=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(f=Um(f,c)),!c&&u?.length&&(f.roles={...u});let m=[];if(!o&&a.length>0)for(let d of a)m.push(t.groups.addUsers(d,[f._id]));try{let d=await i.put(f);return f._rev=d.rev,await Rm(f,c),c&&f.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,f._id,f.email,f.ssoId),await rn.invalidateUser(d.id),await Promise.all(m),i.get(f._id)}catch(d){throw d.status===409?"User exists already":d}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(f=>f.email),u=await am(a),c=[];for(let f of e){let m=s.find(g=>g.email.toLowerCase()===f.email.toLowerCase()),d=u.includes(f.email.toLowerCase());if(m||d){c.push({email:f.email,reason:"Unavailable"});continue}f.userGroups=r||[],s.push(f),await ca(f)&&o.push(f)}let l=await ds(n),p=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let d of s)p&&delete d.password,i.push(t.buildUser(d,{hashPassword:!0,requirePassword:!p},n,void 0,l));let f=await Promise.all(i);await Oa(f);for(let d of f)await Mt.addUser(n,d._id,d.email),await Rm(d,void 0);let m=f.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(m)&&r){let d=[],g=m.map(E=>E._id);for(let E of r)d.push(t.groups.addUsers(E,g));await Promise.all(d)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ne(),n={successful:[],unsuccessful:[]},i=await Mc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await Oa(a),l=(await pi(o)).filter(m=>m).length,p=[];for(let m of o){let g=(await ua(m._id)).ssoId;g&&(await wc(g)).filter(y=>y.ssoId==null).forEach(y=>{p.push({...y,_deleted:!0})}),await U0(m)}await ct().bulkDocs(p),await t.quotas.removeUsers(a.length,l);let f={};return o.reduce((m,d)=>(m[d._id]=d,m),f),u.forEach(m=>{let d=f[m.id].email;m.ok?n.successful.push({_id:m.id,email:d}):n.unsuccessful.push({_id:m.id,email:d,reason:"Database error"})}),n}static async destroy(e){let r=ne(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Zr(o))throw n.userId===ur()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await ca(n)?1:0;await t.quotas.removeUsers(1,s),await xm(n),await rn.invalidateUser(i),await mi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={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&&(s.ssoId=n.ssoId),await rs(Ce.CHECKLIST),await t.save(s,{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 Ra(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function zc(t,e){let n=(await ne().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ra(n)),n}async function M0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function F0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`,include_docs:!0})).rows.map(n=>n.doc)}async function Oa(t){return await ne().bulkDocs(t)}async function hi(t,e){let n=await ne().get(t);return e?.cleanup&&(n=Ra(n)),n}async function Gt(t,e){if(t==null)throw"Must supply an email address to view";let r=await dr("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=Ra(n)),n}async function k0(t){try{let e=await Gt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Zc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=mc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await dr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Ra(s)),s}async function Pm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}return(await ne().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function N_(t,e){if(e)return fc(at(t),e._id)}async function P_(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,s=await dr("by_email2",{...e,startkey:i,endkey:`${n}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Ra(o)),o}var B0=8;async function U_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ne(),s=n??B0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await hi(e.equal._id)]:r?(u=await Zc(r,a),l=p=>N_(r,p)):e?.string?.email?(u=await P_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await zc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(si(null,{...a,limit:void 0}))).rows.map(f=>f.doc),u=Mr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(si(null,a))).rows.map(f=>f.doc),wf(u,s,{paginate:!0,property:c,getKey:l})}async function G0(){return(await Cf("by_email2",{limit:0,include_docs:!1})).total_rows}async function $0(){let t=0;async function e(r){let n=await U_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function V0(t){return delete t.admin,delete t.builder,t}function Um(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}async function q0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Jt.save(t,{hashPassword:!1})}async function W0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Jt.save(t,{hashPassword:!1})}var L_=3600;async function Q0(t,e){let n=await yf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Zr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function j0(t){let e=await Jt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function wa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=Q0),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await $o(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,L_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Jt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function H0(t){let e=await $o(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r).filter(o=>!!o),s;if(n.length){let o=await j0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,L_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function ba(t){await(await $o()).delete(t)}var km={};N(km,{Writethrough:()=>Mm});var M_=1e4,Lm=null;async function Xc(){if(!Lm){let t=await hf();Lm=new ti(t)}return Lm}function Da(t,e){return t.name+e}function Fm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function K0(t,e,r=M_){let n=await Xc(),i=e._id,s;i&&(s=await n.get(Da(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await us({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let p=await t.put(l,{force:!0});a._id=p.id,a._rev=p.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;ls("Ignoring conflict in write-through cache")}})).executed||ls("Ignoring redlock conflict in write-through cache")),s=Fm(a,o?null:s?.lastWrite),a._id&&await n.store(Da(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function Y0(t,e){let r=await Xc(),n=Da(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Fm(s),await r.store(n,i)}return i.doc}async function J0(t,e){let r=await Xc(),n=Da(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Fm(s),await r.store(n,i)}return i.doc}async function z0(t,e,r){let n=await Xc();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(Da(t,i))}finally{await t.remove(i,r)}}var Mm=class{constructor(e,r=M_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return K0(this.db,e,r)}async get(e){return Y0(this.db,e)}async tryGet(e){return J0(this.db,e)}async remove(e,r){return z0(this.db,e,r)}};var Bm={};N(Bm,{createCode:()=>X0,getCode:()=>eF,invalidateCode:()=>tF});var Z0=be.fromHours(1).toSeconds();async function X0(t,e){let r=me();return await(await Vo()).store(r,{userId:t,info:e},Z0),r}async function eF(t){let r=await(await Vo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function tF(t){await(await Vo()).delete(t)}var $m={};N($m,{DocWritethrough:()=>Gm,DocWritethroughProcessor:()=>Ca,getProcessor:()=>nF,init:()=>F_});var rF=100,el,Ca=class t{static get queue(){return t._queue||(t._queue=new kt("docWritethroughQueue",{jobOptions:{attempts:rF}})),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=Ve(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Gm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ca.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function F_(){return el=new Ca().init(),el}function nF(){return el||F_()}function tl(t){return`config${v}${t}`}async function $t(t){let e=ne();try{return await e.get(tl(t))}catch(r){if(r.status===404)return;throw r}}async function iF(t){return t._id||(t._id=tl(t.type)),ne().put(t)}async function jc(){let t=await $t("settings");return t||(t={_id:tl("settings"),type:"settings",config:{}}),t.config.platformUrl=await va({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Bc({config:t.config}),t}async function Wm(){return(await jc()).config}async function va(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await $t("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Bc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Wr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await $t("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function sF(){return await $t("google")}async function rl(){return(await sF())?.config}async function Qm(){if(!h.SELF_HOSTED)return Vm();let t=await rl();return(!t||!t.activated)&&(t=Vm()),t}function Vm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function oF(){return $t("logos_oidc")}async function aF(){return $t("oidc")}async function uF(){let t=(await aF())?.config;return t?.configs&&t.configs[0]}async function jm(t){let e=(await $t("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function k_(){return $t("smtp")}async function cF(t){let e=await k_();if(e)return e.config;let r=h.SELF_HOSTED||!t;if(h.SMTP_FALLBACK_ENABLED&&r)return{port:h.SMTP_PORT,host:h.SMTP_HOST,secure:!1,from:h.SMTP_FROM_ADDRESS,auth:{user:h.SMTP_USER,pass:h.SMTP_PASSWORD},fallback:!0}}async function lF(){return(await $t("scim"))?.config}async function dF(){return $t("ai")}var rh={};N(rh,{AccessController:()=>Ym,BUILTIN_ROLE_IDS:()=>Jm,Role:()=>nn,RoleHierarchyTraversal:()=>nl,RoleIDVersion:()=>zm,builtinRoleToNumber:()=>Na,checkForRoleResourceArray:()=>V_,externalRole:()=>yF,findRole:()=>Pa,getAllRoleIds:()=>SF,getAllRoles:()=>th,getBuiltinRole:()=>G_,getBuiltinRoles:()=>Xm,getDBRoleID:()=>q_,getExternalRoleID:()=>sn,getExternalRoleIDs:()=>W_,getRole:()=>EF,getUserRoleHierarchy:()=>eh,getUserRoleIdHierarchy:()=>$_,isBuiltin:()=>gi,lowerBuiltinRoleID:()=>gF,prefixRoleIDNoBuiltin:()=>Km,roleIDsAreEqual:()=>_t,roleToNumber:()=>hF,saveRoles:()=>TF,validInherits:()=>mF});var Hm=W(require("semver"));var il=W(require("lodash/fp/cloneDeep"));var B_=require("lodash");var Jm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...Jm,BUILDER:"BUILDER"},zm={UUID:void 0,NAME:"name"};function fF(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var nn=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=zm.NAME}addInheritance(e){return e&&typeof e=="string"?e=Km(e):e&&Array.isArray(e)&&(e=e.map(Km)),this.inherits=e,this}},nl=class{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 s of e.inherits){let o=Pa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!fF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Pa(o.inherits,n,r),o&&i.push(o),gt.roles.checkForRoleInheritanceLoops(i))break}}return(0,B_.uniqBy)(i,s=>s._id)}},Zm={ADMIN:new nn(he.ADMIN,he.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(he.POWER),POWER:new nn(he.POWER,he.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(he.BASIC),BASIC:new nn(he.BASIC,he.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(he.PUBLIC),PUBLIC:new nn(he.PUBLIC,he.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new nn(he.BUILDER,he.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Xm(){return(0,il.default)(Zm)}function gi(t){return Object.values(Jm).includes(t)}function Km(t){return gi(t)?t:lr(t)}function G_(t){let e=Object.values(Zm).find(r=>t.includes(r._id));if(e)return(0,il.default)(e)}function mF(t,e){if(!e)return!1;let r=n=>t.find(i=>_t(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function Na(t){let e=Xm(),r=Object.values(e).length+1;if(_t(t,he.ADMIN)||_t(t,he.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}async function hF(t){if(gi(t))return Na(t);let e=await eh(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>_t(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(gi(n.inherits))return Na(n.inherits)+1;return 0};return Math.max(...e.map(r))}function gF(t,e){return t?e&&Na(t)>Na(e)?e:t:e}function _t(t,e){return lr(t)===lr(e)}function yF(t){let e;return t._id&&(e=sn(t._id)),{...t,_id:e,inherits:W_(t.inherits,t.version)}}function Pa(t,e,r){let n=G_(t);n||(t=lr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!gi(t)&&r?.defaultPublic?(0,il.default)(Zm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=sn(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function EF(t,e){let r=es(),n=[];if(!gi(t)){let i=await r.tryGet(q_(t));i&&n.push(i)}return Pa(t,n,e)}async function TF(t){await es().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function AF(t,e){let r=await th();if(_t(t,he.ADMIN))return r;let n=Pa(t,r,e),i=[];return n&&(i=new nl(r,e).walk(n)),i}async function $_(t){return(await eh(t)).map(r=>r._id)}async function eh(t,e){return AF(t,e)}function V_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}async function SF(t){return(await th(t)).map(r=>r._id)}async function th(t){if(t)return ut(t,e);{let r;try{r=es()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(hc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=sn(a._id,a.version)));let i=Xm(),s=[];!r||await _F(r)?s=[he.ADMIN,he.POWER,he.BASIC,he.PUBLIC]:s=[he.ADMIN,he.BASIC,he.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>_t(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=sn(a._id,u.version),n.push({...a,...u,name:a.name,_id:sn(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=V_(o.permissions,a);return n}}async function _F(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Hm.default.valid(r)?!0:!Hm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Ym=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,he.BUILDER)||_t(r,e)||_t(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await $_(r),this.userHierarchies[r]=n),n?.find(i=>_t(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let s=await this.checkScreenAccess(i,r);s&&n.push(s)}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 q_(t){return t?.startsWith("role")?t:lr(t)}function sn(t,e){if(t.startsWith(`role${v}`)&&(gi(t)||e===zm.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function W_(t,e){return t&&(typeof t=="string"?sn(t,e):t.map(r=>sn(r,e)))}var nh={};N(nh,{BUILDER:()=>wF,BUILTIN_PERMISSIONS:()=>sl,CREATOR:()=>bF,GLOBAL_BUILDER:()=>DF,PermissionImpl:()=>ge,PermissionLevel:()=>Rs,PermissionType:()=>Va,doesHaveBasePermission:()=>xF,getAllowedLevels:()=>K_,getBuiltinPermissionByID:()=>OF,getBuiltinPermissions:()=>IF,isPermissionLevelHigherThanRead:()=>RF,levelToNumber:()=>H_});var Q_=W(require("lodash/flatten")),j_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function H_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function K_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var sl={PUBLIC:{_id:"public",name:"Public",permissions:[new ge("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new ge("query","read"),new ge("table","read"),new ge("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new ge("query","write"),new ge("table","write"),new ge("automation","execute"),new ge("legacy_view","read"),new ge("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new ge("table","write"),new ge("user","read"),new ge("automation","execute"),new ge("webhook","read"),new ge("legacy_view","read"),new ge("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new ge("table","admin"),new ge("user","admin"),new ge("automation","admin"),new ge("webhook","read"),new ge("query","admin"),new ge("legacy_view","read"),new ge("app","read")]}};function IF(){return(0,j_.default)(sl)}function OF(t){return Object.values(sl).find(r=>r._id===t)}function xF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(sl),s=(0,Q_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&K_(o.level).indexOf(e)!==-1)return!0;return!1}function RF(t){return H_(t)>1}var wF="builder",bF="creator",DF="globalBuilder";var oh={};N(oh,{FlagSet:()=>al,all:()=>PF,flags:()=>ih,getEnvFlags:()=>Z_,init:()=>CF,isEnabled:()=>NF,parseEnvFlags:()=>cl,shutdown:()=>vF,testutils:()=>sh});var ul=W(require("crypto"));var Y_=require("posthog-node"),J_=W(require("dd-trace"));var z_=require("lodash");var ol;function CF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),ol=new Y_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:be.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function vF(){ol?.shutdown()}function cl(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}function Z_(){return cl(h.TENANT_FEATURE_FLAGS||"")}var al=class{constructor(e){this.flagSchema=e;this.setId=ul.randomUUID()}defaults(){return(0,z_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await J_.default.trace("features.fetch",async e=>{let r=sf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:p,key:f,value:m}of Z_())if(!(!p||p!=="*"&&p!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(f),!!this.isFlagName(f))){if(typeof i[f]!="boolean")throw new Error(`Feature: ${f} is not a boolean`);i[f]=m,n[`flags.${f}.source`]="environment"}let a=ur(),u=a?._id;if(!u){let p=rf();p&&(u=ul.createHash("sha512").update(p).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,ol&&u){n.readFromPostHog=!0;let p={tenantId:c},f=await ol.getAllFlags(u,{personProperties:p,onlyEvaluateLocally:!0});for(let[m,d]of Object.entries(f))if(this.isFlagName(m)){if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${d}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=d,n[`flags.${m}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${m}": ${d}`,g)}}}let l=af();for(let[p,f]of Object.entries(l))this.isFlagName(p)&&typeof f=="boolean"&&(i[p]=f,n[`flags.${p}.source`]="override");of(this.setId,i);for(let[p,f]of Object.entries(i))n[`flags.${p}.value`]=f;return e?.addTags(n),i})}},ih=new al(Gh);async function NF(t){return await ih.isEnabled(t)}async function PF(){return await ih.fetch()}var sh={};N(sh,{setFeatureFlags:()=>X_,withFeatureFlags:()=>MF});function UF(){let t={};for(let{tenantId:e,key:r,value:n}of cl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function LF(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function X_(t,e){let r=UF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=LF(r);return wo({TENANT_FEATURE_FLAGS:n})}function MF(t,e,r){let n=X_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Eh={};N(Eh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,buildAuthMiddleware:()=>Ok,buildCsrfMiddleware:()=>Rk,buildTenancyMiddleware:()=>xk,builderOnly:()=>_l,builderOrAdmin:()=>Sl,google:()=>Tr,internalApi:()=>El,joiValidator:()=>La,oidc:()=>Ar,passport:()=>wk,platformLogout:()=>Nk,refreshOAuthToken:()=>Ck,ssoCallbackUrl:()=>on,updateUserOAuth:()=>vk});var yh={};N(yh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,authenticated:()=>hl,builderOnly:()=>_l,builderOrAdmin:()=>Sl,correlation:()=>fI,csp:()=>TI,csrf:()=>Tl,datasource:()=>_k,errorHandling:()=>hI,featureFlagCookie:()=>AI,google:()=>Tr,internalApi:()=>El,ip:()=>_I,joiValidator:()=>La,local:()=>_s,oidc:()=>Ar,pino:()=>dI,querystringToBody:()=>gI,ssoCallbackUrl:()=>on,tenancy:()=>yl});var _s={};N(_s,{authenticate:()=>BF,options:()=>kF});function Me(t,e,r){return t(r,null,{message:e})}async function on(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Wm(),n="/api/global/auth";return $r()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var ah="Invalid credentials",FF="This account has expired. Please reset your password",kF={passReqToCallback:!0};async function BF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Gt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,ah)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,ah)):i.password?await Sf(r,i.password)?(delete i.password,n(null,i)):Me(n,ah):(console.info(`user=${e} has no password set`,i),Me(n,FF))}var Tr={};N(Tr,{buildVerifyFn:()=>rI,getCallbackUrl:()=>VF,strategyFactory:()=>uh});var Ua=t=>Promise.resolve(t);async function ll(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=ns(t.userId),s;try{s=await hi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Gt(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:j()});let o=await GF(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Me(r,"Error saving user",a)}return r(null,o)}async function GF(t,e){let r,n,i;if(e.profile){let s=e.profile;if(s.name){let o=s.name;o.givenName&&(r=o.givenName),o.familyName&&(n=o.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}var $F=require("passport-google-oauth").OAuth2Strategy;function rI(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return ll(s,!0,i,t)}}async function uh(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 s=rI(r);return new $F({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function VF(t){return on("google",t)}var Ar={};N(Ar,{buildVerifyFn:()=>iI,fetchStrategyConfig:()=>jF,getCallbackUrl:()=>HF,strategyFactory:()=>QF});var nI=W(require("node-fetch"));var qF=require("@techpass/passport-openidconnect").Strategy;function iI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:WF(n,i),oauth2:{accessToken:s,refreshToken:o}};return ll(l,!1,c,t)}}function WF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Mf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function QF(t,e){try{let r=iI(e),n=new qF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function jF(t,e){try{let{clientID:r,clientSecret:n,configUrl:i}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let s=await(0,nI.default)(i);if(!s.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${s.statusText}`);let o=await s.json();return{issuer:o.issuer,authorizationURL:o.authorization_endpoint,tokenURL:o.token_endpoint,userInfoURL:o.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function HF(){return on("oidc")}var ch={};N(ch,{postAuth:()=>JF,preAuth:()=>YF});var KF=require("passport-google-oauth").OAuth2Strategy;async function sI(){let t=await Qm();if(!t)throw new Error("No google configuration found");return t}async function YF(t,e,r){let n=await sI(),s=`${await va({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await uh(n,s,Ua);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function JF(t,e,r){let n=await sI(),s=`${await va({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=fr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new KF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Hr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=me();await cr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var zF=/\/:(.*?)(\/.*)?$/g,yi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(zF);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],Ei=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var hh={};N(hh,{SecretOption:()=>uI,decrypt:()=>mh,decryptFile:()=>nk,encrypt:()=>ek,encryptFile:()=>tk,getSecret:()=>fh});var Sr=W(require("crypto")),an=W(require("fs")),dh=W(require("zlib"));var lh=require("path"),dl="aes-256-ctr",aI="-",ZF=1e4,XF=32,pl=16,ph=16,uI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(uI||{});function fh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function fl(t,e){return Sr.default.pbkdf2Sync(t,e,ZF,XF,"sha512")}function ek(t,e="api"){let r=Sr.default.randomBytes(pl),n=fl(fh(e),r),i=Sr.default.createCipheriv(dl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${aI}${a}`}function mh(t,e="api"){let[r,n]=t.split(aI),i=Buffer.from(r,"hex"),s=fl(fh(e),i),o=Sr.default.createDecipheriv(dl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function tk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,lh.join)(t,e);if(an.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=an.default.createReadStream(i),o=an.default.createWriteStream((0,lh.join)(t,n)),a=Sr.default.randomBytes(pl),u=Sr.default.randomBytes(ph),c=fl(r,a),l=Sr.default.createCipheriv(dl,c,u);return o.write(a),o.write(u),s.pipe(dh.default.createGzip()).pipe(l).pipe(o),new Promise(p=>{o.on("finish",()=>{p({filename:n,dir:t})})})}async function rk(t){let e=an.default.createReadStream(t),r=await oI(e,pl),n=await oI(e,ph);return e.close(),{salt:r,iv:n}}async function nk(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await rk(t),s=an.default.createReadStream(t,{start:pl+ph}),o=an.default.createWriteStream(e),a=fl(r,n),u=Sr.default.createDecipheriv(dl,a,i),c=dh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,p)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",f=>{o.close(),p(f)}),u.on("error",f=>{o.close(),p(f)}),c.on("error",f=>{o.close(),p(f)}),o.on("error",f=>{o.close(),p(f)})})}function oI(t,e){return new Promise((r,n)=>{let i=0,s=[];t.on("readable",()=>{let o;for(;(o=t.read(e-i))!==null;)s.push(o),i+=o.length;r(Buffer.concat(s))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var lI=W(require("dd-trace")),ik=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function sk(){return new Date(Date.now()-ik).toISOString()}function cI(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}async function ok(t,e){if(Xo(t))return{valid:!0,user:void 0};let n=mh(t).split(v)[0];return qe(n,async()=>{let i;try{let s=ne();i=await dr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await wa({userId:i,tenantId:n,populateUser:e})};throw new ms})}function ml(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function hl(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=ml(n,"x-budibase-api-version");Ei(n,r)&&(s=!0);try{let u=ml(n,"x-budibase-token"),c=fr(n,"budibase:auth")||yc(u),l=ml(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let p=ml(n,"x-budibase-tenant-id"),f=!1,m,d=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,O;try{O=await bm(S,y),e&&e.populateUser?m=await wa({userId:S,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):m=await wa({userId:S,tenantId:O.tenantId,email:O.email}),m.csrfToken=O.csrfToken,g="cookie",O?.lastAccessedAt<sk()&&await wm(O),f=!0}catch(R){f=!1,console.error(`Auth Error: ${R.message}`),Hr(n,"budibase:auth")}}if(!f&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:O}=await ok(l,y);S&&(f=!0,g="api_key",m=O,d=!O)}!m&&p?m={tenantId:p}:m&&"password"in m&&delete m.password,f||(f=!1);let E=y=>y&&y.email;return E(m)&&lI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),cI(n,{authenticated:f,user:m,internal:d,version:o,publicEndpoint:s,loginMethod:g}),E(m)?Mp(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Hr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return cI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var ak=async(t,e)=>e(),gl=ak;function yl(t,e,r={noTenancyRequired:!1}){let n=yi(t),i=yi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ei(s,i)};!!Ei(s,n)||(u.excludeStrategies=["query"]);let l=Qo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var El=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Xo(r)||t.throw(403,"Unauthorized"),e()};var uk=["GET","HEAD","OPTIONS"],ck=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Tl(t={noCsrfPatterns:[]}){let e=yi(t.noCsrfPatterns);return async(r,n)=>{if(Ei(r,e)||uk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ck.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Al=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Sl=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?hs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Xr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var _l=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?hs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var lk=require("koa-pino-logger"),dk=require("correlation-id");function pk(){return{logger:Rc,genReqId:dk.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})}}}function fk(){return h.HTTP_LOGGING?lk(pk()):(t,e)=>e()}var mk=fk(),dI=mk;var pI=require("uuid"),hk=require("correlation-id"),gk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,pI.v4)()),hk.withId(r,()=>e())},fI=gk;function mI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of qT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function yk(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:Nc(r)};if(mI(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var hI=yk;function gI(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()}var EI=W(require("crypto"));var yI={"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"],"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'"]},Ek=/^[A-Za-z0-9-*:/.]+$/,Tk=async(t,e)=>{let r=EI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...yI};if(n["script-src"]=[...yI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Ho.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
- `).filter(c=>Ek.test(c));n["default-src"]=[...n["default-src"],...u]}}catch(o){console.error(`Error occurred in Content-Security-Policy middleware: ${o}`)}let s=Object.entries(n).map(([o,a])=>`${o} ${a.join(" ")}`).join("; ");t.set("Content-Security-Policy",s),await e()},TI=Tk;var AI=async(t,e)=>{let n=fr(t,"budibase:featureflags")?.flags||{};await uf(n,async()=>{await e()})};var La={};N(La,{body:()=>Ak,params:()=>Sk});var gh=W(require("joi"));function SI(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:gh.default.any().optional(),updatedAt:gh.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function Ak(t,e){return SI(t,"body",e)}function Sk(t,e){return SI(t,"params",e)}var _I=async(t,e)=>t.ip?await nf(t.ip,()=>e()):e();var _k={google:ch};var II=require("koa-passport"),Ik=require("passport-local").Strategy,Il=require("passport-oauth2-refresh"),Ok=hl,xk=yl,Rk=Tl,wk=II;II.use(new Ik(_s.options,_s.authenticate));async function bk(t,e){let r=await Ar.getCallbackUrl(),n,i;try{if(n=await Ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Ar.strategyFactory(n,Ua)}catch{throw new Error("Could not refresh OAuth Token")}return Il.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Il.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Dk(t,e){let r=await Tr.getCallbackUrl(t),n;try{n=await Tr.strategyFactory(t,r,Ua)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Il.use(n),new Promise(i=>{Il.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Ck(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await jm(r);return n?bk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await rl();return n?Dk(n,t):{err:{data:"Google configuration not found"}}}}}async function vk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ne(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await ba(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Nk(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=fr(e,"budibase:auth"),s=await Ia(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Hr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await Yc.logout(e.user?.email),await ba(r)}var Ah={};N(Ah,{validate:()=>Fk});var D=W(require("joi")),Pk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Th(t,e){let{error:r}=t.validate(e);if(r)throw r}function Uk(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});Th(e,t)}function Lk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(bl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(wl)),readable:D.default.boolean(),displayName:D.default.string(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(Dl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...Pk),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});Th(n,t)}function Mk(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(ee)).required(),customType:D.default.string().allow(...Object.values(pe)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...$h).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});Th(n,t)}function Fk(t){switch(t?.type){case"component":Uk(t);break;case"datasource":Lk(t);break;case"automation":Mk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Sh={};N(Sh,{Client:()=>We,clients:()=>qr,locks:()=>ui,utils:()=>ac});var _h={};N(_h,{isBlacklisted:()=>Bk,refreshBlacklist:()=>wI});var OI=W(require("dns")),xl=W(require("net"));var xI=require("util"),Ol,kk=(0,xI.promisify)(OI.default.lookup);async function RI(t){return xl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await kk(t,{all:!0})).map(r=>r.address)}async function wI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(xl.default.isIP(i))r.push(i);else{let s=await RI(i);r=r.concat(s)}}Ol=r}async function Bk(t){if(Ol||await wI(),Ol?.length===0)return!1;let e;return xl.default.isIP(t)?e=[t]:e=await RI(t),!!Ol?.find(r=>e.includes(r))}var Oh={};N(Oh,{init:()=>$k});var Gk={"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};function bI(t,e){let r=Gk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ma=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=bI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await qe(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return r_()}};var DI,Ih;function $k(t){Er||Kc(),Ih||(Ih=new Ma(t)),DI||(DI=Er.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Ih.processEvent(r,n,i)}))}var Ph={};N(Ph,{COUNT_FIELD_NAME:()=>vh,Sql:()=>kI,SqlTable:()=>Rl,designDoc:()=>Nh,utils:()=>zp});var PI=require("knex");var Vk=require("knex");function xh(t){return["link","formula","ai"].indexOf(t)!==-1}function CI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(f=>f.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(f=>f.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(f=>f.foreignKey);for(let[f,m]of Object.entries(e.schema)){let d=n?.schema[f];if(d&&d.type||c.includes(f)||i?.updated===f)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(f)?t.string(f,255):t.text(f);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:E,toTable:y}=m.meta;t.integer(f).unsigned(),t.foreign(f).references(`${y}.${E}`)}else l.indexOf(f)===-1&&t.float(f);break;case"bigint":t.bigint(f);break;case"boolean":t.boolean(f);break;case"datetime":m.timeOnly?t.time(f):t.datetime(f,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":gt.schema.isDeprecatedSingleUserColumn(m)?t.text(f):t.json(f);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=jp(m.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],O=y.schema[S].externalType;O?t.specificType(m.foreignKey,O):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(f);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:vi.unreachable(g)}}let p=i?n?.schema[i.old].type:void 0;return i&&p&&!xh(p)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,d])=>!xh(d.type)&&e.schema[m]==null).forEach(([m,d])=>{i?.old===m||xh(d.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function Wk(t,e,r){return t.createTable(e.name,n=>{CI(n,e,r)})}function Qk(t,e,r,n,i){return t.alterTable(e.name,s=>{CI(s,e,r,n,i)})}function jk(t,e){return t.dropTable(e.name)}var Rh=class{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,Vk.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=Wk(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=Qk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=zi(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=jk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return zi(n)}},Rl=Rh;var UI=require("lodash"),vh="__bb_total";function vI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function wh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Hk(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function LI(t){return Array.isArray(t)?t.map(e=>LI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function NI(t){return t.sourceType==="internal"||t.sourceId===Ml}function Kk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function MI(t,e='"'){return`${e}${Kk(t,e)}${e}`}function bh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=MI(t[r],e));return`[${t.join(",")}]`}function FI(t){return Wh.includes(t.type)&&!gt.schema.isDeprecatedSingleUserColumn(t)}var Yk={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},Dh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={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 Mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}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(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}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(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}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(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&FI(r)&&typeof e=="object")return JSON.stringify(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"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!Yp(e))return null}else if(r.dateOnly){let n=Kp(e);return n?new Date(n):null}else return r.ignoreTimezones?nc(e)?new Date(e):Hp(e)?new Date(e+"Z"):null:nc(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),s=this.table.schema[i];s&&(e[r]=this.parse(n,s))}return e}parseFilters(e){e=(0,UI.cloneDeep)(e);for(let r of Object.values(Ir)){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:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(zt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(dn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}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:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=p=>n.match(new RegExp(`^${p}\\.`));if(!s)return e;for(let p of s){let f=p.tableName,m=a?.[f]||f,d=l(f)||l(m),g=l(p.column);if((d||g)&&p.to&&p.tableName){let E=this.knex.select(this.knex.raw(1)).from({[m]:f}),y=E.clone(),S=Jp(p),O;if(d?O=n:O=n.replace(new RegExp(`^${p.column}.`),`${a?.[p.tableName]||p.tableName}.`),S){let R=a?.[S.through]||p.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${m}.${S.toPrimary}`,"=",`${R}.${S.to}`)}).where(`${R}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(_=>{_.whereExists(i(O,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${m}.${p.to}`,T=`${c}.${p.from}`;y=y.where(R,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(O,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(d){return s?.[d]||d}function l(d,g,E,y){let S=(O,R,T)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return O.andWhere(de=>E(de,k?`${k}.${b}`:b,T))};for(let O in d){let R=d[O],T=Zo(O),_=T.includes("."),B=n?.relationship&&_,b;if(O==="_complexIdOperator"&&(b=d[O])&&y){let k=c(u);e=y(e,b.id.map(de=>k?`${k}.${de}`:de),b.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Yk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let p=(d,g,E)=>((r?.fuzzyOr||o)&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):d.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),f=(d,g=!1)=>{function E(y){return(o||d===r?.containsAny)&&(y=y.or),d===r?.notContains&&(y=y.not),y}this.client==="pg"?l(d,"contains",(y,S,O)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(bh(O,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(bh(O))]))):this.client==="mysql2"||this.client==="mariadb"?l(d,"contains",(y,S,O)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(MI(bh(O)))])):l(d,"contains",(y,S,O)=>(O.length===0||(y=y.where(R=>(d===r?.notContains&&(R=R.not),R=R.where(T=>{for(let _ of O){d===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${B}%`)}}),d===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),y))};if(r.$and){let{$and:d}=r;for(let g of d.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:d}=r;e=e.where(g=>{for(let E of d.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(d,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(d=d.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let O of S)O!=null?d=d.or.whereLike(g,`${O.toISOString().slice(0,10)}%`):d=d.or.whereNull(g);return d}return d.whereIn(g,S)},(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),d.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(d,g,E)=>{if(o&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3")return d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]);{let y=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(y)?d.whereRaw(`??::text ilike '${E}%'`,[this.knex.raw(this.quote(y.name))]):d.whereILike(g,`${E}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",p),r.range&&l(r.range,"range",(d,g,E)=>{let y=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=ic(E.low),O=ic(E.high),R=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(d=d.or),S&&O?d.whereBetween(T,[B,_]):S?d.where(T,">=",B):O?d.where(T,"<=",_):d}),r.equal&&l(r.equal,"equal",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.whereLike(g,`${E.toISOString().slice(0,10)}%`):d.whereNull(g):d.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):d.not.whereNull(g):d.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(d,g)=>(o&&(d=d.or),d.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(d,g)=>(o&&(d=d.or),d.whereNotNull(g))),r.contains&&f(r.contains),r.notContains&&f(r.notContains),r.containsAny&&f(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!Qp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Or(r.documentType)}%`),e}isSqs(){return NI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;NI(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 ${vh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.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,s=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[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let p=`${s}.${a}`,f;this.isAggregateField(a)?f=this.rawQuotedIdentifier(a):this.client==="oracledb"?f=this.convertClobs(p):f=this.rawQuotedIdentifier(p),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[f,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}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(`${s}.${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],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let p of n){let{tableName:f,through:m,to:d,from:g,fromPrimary:E,toPrimary:y}=p;if(!f||!r)continue;let S=c[f];if(!S)throw new Error(`related table "${f}" not found in datasource`);let O=a?.[f]||f,R=a?.[r]||r,T=m&&a?.[m]||m,_=this.tableNameWithSchema(f,{alias:O,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=Hk(l.filter(V=>V.split(".")[0]===O),B);b=b.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=b.map(V=>this.buildJsonField(S,V));if(!k.length)continue;let de=k.map(V=>{let ue=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ue}??`,[V[0],V[1]]).toString()}).join(","),un=`${O}.${y||d}`,$=s.from(_).orderBy(un),F=m&&y&&E,I=F?`${T}.${g}`:`${O}.${d}`,q=F?`${R}.${E}`:`${R}.${g}`;if(F){let V=this.tableNameWithSchema(m,{alias:T,schema:u});$=$.join(V,function(){this.on(`${O}.${y}`,"=",`${T}.${d}`)})}$=$.where(this.rawQuotedIdentifier(I),"=",this.rawQuotedIdentifier(q));let L=V=>($=$.select(b.map(ue=>this.rawQuotedIdentifier(ue))).limit(wh()),s.select(V).from({[O]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,p),Y=L(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":Y=L(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${wh()})`));break;case"mysql2":case"oracledb":Y=L(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ue=>s.ref(ue[1]).as(ue[0]))).limit(wh())});Y=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[p.column]:Y})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,p=i?.[a]||a,f=this.tableNameWithSchema(o,{alias:c,schema:s}),m=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(m,function(){for(let d of n){let g=d.fromPrimary,E=d.from;this.orOn(`${p}.${g}`,"=",`${l}.${E}`)}}).leftJoin(f,function(){for(let d of n){let g=d.toPrimary,E=d.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(f,function(){for(let d of n){let g=d.from,E=d.to;this.orOn(`${p}.${g}`,"=",`${c}.${E}`)}}),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[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];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:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let m=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=m}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let p=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):p.length>0?u=this.addAggregations(u,p):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&p.length===0){let f=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[f]:"paginated"}));return this.addJsonRelationships(m,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).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())}},Ch=class extends Rl{constructor(r,n=vI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=zi(r);return i==="sqlite3"&&(s=LI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,PI.knex)(s),a,u=new Dh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:vI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.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(a,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=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let p=[];for(let f of a)p.push(await n(f,o));return p}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let p;s==="mssql"?p=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(p=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(p,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Ml){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let s=this.getTableName(r,i);for(let[o,a]of Object.entries(r.schema)){if(!FI(a))continue;let u=`${s}.${o}`;for(let c of n)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return n}log(r,n){vo(this.getSqlClient(),r,n)}},kI=Ch;var Nh={};N(Nh,{base:()=>Jk});function Jk(t){return{_id:Kt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var zk={...jo,...Se},Zk=(t={})=>{tc(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,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,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,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")},zo=async(t,e)=>{let r={account_by_email:VA,platform_users_lowercase_2:qA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return vf(t,e,n,i,{arrayResponse:!0})})},WA={by_email2:kA,by_api_key:GA,by_app:BA},dr=async(t,e,r,n)=>{r||(r=ne());let i=WA[t];return vf(t,e,r,i,n)};async function Nf(t,e,r){let n=ne(),i=WA[t];return Jo(t,e,n,i,r)}var Pf=class{constructor({source:e,target:r}){this.source=Tt(e),this.target=Tt(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([Co(this.source),Co(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";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")?!1:s._deleted?!0:s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},QA=Pf;var HA=W(require("node-fetch"));var Zo=Mr.removeKeyNumbering;function oi(t){return t==null||t===""}var pr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#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.#p=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:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="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 s of Object.keys(e)){let o=Zo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(d,g)=>oi(g)?null:`${d}:${e.preprocess(g,s)}`,u=(d,g,E="AND")=>{if(oi(g))return null;if(!Array.isArray(g))return`${d}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${d}:(${y})`},c=(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${d}:/.*${g}.*/`),l=(d,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(d,g,y)},p=(d,g)=>u(d,g,"OR"),f=(d,g)=>{if(oi(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${d}:(${E})`};function m(d,g,E){let y="";for(let[S,O]of Object.entries(d)){S=Zo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,O);if(R!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=R,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==o&&O!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&m(this.#e.string,(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${d}:${g}*`)),this.#e.range&&m(this.#e.range,(d,g)=>{if(oi(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${d}:[${E} TO ${y}]`}),this.#e.fuzzy&&m(this.#e.fuzzy,c),this.#e.equal&&m(this.#e.equal,a),this.#e.notEqual&&m(this.#e.notEqual,(d,g)=>oi(g)?null:typeof g=="boolean"?`(*:* AND !${d}:${g})`:`!${d}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,d=>(i=!1,`(*:* -${d}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,d=>(i=!1,`${d}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,f),this.#e.contains&&m(this.#e.contains,u),this.#e.notContains&&m(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&m(this.#e.containsAny,p),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,m({tableId:o},a)),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.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Nt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await jA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await jA(n,i,r);throw s}}};async function jA(t,e,r){let n=await(0,HA.default)(t,{body:JSON.stringify(e),method:"POST",headers:{Authorization:r}});if(n.status===404)throw n;let i=await n.json(),s={rows:[],totalRows:0};return i.rows!=null&&i.rows.length>0&&(s.rows=i.rows.map(o=>o.doc)),i.bookmark&&(s.bookmark=i.bookmark),i.total_rows&&(s.totalRows=i.total_rows),s}async function YA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=pr.maxLimit;n.limit&&s.length>n.limit-pr.maxLimit&&(o=n.limit-s.length);let a=new pr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<pr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await YA(t,e,r,c)}async function hP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,pr.maxLimit);let s=new pr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function gP(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 YA(t,e,r,n)}}var Lf={};N(Lf,{createUserIndex:()=>yP});async function yP(){let t=ne(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function KA(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)}function EP(t){return KA(t,409)}var yc=W(require("jsonwebtoken")),Uf="app"+v,zA="/app/",ZA="/app/preview",TP="/builder",XA=`${TP}/app/`,AP="/api/public/v";function ss(t){return t&&t.startsWith(Uf)?t:void 0}async function eS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Qo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function SP(t){return t.path.startsWith(`/${Uf}`)?!0:t.path.startsWith(zA)}function _P(t){return t.path.startsWith(XA)}function IP(t){return t.path.startsWith(ZA)}function OP(t){return t.path.startsWith(AP)}async function xP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=ss(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=ss(t.request.body.appId));let n=JA(t.path);!r&&n&&(r=ss(n)),!r&&t.query?.appId&&(r=ss(t.query?.appId));let i=t.path.startsWith(ZA),s=t.path.startsWith(zA)&&!i;!r&&s&&(r=ss(await eS(t)));let o=t.request.headers.referer;if(!r&&o?.includes(XA)){let a=JA(t.request.headers.referer);r=ss(a)}return r}function JA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Uf))}function Ec(t){if(t)try{return yc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return yc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function Xo(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function fr(t,e){let r=t.cookies.get(e);if(r)return Ec(r)}function tS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=yc.default.sign(e,h.JWT_SECRET));let i={expires:Ju,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Hr(t,e){tS(t,null,e)}function RP(t){return t.headers["x-budibase-type"]==="client"}function Mf(t){return new Promise(e=>setTimeout(e,t))}function Ff(t){return!!Bh[t]}function wP(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}function bP(t){return!!t.match(/^.+:\/\/.+$/)}function kf(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,}))$/)}var Bf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Bf||{}),Tc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/Tc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Tc[e]/Tc[r]}static from(e,r){return new t(r*Tc[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 DP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function CP(t,e){if(t==="custom")return ai(e);switch(t){case"try_once":return ai(as.TRY_ONCE);case"try_twice":return ai(as.TRY_TWICE);case"default":return ai(as.DEFAULT);case"delay_500":return ai(as.DELAY_500);case"auto_extend":return ai(as.AUTO_EXTEND);default:throw vi.unreachable(t)}}var as={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 ai(t={}){let e={...as.DEFAULT,...t},n=(await Ef()).client;return new nS.default([n],e)}function vP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var iS=be.fromSeconds(10).toMs();async function us(t,e){let r=await CP(t.type,t.customOptions),n,i;try{let s=vP(t),o=t.type==="auto_extend"?iS:t.ttl;if(n=await r.lock(s,o),t.type==="auto_extend"){let u=()=>{i=setTimeout(async()=>{n=await n.extend(o,()=>t.onExtend&&t.onExtend()),u()},o/2)};u()}return{executed:!0,result:await e()}}catch(s){if(s.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw s}else throw s}finally{clearTimeout(i),await n?.unlock()}}var Gf=Te.PLATFORM_INFO.docs.tenants,$f={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function PP(){return(await Ac()).tenantIds}async function Ac(){let t=ct(),e;try{e=await t.get(Gf)}catch(r){if(r.status===404)e=await MP();else throw r}return e}async function LP(t){return(await Ac()).tenantIds.indexOf(t)!==-1}function UP(){return{_id:Gf,tenantIds:[]}}async function MP(){let t=ct(),e=UP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Gf);throw r}return e}async function FP(t){let e=ct();await us($f,async()=>{let r=await Ac();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function kP(t){try{await us($f,async()=>{let e=ct(),r=await Ac();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var di={};N(di,{getAccount:()=>Zr,getAccountByTenantId:()=>ds,getStatus:()=>yL});var FS=W(require("node-fetch"));var oa={};N(oa,{correlation:()=>ta,logAlert:()=>li,logAlertWithInfo:()=>gL,logWarn:()=>ls,logger:()=>wc,system:()=>nm});var ta={};N(ta,{getId:()=>qf,setHeader:()=>BP});var sS=require("correlation-id"),BP=t=>{let e=sS.getId();e&&(t["x-budibase-correlation-id"]=e)};function qf(){return sS.getId()}var Rc=W(require("pino")),US=W(require("pino-pretty"));var im=W(require("dd-trace")),MS=require("dd-trace/ext");var nm={};N(nm,{getLogReadStream:()=>lL,getSingleFileMaxSizeInfo:()=>LS,localFileDestination:()=>rm});var sa=W(require("fs")),tm=W(require("path")),CS=W(require("rotating-file-stream"));var em={};N(em,{ObjectStore:()=>Ft,ObjectStoreBuckets:()=>$P,SIGNED_FILE_PREFIX:()=>Jf,bucketTTLConfig:()=>Sc,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>nL,clientLibraryPath:()=>SS,clientLibraryUrl:()=>iL,createBucketIfNotExists:()=>ia,deleteFile:()=>JP,deleteFiles:()=>zP,deleteFolder:()=>ES,downloadTarball:()=>XP,downloadTarballDirect:()=>ZP,enrichPWAImages:()=>sL,enrichPluginURLs:()=>aL,extractBucketAndPath:()=>Wf,getAppFileUrl:()=>_S,getGlobalFileS3Key:()=>IS,getGlobalFileUrl:()=>oL,getObjectMetadata:()=>eL,getPluginIconKey:()=>RS,getPluginJSKey:()=>xS,getPluginS3Dir:()=>bS,getPresignedUrl:()=>Jr,getReadStream:()=>_c,listAllObjects:()=>yS,processAutomationAttachment:()=>qP,processObjectStoreAttachment:()=>lS,retrieve:()=>gS,retrieveDirectory:()=>KP,retrieveToTmp:()=>YP,sanitizeBucket:()=>Ke,sanitizeKey:()=>Ue,streamUpload:()=>hS,upload:()=>HP,uploadDirectory:()=>zf});var Oc=require("@aws-sdk/client-s3"),Qf=require("@aws-sdk/lib-storage"),dS=require("@aws-sdk/s3-request-presigner"),na=W(require("stream")),jf=W(require("node-fetch")),Hf=W(require("tar-fs")),Yf=W(require("zlib")),pS=require("util"),Kr=require("path"),mr=W(require("fs"));var ra=W(require("path")),oS=require("os"),aS=W(require("fs"));var uS=W(require("stream")),$P={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},cS=(0,ra.join)((0,oS.tmpdir)(),".budibase");try{aS.default.mkdirSync(cS)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return cS}var Sc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function VP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ra.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:uS.default.Readable.fromWeb(e.body)}}async function lS(t){let e=Wf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await _c(r,n),s=ra.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function qP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await VP(t):await lS(t)}var Kf=require("uuid");var fS=W(require("fs/promises")),WP=require("sanitize-s3-objectkey"),mS=(0,pS.promisify)(na.default.pipeline),QP={bucketCreationPromises:{}},Jf="/files/signed",Yr={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"},jP=[Yr.html,Yr.css,Yr.js,Yr.json];function Ue(t){return WP(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(Et,"g"),yt)}function Ft(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new Oc.S3(e)}async function ia(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=QP.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),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.")}}async function HP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await fS.default.open(r)).createReadStream():s,c=Ft(),l=await ia(c,t);if(o&&l.created){let g=Sc(t,o);await c.putBucketLifecycleConfiguration(g)}let p=n,f=p||(a?Yr[a.toLowerCase()]:Yr.txt),m={Bucket:Ke(t),Key:Ue(e),Body:u,ContentType:f};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new Qf.Upload({client:c,params:m}).done()}async function hS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Ft(),u=await ia(a,t);if(s&&u.created){let E=Sc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Yr[o.toLowerCase()]:Yr.txt);let l=Ke(t),p=Ue(r),f={Bucket:l,Key:p,Body:e,ContentType:c,...i},d=await new Qf.Upload({client:a,params:f}).done(),g=await a.headObject({Bucket:l,Key:p});return{...d,ContentLength:g.ContentLength}}async function gS(t,e){let r=Ft(),n={Bucket:Ke(t),Key:Ue(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(jP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return na.default.Readable.fromWeb(s)}}async function yS(t,e){let r=Ft(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Ue(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Jr(t,e,r=3600){let n=Ft({presigning:!0}),i={Bucket:Ke(t),Key:Ue(e)},s=await(0,dS.getSignedUrl)(n,new Oc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Jf}${a}${u}`}else return s}async function YP(t,e){t=Ke(t),e=Ue(e);let r=await gS(t,e),n=(0,Kr.join)(ci(),(0,Kf.v4)());return r instanceof na.default.Readable?r.pipe(mr.default.createWriteStream(n)):mr.default.writeFileSync(n,r),n}async function KP(t,e){let r=(0,Kr.join)(ci(),(0,Kf.v4)());mr.default.mkdirSync(r);let n=await yS(t,e),i=await Promise.all(n.map(a=>_c(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),p=l.slice(0,l.length-1),f=(0,Kr.join)(r,...p);l.length>1&&!mr.default.existsSync(f)&&mr.default.mkdirSync(f,{recursive:!0});let m=mr.default.createWriteStream((0,Kr.join)(r,...l),{mode:420});c.pipe(m),o.push(new Promise((d,g)=>{m.on("finish",()=>d()),c.on("error",g),m.on("error",g)}))}return await Promise.all(o),r}async function JP(t,e){let r=Ft();await ia(r,t);let n={Bucket:t,Key:Ue(e)};return r.deleteObject(n)}async function zP(t,e){let r=Ft();await ia(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ue(i)}))}};return r.deleteObjects(n)}async function ES(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return ES(t,e)}async function zf(t,e,r){t=Ke(t);let n=[],i=mr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ue((0,Kr.join)(r,s.name)),a=(0,Kr.join)(e,s.name);s.isDirectory()?n.push(zf(t,a,o)):n.push(hS({bucket:t,filename:o,stream:mr.default.createReadStream(a)}))}return await Promise.all(n),i}async function ZP(t,e,r={}){e=Ue(e);let n=await(0,jf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await mS(n.body,Yf.default.createUnzip(),Hf.default.extract(e))}async function XP(t,e,r){e=Ke(e),r=Ue(r);let n=await(0,jf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Kr.join)(ci(),r);return await mS(n.body,Yf.default.createUnzip(),Hf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await zf(e,i,r),i}async function _c(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof na.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function eL(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Wf(t){let e=t.split("?")[0],r=new RegExp(`^${Jf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var TS=W(require("aws-cloudfront-sign")),xc;function tL(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return xc||(xc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),xc)}var rL=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:tL(),expireTime:new Date().getTime()+1e3*60*60*24}),cs=t=>{let e=Zf(t);return TS.getSignedUrl(e,rL())},Zf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var AS=W(require("querystring"));function SS(t){return`${Ue(t)}/budibase-client.js`}async function nL(t,e){let r=SS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Zf(r)):await Jr(h.APPS_BUCKET_NAME,r)}function iL(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${AS.default.encode(n)}`}async function _S(t){return h.CLOUDFRONT_CDN?cs(t):await Jr(h.APPS_BUCKET_NAME,t)}async function sL(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await _S(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var oL=async(t,e,r)=>{let n=IS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),cs(n)):await Jr(h.GLOBAL_BUCKET_NAME,n)},IS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function aL(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await uL(e),n=await cL(e);return{...e,jsUrl:r,iconUrl:n}}))}async function uL(t){let e=xS(t);return OS(e)}async function cL(t){let e=RS(t);if(e)return OS(e)}async function OS(t){return h.CLOUDFRONT_CDN?cs(t):await Jr(h.PLUGIN_BUCKET_NAME,t)}function xS(t){return wS(t,"plugin.min.js")}function RS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return wS(t,e)}function wS(t,e){return`${bS(t.name)}/${e}`}function bS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var vS="budibase.log",NS="budibase-logs-history.txt",PS=tm.default.join(ci(),"systemlogs");function DS(t){return tm.default.join(PS,t)}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}}function rm(){let t=LS(h.ROLLING_LOG_MAX_SIZE);return CS.createStream(vS,{size:t?.size,path:PS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:NS,initialRotation:!1})}function lL(){let t=[],e=DS(NS);if(sa.default.existsSync(e)){let i=sa.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let s of i.filter(o=>o))t.push(sa.default.readFileSync(s))}return t.push(sa.default.readFileSync(DS(vS))),Buffer.concat(t)}function dL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function pL(t){return t instanceof Error}function fL(t){return typeof t=="string"}var zr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,US.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:rm(),level:t}),zr=r.length?(0,Rc.default)(e,Rc.default.multistream(r)):(0,Rc.default)(e);let n=u=>{let c,l=[],p="";u.forEach(E=>{fL(E)&&(p=`${p} ${E}`.trimStart()),dL(E)&&l.push(E),pL(E)&&(c=E)});let f=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:f?._id,identityType:f?.type,correlationId:qf()};let d=im.default.scope().active();d&&im.default.inject(d.context(),MS.formats.LOG,m);let g={err:c,pid:process.pid,...m};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let O=l[S],R=O._logKey;R?(delete O._logKey,g[R]=O):(E[y]=O,y++)}Object.keys(E).length&&(g.data=E)}return[g,p]};console.log=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);zr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Le()}catch{}return u},o=()=>{let u;try{u=nf()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var wc=zr;var mL=["AccountError"];function hL(t){return t&&t.suppressAlert}function li(t,e){e&&mL.includes(e.name)&&hL(e)||console.error(`bb-alert: ${t}`,e)}function gL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,li(t,n)}function ls(t,e){console.warn(`bb-warn: ${t}`,e)}var aa=class{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";ta.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,FS.default)(`${this.host}${r}`,s)}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 sm=new aa(h.INTERNAL_ACCOUNT_PORTAL_URL),om=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(om)return;let e={email:t},r=await sm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ds=async t=>{if(om)return;let e={tenantId:t},r=await sm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},yL=async()=>{if(om)return;let t=await sm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Ts={};N(Ts,{UserDB:()=>Jt,addAppBuilder:()=>H0,bulkGetGlobalUsersById:()=>Zc,bulkUpdateGlobalUsers:()=>Oa,cleanseUserObject:()=>Mm,creatorsInList:()=>pi,doesUserExist:()=>V0,getAccountHolderFromUsers:()=>Fc,getAllUserIds:()=>G0,getAllUsers:()=>$0,getById:()=>hi,getCreatorCount:()=>Q0,getExistingAccounts:()=>ps,getExistingPlatformUsers:()=>$S,getExistingTenantUsers:()=>GS,getFirstPlatformUser:()=>ua,getGlobalUserByAppPage:()=>U_,getGlobalUserByEmail:()=>Gt,getPlatformUsers:()=>bc,getUserCount:()=>W0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>WS,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>qS,isBuilder:()=>hs,isCreatorAsync:()=>ca,isCreatorSync:()=>Uc,isGlobalBuilder:()=>VS,paginatedUsers:()=>F_,removeAppBuilder:()=>Y0,removePortalUserPermissions:()=>j0,searchExistingEmails:()=>cm,searchGlobalUsersByApp:()=>Xc,searchGlobalUsersByAppAccess:()=>Um,searchGlobalUsersByEmail:()=>M_,validateUniqueUser:()=>Mc});var lm={};N(lm,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Fc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>WS,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>qS,isBuilder:()=>hs,isCreatorAsync:()=>ca,isCreatorSync:()=>Uc,isGlobalBuilder:()=>VS,validateUniqueUser:()=>Mc});var um={};N(um,{createCode:()=>TL,deleteCode:()=>SL,getCode:()=>AL,getExistingInvites:()=>am,getInviteCodes:()=>BS,updateCode:()=>EL});var kS=be.fromDays(7).toSeconds();async function EL(t,e){await(await ei()).store(t,e,kS)}async function TL(t,e){let r=me();return await(await ei()).store(r,{email:t,info:e},kS),r}async function AL(t){let r=await(await ei()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function SL(t){await(await ei()).delete(t)}async function BS(){let r=(await(await ei()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=j();return r.filter(i=>n===i.info.tenantId)}async function am(t){return(await BS()).filter(e=>t.includes(e.email))}async function cm(t){let e=[],r=await GS(t);e.push(...r.map(o=>o.email));let n=await $S(t);e.push(...n.map(o=>o._id));let i=await ps(t);e.push(...i.map(o=>o.email));let s=await am(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function bc(t){return await zo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ua(t){return(await bc(t))[0]??null}async function GS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await dr("by_email2",r,void 0,n)}async function $S(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await zo("platform_users_lowercase_2",r)}async function ps(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await zo("account_by_email",r)}var Lc={};N(Lc,{BadRequestError:()=>Cc,BudibaseError:()=>fs,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>Nc,HTTPError:()=>lt,InvalidAPIKeyError:()=>ms,NotFoundError:()=>Dc,UsageLimitError:()=>vc,getPublicError:()=>Pc});var fs=class extends Error{constructor(r,n){super(r);this.code=n}},Pc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class t extends fs{constructor(r,n,i="http"){super(r,i);this.status=n}static async fromResponse(r){let n=await r.text(),i=n,s=r.status,o="http";try{let a=JSON.parse(n);i=a.message,s=a.status,o=a.error?.code}catch{}return new t(i,s,o)}},Dc=class extends lt{constructor(e){super(e,404)}},Cc=class extends lt{constructor(e){super(e,400)}},vc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Nc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},ms=class extends fs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var hs=ot.users.isBuilder,Xr=ot.users.isAdmin,VS=ot.users.isGlobalBuilder,qS=ot.users.isAdminOrBuilder,en=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,WS=ot.users.hasAppBuilderPermissions;async function pi(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ne().getMultiple(r,{allowMissing:!0}),t.map(i=>Uc(i,e))}async function ca(t){let e=[];return t.userGroups&&(e=await ne().getMultiple(t.userGroups)),Uc(t,e)}function Uc(t,e){let r=ot.users.isCreator(t);return!r&&t?IL(t,e):r}function IL(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}async function Mc(t,e){if(h.MULTI_TENANCY){let r=await ua(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Fc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ps(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Es={};N(Es,{account:()=>a_,action:()=>u_,ai:()=>f_,analytics:()=>Bc,app:()=>c_,auditLog:()=>b_,auth:()=>Jc,automation:()=>l_,backfill:()=>I_,backfillCache:()=>Yc,backup:()=>R_,datasource:()=>d_,email:()=>p_,environmentVariable:()=>w_,group:()=>O_,identification:()=>Bt,initAsyncEvents:()=>R0,installation:()=>ya,layout:()=>h_,license:()=>m_,org:()=>g_,plugin:()=>x_,processors:()=>Em,publishEvent:()=>A,query:()=>y_,role:()=>_a,rowAction:()=>D_,rows:()=>T_,screen:()=>E_,serve:()=>S_,shutdown:()=>w0,table:()=>A_,user:()=>Je,view:()=>__});var Em={};N(Em,{analyticsProcessor:()=>r_,init:()=>qL,processors:()=>yr});var Bc={};N(Bc,{enabled:()=>kc});var kc=async()=>Gc();var KS=require("posthog-node");var OL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",xL=t=>t==="served:app:preview"||t==="served:app";var jS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},HS=async t=>{if(!OL(t))return!1;let e=await RL(t);if(e){let r=new Date(e.timestamp);switch(jS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await QS(t,{timestamp:Date.now()}),!1):!0}}else return await QS(t,{timestamp:Date.now()}),!1},YS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return xL(t)&&(e=e+":"+Le()),e},RL=async t=>{let e=YS(t);return await ii(e)},QS=async(t,e)=>{let r=YS(t),n=jS[t],i;switch(n){case"calendarDay":i=86400}await cr(r,e,i)};var bL=["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"],la=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new KS.PostHog(e)}async processEvent(e,r,n,i){if(bL.includes(e)||await HS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Le();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}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 JS=la;var DL=["installation:version:upgraded","installation:version:downgraded"],CL=["installation","tenant"],da=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new JS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!DL.includes(e)&&!await kc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!CL.includes(e.type)&&!await kc()||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 dm=h.SELF_HOSTED&&!h.isDev(),pa=class{async processEvent(e,r,n){dm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){dm||console.log("[audit] identified",e)}async identifyGroup(e){dm||console.log("[audit] group identified",e)}async shutdown(){}};var ym={};N(ym,{BudibaseQueue:()=>kt,InMemoryQueue:()=>$c,JobQueue:()=>gs,QueuedProcessor:()=>gm,UnretriableError:()=>Wc,shutdown:()=>GL});var zS=W(require("events"));function vL(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var $c=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new zS.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((u,c)=>{r(n,(p,f)=>{p?c(p):u(f)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await gt.wait(100*c),await o(i(),c);throw l}}try{let u=await o(i());this._emitter.emit("completed",n,u);let c=this._messages.indexOf(n);if(c===-1)throw"Failed deleting a processed message";this._messages.splice(c,1)}catch(u){console.error(u),this._emitter.emit("error",n,u)}this._runCount++;let a=n.opts?.jobId?.toString();a&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}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 s=me(),o=()=>{let u={id:s,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{u._isDiscarded=!0}};this._messages.push(u),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",u)},a=n?.delay;return a?setTimeout(o,a):o(),{id:i,finished:()=>new Promise((u,c)=>{let l=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",p),c(m))},p=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",p),u(m))};this._emitter.on("error",l),this._emitter.on("completed",p)})}}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=>vL(e))}async whenCurrentJobsFinished(){do await Mf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},ZS=$c;var mm=W(require("bull"));var gs=(a=>(a.AUTOMATION="automationQueue",a.APP_BACKUP="appBackupQueue",a.AUDIT_LOG="auditLogQueue",a.SYSTEM_EVENT_QUEUE="systemEventQueue",a.APP_MIGRATION="appMigration",a.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",a.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",a))(gs||{});function XS(t,e,r){LL(t,e),r&&NL(t,r)}function NL(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 s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function St(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var PL={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 LL(t,e){let r=PL[e];function n(i,s){let o=i.data.event?.appId;if(o)return rf(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...St(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...St(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...St(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...St(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...St(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...St(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...St(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...St(r,"paused"))}).on("resumed",()=>{console.info(...St(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...St(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...St(r,"drained"))}).on("removed",i=>{console.info(...St(r,"removed",{job:i}))})}var Vc={};N(Vc,{cleanup:()=>UL,clear:()=>fm,set:()=>pm});var fa=[];function pm(t,e){let r=setInterval(t,e);return fa.push(r),r}function fm(t){let e=fa.indexOf(t);e!==-1&&fa.splice(e,1),clearInterval(t)}function UL(){for(let t of fa)clearInterval(t);fa=[]}var gr=W(require("dd-trace")),ma=W(require("object-sizeof")),ML=be.fromMinutes(5).toMs(),FL=be.fromSeconds(30).toMs(),hm=be.fromSeconds(60).toMs(),ha=[],qc;async function e_(){for(let t of ha)await t.clean(hm,"completed"),await t.clean(hm,"failed")}async function kL(t,e,r){let n=performance.now();try{let i=await e();return gr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw gr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;gr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),gr.default.dogstatsd.increment(t,1,r)}}function t_(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}}function BL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ma.default)(t.data),...t_(t.opts||{})}}var kt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:Zn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:ML,lockRenewTime:FL}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new mm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new ZS(this.jobQueue,r):n=new mm.default(this.jobQueue,r),XS(n,this.jobQueue,this.opts.removeStalledCb),ha.push(n),!qc&&!h.isTest()&&(qc=pm(e_,hm),e_().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=async(o,a)=>{await gr.default.trace("queue.process",async u=>{if(o.data._parentSpanContext){let c=o.data._parentSpanContext,l={traceId:c.traceId,spanId:c.spanId,toTraceId:()=>c.traceId,toSpanId:()=>c.spanId,toTraceparent:()=>""};u.addLink(l)}u.addTags({"queue.name":this.jobQueue,...BL(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),gr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,ma.default)(o.data),this.metricTags()),await this.withMetrics("queue.process",()=>a?n(o,a):n(o))})},s;return n.length===1?s=o=>i(o):s=i,r?this.queue.process(r,s):this.queue.process(s)}async add(e,r){return await gr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ma.default)(e),...t_(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},gr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ma.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return kL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function GL(){qc&&fm(qc),console.log("Waiting for current queue jobs to finish...");for(let t of ha)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of ha)await t.close();ha=[],console.log("Queues shutdown")}var Wc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},gm=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new kt(e,{maxStalledCount:o,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:s}}),this._queue.process(async(a,u)=>{try{let c=await this.processFn(a.data);u?.(null,c)}catch(c){c instanceof Wc&&await a.discard(),li(`Failed to process job in ${this._queue.name}`,c),u?.(c)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await gt.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var ys=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new kt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await qe(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=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:s})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Ff(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Le(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ga=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.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 r_=new da,$L=new pa,VL=new ys;function qL(t){return ys.init(t)}var yr=new ga([r_,$L,VL]);var Qc={};N(Qc,{checkInstallVersion:()=>jL,getInstall:()=>Ea,getInstallFromDB:()=>Am});var Tm=W(require("semver"));var Ea=async()=>Wr(Ce.INSTALLATION,86400,Am,{useTenancy:!1});async function WL(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:me(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Am();throw r}}var Am=async()=>ut(Te.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Te.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await WL(t);else throw r}return e}),QL=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await Ea();r.version=t,await e.put(r),await rs(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},jL=async()=>{let t=await Ea(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Tm.default.gt(r,e),i=Tm.default.lt(r,e);await QL(r)&&(await xo({_id:t.installId,type:"installation"},async()=>{n?await ya.upgraded(e,r):i&&await ya.downgraded(e,r)}),await Bt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?li(`Invalid version "${r}" - is it semver?`):li("Failed to retrieve version",n)}};var HL=async()=>{let t=Mp(),e=Sa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=Ta();return{id:n_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await jc(j()),s=Ta();return{id:n_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await jc(j()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=Ta(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},YL=async(t,e)=>{let r=t,n="installation",i=Ta(),s=h.VERSION,o=Sa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Sm(a,e),await Aa({...a,id:`$${n}_${r}`},e)},KL=async(t,e,r)=>{let n=await jc(t),i="tenant",s=await fi(),o=Sa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Sm(a,r),await Aa({...a,id:`$${i}_${n}`},r)},JL=async(t,e,r)=>{let n=t._id,i=await jc(t.tenantId),s="user",o=At(t),a=en(t),u;ja(t)&&(u=t.providerType);let l=(await ps([t.email])).length>0,p=!!e&&l&&e.verified,f=await fi(),m=e?e.hosting:Ta(),d=Sa();await Aa({id:n,type:s,hosting:m,installationId:f,tenantId:i,verified:p,accountHolder:l,providerType:u,builder:o,admin:a,environment:d},r)},zL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Qa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=Sa();if(Wa(t)){let p=await Gt(t.email);p?._id&&(e=p._id)}await Aa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Aa=async(t,e)=>{await yr.identify(t,e)},Sm=async(t,e)=>{await yr.identifyGroup(t,e)},Sa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ta=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>ZL()?"account-portal":(await Ea()).installId,jc=async t=>h.SELF_HOSTED?i_(t):t,i_=async t=>qe(t,()=>Wr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ne(),r=await Hc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),ZL=()=>h.SERVICE==="account-portal",n_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Bt={getCurrentIdentity:HL,identifyInstallationGroup:YL,identifyTenantGroup:KL,identifyUser:JL,identifyAccount:zL,identify:Aa,identifyGroup:Sm,getInstallationId:fi,getUniqueTenantId:i_};var Yc={};N(Yc,{end:()=>eU,isAlreadySent:()=>Om,isBackfillingEvent:()=>Im,recordEvent:()=>_m,start:()=>XL});var XL=async t=>rU({eventWhitelist:t}),_m=async(t,e)=>{let r=xm(t,e);await cr(r,e,void 0,{useTenancy:!1})},eU=async()=>{await nU(),await iU()},tU=async()=>ii(Ce.BACKFILL_METADATA),rU=async t=>cr(Ce.BACKFILL_METADATA,t),nU=async()=>{await qo(Ce.BACKFILL_METADATA)},iU=async()=>{let t=xm(),e=await pc(t);for(let r of e)await qo(r,{useTenancy:!1})},Im=async t=>{let r=(await tU())?.eventWhitelist;return!!(r&&r.includes(t))},Om=async(t,e)=>{let r=xm(t,e);return!!await ii(r,{useTenancy:!1})},sU={"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}`},xm=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=sU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Er;function Kc(){Er=new kt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function s_(){Er&&await Er.close()}async function o_(t){Er||Kc();let{event:e,identity:r}=t;kh.indexOf(e)!==-1&&r.tenantId&&await Er.add(t)}var A=async(t,e,r,n)=>{let i=n||await Bt.getCurrentIdentity();if(!(n?!1:await Im(t))){await o_({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await Om(t,e)||(await yr.processEvent(t,i,e,r),await _m(t,e))};async function oU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function aU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function uU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var a_={created:oU,deleted:aU,verified:uU};async function cU(t,e){await A("action:automation_step:executed",t,e)}async function lU(t,e){await A("action:crud:executed",t,e)}async function dU(t,e){await A("action:ai_agent:executed",t,e)}var u_={aiAgentExecuted:dU,automationStepExecuted:cU,crudExecuted:lU};var pU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function fU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function mU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function hU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function gU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function yU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function EU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function TU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function AU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function SU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function _U(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function IU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var c_={created:pU,updated:fU,deleted:mU,published:hU,unpublished:gU,fileImported:yU,duplicated:EU,templateImported:TU,versionUpdated:AU,versionReverted:SU,reverted:_U,exported:IU};async function OU(t,e){let n={userId:(await Bt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function xU(t){let r={userId:(await Bt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function RU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function wU(t){let e={type:t};await A("auth:sso:updated",e)}async function bU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function DU(t){let e={type:t};await A("auth:sso:deactivated",e)}var Jc={login:OU,logout:xU,SSOCreated:RU,SSOUpdated:wU,SSOActivated:bU,SSODeactivated:DU};async function CU(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)}async function vU(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)}async function NU(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)}async function PU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var LU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function UU(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)}async function MU(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)}var l_={created:CU,triggerUpdated:vU,deleted:NU,tested:PU,run:LU,stepCreated:UU,stepDeleted:MU};function Rm(t){return!Object.values(Ga).includes(t.source)}async function FU(t,e){let r={datasourceId:t._id,source:t.source,custom:Rm(t)};await A("datasource:created",r,e)}async function kU(t){let e={datasourceId:t._id,source:t.source,custom:Rm(t)};await A("datasource:updated",e)}async function BU(t){let e={datasourceId:t._id,source:t.source,custom:Rm(t)};await A("datasource:deleted",e)}var d_={created:FU,updated:kU,deleted:BU};async function GU(t){let e={};await A("email:smtp:created",e,t)}async function $U(){let t={};await A("email:smtp:updated",t)}var p_={SMTPCreated:GU,SMTPUpdated:$U};async function VU(t){let e={};await A("ai:config:created",e,t)}async function qU(){let t={};await A("ai:config:updated",t)}var f_={AIConfigCreated:VU,AIConfigUpdated:qU};async function WU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function QU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function jU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function HU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function YU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function KU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function JU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var m_={planChanged:WU,activated:QU,checkoutOpened:jU,checkoutSuccess:HU,portalOpened:YU,paymentFailed:KU,paymentRecovered:JU};async function zU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function ZU(t){let e={layoutId:t};await A("layout:deleted",e)}var h_={created:zU,deleted:ZU};async function XU(t){let e={};await A("org:info:name:updated",e,t)}async function eM(t){let e={};await A("org:info:logo:updated",e,t)}async function tM(t){let e={};await A("org:platformurl:updated",e,t)}async function rM(){let t={};await A("analytics:opt:out",t)}async function nM(){let t={};await A("analytics:opt:out",t)}var g_={nameUpdated:XU,logoUpdated:eM,platformURLUpdated:tM,analyticsOptOut:rM,analyticsOptIn:nM};var iM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},sM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},oM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},aM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},uM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},cM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},y_={created:iM,updated:sM,deleted:oM,imported:aM,run:uM,previewed:cM};async function lM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function dM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function pM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function fM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function mM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var _a={created:lM,updated:dM,deleted:pM,assigned:fM,unassigned:mM};async function hM(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)}async function gM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var E_={created:hM,deleted:gM};var yM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},EM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},T_={created:yM,imported:EM};async function TM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function AM(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function SM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function _M(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function IM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var A_={created:TM,updated:AM,deleted:SM,exported:_M,imported:IM};async function OM(t){let e={timezone:t};await A("served:builder",e)}async function xM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function RM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var S_={servedBuilder:OM,servedApp:xM,servedAppPreview:RM};async function wM(t,e){let r={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:created",r,e)}async function bM(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:updated",e)}async function DM(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:deleted",e)}async function CM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function vM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function NM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function PM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function LM(t){let e={audited:{email:t}};await A("user:invited",e)}async function UM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function MM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function FM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function kM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function BM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function GM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:wM,updated:bM,deleted:DM,permissionAdminAssigned:CM,permissionAdminRemoved:vM,permissionBuilderAssigned:NM,permissionBuilderRemoved:PM,invited:LM,inviteAccepted:UM,passwordForceReset:MM,passwordUpdated:FM,passwordResetRequested:kM,passwordReset:BM,dataCollaboration:GM};async function $M(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function VM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function qM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function WM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function QM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function jM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function HM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function YM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function KM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function JM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function zM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var __={created:$M,updated:VM,deleted:qM,exported:WM,filterCreated:QM,filterUpdated:jM,filterDeleted:HM,calculationCreated:YM,calculationUpdated:KM,calculationDeleted:JM,viewJoinCreated:zM};async function ZM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function XM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function e0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function t0(){let t={};await A("installation:firstStartup",t)}var ya={versionChecked:ZM,upgraded:XM,downgraded:e0,firstStartup:t0};var As=!h.SELF_HOSTED&&!h.isDev();async function r0(t){As||await A("app:backfill:succeeded",t)}async function n0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function i0(t){As||await A("tenant:backfill:succeeded",t)}async function s0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function o0(){if(As)return;let t={};await A("installation:backfill:succeeded",t)}async function a0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var I_={appSucceeded:r0,appFailed:n0,tenantSucceeded:i0,tenantFailed:s0,installationSucceeded:o0,installationFailed:a0};async function u0(t,e){let r={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function c0(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:updated",e)}async function l0(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function d0(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function p0(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function f0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function m0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var O_={created:u0,updated:c0,deleted:l0,usersAdded:d0,usersDeleted:p0,createdOnboarding:f0,permissionsEdited:m0};async function h0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function g0(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)}async function y0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var x_={init:h0,imported:g0,deleted:y0};async function E0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function T0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var R_={appBackupRestored:E0,appBackupTriggered:T0};async function A0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function S0(t){let e={name:t};await A("environment_variable:deleted",e)}async function _0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var w_={created:A0,deleted:S0,upgradePanelOpened:_0};async function I0(t){let e={filters:t};await A("audit_log:filtered",e)}async function O0(t){let e={filters:t};await A("audit_log:downloaded",e)}var b_={filtered:I0,downloaded:O0};async function x0(t,e){await A("row_action:created",t,e)}var D_={created:x0};function R0(){}var w0=async()=>{await yr.shutdown(),console.log("Events shutdown")};var wm=async t=>{await Je.deleted(t),At(t)&&await Je.permissionBuilderRemoved(t),en(t)&&await Je.permissionAdminRemoved(t)},b0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await _a.assigned(t,i)},D0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await _a.unassigned(t,i)},C0=async(t,e)=>{let r=t.roles,n=e?.roles;await b0(t,r,n),await D0(t,r,n)},bm=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ds(r)),await Bt.identifyUser(t,n),e?(await Je.updated(t),N0(t,e)&&await Je.permissionBuilderRemoved(t),L0(t,e)&&await Je.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Je.passwordForceReset(t),t.password!==e.password&&await Je.passwordUpdated(t)):await Je.created(t),v0(t,e)&&await Je.permissionBuilderAssigned(t),P0(t,e)&&await Je.permissionAdminAssigned(t),await C0(t,e)},v0=(t,e)=>C_(t,e,At),N0=(t,e)=>v_(t,e,At),P0=(t,e)=>C_(t,e,en),L0=(t,e)=>v_(t,e,en),C_=(t,e,r)=>!(!r(t)||e&&r(e)),v_=(t,e,r)=>!(r(t)||!e||!r(e));var zc={};N(zc,{createASession:()=>M0,endSession:()=>F0,getSession:()=>Cm,getSessionsForUser:()=>Ia,invalidateSessions:()=>mi,updateSessionTTL:()=>Dm});var P_=require("uuid");var L_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function Ia(t){return t?(await(await Vr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function mi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Ia(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await Vr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ls(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function M0(t,e){let r=await Ia(t),n=0;if(r.length>=3){let c=r.sort((f,m)=>new Date(f.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,p=c.slice(0,l).map(f=>f.sessionId);n=p.length,await mi(t,{sessionIds:p,reason:"session limit exceeded"})}let i=await Vr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,P_.v4)(),a=Ss(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,L_),{session:u,invalidatedSessionCount:n}}async function Dm(t){let e=await Vr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,L_)}async function F0(t,e){await(await Vr()).delete(Ss(t,e))}async function Cm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Vr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Lm={};N(Lm,{PASSWORD_MAX_LENGTH:()=>Nm,PASSWORD_MIN_LENGTH:()=>vm,validatePassword:()=>Pm});var vm=+(h.PASSWORD_MIN_LENGTH||12),Nm=+(h.PASSWORD_MAX_LENGTH||512);function Pm(t){return!t||t.length<vm?{valid:!1,error:`Password invalid. Minimum ${vm} characters.`}:t.length>Nm?{valid:!1,error:`Password invalid. Maximum ${Nm} characters.`}:{valid:!0}}var k0=async t=>{let e=t._id;await Mt.removeUser(t),await wm(t),await rn.invalidateUser(e),await mi(e,{reason:"bulk-deletion"})},Jt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&Xr(e)?!1:await t.features.isSSOEnforced()||ja(e)?!0:(r||(r=await ds(j())),!!(r&&r.email===e.email&&Qa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let p=Pm(o);if(!p.valid)throw new lt(p.error,400)}u=r.hashPassword?await _f(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||ns();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ne().allDocs(si(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Xc(e,{})).length}}static async getUsersByAppAccess(e){return await Um(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Gt(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await Zc(e)}static async bulkUpdate(e){return await Oa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),i=ne(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await hi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(f){if(f.status!==404)throw f}if(!c&&s&&(c=await Gt(s),c&&c._id!==o))throw new hr(s);let l=1,p=0;if((r.isAccountHolder||c)&&(l=0,p=1),c){let[f,m]=await pi([c,e]);p=f!==m?1:0}return t.quotas.addUsers(l,p,async()=>{r.isAccountHolder||await Mc(s,n);let f=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(f=Mm(f,c)),!c&&u?.length&&(f.roles={...u});let m=[];if(!o&&a.length>0)for(let d of a)m.push(t.groups.addUsers(d,[f._id]));try{let d=await i.put(f);return f._rev=d.rev,await bm(f,c),c&&f.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,f._id,f.email,f.ssoId),await rn.invalidateUser(d.id),await Promise.all(m),i.get(f._id)}catch(d){throw d.status===409?"User exists already":d}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(f=>f.email),u=await cm(a),c=[];for(let f of e){let m=s.find(g=>g.email.toLowerCase()===f.email.toLowerCase()),d=u.includes(f.email.toLowerCase());if(m||d){c.push({email:f.email,reason:"Unavailable"});continue}f.userGroups=r||[],s.push(f),await ca(f)&&o.push(f)}let l=await ds(n),p=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let d of s)p&&delete d.password,i.push(t.buildUser(d,{hashPassword:!0,requirePassword:!p},n,void 0,l));let f=await Promise.all(i);await Oa(f);for(let d of f)await Mt.addUser(n,d._id,d.email),await bm(d,void 0);let m=f.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(m)&&r){let d=[],g=m.map(E=>E._id);for(let E of r)d.push(t.groups.addUsers(E,g));await Promise.all(d)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ne(),n={successful:[],unsuccessful:[]},i=await Fc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await Oa(a),l=(await pi(o)).filter(m=>m).length,p=[];for(let m of o){let g=(await ua(m._id)).ssoId;g&&(await bc(g)).filter(y=>y.ssoId==null).forEach(y=>{p.push({...y,_deleted:!0})}),await k0(m)}await ct().bulkDocs(p),await t.quotas.removeUsers(a.length,l);let f={};return o.reduce((m,d)=>(m[d._id]=d,m),f),u.forEach(m=>{let d=f[m.id].email;m.ok?n.successful.push({_id:m.id,email:d}):n.unsuccessful.push({_id:m.id,email:d,reason:"Database error"})}),n}static async destroy(e){let r=ne(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Zr(o))throw n.userId===ur()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await ca(n)?1:0;await t.quotas.removeUsers(1,s),await wm(n),await rn.invalidateUser(i),await mi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={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&&(s.ssoId=n.ssoId),await rs(Ce.CHECKLIST),await t.save(s,{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 Ra(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Zc(t,e){let n=(await ne().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ra(n)),n}async function G0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function $0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`,include_docs:!0})).rows.map(n=>n.doc)}async function Oa(t){return await ne().bulkDocs(t)}async function hi(t,e){let n=await ne().get(t);return e?.cleanup&&(n=Ra(n)),n}async function Gt(t,e){if(t==null)throw"Must supply an email address to view";let r=await dr("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=Ra(n)),n}async function V0(t){try{let e=await Gt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Xc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=hc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await dr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Ra(s)),s}async function Um(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}return(await ne().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function U_(t,e){if(e)return mc(at(t),e._id)}async function M_(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,s=await dr("by_email2",{...e,startkey:i,endkey:`${n}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Ra(o)),o}var q0=8;async function F_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ne(),s=n??q0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await hi(e.equal._id)]:r?(u=await Xc(r,a),l=p=>U_(r,p)):e?.string?.email?(u=await M_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Zc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(si(null,{...a,limit:void 0}))).rows.map(f=>f.doc),u=Mr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(si(null,a))).rows.map(f=>f.doc),Df(u,s,{paginate:!0,property:c,getKey:l})}async function W0(){return(await Nf("by_email2",{limit:0,include_docs:!1})).total_rows}async function Q0(){let t=0;async function e(r){let n=await F_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function j0(t){return delete t.admin,delete t.builder,t}function Mm(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}async function H0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Jt.save(t,{hashPassword:!1})}async function Y0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Jt.save(t,{hashPassword:!1})}var k_=3600;async function K0(t,e){let n=await Tf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Zr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function J0(t){let e=await Jt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function wa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=K0),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await $o(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,k_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Jt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function z0(t){let e=await $o(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r).filter(o=>!!o),s;if(n.length){let o=await J0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,k_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function ba(t){await(await $o()).delete(t)}var Gm={};N(Gm,{Writethrough:()=>km});var B_=1e4,Fm=null;async function el(){if(!Fm){let t=await yf();Fm=new ti(t)}return Fm}function Da(t,e){return t.name+e}function Bm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function Z0(t,e,r=B_){let n=await el(),i=e._id,s;i&&(s=await n.get(Da(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await us({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let p=await t.put(l,{force:!0});a._id=p.id,a._rev=p.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;ls("Ignoring conflict in write-through cache")}})).executed||ls("Ignoring redlock conflict in write-through cache")),s=Bm(a,o?null:s?.lastWrite),a._id&&await n.store(Da(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function X0(t,e){let r=await el(),n=Da(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Bm(s),await r.store(n,i)}return i.doc}async function eF(t,e){let r=await el(),n=Da(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Bm(s),await r.store(n,i)}return i.doc}async function tF(t,e,r){let n=await el();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(Da(t,i))}finally{await t.remove(i,r)}}var km=class{constructor(e,r=B_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return Z0(this.db,e,r)}async get(e){return X0(this.db,e)}async tryGet(e){return eF(this.db,e)}async remove(e,r){return tF(this.db,e,r)}};var $m={};N($m,{createCode:()=>nF,getCode:()=>iF,invalidateCode:()=>sF});var rF=be.fromHours(1).toSeconds();async function nF(t,e){let r=me();return await(await Vo()).store(r,{userId:t,info:e},rF),r}async function iF(t){let r=await(await Vo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function sF(t){await(await Vo()).delete(t)}var qm={};N(qm,{DocWritethrough:()=>Vm,DocWritethroughProcessor:()=>Ca,getProcessor:()=>aF,init:()=>G_});var oF=100,tl,Ca=class t{static get queue(){return t._queue||(t._queue=new kt("docWritethroughQueue",{jobOptions:{attempts:oF}})),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=Ve(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Vm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ca.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function G_(){return tl=new Ca().init(),tl}function aF(){return tl||G_()}function rl(t){return`config${v}${t}`}async function $t(t){let e=ne();try{return await e.get(rl(t))}catch(r){if(r.status===404)return;throw r}}async function uF(t){return t._id||(t._id=rl(t.type)),ne().put(t)}async function Hc(){let t=await $t("settings");return t||(t={_id:rl("settings"),type:"settings",config:{}}),t.config.platformUrl=await va({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Gc({config:t.config}),t}async function jm(){return(await Hc()).config}async function va(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await $t("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Gc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Wr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await $t("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function cF(){return await $t("google")}async function nl(){return(await cF())?.config}async function Hm(){if(!h.SELF_HOSTED)return Wm();let t=await nl();return(!t||!t.activated)&&(t=Wm()),t}function Wm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function lF(){return $t("logos_oidc")}async function dF(){return $t("oidc")}async function pF(){let t=(await dF())?.config;return t?.configs&&t.configs[0]}async function Ym(t){let e=(await $t("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function $_(){return $t("smtp")}async function fF(t){let e=await $_();if(e)return e.config;let r=h.SELF_HOSTED||!t;if(h.SMTP_FALLBACK_ENABLED&&r)return{port:h.SMTP_PORT,host:h.SMTP_HOST,secure:!1,from:h.SMTP_FROM_ADDRESS,auth:{user:h.SMTP_USER,pass:h.SMTP_PASSWORD},fallback:!0}}async function mF(){return(await $t("scim"))?.config}async function hF(){return $t("ai")}var ih={};N(ih,{AccessController:()=>zm,BUILTIN_ROLE_IDS:()=>Zm,Role:()=>nn,RoleHierarchyTraversal:()=>il,RoleIDVersion:()=>Xm,builtinRoleToNumber:()=>Na,checkForRoleResourceArray:()=>Q_,externalRole:()=>SF,findRole:()=>Pa,getAllRoleIds:()=>xF,getAllRoles:()=>nh,getBuiltinRole:()=>q_,getBuiltinRoles:()=>th,getDBRoleID:()=>j_,getExternalRoleID:()=>sn,getExternalRoleIDs:()=>H_,getRole:()=>_F,getUserRoleHierarchy:()=>rh,getUserRoleIdHierarchy:()=>W_,isBuiltin:()=>gi,lowerBuiltinRoleID:()=>AF,prefixRoleIDNoBuiltin:()=>Jm,roleIDsAreEqual:()=>_t,roleToNumber:()=>TF,saveRoles:()=>IF,validInherits:()=>EF});var Km=W(require("semver"));var sl=W(require("lodash/fp/cloneDeep"));var V_=require("lodash");var Zm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...Zm,BUILDER:"BUILDER"},Xm={UUID:void 0,NAME:"name"};function yF(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var nn=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Xm.NAME}addInheritance(e){return e&&typeof e=="string"?e=Jm(e):e&&Array.isArray(e)&&(e=e.map(Jm)),this.inherits=e,this}},il=class{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 s of e.inherits){let o=Pa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!yF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Pa(o.inherits,n,r),o&&i.push(o),gt.roles.checkForRoleInheritanceLoops(i))break}}return(0,V_.uniqBy)(i,s=>s._id)}},eh={ADMIN:new nn(he.ADMIN,he.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(he.POWER),POWER:new nn(he.POWER,he.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(he.BASIC),BASIC:new nn(he.BASIC,he.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(he.PUBLIC),PUBLIC:new nn(he.PUBLIC,he.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new nn(he.BUILDER,he.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function th(){return(0,sl.default)(eh)}function gi(t){return Object.values(Zm).includes(t)}function Jm(t){return gi(t)?t:lr(t)}function q_(t){let e=Object.values(eh).find(r=>t.includes(r._id));if(e)return(0,sl.default)(e)}function EF(t,e){if(!e)return!1;let r=n=>t.find(i=>_t(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function Na(t){let e=th(),r=Object.values(e).length+1;if(_t(t,he.ADMIN)||_t(t,he.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}async function TF(t){if(gi(t))return Na(t);let e=await rh(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>_t(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(gi(n.inherits))return Na(n.inherits)+1;return 0};return Math.max(...e.map(r))}function AF(t,e){return t?e&&Na(t)>Na(e)?e:t:e}function _t(t,e){return lr(t)===lr(e)}function SF(t){let e;return t._id&&(e=sn(t._id)),{...t,_id:e,inherits:H_(t.inherits,t.version)}}function Pa(t,e,r){let n=q_(t);n||(t=lr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!gi(t)&&r?.defaultPublic?(0,sl.default)(eh.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=sn(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function _F(t,e){let r=es(),n=[];if(!gi(t)){let i=await r.tryGet(j_(t));i&&n.push(i)}return Pa(t,n,e)}async function IF(t){await es().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function OF(t,e){let r=await nh();if(_t(t,he.ADMIN))return r;let n=Pa(t,r,e),i=[];return n&&(i=new il(r,e).walk(n)),i}async function W_(t){return(await rh(t)).map(r=>r._id)}async function rh(t,e){return OF(t,e)}function Q_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}async function xF(t){return(await nh(t)).map(r=>r._id)}async function nh(t){if(t)return ut(t,e);{let r;try{r=es()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(gc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=sn(a._id,a.version)));let i=th(),s=[];!r||await RF(r)?s=[he.ADMIN,he.POWER,he.BASIC,he.PUBLIC]:s=[he.ADMIN,he.BASIC,he.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>_t(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=sn(a._id,u.version),n.push({...a,...u,name:a.name,_id:sn(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=Q_(o.permissions,a);return n}}async function RF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Km.default.valid(r)?!0:!Km.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var zm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,he.BUILDER)||_t(r,e)||_t(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await W_(r),this.userHierarchies[r]=n),n?.find(i=>_t(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let s=await this.checkScreenAccess(i,r);s&&n.push(s)}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 j_(t){return t?.startsWith("role")?t:lr(t)}function sn(t,e){if(t.startsWith(`role${v}`)&&(gi(t)||e===Xm.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function H_(t,e){return t&&(typeof t=="string"?sn(t,e):t.map(r=>sn(r,e)))}var sh={};N(sh,{BUILDER:()=>vF,BUILTIN_PERMISSIONS:()=>ol,CREATOR:()=>NF,GLOBAL_BUILDER:()=>PF,PermissionImpl:()=>ge,PermissionLevel:()=>Rs,PermissionType:()=>qa,doesHaveBasePermission:()=>DF,getAllowedLevels:()=>z_,getBuiltinPermissionByID:()=>bF,getBuiltinPermissions:()=>wF,isPermissionLevelHigherThanRead:()=>CF,levelToNumber:()=>J_});var Y_=W(require("lodash/flatten")),K_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function J_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function z_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var ol={PUBLIC:{_id:"public",name:"Public",permissions:[new ge("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new ge("query","read"),new ge("table","read"),new ge("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new ge("query","write"),new ge("table","write"),new ge("automation","execute"),new ge("legacy_view","read"),new ge("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new ge("table","write"),new ge("user","read"),new ge("automation","execute"),new ge("webhook","read"),new ge("legacy_view","read"),new ge("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new ge("table","admin"),new ge("user","admin"),new ge("automation","admin"),new ge("webhook","read"),new ge("query","admin"),new ge("legacy_view","read"),new ge("app","read")]}};function wF(){return(0,K_.default)(ol)}function bF(t){return Object.values(ol).find(r=>r._id===t)}function DF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(ol),s=(0,Y_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&z_(o.level).indexOf(e)!==-1)return!0;return!1}function CF(t){return J_(t)>1}var vF="builder",NF="creator",PF="globalBuilder";var uh={};N(uh,{FlagSet:()=>ul,all:()=>FF,flags:()=>oh,getEnvFlags:()=>tI,init:()=>LF,isEnabled:()=>MF,parseEnvFlags:()=>ll,shutdown:()=>UF,testutils:()=>ah});var cl=W(require("crypto"));var Z_=require("posthog-node"),X_=W(require("dd-trace"));var eI=require("lodash");var al;function LF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),al=new Z_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:be.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function UF(){al?.shutdown()}function ll(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}function tI(){return ll(h.TENANT_FEATURE_FLAGS||"")}var ul=class{constructor(e){this.flagSchema=e;this.setId=cl.randomUUID()}defaults(){return(0,eI.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await X_.default.trace("features.fetch",async e=>{let r=af(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:p,key:f,value:m}of tI())if(!(!p||p!=="*"&&p!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(f),!!this.isFlagName(f))){if(typeof i[f]!="boolean")throw new Error(`Feature: ${f} is not a boolean`);i[f]=m,n[`flags.${f}.source`]="environment"}let a=ur(),u=a?._id;if(!u){let p=sf();p&&(u=cl.createHash("sha512").update(p).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,al&&u){n.readFromPostHog=!0;let p={tenantId:c},f=await al.getAllFlags(u,{personProperties:p,onlyEvaluateLocally:!0});for(let[m,d]of Object.entries(f))if(this.isFlagName(m)){if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${d}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=d,n[`flags.${m}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${m}": ${d}`,g)}}}let l=cf();for(let[p,f]of Object.entries(l))this.isFlagName(p)&&typeof f=="boolean"&&(i[p]=f,n[`flags.${p}.source`]="override");uf(this.setId,i);for(let[p,f]of Object.entries(i))n[`flags.${p}.value`]=f;return e?.addTags(n),i})}},oh=new ul(qh);async function MF(t){return await oh.isEnabled(t)}async function FF(){return await oh.fetch()}var ah={};N(ah,{setFeatureFlags:()=>rI,withFeatureFlags:()=>GF});function kF(){let t={};for(let{tenantId:e,key:r,value:n}of ll(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function BF(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function rI(t,e){let r=kF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=BF(r);return wo({TENANT_FEATURE_FLAGS:n})}function GF(t,e,r){let n=rI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Ah={};N(Ah,{adminOnly:()=>Sl,auditLog:()=>yl,authError:()=>Me,buildAuthMiddleware:()=>bk,buildCsrfMiddleware:()=>Ck,buildTenancyMiddleware:()=>Dk,builderOnly:()=>Il,builderOrAdmin:()=>_l,google:()=>Tr,internalApi:()=>Tl,joiValidator:()=>Ua,oidc:()=>Ar,passport:()=>vk,platformLogout:()=>Mk,refreshOAuthToken:()=>Lk,ssoCallbackUrl:()=>on,updateUserOAuth:()=>Uk});var Th={};N(Th,{adminOnly:()=>Sl,auditLog:()=>yl,authError:()=>Me,authenticated:()=>gl,builderOnly:()=>Il,builderOrAdmin:()=>_l,correlation:()=>gI,csp:()=>_I,csrf:()=>Al,datasource:()=>Rk,errorHandling:()=>EI,featureFlagCookie:()=>II,google:()=>Tr,internalApi:()=>Tl,ip:()=>xI,joiValidator:()=>Ua,local:()=>_s,oidc:()=>Ar,pino:()=>mI,querystringToBody:()=>TI,ssoCallbackUrl:()=>on,tenancy:()=>El});var _s={};N(_s,{authenticate:()=>qF,options:()=>VF});function Me(t,e,r){return t(r,null,{message:e})}async function on(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await jm(),n="/api/global/auth";return $r()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var ch="Invalid credentials",$F="This account has expired. Please reset your password",VF={passReqToCallback:!0};async function qF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Gt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,ch)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,ch)):i.password?await If(r,i.password)?(delete i.password,n(null,i)):Me(n,ch):(console.info(`user=${e} has no password set`,i),Me(n,$F))}var Tr={};N(Tr,{buildVerifyFn:()=>sI,getCallbackUrl:()=>jF,strategyFactory:()=>lh});var La=t=>Promise.resolve(t);async function dl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=ns(t.userId),s;try{s=await hi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Gt(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:j()});let o=await WF(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Me(r,"Error saving user",a)}return r(null,o)}async function WF(t,e){let r,n,i;if(e.profile){let s=e.profile;if(s.name){let o=s.name;o.givenName&&(r=o.givenName),o.familyName&&(n=o.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}var QF=require("passport-google-oauth").OAuth2Strategy;function sI(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return dl(s,!0,i,t)}}async function lh(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 s=sI(r);return new QF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function jF(t){return on("google",t)}var Ar={};N(Ar,{buildVerifyFn:()=>aI,fetchStrategyConfig:()=>JF,getCallbackUrl:()=>zF,strategyFactory:()=>KF});var oI=W(require("node-fetch"));var HF=require("@techpass/passport-openidconnect").Strategy;function aI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:YF(n,i),oauth2:{accessToken:s,refreshToken:o}};return dl(l,!1,c,t)}}function YF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&kf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function KF(t,e){try{let r=aI(e),n=new HF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function JF(t,e){try{let{clientID:r,clientSecret:n,configUrl:i}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let s=await(0,oI.default)(i);if(!s.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${s.statusText}`);let o=await s.json();return{issuer:o.issuer,authorizationURL:o.authorization_endpoint,tokenURL:o.token_endpoint,userInfoURL:o.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function zF(){return on("oidc")}var dh={};N(dh,{postAuth:()=>ek,preAuth:()=>XF});var ZF=require("passport-google-oauth").OAuth2Strategy;async function uI(){let t=await Hm();if(!t)throw new Error("No google configuration found");return t}async function XF(t,e,r){let n=await uI(),s=`${await va({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await lh(n,s,La);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function ek(t,e,r){let n=await uI(),s=`${await va({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=fr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new ZF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Hr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=me();await cr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var tk=/\/:(.*?)(\/.*)?$/g,yi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(tk);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],Ei=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var yh={};N(yh,{SecretOption:()=>dI,decrypt:()=>gh,decryptFile:()=>ak,encrypt:()=>ik,encryptFile:()=>sk,getSecret:()=>hh});var Sr=W(require("crypto")),an=W(require("fs")),fh=W(require("zlib"));var ph=require("path"),pl="aes-256-ctr",lI="-",rk=1e4,nk=32,fl=16,mh=16,dI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(dI||{});function hh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function ml(t,e){return Sr.default.pbkdf2Sync(t,e,rk,nk,"sha512")}function ik(t,e="api"){let r=Sr.default.randomBytes(fl),n=ml(hh(e),r),i=Sr.default.createCipheriv(pl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${lI}${a}`}function gh(t,e="api"){let[r,n]=t.split(lI),i=Buffer.from(r,"hex"),s=ml(hh(e),i),o=Sr.default.createDecipheriv(pl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function sk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,ph.join)(t,e);if(an.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=an.default.createReadStream(i),o=an.default.createWriteStream((0,ph.join)(t,n)),a=Sr.default.randomBytes(fl),u=Sr.default.randomBytes(mh),c=ml(r,a),l=Sr.default.createCipheriv(pl,c,u);return o.write(a),o.write(u),s.pipe(fh.default.createGzip()).pipe(l).pipe(o),new Promise(p=>{o.on("finish",()=>{p({filename:n,dir:t})})})}async function ok(t){let e=an.default.createReadStream(t),r=await cI(e,fl),n=await cI(e,mh);return e.close(),{salt:r,iv:n}}async function ak(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ok(t),s=an.default.createReadStream(t,{start:fl+mh}),o=an.default.createWriteStream(e),a=ml(r,n),u=Sr.default.createDecipheriv(pl,a,i),c=fh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,p)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",f=>{o.close(),p(f)}),u.on("error",f=>{o.close(),p(f)}),c.on("error",f=>{o.close(),p(f)}),o.on("error",f=>{o.close(),p(f)})})}function cI(t,e){return new Promise((r,n)=>{let i=0,s=[];t.on("readable",()=>{let o;for(;(o=t.read(e-i))!==null;)s.push(o),i+=o.length;r(Buffer.concat(s))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var fI=W(require("dd-trace")),uk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ck(){return new Date(Date.now()-uk).toISOString()}function pI(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}async function lk(t,e){if(Xo(t))return{valid:!0,user:void 0};let n=gh(t).split(v)[0];return qe(n,async()=>{let i;try{let s=ne();i=await dr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await wa({userId:i,tenantId:n,populateUser:e})};throw new ms})}function hl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function gl(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=hl(n,"x-budibase-api-version");Ei(n,r)&&(s=!0);try{let u=hl(n,"x-budibase-token"),c=fr(n,"budibase:auth")||Ec(u),l=hl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let p=hl(n,"x-budibase-tenant-id"),f=!1,m,d=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,O;try{O=await Cm(S,y),e&&e.populateUser?m=await wa({userId:S,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):m=await wa({userId:S,tenantId:O.tenantId,email:O.email}),m.csrfToken=O.csrfToken,g="cookie",O?.lastAccessedAt<ck()&&await Dm(O),f=!0}catch(R){f=!1,console.error(`Auth Error: ${R.message}`),Hr(n,"budibase:auth")}}if(!f&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:O}=await lk(l,y);S&&(f=!0,g="api_key",m=O,d=!O)}!m&&p?m={tenantId:p}:m&&"password"in m&&delete m.password,f||(f=!1);let E=y=>y&&y.email;return E(m)&&fI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),pI(n,{authenticated:f,user:m,internal:d,version:o,publicEndpoint:s,loginMethod:g}),E(m)?kp(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Hr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return pI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var dk=async(t,e)=>e(),yl=dk;function El(t,e,r={noTenancyRequired:!1}){let n=yi(t),i=yi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ei(s,i)};!!Ei(s,n)||(u.excludeStrategies=["query"]);let l=Qo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var Tl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Xo(r)||t.throw(403,"Unauthorized"),e()};var pk=["GET","HEAD","OPTIONS"],fk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Al(t={noCsrfPatterns:[]}){let e=yi(t.noCsrfPatterns);return async(r,n)=>{if(Ei(r,e)||pk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!fk.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Sl=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var _l=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?At:h.isApps()?hs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Xr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var Il=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?At:h.isApps()?hs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var mk=require("koa-pino-logger"),hk=require("correlation-id");function gk(){return{logger:wc,genReqId:hk.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})}}}function yk(){return h.HTTP_LOGGING?mk(gk()):(t,e)=>e()}var Ek=yk(),mI=Ek;var hI=require("uuid"),Tk=require("correlation-id"),Ak=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,hI.v4)()),Tk.withId(r,()=>e())},gI=Ak;function yI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of jT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Sk(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:Pc(r)};if(yI(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var EI=Sk;function TI(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()}var SI=W(require("crypto"));var AI={"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"],"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'"]},_k=/^[A-Za-z0-9-*:/.]+$/,Ik=async(t,e)=>{let r=SI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...AI};if(n["script-src"]=[...AI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Ho.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
+ `).filter(c=>_k.test(c));n["default-src"]=[...n["default-src"],...u]}}catch(o){console.error(`Error occurred in Content-Security-Policy middleware: ${o}`)}let s=Object.entries(n).map(([o,a])=>`${o} ${a.join(" ")}`).join("; ");t.set("Content-Security-Policy",s),await e()},_I=Ik;var II=async(t,e)=>{let n=fr(t,"budibase:featureflags")?.flags||{};await lf(n,async()=>{await e()})};var Ua={};N(Ua,{body:()=>Ok,params:()=>xk});var Eh=W(require("joi"));function OI(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:Eh.default.any().optional(),updatedAt:Eh.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function Ok(t,e){return OI(t,"body",e)}function xk(t,e){return OI(t,"params",e)}var xI=async(t,e)=>t.ip?await of(t.ip,()=>e()):e();var Rk={google:dh};var RI=require("koa-passport"),wk=require("passport-local").Strategy,Ol=require("passport-oauth2-refresh"),bk=gl,Dk=El,Ck=Al,vk=RI;RI.use(new wk(_s.options,_s.authenticate));async function Nk(t,e){let r=await Ar.getCallbackUrl(),n,i;try{if(n=await Ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Ar.strategyFactory(n,La)}catch{throw new Error("Could not refresh OAuth Token")}return Ol.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Ol.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Pk(t,e){let r=await Tr.getCallbackUrl(t),n;try{n=await Tr.strategyFactory(t,r,La)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Ol.use(n),new Promise(i=>{Ol.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Lk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Ym(r);return n?Nk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await nl();return n?Pk(n,t):{err:{data:"Google configuration not found"}}}}}async function Uk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ne(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await ba(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Mk(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=fr(e,"budibase:auth"),s=await Ia(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Hr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await Jc.logout(e.user?.email),await ba(r)}var _h={};N(_h,{validate:()=>$k});var D=W(require("joi")),Fk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Sh(t,e){let{error:r}=t.validate(e);if(r)throw r}function kk(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});Sh(e,t)}function Bk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Cl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(Dl)),readable:D.default.boolean(),displayName:D.default.string(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(vl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...Fk),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});Sh(n,t)}function Gk(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(ee)).required(),customType:D.default.string().allow(...Object.values(pe)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...Wh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});Sh(n,t)}function $k(t){switch(t?.type){case"component":kk(t);break;case"datasource":Bk(t);break;case"automation":Gk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Ih={};N(Ih,{Client:()=>We,clients:()=>qr,locks:()=>ui,utils:()=>uc});var Oh={};N(Oh,{isBlacklisted:()=>qk,refreshBlacklist:()=>CI});var wI=W(require("dns")),Rl=W(require("net"));var bI=require("util"),xl,Vk=(0,bI.promisify)(wI.default.lookup);async function DI(t){return Rl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Vk(t,{all:!0})).map(r=>r.address)}async function CI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Rl.default.isIP(i))r.push(i);else{let s=await DI(i);r=r.concat(s)}}xl=r}async function qk(t){if(xl||await CI(),xl?.length===0)return!1;let e;return Rl.default.isIP(t)?e=[t]:e=await DI(t),!!xl?.find(r=>e.includes(r))}var Rh={};N(Rh,{init:()=>Qk});var Wk={"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};function vI(t,e){let r=Wk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ma=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=vI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await qe(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return s_()}};var NI,xh;function Qk(t){Er||Kc(),xh||(xh=new Ma(t)),NI||(NI=Er.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await xh.processEvent(r,n,i)}))}var Uh={};N(Uh,{COUNT_FIELD_NAME:()=>Ph,Sql:()=>$I,SqlTable:()=>wl,designDoc:()=>Lh,utils:()=>Xp});var MI=require("knex");var jk=require("knex");function wh(t){return["link","formula","ai"].indexOf(t)!==-1}function PI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(f=>f.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(f=>f.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(f=>f.foreignKey);for(let[f,m]of Object.entries(e.schema)){let d=n?.schema[f];if(d&&d.type||c.includes(f)||i?.updated===f)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(f)?t.string(f,255):t.text(f);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:E,toTable:y}=m.meta;t.integer(f).unsigned(),t.foreign(f).references(`${y}.${E}`)}else l.indexOf(f)===-1&&t.float(f);break;case"bigint":t.bigint(f);break;case"boolean":t.boolean(f);break;case"datetime":m.timeOnly?t.time(f):t.datetime(f,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":gt.schema.isDeprecatedSingleUserColumn(m)?t.text(f):t.json(f);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Yp(m.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],O=y.schema[S].externalType;O?t.specificType(m.foreignKey,O):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(f);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:vi.unreachable(g)}}let p=i?n?.schema[i.old].type:void 0;return i&&p&&!wh(p)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,d])=>!wh(d.type)&&e.schema[m]==null).forEach(([m,d])=>{i?.old===m||wh(d.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function Yk(t,e,r){return t.createTable(e.name,n=>{PI(n,e,r)})}function Kk(t,e,r,n,i){return t.alterTable(e.name,s=>{PI(s,e,r,n,i)})}function Jk(t,e){return t.dropTable(e.name)}var bh=class{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,jk.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=Yk(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=Kk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=zi(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=Jk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return zi(n)}},wl=bh;var FI=require("lodash"),Ph="__bb_total";function LI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Dh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function zk(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function kI(t){return Array.isArray(t)?t.map(e=>kI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function UI(t){return t.sourceType==="internal"||t.sourceId===kl}function Zk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function BI(t,e='"'){return`${e}${Zk(t,e)}${e}`}function Ch(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=BI(t[r],e));return`[${t.join(",")}]`}function GI(t){return Hh.includes(t.type)&&!gt.schema.isDeprecatedSingleUserColumn(t)}var Xk={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},vh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={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 Mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}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(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}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(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}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(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&GI(r)&&typeof e=="object")return JSON.stringify(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"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!zp(e))return null}else if(r.dateOnly){let n=Jp(e);return n?new Date(n):null}else return r.ignoreTimezones?ic(e)?new Date(e):Kp(e)?new Date(e+"Z"):null:ic(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),s=this.table.schema[i];s&&(e[r]=this.parse(n,s))}return e}parseFilters(e){e=(0,FI.cloneDeep)(e);for(let r of Object.values(Ir)){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:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(zt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(dn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}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:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=p=>n.match(new RegExp(`^${p}\\.`));if(!s)return e;for(let p of s){let f=p.tableName,m=a?.[f]||f,d=l(f)||l(m),g=l(p.column);if((d||g)&&p.to&&p.tableName){let E=this.knex.select(this.knex.raw(1)).from({[m]:f}),y=E.clone(),S=Zp(p),O;if(d?O=n:O=n.replace(new RegExp(`^${p.column}.`),`${a?.[p.tableName]||p.tableName}.`),S){let R=a?.[S.through]||p.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${m}.${S.toPrimary}`,"=",`${R}.${S.to}`)}).where(`${R}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(_=>{_.whereExists(i(O,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${m}.${p.to}`,T=`${c}.${p.from}`;y=y.where(R,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(O,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(d){return s?.[d]||d}function l(d,g,E,y){let S=(O,R,T)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return O.andWhere(de=>E(de,k?`${k}.${b}`:b,T))};for(let O in d){let R=d[O],T=Zo(O),_=T.includes("."),B=n?.relationship&&_,b;if(O==="_complexIdOperator"&&(b=d[O])&&y){let k=c(u);e=y(e,b.id.map(de=>k?`${k}.${de}`:de),b.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Xk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let p=(d,g,E)=>((r?.fuzzyOr||o)&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):d.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),f=(d,g=!1)=>{function E(y){return(o||d===r?.containsAny)&&(y=y.or),d===r?.notContains&&(y=y.not),y}this.client==="pg"?l(d,"contains",(y,S,O)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ch(O,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ch(O))]))):this.client==="mysql2"||this.client==="mariadb"?l(d,"contains",(y,S,O)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(BI(Ch(O)))])):l(d,"contains",(y,S,O)=>(O.length===0||(y=y.where(R=>(d===r?.notContains&&(R=R.not),R=R.where(T=>{for(let _ of O){d===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${B}%`)}}),d===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),y))};if(r.$and){let{$and:d}=r;for(let g of d.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:d}=r;e=e.where(g=>{for(let E of d.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(d,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(d=d.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let O of S)O!=null?d=d.or.whereLike(g,`${O.toISOString().slice(0,10)}%`):d=d.or.whereNull(g);return d}return d.whereIn(g,S)},(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),d.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(d,g,E)=>{if(o&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3")return d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]);{let y=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(y)?d.whereRaw(`??::text ilike '${E}%'`,[this.knex.raw(this.quote(y.name))]):d.whereILike(g,`${E}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",p),r.range&&l(r.range,"range",(d,g,E)=>{let y=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=sc(E.low),O=sc(E.high),R=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(d=d.or),S&&O?d.whereBetween(T,[B,_]):S?d.where(T,">=",B):O?d.where(T,"<=",_):d}),r.equal&&l(r.equal,"equal",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.whereLike(g,`${E.toISOString().slice(0,10)}%`):d.whereNull(g):d.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):d.not.whereNull(g):d.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(d,g)=>(o&&(d=d.or),d.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(d,g)=>(o&&(d=d.or),d.whereNotNull(g))),r.contains&&f(r.contains),r.notContains&&f(r.notContains),r.containsAny&&f(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!Hp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Or(r.documentType)}%`),e}isSqs(){return UI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;UI(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 ${Ph}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.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,s=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[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let p=`${s}.${a}`,f;this.isAggregateField(a)?f=this.rawQuotedIdentifier(a):this.client==="oracledb"?f=this.convertClobs(p):f=this.rawQuotedIdentifier(p),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[f,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}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(`${s}.${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],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let p of n){let{tableName:f,through:m,to:d,from:g,fromPrimary:E,toPrimary:y}=p;if(!f||!r)continue;let S=c[f];if(!S)throw new Error(`related table "${f}" not found in datasource`);let O=a?.[f]||f,R=a?.[r]||r,T=m&&a?.[m]||m,_=this.tableNameWithSchema(f,{alias:O,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=zk(l.filter(V=>V.split(".")[0]===O),B);b=b.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=b.map(V=>this.buildJsonField(S,V));if(!k.length)continue;let de=k.map(V=>{let ue=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ue}??`,[V[0],V[1]]).toString()}).join(","),un=`${O}.${y||d}`,$=s.from(_).orderBy(un),F=m&&y&&E,I=F?`${T}.${g}`:`${O}.${d}`,q=F?`${R}.${E}`:`${R}.${g}`;if(F){let V=this.tableNameWithSchema(m,{alias:T,schema:u});$=$.join(V,function(){this.on(`${O}.${y}`,"=",`${T}.${d}`)})}$=$.where(this.rawQuotedIdentifier(I),"=",this.rawQuotedIdentifier(q));let U=V=>($=$.select(b.map(ue=>this.rawQuotedIdentifier(ue))).limit(Dh()),s.select(V).from({[O]:$})),K;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,p),K=U(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":K=U(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":K=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${Dh()})`));break;case"mysql2":case"oracledb":K=U(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ue=>s.ref(ue[1]).as(ue[0]))).limit(Dh())});K=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[p.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,p=i?.[a]||a,f=this.tableNameWithSchema(o,{alias:c,schema:s}),m=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(m,function(){for(let d of n){let g=d.fromPrimary,E=d.from;this.orOn(`${p}.${g}`,"=",`${l}.${E}`)}}).leftJoin(f,function(){for(let d of n){let g=d.toPrimary,E=d.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(f,function(){for(let d of n){let g=d.from,E=d.to;this.orOn(`${p}.${g}`,"=",`${c}.${E}`)}}),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[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];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:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let m=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=m}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let p=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):p.length>0?u=this.addAggregations(u,p):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&p.length===0){let f=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[f]:"paginated"}));return this.addJsonRelationships(m,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).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())}},Nh=class extends wl{constructor(r,n=LI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=zi(r);return i==="sqlite3"&&(s=kI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,MI.knex)(s),a,u=new vh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:LI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.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(a,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=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let p=[];for(let f of a)p.push(await n(f,o));return p}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let p;s==="mssql"?p=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(p=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(p,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===kl){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let s=this.getTableName(r,i);for(let[o,a]of Object.entries(r.schema)){if(!GI(a))continue;let u=`${s}.${o}`;for(let c of n)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return n}log(r,n){vo(this.getSqlClient(),r,n)}},$I=Nh;var Lh={};N(Lh,{base:()=>eB});function eB(t){return{_id:Yt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Mh=class{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,s=this.controller,o=this.outputMiddlewares,a=()=>{},u=[n,...i,s,...o,a];e[r](...u)}},bl=Mh;var VI=W(require("@koa/router")),Fa=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}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(),s=new bl(e,r,i);if(n.length!==0)for(let o of n)s.addMiddleware(o);return this.endpoints.push(s),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 VI.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 tB={...jo,...Se},rB=(t={})=>{rc(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,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,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,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