@budibase/backend-core 3.13.11 → 3.13.13
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 +11 -11
- package/dist/index.js.map +4 -4
- package/dist/package.json +2 -2
- package/dist/src/queue/constants.d.ts +2 -1
- package/dist/src/queue/constants.js +1 -0
- package/dist/src/queue/constants.js.map +1 -1
- package/dist/src/queue/inMemoryQueue.d.ts +5 -7
- package/dist/src/queue/inMemoryQueue.js +62 -18
- package/dist/src/queue/inMemoryQueue.js.map +1 -1
- package/dist/src/queue/index.d.ts +1 -0
- package/dist/src/queue/index.js +1 -0
- package/dist/src/queue/index.js.map +1 -1
- package/dist/src/queue/listeners.js +2 -0
- package/dist/src/queue/listeners.js.map +1 -1
- package/dist/src/queue/queue.d.ts +5 -4
- package/dist/src/queue/queue.js +21 -7
- package/dist/src/queue/queue.js.map +1 -1
- package/dist/src/queue/queuedProcessor.d.ts +25 -0
- package/dist/src/queue/queuedProcessor.js +104 -0
- package/dist/src/queue/queuedProcessor.js.map +1 -0
- package/dist/tests/queue/queuedProcessor.spec.d.ts +1 -0
- package/dist/tests/queue/queuedProcessor.spec.js +103 -0
- package/dist/tests/queue/queuedProcessor.spec.js.map +1 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";var FI=Object.create;var Fa=Object.defineProperty;var kI=Object.getOwnPropertyDescriptor;var BI=Object.getOwnPropertyNames;var GI=Object.getPrototypeOf,$I=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Fa(t,r,{get:e[r],enumerable:!0})},Nh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of BI(e))!$I.call(t,i)&&i!==r&&Fa(t,i,{get:()=>e[i],enumerable:!(n=kI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?FI(GI(t)):{},Nh(e||!t||!t.__esModule?Fa(r,"default",{value:t,enumerable:!0}):r,t)),VI=t=>Nh(Fa({},"__esModule",{value:!0}),t);var sg=H((Vl,ql)=>{"use strict";(function(t,e){typeof Vl=="object"&&typeof ql<"u"?ql.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Vl,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",m="year",p="date",f="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:m,w:u,d:a,D:p,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()!==f},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,Ei="set"+(this.$u?"UTC":"");switch(V){case m: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,_s=(ve<cn?ve+7:ve)-cn;return ue(Y?Q-_s:Q+(6-_s),Fe);case a:case p:return xe(Ei+"Hours",0);case o:return xe(Ei+"Minutes",1);case s:return xe(Ei+"Seconds",2);case i:return xe(Ei+"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[p]=V+"Date",L[c]=V+"Month",L[m]=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===m){var ve=this.clone().set(p,1);ve.$d[ue](xe),ve.init(),this.$d=ve.set(p,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===m)return this.set(m,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||f;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,Ei=L.meridiem,cn=function(Qe,_r,Is,Ma){return Qe&&(Qe[_r]||Qe(q,Y))||Is[_r].slice(0,Ma)},_s=function(Qe){return k.s(ue%12||12,Qe,"0")},ln=Ei||function(Qe,_r,Is){var Ma=Qe<12?"AM":"PM";return Is?Ma.toLowerCase():Ma};return Y.replace(g,function(Qe,_r){return _r||function(Is){switch(Is){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 _s(1);case"hh":return _s(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 m: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",m],["$D",p]].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 Ot=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var hx=t=>new iu(t);He.valid=hx;var gx=t=>new su(t);He.err=gx;var iu=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=iu;var su=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=su});var xt=H(cg=>{"use strict";Object.defineProperty(cg,"__esModule",{value:!0})});var Cr=H(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Vt();var oe=Ot();xt();var yx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Ex=["sun","mon","tue","wed","thu","fri","sat"],Tx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ns=(t,e,r)=>{if(e==="months"&&r.useAliases&&yx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Ex.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)},Ax=(t,e,r)=>{if(t==="*")return Tx(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):Ns(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):Ns(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."):Ns(n,e,r)}return Ns(t,e,r)},lg=(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):Ns(t,e,r),Sx=(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 Ax(n[0],e,r);if(n.length===2){let i=lg(n[0],e,r,0),s=lg(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)")},_x=(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=Sx(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)},Ix=(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(_x(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)};Hl.default=Ix});var dg=H(Ps=>{"use strict";var Ox=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Vt();var xx=Ot(),Rx=Ox(Cr());xt();var wx=(t,e)=>{if(!t.seconds)return(0,xx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Rx.default)(r,"seconds",e)};Ps.default=wx});var pg=H(Us=>{"use strict";var bx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Vt();var Dx=Ot(),Cx=bx(Cr());xt();var vx=(t,e)=>{if(!t.minutes)return(0,Dx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Cx.default)(r,"minutes",e)};Us.default=vx});var fg=H(Ls=>{"use strict";var Nx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Vt();var Px=Ot(),Ux=Nx(Cr());xt();var Lx=(t,e)=>{if(!t.hours)return(0,Px.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Ux.default)(r,"hours",e)};Ls.default=Lx});var mg=H(Fs=>{"use strict";var Mx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Ms=Ot(),Fx=Mx(Cr());xt();var kx=(t,e)=>{if(!t.daysOfMonth)return(0,Ms.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ms.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ms.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ms.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ms.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Fx.default)(r,"daysOfMonth",e)};Fs.default=kx});var hg=H(ks=>{"use strict";var Bx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var Gx=Ot(),$x=Bx(Cr());xt();var Vx=(t,e)=>{if(!t.months)return(0,Gx.err)(["months field is undefined."]);let{months:r}=t;return(0,$x.default)(r,"months",e)};ks.default=Vx});var gg=H(Gs=>{"use strict";var qx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=Ot(),Wx=qx(Cr());xt();var Qx=(t,e)=>{if(!t.daysOfWeek)return(0,Bs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Bs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Bs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Wx.default)(r,"daysOfWeek",e)};Gs.default=Qx});var yg=H($s=>{"use strict";var jx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var Hx=Ot(),Kx=jx(Cr());xt();var Yx=(t,e)=>{if(!t.years)return(0,Hx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Kx.default)(r,"years",e)};$s.default=Yx});var Sg=H((mQ,Ag)=>{"use strict";var Kl;try{Kl=Map}catch{}var Yl;try{Yl=Set}catch{}function Eg(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(Tg);if(Kl&&t instanceof Kl)return new Map(Array.from(t.entries()));if(Yl&&t instanceof Yl)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]:Eg(t[i],e,r)}return n}return t}function Tg(t){return Eg(t,[],[])}Ag.exports=Tg});var Vs=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.default=rR;var Jx=Object.prototype.toString,zx=Error.prototype.toString,Zx=RegExp.prototype.toString,Xx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",eR=/^Symbol\((.*)\)(.*)$/;function tR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function _g(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return tR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Xx.call(t).replace(eR,"Symbol($1)");let n=Jx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+zx.call(t)+"]":n==="RegExp"?Zx.call(t):null}function rR(t,e){let r=_g(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=_g(this[n],e);return s!==null?s:i},2)}});var er=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 Ig=nR(Vs());function nR(t){return t&&t.__esModule?t:{default:t}}var Og={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,Ig.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Ig.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=Og;var xg={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=xg;var Rg={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=Rg;var wg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=wg;var bg={isValue:"${path} field must be ${value}"};Ne.boolean=bg;var Dg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=Dg;var Cg={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=Cg;var iR=Object.assign(Object.create(null),{mixed:Og,string:xg,number:Rg,date:wg,object:Dg,array:Cg,boolean:bg});Ne.default=iR});var vi=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var sR=t=>t&&t.__isYupSchema__;ou.default=sR});var Ng=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var oR=vg(require("lodash/has")),aR=vg(vi());function vg(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,oR.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,aR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},uR=zl;au.default=uR});var Xl=H(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=cR;function cR(t){return t==null?[]:[].concat(t)}});var Dn=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var lR=Pg(Vs()),dR=Pg(Xl());function Pg(t){return t&&t.__esModule?t:{default:t}}function ed(){return ed=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},ed.apply(this,arguments)}var pR=/\$\{\s*(\w+)\s*\}/g,td=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ed({},r,{path:n})),typeof e=="string"?e.replace(pR,(i,s)=>(0,lR.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,dR.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)}};uu.default=td});var cu=H(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=hR;var rd=fR(Dn());function fR(t){return t&&t.__esModule?t:{default:t}}var mR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function hR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=mR(e),l=n.length,m=[];if(o=o||[],!l)return o.length?c(new rd.default(o,s,u)):c(null,s);for(let p=0;p<n.length;p++){let f=n[p];f(i,function(g){if(g){if(!rd.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);m.push(g)}if(--l<=0){if(m.length&&(a&&m.sort(a),o.length&&m.push(...o),o=m),o.length){c(new rd.default(o,s,u),s);return}c(null,s)}})}}});var qs=H((_Q,kg)=>{"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 gR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Fg=/^\d+$/,yR=/^\d/,ER=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,TR=/^\s*(['"]?)(.*?)(\1)\s*$/,od=512,Ug=new Cn(od),Lg=new Cn(od),Mg=new Cn(od);kg.exports={Cache:Cn,split:sd,normalizePath:id,setter:function(t){var e=id(t);return Lg.get(t)||Lg.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=id(t);return Mg.get(t)||Mg.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+(ad(r)||Fg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){AR(Array.isArray(t)?t:sd(t),e,r)}};function id(t){return Ug.get(t)||Ug.set(t,sd(t).map(function(e){return e.replace(TR,"$2")}))}function sd(t){return t.match(gR)||[""]}function AR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(IR(i)&&(i='"'+i+'"'),a=ad(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ad(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function SR(t){return t.match(yR)&&!t.match(Fg)}function _R(t){return ER.test(t)}function IR(t){return!ad(t)&&(SR(t)||_R(t))}});var vn=H(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=xR;Qs.default=void 0;var OR=qs(),lu={context:"$",value:"."};function xR(t,e){return new Ws(t,e)}var Ws=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]===lu.context,this.isValue=this.key[0]===lu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?lu.context:this.isValue?lu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,OR.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}};Qs.default=Ws;Ws.prototype.__isYupRef=!0});var Bg=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=DR;var RR=ud(require("lodash/mapValues")),du=ud(Dn()),wR=ud(vn());function ud(t){return t&&t.__esModule?t:{default:t}}function pu(){return pu=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},pu.apply(this,arguments)}function bR(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 DR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=bR(r,["value","path","label","options","originalValue","sync"]),{name:m,test:p,params:f,message:d}=t,{parent:g,context:E}=a;function y(_){return wR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,RR.default)(pu({value:i,originalValue:u,label:o,path:_.path||s},f,_.params),y),b=new du.default(du.default.formatError(_.message||d,B),i,B.path,_.type||m);return b.params=B,b}let O=pu({path:s,parent:g,type:m,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(p.call(O,i,O)).then(_=>{du.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=p.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}du.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var ld=H(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Gg;js.default=void 0;var CR=qs(),vR=t=>t.substr(0,t.length-1).substr(1);function Gg(t,e,r,n=r){let i,s,o;return e?((0,CR.forEach)(e,(a,u,c)=>{let l=u?vR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let m=c?parseInt(l,10):0;if(r&&m>=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[m],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 NR=(t,e,r,n)=>Gg(t,e,r,n).schema,PR=NR;js.default=PR});var Vg=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var $g=UR(vn());function UR(t){return t&&t.__esModule?t:{default:t}}var dd=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){$g.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){$g.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}};fu.default=dd});var rr=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var qg=tr(Sg()),Ni=er(),LR=tr(Ng()),Wg=tr(cu()),mu=tr(Bg()),Qg=tr(Vs()),MR=tr(vn()),FR=ld(),kR=tr(Xl()),jg=tr(Dn()),Hg=tr(Vg());function tr(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 Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Hg.default,this._blacklist=new Hg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.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,Qg.default)(e),o=(0,Qg.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 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}".
|
|
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 m={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,Wg.default)({args:m,value:l,path:s,sync:i,tests:p,endEarly:c},f=>{if(f)return void n(f,l);(0,Wg.default)({tests:this.tests,args:m,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(jg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(jg.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=Ni.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ni.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=Ni.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,mu.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,kR.default)(e).map(s=>new MR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new LR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,mu.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=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,mu.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=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,mu.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)}}};hu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,FR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var Yg=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Kg;Hs.default=void 0;var BR=GR(rr());function GR(t){return t&&t.__esModule?t:{default:t}}var pd=BR.default,$R=pd;Hs.default=$R;function Kg(){return new pd}Kg.prototype=pd.prototype});var Pi=H(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var VR=t=>t==null;gu.default=VR});var ey=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Xg;Ys.default=void 0;var qR=Zg(rr()),Jg=er(),zg=Zg(Pi());function Zg(t){return t&&t.__esModule?t:{default:t}}function Xg(){return new Ks}var Ks=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=Jg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,zg.default)(r)||r===!0}})}isFalse(e=Jg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,zg.default)(r)||r===!1}})}};Ys.default=Ks;Xg.prototype=Ks.prototype});var ny=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=ry;zs.default=void 0;var qt=er(),nr=ty(Pi()),WR=ty(rr());function ty(t){return t&&t.__esModule?t:{default:t}}var QR=/^((([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,jR=/^((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,HR=/^(?:[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,KR=t=>(0,nr.default)(t)||t===t.trim(),YR={}.toString();function ry(){return new Js}var Js=class extends WR.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===YR?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,nr.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,nr.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,nr.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,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(QR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(jR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(HR,{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:KR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};zs.default=Js;ry.prototype=Js.prototype});var oy=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=sy;Xs.default=void 0;var Nn=er(),Pn=iy(Pi()),JR=iy(rr());function iy(t){return t&&t.__esModule?t:{default:t}}var zR=t=>t!=+t;function sy(){return new Zs}var Zs=class extends JR.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"&&!zR(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))}};Xs.default=Zs;sy.prototype=Zs.prototype});var ay=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=XR;var ZR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function XR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=ZR.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 ly=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=hd;eo.default=void 0;var ew=yu(ay()),uy=er(),cy=yu(Pi()),tw=yu(vn()),rw=yu(rr());function yu(t){return t&&t.__esModule?t:{default:t}}var md=new Date(""),nw=t=>Object.prototype.toString.call(t)==="[object Date]";function hd(){return new Ui}var Ui=class extends rw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,ew.default)(e),isNaN(e)?md:new Date(e))})})}_typeCheck(e){return nw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(tw.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=uy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,cy.default)(i)||i>=this.resolve(n)}})}max(e,r=uy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,cy.default)(i)||i<=this.resolve(n)}})}};eo.default=Ui;Ui.INVALID_DATE=md;hd.prototype=Ui.prototype;hd.INVALID_DATE=md});var py=H((LQ,gd)=>{"use strict";gd.exports=function(t){return dy(iw(t),t)};gd.exports.array=dy;function dy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=sw(e),a=ow(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,m){if(m.has(c)){var p;try{p=", node was:"+JSON.stringify(c)}catch{p=""}throw new Error("Cyclic dependency"+p)}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 f=o.get(c)||new Set;if(f=Array.from(f),l=f.length){m.add(c);do{var d=f[--l];u(d,a.get(d),m)}while(l);m.delete(c)}n[--r]=c}}}function iw(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 sw(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 ow(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var fy=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=pw;var aw=Eu(require("lodash/has")),uw=Eu(py()),cw=qs(),lw=Eu(vn()),dw=Eu(vi());function Eu(t){return t&&t.__esModule?t:{default:t}}function pw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,cw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,aw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),lw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,dw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return uw.default.array(n,r).reverse()}});var hy=H(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.default=fw;function my(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 fw(t){return(e,r)=>my(t,e)-my(t,r)}});var _y=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Sy;ro.default=void 0;var gy=Wt(require("lodash/has")),yy=Wt(require("lodash/snakeCase")),mw=Wt(require("lodash/camelCase")),hw=Wt(require("lodash/mapKeys")),gw=Wt(require("lodash/mapValues")),yw=qs(),Ey=er(),Ew=Wt(fy()),Ay=Wt(hy()),Tw=Wt(cu()),Aw=Wt(Dn()),Td=Wt(rr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Li(){return Li=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},Li.apply(this,arguments)}var Ty=t=>Object.prototype.toString.call(t)==="[object Object]";function Sw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var _w=(0,Ay.default)([]),to=class extends Td.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=_w,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 Ty(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(m=>this._nodes.indexOf(m)===-1)),u={},c=Li({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let m of a){let p=s[m],f=(0,gy.default)(i,m);if(p){let d,g=i[m];c.path=(r.path?`${r.path}.`:"")+m,p=p.resolve({value:g,context:r.context,parent:u});let E="spec"in p?p.spec:void 0,y=E?.strict;if(E?.strip){l=l||m in i;continue}d=!r.__validating||!y?p.cast(i[m],c):i[m],d!==void 0&&(u[m]=d)}else f&&!o&&(u[m]=i[m]);u[m]!==i[m]&&(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,m)=>{if(l){if(!Aw.default.isError(l)||u)return void n(l,m);i.push(l)}if(!c||!Ty(m)){n(i[0]||null,m);return}a=a||m;let p=this._nodes.map(f=>(d,g)=>{let E=f.indexOf(".")===-1?(r.path?`${r.path}.`:"")+f:`${r.path||""}["${f}"]`,y=this.fields[f];if(y&&"validate"in y){y.validate(m[f],Li({},r,{path:E,from:o,strict:!0,parent:m,originalValue:a[f]}),g);return}g(null)});(0,Tw.default)({sync:s,tests:p,value:m,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Li({},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 Td.default&&s instanceof Td.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,Ay.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,Ew.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,yw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,gy.default)(s,e)&&(o=Li({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Ey.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=Sw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Ey.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,hw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(mw.default)}snakeCase(){return this.transformKeys(yy.default)}constantCase(){return this.transformKeys(e=>(0,yy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,gw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function Sy(t){return new to(t)}Sy.prototype=to.prototype});var Oy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Iy;io.default=void 0;var Ad=Mi(Pi()),Iw=Mi(vi()),Ow=Mi(Vs()),Sd=er(),xw=Mi(cu()),Rw=Mi(Dn()),ww=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=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},Tu.apply(this,arguments)}function Iy(t){return new no(t)}var no=class extends ww.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,Tu({},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,m=(s=r.recursive)!=null?s:this.spec.recursive,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(f,d)=>{if(f){if(!Rw.default.isError(f)||l)return void n(f,d);o.push(f)}if(!m||!c||!this._typeCheck(d)){n(o[0]||null,d);return}p=p||d;let g=new Array(d.length);for(let E=0;E<d.length;E++){let y=d[E],S=`${r.path||""}[${E}]`,O=Tu({},r,{path:S,strict:!0,parent:d,index:E,originalValue:p[E]});g[E]=(R,T)=>c.validate(y,O,T)}(0,xw.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,Iw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Ow.default)(e));return r.innerType=e,r}length(e,r=Sd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Ad.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Sd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ad.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Sd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ad.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)}};io.default=no;Iy.prototype=no.prototype});var xy=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Cw;so.default=void 0;var bw=Dw(vi());function Dw(t){return t&&t.__esModule?t:{default:t}}function Cw(t){return new Au(t)}var Au=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,bw.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)}},vw=Au;so.default=vw});var Ry=H(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.default=Uw;var Nw=Pw(er());function Pw(t){return t&&t.__esModule?t:{default:t}}function Uw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Nw.default[e][r]=t[e][r]})})}});var Od=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=$w;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Id.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return Cy.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return vy.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return vy.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return Ny.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return Ny.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return Lw.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Mw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return Fw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return kw.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return Py.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Bw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return Gw.default}});var wy=Un(Yg()),Id=Un(ey()),by=Un(ny()),Dy=Un(oy()),Cy=Un(ly()),vy=Un(_y()),Ny=Un(Oy()),Lw=vn(),Mw=xy(),Fw=oo(Dn()),kw=oo(ld()),Py=oo(vi()),Bw=oo(Ry()),Gw=oo(rr());function oo(t){return t&&t.__esModule?t:{default:t}}function Uy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Uy=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=Uy();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 $w(t,e,r){if(!t||!(0,Py.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 Ly=H(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});var xd=wd();Rd.default=()=>{(0,xd.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,xd.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,xd.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 wd=H(Pe=>{"use strict";var Vw=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}),Ww=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)&&Vw(e,t,r);return qw(e,t),e},Qw=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=Ww(Od());Od();var ao=Ot(),jw=Qw(Ly());xt();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}}},My=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(),Hw=t=>Ln[t]?(0,ao.valid)(Ln[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Hw;var Kw=()=>Ln;Pe.getOptionPresets=Kw;var Yw=(t,e)=>{Ln[t]=My.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Yw;var Jw=t=>{var e,r,n,i,s,o,a,u,c,l,m,p,f,d,g,E,y,S,O,R;try{(0,jw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Ln[t.preset])return(0,ao.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:(m=T.hours.lowerLimit)!==null&&m!==void 0?m:T.hours.minValue,upperLimit:(p=T.hours.upperLimit)!==null&&p!==void 0?p:T.hours.maxValue},daysOfMonth:{lowerLimit:(f=T.daysOfMonth.lowerLimit)!==null&&f!==void 0?f: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:My.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,ao.valid)(b)}catch(T){return(0,ao.err)(T.errors)}};Pe.validateOptions=Jw});var Vt=H((uo,Dd)=>{"use strict";var Fn=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var Mn=Ot(),zw=Fn(dg()),Zw=Fn(pg()),Xw=Fn(fg()),eb=Fn(mg()),tb=Fn(hg()),rb=Fn(gg()),nb=Fn(yg()),ib=wd();xt();var sb=(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)},bd=(t,e={})=>{let r=(0,ib.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=sb(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,zw.default)(s,n)),o.push((0,Zw.default)(s,n)),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)),n.useYears&&o.push((0,nb.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)};uo.default=bd;Dd.exports=bd;Dd.exports.default=bd});var oT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},kd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Bd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Gd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends sr{},wu=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends sr{},Qt=class extends sr{constructor(){super("Zone is an abstract class")}},C="numeric",Dt="short",nt="long",bu={year:C,month:C,day:C},uE={year:C,month:Dt,day:C},ob={year:C,month:Dt,day:C,weekday:Dt},cE={year:C,month:nt,day:C},lE={year:C,month:nt,day:C,weekday:nt},dE={hour:C,minute:C},pE={hour:C,minute:C,second:C},fE={hour:C,minute:C,second:C,timeZoneName:Dt},mE={hour:C,minute:C,second:C,timeZoneName:nt},hE={hour:C,minute:C,hourCycle:"h23"},gE={hour:C,minute:C,second:C,hourCycle:"h23"},yE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Dt},EE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},TE={year:C,month:C,day:C,hour:C,minute:C},AE={year:C,month:C,day:C,hour:C,minute:C,second:C},SE={year:C,month:Dt,day:C,hour:C,minute:C},_E={year:C,month:Dt,day:C,hour:C,minute:C,second:C},ab={year:C,month:Dt,day:C,weekday:Dt,hour:C,minute:C},IE={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Dt},OE={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Dt},xE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},RE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,timeZoneName:nt},Ur=class{get type(){throw new Qt}get name(){throw new Qt}get ianaName(){return this.name}get isUniversal(){throw new Qt}offsetName(e,r){throw new Qt}formatOffset(e,r){throw new Qt}offset(e){throw new Qt}equals(e){throw new Qt}get isValid(){throw new Qt}},Cd=null,go=class t extends Ur{static get instance(){return Cd===null&&(Cd=new t),Cd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return bE(e,r,n)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},xu={};function ub(t){return xu[t]||(xu[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"})),xu[t]}var cb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function lb(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 db(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=cb[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var Su={},or=class t extends Ur{static create(e){return Su[e]||(Su[e]=new t(e)),Su[e]}static resetCache(){Su={},xu={}}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 bE(e,r,n,this.name)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=ub(this.name),[i,s,o,a,u,c,l]=n.formatToParts?db(n,r):lb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let p=Zd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),f=+r,d=f%1e3;return f-=d>=0?d:1e3+d,(p-f)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Fy={};function pb(t,e={}){let r=JSON.stringify([t,e]),n=Fy[r];return n||(n=new Intl.ListFormat(t,e),Fy[r]=n),n}var $d={};function Vd(t,e={}){let r=JSON.stringify([t,e]),n=$d[r];return n||(n=new Intl.DateTimeFormat(t,e),$d[r]=n),n}var qd={};function fb(t,e={}){let r=JSON.stringify([t,e]),n=qd[r];return n||(n=new Intl.NumberFormat(t,e),qd[r]=n),n}var Wd={};function mb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Wd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Wd[i]=s),s}var fo=null;function hb(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function gb(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=Vd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Vd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function yb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Eb(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function Tb(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 _u(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Ab(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 Qd=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=fb(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)}}},jd=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&&or.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=Vd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Hd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&wE()&&(this.rtf=mb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Mb(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":hb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,$d={},qd={},Wd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=gb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=yb(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=Ab(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 _u(this,e,n,vE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Eb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return _u(this,e,n,UE,()=>{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]=Tb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return _u(this,void 0,e,()=>LE,()=>{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 _u(this,e,r,ME,()=>{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 Qd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new jd(e,this.intl,r)}relFormatter(e={}){return new Hd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return pb(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}},vd=null,it=class t extends Ur{static get utcInstance(){return vd===null&&(vd=new t(0)),vd}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(Uu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ho(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ho(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ho(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}},Du=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(Sb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||or.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Du(t)}var ky=()=>Date.now(),By="system",Gy=null,$y=null,Vy=null,qy=60,Wy,Ee=class{static get now(){return ky}static set now(e){ky=e}static set defaultZone(e){By=e}static get defaultZone(){return Pr(By,go.instance)}static get defaultLocale(){return Gy}static set defaultLocale(e){Gy=e}static get defaultNumberingSystem(){return $y}static set defaultNumberingSystem(e){$y=e}static get defaultOutputCalendar(){return Vy}static set defaultOutputCalendar(e){Vy=e}static get twoDigitCutoffYear(){return qy}static set twoDigitCutoffYear(e){qy=e%100}static get throwOnInvalid(){return Wy}static set throwOnInvalid(e){Wy=e}static resetCaches(){_e.resetCache(),or.resetCache()}};function ae(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Pu(t){return typeof t=="number"&&t%1===0}function Sb(t){return typeof t=="string"}function _b(t){return Object.prototype.toString.call(t)==="[object Date]"}function wE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Ib(t){return Array.isArray(t)?t:[t]}function Qy(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 Ob(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return Pu(t)&&t>=e&&t<=r}function xb(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 Jd(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 yo(t){return t%4===0&&(t%100!==0||t%400===0)}function mo(t){return yo(t)?366:365}function Cu(t,e){let r=xb(e-1,12)+1,n=t+(e-r)/12;return r===2?yo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Zd(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 vu(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 Kd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function bE(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 Uu(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 DE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ke(`Invalid unit value ${t}`);return e}function Nu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=DE(i)}return r}function ho(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 Lu(t){return Ob(t,["hour","minute","second","millisecond"])}var Rb=["January","February","March","April","May","June","July","August","September","October","November","December"],CE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wb=["J","F","M","A","M","J","J","A","S","O","N","D"];function vE(t){switch(t){case"narrow":return[...wb];case"short":return[...CE];case"long":return[...Rb];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 NE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],PE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],bb=["M","T","W","T","F","S","S"];function UE(t){switch(t){case"narrow":return[...bb];case"short":return[...PE];case"long":return[...NE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var LE=["AM","PM"],Db=["Before Christ","Anno Domini"],Cb=["BC","AD"],vb=["B","A"];function ME(t){switch(t){case"narrow":return[...vb];case"short":return[...Cb];case"long":return[...Db];default:return null}}function Nb(t){return LE[t.hour<12?0:1]}function Pb(t,e){return UE(e)[t.weekday-1]}function Ub(t,e){return vE(e)[t.month-1]}function Lb(t,e){return ME(e)[t.year<0?0:1]}function Mb(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 m=t==="days";switch(e){case 1:return m?"tomorrow":`next ${i[t][0]}`;case-1:return m?"yesterday":`last ${i[t][0]}`;case 0:return m?"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 jy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Fb={D:bu,DD:uE,DDD:cE,DDDD:lE,t:dE,tt:pE,ttt:fE,tttt:mE,T:hE,TT:gE,TTT:yE,TTTT:EE,f:TE,ff:SE,fff:IE,ffff:xE,F:AE,FF:_E,FFF:OE,FFFF:RE},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 Fb[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=(f,d)=>this.loc.extract(e,f,d),o=f=>e.isOffsetFixed&&e.offset===0&&f.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,f.format):"",a=()=>n?Nb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(f,d)=>n?Ub(e,f):s(d?{month:f}:{month:f,day:"numeric"},"month"),c=(f,d)=>n?Pb(e,f):s(d?{weekday:f}:{weekday:f,month:"long",day:"numeric"},"weekday"),l=f=>{let d=t.macroTokenToFormatOpts(f);return d?this.formatWithSystemDefault(e,d):f},m=f=>n?Lb(e,f):s({era:f},"era"),p=f=>{switch(f){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 m("short");case"GG":return m("long");case"GGGGG":return m("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(f)}};return jy(t.parseFormat(r),p)}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 jy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},FE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Vi(...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 qi(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 kE(...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 BE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,kb=`(?:${BE.source}?(?:\\[(${FE.source})\\])?)?`,Xd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,GE=RegExp(`${Xd.source}${kb}`),ep=RegExp(`(?:T${GE.source})?`),Bb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Gb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,$b=/(\d{4})-?(\d{3})/,Vb=kE("weekYear","weekNumber","weekDay"),qb=kE("year","ordinal"),Wb=/(\d{4})-(\d\d)-(\d\d)/,$E=RegExp(`${Xd.source} ?(?:${BE.source}|(${FE.source}))?`),Qb=RegExp(`(?: ${$E.source})?`);function Bi(t,e,r){let n=t[e];return ae(n)?r:Nr(n)}function jb(t,e){return[{year:Bi(t,e),month:Bi(t,e+1,1),day:Bi(t,e+2,1)},null,e+3]}function Wi(t,e){return[{hours:Bi(t,e,0),minutes:Bi(t,e+1,0),seconds:Bi(t,e+2,0),milliseconds:Jd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Uu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var Hb=RegExp(`^T?${Xd.source}$`),Kb=/^-?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 Yb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",m=u&&u[0]==="-",p=(f,d=!1)=>f!==void 0&&(d||f&&l)?-f:f;return[{years:p(kn(r)),months:p(kn(n)),weeks:p(kn(i)),days:p(kn(s)),hours:p(kn(o)),minutes:p(kn(a)),seconds:p(kn(u),u==="-0"),milliseconds:p(Jd(c),m)}]}var Jb={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 tp(t,e,r,n,i,s,o){let a={year:e.length===2?Kd(Nr(e)):Nr(e),month:CE.indexOf(r)+1,day:Nr(n),hour:Nr(i),minute:Nr(s)};return o&&(a.second=Nr(o)),t&&(a.weekday=t.length>3?NE.indexOf(t)+1:PE.indexOf(t)+1),a}var zb=/^(?:(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 Zb(t){let[,e,r,n,i,s,o,a,u,c,l,m]=t,p=tp(e,i,n,r,s,o,a),f;return u?f=Jb[u]:c?f=0:f=Uu(l,m),[p,new it(f)]}function Xb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var eD=/^(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$/,tD=/^(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$/,rD=/^(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 Hy(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,i,n,r,s,o,a),it.utcInstance]}function nD(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,a,r,n,i,s,o),it.utcInstance]}var iD=$i(Bb,ep),sD=$i(Gb,ep),oD=$i($b,ep),aD=$i(GE),VE=Vi(jb,Wi,Eo,To),uD=Vi(Vb,Wi,Eo,To),cD=Vi(qb,Wi,Eo,To),lD=Vi(Wi,Eo,To);function dD(t){return qi(t,[iD,VE],[sD,uD],[oD,cD],[aD,lD])}function pD(t){return qi(Xb(t),[zb,Zb])}function fD(t){return qi(t,[eD,Hy],[tD,Hy],[rD,nD])}function mD(t){return qi(t,[Kb,Yb])}var hD=Vi(Wi);function gD(t){return qi(t,[Hb,hD])}var yD=$i(Wb,Qb),ED=$i($E),TD=Vi(Wi,Eo,To);function AD(t){return qi(t,[yD,VE],[ED,TD])}var SD="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}},_D={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,Fi=146097/4800,ID={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:Fi/7,days:Fi,hours:Fi*24,minutes:Fi*24*60,seconds:Fi*24*60*60,milliseconds:Fi*24*60*60*1e3},...qE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],OD=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 xD(t){return t<0?Math.floor(t):Math.ceil(t)}function WE(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?xD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function RD(t,e){OD.reduce((r,n)=>ae(e[n])?r:(r&&WE(t,e,r,e,n),n),null)}function wD(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?ID:_D;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:Nu(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]=mD(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]=gD(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 Gd(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 wu(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):SD}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)(Gi(r.values,i)||Gi(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]=DE(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,...Nu(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 RD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=wD(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)&&WE(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}},ki="Invalid Interval";function bD(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 Bd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=bD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=po(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=po(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(po).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()})`:ki}toLocaleString(e=bu,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):ki}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:ki}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:ki}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:ki}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:ki}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 or.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:wE()}}};function Ky(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 DD(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=Ky(u,c);return(l-l%7)/7}],["days",Ky]],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 CD(t,e,r,n){let[i,s,o,a]=DD(t,e,r),u=e-i,c=r.filter(m=>["hours","minutes","seconds","milliseconds"].indexOf(m)>=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 rp={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"},Yy={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]},vD=rp.hanidec.replace(/[\[|\]]/g,"").split("");function ND(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(rp.hanidec)!==-1)e+=vD.indexOf(t[r]);else for(let i in Yy){let[s,o]=Yy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${rp[t||"latn"]}${e}`)}var PD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(ND(r))}}var UD=String.fromCharCode(160),QE=`[ ${UD}]`,jE=new RegExp(QE,"g");function LD(t){return t.replace(/\./g,"\\.?").replace(jE,QE)}function Jy(t){return t.replace(/\./g,"").replace(jE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(LD).join("|")),deser:([r])=>t.findIndex(n=>Jy(r)===Jy(n))+e}}function zy(t,e){return{regex:t,deser:([,r,n])=>Uu(r,n),groups:e}}function Nd(t){return{regex:t,deser:([e])=>e}}function MD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function FD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),m=wt(e,"{2,4}"),p=wt(e,"{4,6}"),f=E=>({regex:RegExp(MD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return f(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(m,Kd);case"yyyy":return le(s);case"yyyyy":return le(p);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(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 Nd(l);case"uu":return Nd(a);case"uuu":return le(r);case"a":return bt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(m,Kd);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return zy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return zy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Nd(/[a-z_+-/]{1,256}?/i);default:return f(E)}})(t)||{invalidReason:PD};return g.token=t,g}var kD={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 BD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=kD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function GD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function $D(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Gi(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 VD(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=or.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=Jd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Pd=null;function qD(){return Pd||(Pd=Ie.fromMillis(1555555555555)),Pd}function WD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=YE(r,e);return n==null||n.includes(void 0)?t:n}function HE(t,e){return Array.prototype.concat(...t.map(r=>WD(r,e)))}function KE(t,e,r){let n=HE(tt.parseFormat(r),t),i=n.map(o=>FD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=GD(i),u=RegExp(o,"i"),[c,l]=$D(e,u,a),[m,p,f]=l?VD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(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:m,zone:p,specificOffset:f}}}function QD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=KE(t,e,r);return[n,i,s,o]}function YE(t,e){return t?tt.create(e,t).formatDateTimeParts(qD()).map(i=>BD(i,t)):null}var JE=[0,31,59,90,120,151,181,212,243,273,304,334],zE=[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 ZE(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 XE(t,e,r){return r+(yo(t)?zE:JE)[e-1]}function eT(t,e){let r=yo(t)?zE:JE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Yd(t){let{year:e,month:r,day:n}=t,i=XE(e,r,n),s=ZE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=vu(a)):o>vu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function Zy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=ZE(e,1,4),s=mo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=mo(a)):o>s?(a=e+1,o-=mo(e)):a=e;let{month:u,day:c}=eT(a,o);return{year:a,month:u,day:c,...Lu(t)}}function Ud(t){let{year:e,month:r,day:n}=t,i=XE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Xy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=eT(e,r);return{year:e,month:n,day:i,...Lu(t)}}function jD(t){let e=Pu(t.weekYear),r=ir(t.weekNumber,1,vu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function HD(t){let e=Pu(t.year),r=ir(t.ordinal,1,mo(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function tT(t){let e=Pu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Cu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function rT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=ir(e,0,23)||e===24&&r===0&&n===0&&i===0,o=ir(r,0,59),a=ir(n,0,59),u=ir(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Ld="Invalid DateTime",eE=864e13;function Iu(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Md(t){return t.weekData===null&&(t.weekData=Yd(t.c)),t.weekData}function co(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 nT(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 tE(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 Ru(t,e,r){return nT(Zd(t),e,r)}function rE(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,Cu(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=Zd(s),[u,c]=nT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function lo(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 Ou(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Fd(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 nE(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 iT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},KD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},YD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},sT=["year","month","day","hour","minute","second","millisecond"],JD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],zD=["year","ordinal","hour","minute","second","millisecond"];function iE(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 wu(t);return e}function sE(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 sT)ae(t[c])&&(t[c]=iT[c]);let a=tT(t)||rT(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=Ru(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function oE(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 aE(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:Iu(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=tE(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]=aE(arguments),[n,i,s,o,a,u,c]=r;return sE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=aE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,sE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=_b(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(Iu(i))}static fromMillis(e,r={}){if(Vn(e))return e<-eE||e>eE?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(Iu(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Nu(e,iE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,m=o.weekYear||o.weekNumber,p=_e.fromObject(r);if((l||a)&&m)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 f=m||o.weekday&&!l,d,g,E=tE(i,s);f?(d=JD,g=KD,E=Yd(E)):a?(d=zD,g=YD,E=Ud(E)):(d=sT,g=iT);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=f?jD(o):a?HD(o):tT(o),O=S||rT(o);if(O)return t.invalid(O);let R=f?Zy(o):a?Xy(o):o,[T,_]=Ru(R,s,n),B=new t({ts:T,zone:n,o:_,loc:p});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]=dD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=pD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=fD(e);return lo(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]=QD(o,e,r);return l?t.invalid(l):lo(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]=AD(e);return lo(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 kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=YE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return HE(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?Md(this).weekYear:NaN}get weekNumber(){return this.isValid?Md(this).weekNumber:NaN}get weekday(){return this.isValid?Md(this).weekday:NaN}get ordinal(){return this.isValid?Ud(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 yo(this.year)}get daysInMonth(){return Cu(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?vu(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]=Ru(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(Iu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return co(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Nu(e,iE),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=Zy({...Yd(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Cu(c.year,c.month),c.day))):c=Xy({...Ud(this.c),...r});let[l,m]=Ru(c,this.o,this.zone);return co(this,{ts:l,o:m})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,rE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(this,rE(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):Ld}toLocaleString(e=bu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Ld}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=Fd(this,o);return a+="T",a+=nE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Fd(this,e==="extended"):null}toISOWeekDate(){return Ou(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":"")+nE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ou(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ou(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Fd(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")),Ou(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ld}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=Ib(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=CD(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),oE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?oE(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 Qy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("max requires all arguments be DateTimes");return Qy(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 KE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return bu}static get DATE_MED(){return uE}static get DATE_MED_WITH_WEEKDAY(){return ob}static get DATE_FULL(){return cE}static get DATE_HUGE(){return lE}static get TIME_SIMPLE(){return dE}static get TIME_WITH_SECONDS(){return pE}static get TIME_WITH_SHORT_OFFSET(){return fE}static get TIME_WITH_LONG_OFFSET(){return mE}static get TIME_24_SIMPLE(){return hE}static get TIME_24_WITH_SECONDS(){return gE}static get TIME_24_WITH_SHORT_OFFSET(){return yE}static get TIME_24_WITH_LONG_OFFSET(){return EE}static get DATETIME_SHORT(){return TE}static get DATETIME_SHORT_WITH_SECONDS(){return AE}static get DATETIME_MED(){return SE}static get DATETIME_MED_WITH_SECONDS(){return _E}static get DATETIME_MED_WITH_WEEKDAY(){return ab}static get DATETIME_FULL(){return IE}static get DATETIME_FULL_WITH_SECONDS(){return OE}static get DATETIME_HUGE(){return xE}static get DATETIME_HUGE_WITH_SECONDS(){return RE}};function po(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 ZD="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=$n;st.Interval=qn;st.InvalidZone=Du;st.Settings=Ee;st.SystemZone=go;st.VERSION=ZD;st.Zone=Ur});var uT=H((jQ,aT)=>{"use strict";var Wn=oT();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))}aT.exports=z});var dT=H((HQ,lT)=>{"use strict";function Qn(t){return{start:t,count:1}}function cT(t,e){t.end=e,t.step=e-t.start,t.count=2}function np(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 XD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(np(e,r,Qn(i)),r=void 0):r?r.count===1?cT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Qn(r.start)),r=Qn(r.end),cT(r,i)):(np(e,r),r=Qn(i)):r=Qn(i)}return np(e,r),e}lT.exports=XD});var fT=H((KQ,pT)=>{"use strict";var eC=dT();function tC(t,e,r){var n=eC(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(p,f){var d=c.start+f;return(d-c.start)%c.step===0?d:null}).filter(function(p){return p!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}pT.exports=tC});var gT=H((YQ,hT)=>{"use strict";var jn=uT(),rC=fT(),mT=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 m=u.split(",");if(!m.every(function(d){return d.length>0}))throw new Error("Invalid list value format");if(m.length>1)for(var p=0,f=m.length;p<f;p++)l(o(m[p]));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=[],m=u.split("-");if(m.length>1){if(m.length<2)return+u;if(!m[0].length){if(!m[1].length)throw new Error("Invalid range: "+u);return+u}var p=+m[0],f=+m[1];if(Number.isNaN(p)||Number.isNaN(f)||p<n.min||f>n.max)throw new Error("Constraint error, got range "+p+"-"+f+" expected range "+n.min+"-"+n.max);if(p>f)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"&&f%7===0&&l.push(0);for(var g=p,E=f;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 m(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<mT;){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 p=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||o.isLastDayOfMonth());var f=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(f=f||m(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(!p&&(!f||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!d&&g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(d&&!g&&!f){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>=mT)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(rC(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,m=U.map.length;l<m;++l){var p=U.map[l],f=u[u.length>m?l:l-c];if(l<c||!f)a.push(U._parseField(p,U.parseDefaults[l],U.constraints[l]));else{var d=p==="dayOfWeek"?S(f):f;a.push(U._parseField(p,d,U.constraints[l]))}}for(var g={},l=0,m=U.map.length;l<m;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(p,f,d){if(!f)throw new Error("Validation error, Field "+p+" is missing");if(f.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,E=f.length;g<E;g++){var y=f[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(p,f,d){return!f||p!==d[f-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var m=U._handleMaxDaysInMonth(i);return i.dayOfMonth=m||i.dayOfMonth,new U(i,r||{})};hT.exports=U});var ET=H((JQ,yT)=>{"use strict";var Mu=gT();function Lr(){}Lr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Mu.parse(e)};if(r.length>6)return{interval:Mu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Lr.parseExpression=function(e,r){return Mu.parse(e,r)};Lr.fieldsToExpression=function(e,r){return Mu.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()))})};yT.exports=Lr});var zk={};N(zk,{APP_DEV:()=>Qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Wu,BUDIBASE_DATASOURCE_TYPE:()=>xp,BadRequestError:()=>Dc,BudibaseError:()=>ps,Config:()=>vp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>ju,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Mf,EmailUnavailableError:()=>mr,FeatureDisabledError:()=>vc,GlobalRole:()=>Cp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>xr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>UT,NotFoundError:()=>bc,RedisClient:()=>We,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>Cc,UserStatus:()=>Hu,ViewName:()=>kr,accounts:()=>li,auth:()=>gh,blacklist:()=>Ah,cache:()=>Oa,configs:()=>tn,constants:()=>Np,context:()=>Se,db:()=>jr,docIds:()=>xf,docUpdates:()=>_h,encryption:()=>fh,env:()=>h,errors:()=>Pc,events:()=>ys,features:()=>ih,getPublicError:()=>Nc,init:()=>Jk,installation:()=>qc,locks:()=>ui,logging:()=>Rc,middleware:()=>hh,objectStore:()=>zf,permissions:()=>th,platform:()=>Xo,plugins:()=>Eh,queue:()=>fm,redis:()=>Th,roles:()=>eh,security:()=>Cm,sessions:()=>Yc,setEnv:()=>Ro,sql:()=>vh,tenancy:()=>Yk,timers:()=>$c,userUtils:()=>am,users:()=>Es,utils:()=>ss,withEnv:()=>GT});module.exports=VI(zk);var tn={};N(tn,{analyticsEnabled:()=>Bc,generateConfigID:()=>el,getAIConfig:()=>cF,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Gm,getGoogleConfig:()=>tl,getGoogleDatasourceConfig:()=>qm,getOIDCConfig:()=>oF,getOIDCConfigById:()=>Wm,getOIDCLogosDoc:()=>iF,getPlatformUrl:()=>Ca,getSCIMConfig:()=>uF,getSMTPConfig:()=>aF,getSMTPConfigDoc:()=>M_,getSettingsConfig:()=>Vm,getSettingsConfigDoc:()=>Qc,save:()=>rF});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"],Ph=[...qI],Uh={"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 Rl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Rl||{}),wl=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(wl||{}),ka=(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))(ka||{});var bl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(bl||{});var WI=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||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function Ba(t){return Object.values(Ti).includes(t)}function Lh(t){return Object.values(Ir).includes(t)}function Mh(t){return Object.values(Jt).includes(t)}function Ga(t){return Object.values(dn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Fh=t=>typeof t=="object"&&t._id&&t._rev;var Os=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Os||{});var kh={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 XB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(xs||{});var $a=(m=>(m.APP="app",m.TABLE="table",m.USER="user",m.AUTOMATION="automation",m.WEBHOOK="webhook",m.BUILDER="builder",m.CREATOR="creator",m.GLOBAL_BUILDER="globalBuilder",m.QUERY="query",m.VIEW="view",m.LEGACY_VIEW="legacy_view",m))($a||{});var Va=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||{}),Dl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Dl||{});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||{}),_t=(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))(_t||{});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||{}),Bh=[...Object.values(ie),...Object.values(_t)];var Cl=(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))(Cl||{}),Gh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},vl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(vl||{}),Nl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Nl||{});function $h(t){return t.stepId==="BRANCH"}var Pl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Pl||{});var Ul=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Ul||{});var Ll="bb_internal";var Vh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Wa(t){return!!t.providerType}var Ml=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ml||{});var nV=Object.values(Ml);var uV=["rows","queries","automations"],cV=["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 kl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(kl||(kl={}));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"]),KI=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 Ii=(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}},Qh=Ii;function YI(t){Qh=t}function Qa(){return Qh}var ja=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}},JI=[];function P(t,e){let r=Qa(),n=ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].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"}),_i=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Bl=t=>t.status==="aborted",Gl=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function Ha(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 jh(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 Rs,ws,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(bs(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(Ds(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(Ds(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 $t.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.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 Cs({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 vs.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},zI=/^c[^\s-]{8,}$/i,ZI=/^[0-9a-z]+$/,XI=/^[0-9A-HJKMNP-TV-Z]{26}$/,eO=/^[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,tO=/^[a-z0-9_-]{21}$/i,rO=/^[-+]?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)?)??$/,nO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,iO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Fl,sO=/^(?:(?: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])$/,oO=/^(([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})))$/,aO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Hh="((\\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])))",uO=new RegExp(`^${Hh}$`);function Kh(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 cO(t){return new RegExp(`^${Kh(t)}$`)}function Yh(t){let e=`${Hh}T${Kh(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 lO(t,e){return!!((e==="v4"||!e)&&sO.test(t)||(e==="v6"||!e)&&oO.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")nO.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")Fl||(Fl=new RegExp(iO,"u")),Fl.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")eO.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")tO.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")zI.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")ZI.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")XI.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"?Yh(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"?uO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?cO(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"?rO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?lO(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"?aO.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 dO(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"?dO(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 Oi=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)}};Oi.create=t=>new Oi({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 Zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};Zt.create=t=>new Zt({typeName:K.ZodUnknown,...Z(t)});var It=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:x.invalid_type,expected:M.never,received:r.parsedType}),J}};It.create=t=>new It({typeName:K.ZodNever,...Z(t)});var xi=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)}};xi.create=t=>new xi({typeName:K.ZodVoid,...Z(t)});var Xt=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)}};Xt.create=(t,e)=>new Xt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:K.ZodArray,...Z(e)});function Si(t){if(t instanceof je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Si(n))}return new je({...t._def,shape:()=>e})}else return t instanceof Xt?new Xt({...t._def,type:Si(t.element)}):t instanceof dt?dt.create(Si(t.unwrap())):t instanceof $t?$t.create(Si(t.unwrap())):t instanceof Gt?Gt.create(t.items.map(e=>Si(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 It&&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],m=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,m,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof It){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 m=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,m,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let m=await l.key,p=await l.value;c.push({key:m,value:p,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 Si(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 Jh(se.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:It.create(),typeName:K.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:It.create(),typeName:K.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:It.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 $t?[null,...zt(t.unwrap())]:t instanceof Cs||t instanceof wn?zt(t.unwrap()):t instanceof Rn?zt(t._def.innerType):[],Ka=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 $l(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=$l(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=$l(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(Bl(s)||Bl(o))return J;let a=$l(s.value,o.value);return a.valid?((Gl(s)||Gl(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 Gt=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})}};Gt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Gt({items:t,typeName:K.ZodTuple,rest:null,...Z(e)})};var Ya=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)})}},Ri=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}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:K.ZodMap,...Z(r)});var wi=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)}};wi.create=(t,e)=>new wi({valueType:t,minSize:null,maxSize:null,typeName:K.ZodSet,...Z(e)});var Ja=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 ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ii].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(f=>{throw c.addIssue(n(u,f)),c}),m=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(m,s).catch(f=>{throw c.addIssue(i(m,f)),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),m=a._def.returns.safeParse(l,s);if(!m.success)throw new ze([i(l,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Gt.create(e).rest(Zt.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||Gt.create([]).rest(Zt.create()),returns:r||Zt.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 Jh(t,e){return new In({values:t,typeName:K.ZodEnum,...Z(e)})}var In=class t extends X{constructor(){super(...arguments),Rs.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(Ha(this,Rs,"f")||jh(this,Rs,new Set(this._def.values),"f"),!Ha(this,Rs,"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})}};Rs=new WeakMap;In.create=Jh;var On=class extends X{constructor(){super(...arguments),ws.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(Ha(this,ws,"f")||jh(this,ws,new Set(se.getValidEnumValues(this._def.values)),"f"),!Ha(this,ws,"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}};ws=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"?_i(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"?_i(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(!bs(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=>bs(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 $t=class extends X{_parse(e){return this._getType(e)===M.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$t.create=(t,e)=>new $t({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 Ds(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 bi=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}}};bi.create=t=>new bi({typeName:K.ZodNaN,...Z(t)});var pO=Symbol("zod_brand"),Cs=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}},vs=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(),_i(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=>(bs(i)&&(i.value=Object.freeze(i.value)),i);return Ds(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 zh(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 fO={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 mO=(t,e={message:`Input not instance of ${t.name}`})=>zh(r=>r instanceof t,e),Zh=wr.create,Xh=fn.create,hO=bi.create,gO=mn.create,eg=hn.create,yO=gn.create,EO=Oi.create,TO=yn.create,AO=En.create,SO=br.create,_O=Zt.create,IO=It.create,OO=xi.create,xO=Xt.create,RO=je.create,wO=je.strictCreate,bO=Tn.create,DO=Ka.create,CO=An.create,vO=Gt.create,NO=Ya.create,PO=Ri.create,UO=wi.create,LO=Ja.create,MO=Sn.create,FO=_n.create,kO=In.create,BO=On.create,GO=Dr.create,Wh=Ze.create,$O=dt.create,VO=$t.create,qO=Ze.createWithPreprocess,WO=vs.create,QO=()=>Zh().optional(),jO=()=>Xh().optional(),HO=()=>eg().optional(),KO={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})},YO=J,re=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:YI,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:JI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:$e,isAborted:Bl,isDirty:Gl,isValid:bs,isAsync:Ds,get util(){return se},get objectUtil(){return kl},ZodParsedType:M,getParsedType:Rr,ZodType:X,datetimeRegex:Yh,ZodString:wr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:Oi,ZodUndefined:yn,ZodNull:En,ZodAny:br,ZodUnknown:Zt,ZodNever:It,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:Tn,ZodDiscriminatedUnion:Ka,ZodIntersection:An,ZodTuple:Gt,ZodRecord:Ya,ZodMap:Ri,ZodSet:wi,ZodFunction:Ja,ZodLazy:Sn,ZodLiteral:_n,ZodEnum:In,ZodNativeEnum:On,ZodPromise:Dr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:dt,ZodNullable:$t,ZodDefault:xn,ZodCatch:Rn,ZodNaN:bi,BRAND:pO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:wn,custom:zh,Schema:X,ZodSchema:X,late:fO,get ZodFirstPartyTypeKind(){return K},coerce:KO,any:SO,array:xO,bigint:gO,boolean:eg,date:yO,discriminatedUnion:DO,effect:Wh,enum:kO,function:LO,instanceof:mO,intersection:CO,lazy:MO,literal:FO,map:PO,nan:hO,nativeEnum:BO,never:IO,null:AO,nullable:VO,number:Xh,object:RO,oboolean:HO,onumber:jO,optional:$O,ostring:QO,pipeline:WO,preprocess:qO,promise:GO,record:NO,set:UO,strictObject:wO,string:Zh,symbol:EO,transformer:Wh,tuple:vO,undefined:TO,union:bO,unknown:_O,void:OO,NEVER:YO,ZodIssueCode:x,quotelessJson:KI,ZodError:ze});var bn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(bn||{}),za=(r=>(r.STRING="string",r.NUMBER="number",r))(za||{});var tu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),tg=re.record(tu,re.string()),Za=re.record(tu,re.any()),Xa=re.record(tu,re.union([re.any().array(),re.string()])),rg=re.lazy(()=>re.object({conditions:re.array(re.object(ng))})),eu=re.union([re.string(),re.number()]),ng={string:tg.optional(),fuzzy:tg.optional(),range:re.record(tu,re.union([re.object({high:eu,low:eu}),re.object({high:eu}),re.object({low:eu})])).optional(),equal:Za.optional(),notEqual:Za.optional(),empty:Za.optional(),notEmpty:Za.optional(),oneOf:Xa.optional(),contains:Xa.optional(),notContains:Xa.optional(),containsAny:Xa.optional(),$and:rg.optional(),$or:rg.optional()},iq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Ai).optional(),...ng}).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 Np={};N(Np,{APP_DEV:()=>Qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Wu,BUDIBASE_DATASOURCE_TYPE:()=>xp,Config:()=>vp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>ju,DocumentType:()=>ye,GlobalRole:()=>Cp,Header:()=>Xe,InternalTable:()=>xr,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>UT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Hu,ViewName:()=>kr});var RW={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 CW={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 MW="darkest",FW="light",ZO=[{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"}},ig={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Di="datasource_internal_bb_default";var Mr={};N(Mr,{ColumnSplitter:()=>lp,NoEmptyFilterStrings:()=>xT,buildQuery:()=>RT,cleanupQuery:()=>fp,fixupFilterArrays:()=>hp,getKeyNumbering:()=>mp,getValidOperatorsForType:()=>OC,hasFilters:()=>dp,limit:()=>bT,recurseLogicalOperators:()=>pp,removeKeyNumbering:()=>ru,runQuery:()=>Fu,search:()=>wC,sort:()=>wT,splitFiltersArray:()=>nu});var Qi=W(sg());var Ci={};N(Ci,{filterValueToLabel:()=>ix,hasSchema:()=>sx,isSupportedUserSearch:()=>ag,parallelForeach:()=>nx,processSearchFilters:()=>Wl,toMap:()=>ax,trimOtherProps:()=>ox,unreachable:()=>rx});var og=W(require("lodash")),tx=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function rx(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function nx(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 ix(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function sx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ox(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function ag(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(Ba(s)){for(let c of t[s].conditions)if(!ag(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 Wl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=nu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=og.default.pick(i,tx);return s.field=ru(s.field),s})}]}}function ax(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var jt={};N(jt,{cancelableTimeout:()=>ug,cron:()=>ip,deepGet:()=>Ql,duplicateName:()=>AC,getSequentialName:()=>SC,getUserColor:()=>cx,getUserInitials:()=>ux,getUserLabel:()=>lx,isGoogleSheets:()=>px,isSQL:()=>fx,lists:()=>cp,retry:()=>mx,roles:()=>up,schema:()=>Ao,views:()=>ap,wait:()=>jl,withTimeout:()=>dx});var Ql=(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},ux=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"},cx=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%)`},lx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function ug(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function dx(t,e){let[r,n]=ug(t),i=await Promise.race([e(),r]);return n(),i}function px(t){return t==="GOOGLE_SHEETS"}function fx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function jl(t){return new Promise(e=>setTimeout(e,t))}async function mx(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 jl(s);try{return await t()}catch(o){n=o}}throw n}var ip={};N(ip,{getNextExecutionDates:()=>sC,validate:()=>oC});var AT=W(Vt()),ST=W(ET()),TT="(Input cron: ",nC={"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 iC(t){let e=[];for(let r of t){r.includes(TT)&&(r=r.split(TT)[0].trim());for(let[n,i]of Object.entries(nC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function sC(t,e=4){let r=ST.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function oC(t){let e=(0,AT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:iC(e.getError())}}var Ao={};N(Ao,{decodeNonAscii:()=>sp,encodeNonAscii:()=>cC,isDeprecatedSingleUserColumn:()=>aC,isNumeric:()=>lC,isRequired:()=>uC});function aC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function uC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function cC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function sp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function lC(t){return t.type==="number"||t.type==="bigint"}var ap={};N(ap,{basicFields:()=>hC,calculationFields:()=>mC,hasCalculationFields:()=>fC,isBasicViewField:()=>dC,isCalculationField:()=>So,isCalculationView:()=>pC,isV2:()=>gC,isVisible:()=>_T});var op=require("lodash");function So(t){return"calculationType"in t}function dC(t){return!So(t)}function pC(t){return t.type==="calculation"}function fC(t){return Object.values(t.schema||{}).some(So)}function mC(t){return(0,op.pickBy)(t.schema||{},So)}function _T(t){return t.visible!==!1}function hC(t,e){let{visible:r=!0}=e||{};return(0,op.pickBy)(t.schema||{},n=>!So(n)&&(!r||_T(n)))}function gC(t){return t.version===2}var up={};N(up,{checkForRoleInheritanceLoops:()=>EC});function yC(t){return`role${v}${t}`}function EC(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=yC(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 cp={};N(cp,{punctuateList:()=>TC});function TC(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 AC=(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}`},SC=(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 m=parseInt(l[1]);m>a&&(a=m)}),a===0?o:`${e}${i}${a+1}`};var Hn=require("lodash");var _C=/{{([^{].*?)}}/g,OT=Object.values(Ti),IC=[...Object.values(Ir),...Object.values(Jt),...Object.values(dn)],OC=(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"||Ao.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},xT=[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 pp(t,e){for(let r of OT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var fp=t=>{for(let e of xT)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===""||xC(s))&&delete t[e][i]}return t=pp(t,fp),t};function xC(t){return Array.isArray(t)&&t.length===0}var ru=t=>mp(t).key,mp=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}},lp=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}=mp(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=sp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function RC(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(_C)||[]).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(Ga(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(Ga(r)){let c=ig[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(Lh(r)||Mh(r)||Ga(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 nu(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 RT(t){if(!t)return{};if(Array.isArray(t)&&(t=Wl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=IT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=RT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=nu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=IT(n.logicalOperator)),{[a]:{conditions:o.map(RC).filter(u=>u)}}})},e}function IT(t){return t==="all"?"$and":"$or"}function hp(t){if(!t)return t;for(let e of Object.values(Jt)){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 pp(t,hp),t}function wC(t,e){let r=Fu(t,e.query);e.sort&&(r=wT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=bT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Fu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=fp(e),e=hp(e),!dp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=Ba(T)?B:Ql(B,ru(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,Qi.default)(T);if(b.isValid()){let k=(0,Qi.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,Qi.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,Qi.default)(T);if(B.isValid()){let b=(0,Qi.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,m=r("empty",l),p=r("notEmpty",a(l)),f=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(!Fu([T],B).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Fu([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:m,notEmpty:p,oneOf:f,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 dp(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function wT(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 bT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var dp=t=>{if(!t)return!1;let e=r=>{for(let n of OT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of IC){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:()=>yp,automations:()=>Ep,screens:()=>Ip,users:()=>_p});var yp={};N(yp,{getDevAppID:()=>bC,getProdAppID:()=>ku});var gp=Or("app"),_o=Or("app_dev");function bC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(gp);e.shift();let r=e.join(gp);return`${_o}${r}`}function ku(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(_o))return t;let e=t.split(_o);e.shift();let r=e.join(_o);return`${gp}${r}`}var Ep={};N(Ep,{checkForCollectStep:()=>NC,isAppAction:()=>vC,isRowAction:()=>DC,isWebhookAction:()=>CC});function DC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function CC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function vC(t){return t.definition.trigger?.stepId==="APP"}function DT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if($h(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(DT(r))return!0}}return!1}function NC(t){return DT(t.definition.steps)}var _p={};N(_p,{canCreateApps:()=>PC,containsUserID:()=>BC,getGlobalUserID:()=>kC,getUserAppGroups:()=>GC,getUserGroups:()=>Sp,hasAdminPermissions:()=>Ap,hasAppBuilderPermissions:()=>$u,hasAppCreatorPermissions:()=>CT,hasBuilderPermissions:()=>MC,hasCreatorPermissions:()=>Vu,isAdmin:()=>Gu,isAdminOrBuilder:()=>UC,isAdminOrGlobalBuilder:()=>LC,isBuilder:()=>Tp,isCreator:()=>FC,isGlobalBuilder:()=>Bu,userAppAccessList:()=>$C});var Fr=W(require("lodash/fp"));function Tp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ku(e))):!1}function Bu(t){return Tp(t)&&!$u(t)||Gu(t)}function PC(t){return Bu(t)||Vu(t)}function Gu(t){return t?Ap(t):!1}function UC(t,e){return Tp(t,e)||Gu(t)}function LC(t){return Bu(t)||Gu(t)}function $u(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function CT(t){return t?Fr.flow(Fr.get("roles"),Fr.values,Fr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function MC(t){return t?t.builder?.global||$u(t)||Vu(t):!1}function Ap(t){return t?!!t.admin?.global:!1}function Vu(t){return t?!!t.builder?.creator:!1}function FC(t){return t?Bu(t)||Ap(t)||Vu(t)||$u(t)||CT(t):!1}function kC(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function BC(t){return typeof t!="string"?!1:t.includes(`us${v}`)}function Sp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function GC(t,e,r){let n=ku(t);return Sp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function $C(t,e){let n=Sp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ip={};N(Ip,{findInSettings:()=>VC});function VC(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 zj={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},Zj={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},Xj={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 aH={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 lH={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 fH={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 gH={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 TH={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 _H={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 xH={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 bH={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 vH={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 UH={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 FH={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 ev={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},GH={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(Pl),pretty:Object.values(ev)},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 jH={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 YH={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(Ul)},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 vT=(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))(vT||{}),ZH={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(vT)}},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 NT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(NT||{}),tK={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(NT),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 av={ascending:"Ascending",descending:"Descending"},iK={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(av)},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 aK={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 lK={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 fK={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 gK={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 TK={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 _K={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 xK={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 bK={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 vK={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 PT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(PT||{}),UK={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(PT)}},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 FK={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(Cl),pretty:Object.values(Gh)},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 GK={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(vl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Nl),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 _v={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 Ov={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 Rv={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 bv={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 Cv={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 Nv={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 Uv={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 rY=Object.values(ye).sort((t,e)=>e.length-t.length);var nY=Object.values(Dl).sort((t,e)=>e.length-t.length);var iY=new RegExp("^datasource_plus_(.+)__(.+)$"),qu=t=>e=>!!e&&e.startsWith(`${t}${v}`);var sY=qu("ta"),oY=qu("view"),aY=qu("datasource"),uY=qu("query");var Wu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Wu||{}),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||{}),Hi={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"}},gt=Or("app"),Qu=Or("app_dev"),yt=Qu,Op="internal",xp="budibase",Ht="_design/sqlite",Rp="ta_bb_jobs",wp="ta_bb_inventory",bp="ta_bb_expenses",Dp="ta_bb_employee",ju=(r=>(r[r.SQLITE=Ht]="SQLITE",r.MIGRATIONS="_design/migrations",r))(ju||{});var Hu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Hu||{}),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||{}),Cp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Cp||{}),vp=(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))(vp||{}),UT=new Date(-2147483647e3),Ku=new Date(2147483647e3),Ae="default";var Oa={};N(Oa,{CacheKey:()=>Ce,TTL:()=>ni,app:()=>jo,bustCache:()=>ts,destroy:()=>Vo,docWritethrough:()=>Bm,generic:()=>qo,get:()=>ii,invite:()=>sm,keys:()=>lc,passwordReset:()=>Fm,store:()=>ur,user:()=>rn,withCache:()=>Wr,withCacheWithDynamicTTL:()=>uA,writethrough:()=>Mm});var qo={};N(qo,{CacheKey:()=>Ce,TTL:()=>ni,bustCache:()=>ts,destroy:()=>Vo,get:()=>ii,keys:()=>lc,store:()=>ur,withCache:()=>Wr,withCacheWithDynamicTTL:()=>uA});var Se={};N(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>vo,doInAppContext:()=>_N,doInAppMigrationContext:()=>ON,doInAutomationContext:()=>yN,doInContext:()=>Xp,doInEnvironmentContext:()=>wN,doInFeatureFlagOverrideContext:()=>af,doInIPContext:()=>rf,doInIdentityContext:()=>Oo,doInLicenseContext:()=>TN,doInScimContext:()=>bN,doInSelfHostTenantUsingCloud:()=>EN,doInTenant:()=>qe,ensureSnippetContext:()=>iA,getAppDB:()=>Xi,getAppId:()=>Ue,getAuditLogDBName:()=>tA,getAuditLogsDB:()=>CN,getAutomationId:()=>ef,getCurrentContext:()=>zn,getDevAppDB:()=>NN,getDevAppId:()=>xN,getEnvironmentVariables:()=>DN,getFeatureFlagOverrides:()=>of,getFeatureFlags:()=>nf,getGlobalDB:()=>ne,getGlobalDBName:()=>Jn,getIP:()=>tf,getIdentity:()=>ar,getLicense:()=>AN,getPlatformURL:()=>Zp,getProdAppDB:()=>vN,getProdAppId:()=>RN,getScimDBName:()=>fN,getSelfHostCloudDB:()=>SN,getTableForView:()=>PN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>j,identity:()=>Io,isMultiTenant:()=>$r,isScim:()=>Pt,isSelfHostUsingCloud:()=>rA,isTenancyEnabled:()=>hN,isTenantIdSet:()=>mN,setFeatureFlags:()=>sf,setTableForView:()=>UN});var Io={};N(Io,{doInAccountContext:()=>kv,doInIdentityContext:()=>Up,doInUserContext:()=>Lp,getAccountUserId:()=>LT,getIdentity:()=>Pp});function Pp(){return ar()}function Up(t,e){return Oo(t,e)}function Lp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Up(n,r)}function kv(t,e){let r=LT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Up(i,e)}function LT(t){let e;return Va(t)?e=t.budibaseUserId:e=t.accountId,e}var zu=require("fs");var kT=require("lodash"),Mp=require("crypto"),xo=require("path"),Bv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,xo.resolve)((0,xo.join)(__dirname,"..","..","..")),MT=!1;!MT&&Ju()&&!Fp()&&(require("dotenv").config({path:(0,xo.join)(Bv,".env")}),MT=!0);function Fp(){return BT()}function BT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Ju(){return process.env.NODE_ENV!=="production"}function Gv(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"},FT=!!parseInt(process.env.SELF_HOSTED||"");function $v(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Vv(){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(Ju()&&!Fp())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 Wv(){return Ct.SERVICE_TYPE==="worker"}function Qv(){return Ct.SERVICE_TYPE==="apps"}function jv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}function Hv(){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 Ct={isTest:Fp,isJest:BT,isDev:Ju,isWorker:Wv,isApps:Qv,isQA:jv,isProd:()=>!Ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Mp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Mp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:$v(),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:FT,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:Hv(),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:Vv(),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:FT?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,Ct[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:Gv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,kT.cloneDeep)(Ct),r;for(r in t)Ct._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Ct._set(n,i)}}function GT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var $T=["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(Ct))e==="0"&&(Ct[t]=0),e==="false"&&(Ct[t]=0);var h=Ct;var VT=require("async_hooks"),we=class t{static{this.storage=new VT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var kp="No app provided";function Br(t){if(!t)throw kp;return t.startsWith(yt)}function Kv(t){if(!t)throw kp;return t.startsWith(gt)&&!Br(t)}function wo(t){if(!t)throw kp;return Br(t.appId)}function Zu(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var Bp=Zu;function at(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${gt}${r}`}function Yv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Gp(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:Gp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Gp=(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 m=l.split(":");r=m[0],n=m.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var XT=W(require("@budibase/nano"));var qT=W(require("node-fetch"));function Xu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function WT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await bo({url:s,cookie:i,method:e,body:r})}async function bo({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)(Xu(encodeURI(t)),i)}async function $p(t,e="GET",r){let n=await WT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=W(require("pouchdb"));var QT,jT=!1,Vp=(t={})=>{let{url:e,cookie:r}=vt(),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 ec(t){QT=Vp(t),jT=!0}var zv=()=>{if(!jT)throw new Error("init has not been called")};function Et(t,e){zv();let r=new QT(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 Do(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var HT=require("uuid");function me(){return(0,HT.v4)().replace(/-/g,"")}var Oe=W(require("dd-trace")),Yi=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 Jp={};N(Jp,{breakExternalTableId:()=>Qp,breakRowIdField:()=>lN,buildExternalTableId:()=>iN,convertRowId:()=>cN,encodeTableId:()=>sN,encodeViewId:()=>oN,extractDate:()=>Hp,generateRowIdField:()=>aN,getNativeSql:()=>Ji,isExternalTable:()=>Wp,isExternalTableID:()=>tc,isInternalTableID:()=>nN,isRowId:()=>uN,isValidFilter:()=>nc,isValidISODateString:()=>rc,isValidISODateStringWithoutTimezone:()=>jp,isValidTime:()=>Kp,sqlLog:()=>Co,validateManyToMany:()=>Yp});var qp=`${v}${v}`,YT=/^\[.*]$/g,Zv=encodeURIComponent(" "),Xv=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,eN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,tN=/(\d{4}-\d{2}-\d{2})/,rN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function tc(t){return t.startsWith("datasource"+v)}function nN(t){return!tc(t)}function Ji(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 Wp(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&tc(t._id))}function iN(t,e){return`${t}${qp}${encodeURIComponent(e)}`}function sN(t){return tc(t)?encodeURIComponent(t):t}function oN(t){return encodeURIComponent(t)}function Qp(t){let e=t.split(qp),r=e.shift(),n=e.join(qp);if(n.includes(Zv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function aN(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 uN(t){return Array.isArray(t)||typeof t=="string"&&t.match(YT)!=null}function cN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(YT)!=null?t.substring(1,t.length-1):t}function lN(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 rc(t){let e=t.trim();if(!Xv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function jp(t){let e=t.trim();if(!eN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Hp(t){let e=t.match(tN);if(e)return e[0]}function nc(t){return t!=null&&t!==""}function Kp(t){return rN.test(t)}function Co(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 dN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Yp(t){if(dN(t))return t}var JT="Database does not exist.";function zT(t){return(0,XT.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 pN(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 Yi(n)}var zi=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=zT(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=zT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await bo({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===JT)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(Fh(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===JT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Xu(`${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 bo(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}/${Ht}`;return Co("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(Ht)){let e=await this.get(Ht);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 Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ve(t,e){return new Yi(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 $p(e)}var eA=null;function Jn(t){return t||(t=j()),vo(t)}function tA(t){return t||(t=j()),t===Ae?Te.AUDIT_LOGS.name:`${t}${v}${Te.AUDIT_LOGS.name}`}function fN(t){return t||(t=j()),t===Ae?Te.SCIM_LOGS.name:`${t}${v}${Te.SCIM_LOGS.name}`}function vo(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${v}${Te.GLOBAL.name}`}function Zp(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function mN(){return!!we.get()?.tenantId}function hN(){return h.MULTI_TENANCY}function Zi(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 gN(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Nt(t,e){IN();let r=gN(t);return we.run(r,e)}async function yN(t){return await iA(),await Nt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Xp(t,e){let r=Zi(t);return Nt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Ae),Nt(t?{tenantId:t}:{},e)}async function EN(t,e){return Nt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function TN(t,e){return Nt({license:t},e)}function AN(){return we.get()?.license}function rA(){return!!we.get()?.isSelfHostUsingCloud}function SN(){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 _N(t,e){return nA(t,e)}async function nA(t,e,r){if(!t)throw new Error("appId is required");let n=Zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Nt(i,e)}async function Oo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Nt(r,e)}function IN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function ON(t,e){return nA(t,e,{isMigrating:!0})}function ar(){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 ef(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&eA?eA:e}function tf(){return we.get()?.ip}var xN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return Bp(t)},RN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function wN(t,e){if(!t)throw new Error("Must supply environment variables.");return Nt({environmentVariables:t},e)}function bN(t){return Nt({isScim:!0},t)}function rf(t,e){return Nt({ip:t},e)}async function iA(){let t=zn();if(!t||t.snippets)return;let e,r=Xi();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function DN(){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(vo(t?.tenantId))}function CN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(tA())}function Xi(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(rA())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function vN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function NN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Zu(e),t)}function Pt(){return!!we.get()?.isScim}function zn(){try{return we.get()}catch{return}}function nf(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function sf(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function of(){return zn()?.featureFlagOverrides||{}}async function af(t,e){return await Nt({featureFlagOverrides:t},e)}function PN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function UN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var qr={};N(qr,{getAppClient:()=>cc,getCacheClient:()=>ff,getDocWritethroughClient:()=>BN,getInviteClient:()=>ei,getLockClient:()=>hf,getPasswordResetClient:()=>$o,getSessionClient:()=>Vr,getSocketClient:()=>kN,getUserClient:()=>Go,getWritethroughClient:()=>mf,init:()=>Ut,shutdown:()=>aA});var uc=W(require("ioredis"));var oc={};N(oc,{Databases:()=>uf,SEPARATOR:()=>es,SelectableDatabase:()=>ic,getRedisClusterOptions:()=>cf,getRedisConnectionDetails:()=>sc,getRedisOptions:()=>Zn,removeDbPrefix:()=>lf});var es="-",uf=(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))(uf||{}),ic=(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))(ic||{});function sc(){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 cf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zn(),tls:{}}}}function Zn(){let{host:t,password:e,port:r}=sc();return{connectTimeout:3e4,port:r,host:t,password:e}}function lf(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var ac=require("dd-trace"),oA=require("lodash"),sA;if(h.MOCK_REDIS)try{sA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function LN(t=0){return await ac.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new sA(Zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=sc();r=new uc.Cluster([{host:n,port:i}],cf())}else r=new uc.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 MN(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:lf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function FN(t){return t.isCluster}var df=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await ac.tracer.trace("RedisWrapper.init",async n=>{let i=await LN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return ac.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${es}${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}${es}${e}`;let n;FN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await MN(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,oA.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,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=`
|
|
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=df;var No,Po,Uo,Lo,Xn,Mo,Fo,ko,Bo,pf;async function Ut(){No=await We.init("users"),Po=await We.init("session"),Uo=await We.init("appMetadata"),Lo=await We.init("data_cache"),Mo=await We.init("locks"),Xn=await We.init("writeThrough"),ko=await We.init("invitation"),Bo=await We.init("pwReset"),Fo=await We.init("socket_io",1),pf=await We.init("docWriteThrough")}async function aA(){No&&await No.finish(),Po&&await Po.finish(),Uo&&await Uo.finish(),Lo&&await Lo.finish(),Xn&&await Xn.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),Fo&&await Fo.finish(),pf&&await pf.finish()}process.on("exit",async()=>{await aA()});async function Go(){return No||await Ut(),No}async function Vr(){return Po||await Ut(),Po}async function cc(){return Uo||await Ut(),Uo}async function ff(){return Lo||await Ut(),Lo}async function mf(){return Xn||await Ut(),Xn}async function hf(){return Mo||await Ut(),Mo}async function kN(){return Fo||await Ut(),Fo}async function ei(){return ko||await Ut(),ko}async function $o(){return Bo||await Ut(),Bo}async function BN(){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 ff()}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||{}),lc=(...t)=>ri.keys(...t),ii=(...t)=>ri.get(...t),ur=(...t)=>ri.store(...t),Vo=(...t)=>ri.delete(...t),Wr=(...t)=>ri.withCache(...t),uA=(...t)=>ri.withCacheWithDynamicTTL(...t),ts=(...t)=>ri.bustCache(...t);var rn={};N(rn,{getUser:()=>Ra,getUsers:()=>Q0,invalidateUser:()=>wa});var Qo={};N(Qo,{addTenantToUrl:()=>GN,getTenantDB:()=>gf,getTenantIDFromCtx:()=>Wo,isUserInAppTenant:()=>$N});function gf(t){return Ve(Jn(t))}function GN(t){let e=j();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var $N=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=j(),(Zi(t)||Ae)===r},VN=Object.values(Os),Wo=(t,e)=>{if(!$r())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=VN),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(Zp()).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 Xo={};N(Xo,{getPlatformDB:()=>ct,tenants:()=>Bf,users:()=>Lt});var Lt={};N(Lt,{addSsoUser:()=>lA,addUser:()=>KN,getUserDoc:()=>cA,lookupTenantId:()=>qN,removeUser:()=>YN,updateUserDoc:()=>WN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function qN(t){return h.MULTI_TENANCY?(await cA(t)).tenantId:Ae}async function cA(t){return ct().get(t)}async function WN(t){await ct().put(t)}function QN(t,e){return{_id:t,tenantId:e}}function jN(t,e,r){return{_id:e,userId:t,tenantId:r}}function HN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function yf(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 lA(t,e,r,n){return yf(t,()=>HN(t,e,r,n))}async function KN(t,e,r,n){let i=[yf(e,()=>QN(e,t)),yf(r,()=>jN(e,r,t))];n&&i.push(lA(n,r,e,t)),await Promise.all(i)}async function YN(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 Bf={};N(Bf,{addTenant:()=>vP,exists:()=>bP,getTenantIds:()=>wP,removeTenant:()=>NP,tenacyLockOptions:()=>kf});var ui={};N(ui,{AUTO_EXTEND_POLLING_MS:()=>XA,doWithLock:()=>as,newRedlock:()=>ai});var ZA=W(require("redlock"));var ss={};N(ss,{Duration:()=>be,DurationType:()=>Mf,clearCookie:()=>Hr,compare:()=>Af,getAppIdFromCtx:()=>TP,getCookie:()=>pr,hasCircularStructure:()=>SP,hash:()=>Tf,isAudited:()=>Uf,isClient:()=>AP,isPublicApiRequest:()=>EP,isServingApp:()=>hP,isServingBuilder:()=>gP,isServingBuilderPreview:()=>yP,isValidInternalAPIKey:()=>Zo,newid:()=>me,openJwt:()=>gc,resolveAppUrl:()=>YA,setCookie:()=>JA,time:()=>IP,timeout:()=>Pf,urlHasProtocol:()=>_P,validEmail:()=>Lf});var Ef=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),JN=h.SALT_ROUNDS||10;async function Tf(t){let e=await Ef.genSalt(JN);return Ef.hash(t,e)}async function Af(t,e){return Ef.compare(t,e)}var jr={};N(jr,{APP_DEV:()=>Qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Wu,BUDIBASE_DATASOURCE_TYPE:()=>xp,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>pN,DeprecatedViews:()=>Hi,DesignDocuments:()=>ju,DocumentType:()=>ye,InternalTable:()=>xr,QueryBuilder:()=>dr,Replication:()=>GA,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>kr,baseGlobalDBName:()=>vo,checkErrorCode:()=>WA,closePouchDB:()=>Do,createApiKeyView:()=>LA,createNewUserEmailView:()=>PA,createPlatformAccountEmailView:()=>FA,createPlatformUserView:()=>kA,createUserAppView:()=>UA,createView:()=>ns,dbExists:()=>oP,directCouchAllDbs:()=>zp,directCouchCall:()=>WT,directCouchQuery:()=>$p,directCouchUrlCall:()=>bo,doWithDB:()=>ut,extractAppUUID:()=>Yv,fullSearch:()=>lP,generateAgentChatID:()=>_A,generateAgentToolSourceID:()=>IA,generateAppID:()=>pA,generateAppUserID:()=>pc,generateDevInfoID:()=>TA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>SA,generatePluginID:()=>AA,generateRoleID:()=>If,generateRowID:()=>_f,generateTableID:()=>fA,generateTemplateID:()=>EA,generateUserMetadataID:()=>gA,generateWorkspaceAppID:()=>OA,generateWorkspaceID:()=>mA,getAllApps:()=>Ko,getAllDbs:()=>NA,getAppsByIDs:()=>rP,getCouchInfo:()=>vt,getDB:()=>Ve,getDevAppID:()=>Bp,getDevAppIDs:()=>iP,getDevelopmentAppID:()=>Zu,getDocParams:()=>Qr,getGlobalDBName:()=>Jn,getGlobalIDFromUserMetadataID:()=>yA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>CA,getPluginParams:()=>DA,getPouch:()=>Vp,getPouchDB:()=>Et,getProdAppID:()=>at,getProdAppIDs:()=>nP,getQueryIndex:()=>xA,getRoleParams:()=>mc,getRowParams:()=>Of,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>bA,getUrlInfo:()=>Gp,getUserMetadataParams:()=>wA,getUsersByAppParams:()=>fc,getWorkspaceAppParams:()=>vA,getWorkspaceParams:()=>RA,init:()=>ec,isDevApp:()=>wo,isDevAppID:()=>Br,isDocumentConflictError:()=>pP,isGlobalUserID:()=>hA,isProdAppID:()=>Kv,isSameAppID:()=>sP,paginatedSearch:()=>cP,pagination:()=>Rf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>Df,queryPlatformView:()=>Jo,queryView:()=>bf,queryViewRaw:()=>Yo,removeKeyNumbering:()=>zo,searchIndexes:()=>vf});var jo={};N(jo,{AppState:()=>Sf,getAppMetadata:()=>dc,invalidateAppMetadata:()=>eP});var Sf=(e=>(e.INVALID="invalid",e))(Sf||{}),dA=3600,zN=60;async function ZN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function XN(t){return!t||t.state==="invalid"}async function dc(t){let e=await cc(),r=await e.get(t);if(!r){let n=dA;try{r=await ZN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=zN;else throw i}if(XN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function eP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await cc();await r.delete(t),e&&await r.store(t,e,dA)}var xf={};N(xf,{generateAgentChatID:()=>_A,generateAgentToolSourceID:()=>IA,generateAppID:()=>pA,generateAppUserID:()=>pc,generateDevInfoID:()=>TA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>SA,generatePluginID:()=>AA,generateRoleID:()=>If,generateRowID:()=>_f,generateTableID:()=>fA,generateTemplateID:()=>EA,generateUserMetadataID:()=>gA,generateWorkspaceAppID:()=>OA,generateWorkspaceID:()=>mA,getDocParams:()=>Qr,getGlobalIDFromUserMetadataID:()=>yA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>CA,getPluginParams:()=>DA,getQueryIndex:()=>xA,getRoleParams:()=>mc,getRowParams:()=>Of,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>bA,getUserMetadataParams:()=>wA,getUsersByAppParams:()=>fc,getWorkspaceAppParams:()=>vA,getWorkspaceParams:()=>RA,isGlobalUserID:()=>hA,prefixRoleID:()=>cr});var pA=t=>{let e=gt;return t&&(e+=`${t}${v}`),`${e}${me()}`};function fA(){return`ta${v}${me()}`}function _f(t,e){return e=e||me(),`ro${v}${t}${v}${e}`}function mA(){return`workspace${v}${me()}`}function rs(t){return`us${v}${t||me()}`}var tP=new RegExp(`^us${v}.+`);function hA(t){return tP.test(t)}function gA(t){return _f("ta_users",t)}function yA(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function EA(t){return`template${v}${t}${v}${me()}`}function pc(t,e){return`${t}${v}${e}`}function If(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return If(t)}var TA=t=>`devinfo${v}${t}`,AA=t=>`plg${v}${t}`,SA=t=>`oauth2log${v}${t}`,_A=()=>`agentchat${v}${me()}`,IA=()=>`agenttoolsource${v}${me()}`,OA=()=>`workspace_app${v}${me()}`;function Qr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${Ge}`}}function Of(t,e,r={}){if(t==null)return Qr("ro",null,r);let n=e??`${t}${v}`;return Qr("ro",n,r)}function xA(t){return`database/${t}`}function RA(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 wA(t,e={}){return Of("ta_users",t,e)}function fc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function bA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function mc(t,e={}){return Qr("role",t,e)}function Ho(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var DA=(t,e={})=>Qr("plg",t,e),CA=(t,e={})=>Qr("oauth2",t,e),vA=(t,e={})=>Qr("workspace_app",t,e);async function NA(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(Ho("app",i)),await n(Ho("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 NA({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],m=c.length===2||l==="dev";return i===Ae&&m||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=>dc(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:wo(l)?"development":"published"})):c.filter(l=>t?wo(l):!wo(l))}}async function rP(t){return(await Promise.allSettled(t.map(r=>dc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function nP(){return(await Ko({idsOnly:!0})).filter(e=>!Br(e))}async function iP(){return(await Ko({idsOnly:!0})).filter(e=>Br(e))}function sP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function oP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function Rf(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 wf="_design/database";function aP(){return{_id:wf,views:{}}}async function uP(t,e){if(Hi[e])try{let r=await t.get(wf);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(wf)}catch{n=aP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var PA=async()=>{let t=ne(),e=`function(doc) {
|
|
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) {
|
|
10
10
|
if (doc._id.startsWith("us${v}")) {
|
|
11
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
12
12
|
}
|
|
13
|
-
}`;await
|
|
13
|
+
}`;await is(t,e,"by_email2")},MA=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
|
|
20
|
+
}`;await is(t,e,"by_app")},FA=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
|
|
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) {
|
|
25
25
|
if (doc._id.startsWith("acc_metadata${v}")) {
|
|
26
26
|
emit(doc.email.toLowerCase(), doc._id)
|
|
27
27
|
}
|
|
28
|
-
}`;await
|
|
28
|
+
}`;await kA(t,"account_by_email")},GA=async()=>{await kA(`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")},Jo=async(t,e)=>{let r={account_by_email:FA,platform_users_lowercase_2:kA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return bf(t,e,n,i,{arrayResponse:!0})})},BA={by_email2:PA,by_api_key:LA,by_app:UA},lr=async(t,e,r,n)=>{r||(r=ne());let i=BA[t];return bf(t,e,r,i,n)};async function Df(t,e,r){let n=ne(),i=BA[t];return Yo(t,e,n,i,r)}var Cf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(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([Do(this.source),Do(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=Et(this.target.name),await this.replicate()}},GA=Cf;var VA=W(require("node-fetch"));var zo=Mr.removeKeyNumbering;function oi(t){return t==null||t===""}var dr=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)},m=(d,g)=>u(d,g,"OR"),p=(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 f(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&&f(this.#e.string,(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${d}:${g}*`)),this.#e.range&&f(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&&f(this.#e.fuzzy,c),this.#e.equal&&f(this.#e.equal,a),this.#e.notEqual&&f(this.#e.notEqual,(d,g)=>oi(g)?null:typeof g=="boolean"?`(*:* AND !${d}:${g})`:`!${d}:${e.preprocess(g,s)}`),this.#e.empty&&f(this.#e.empty,d=>(i=!1,`(*:* -${d}:["" TO *])`)),this.#e.notEmpty&&f(this.#e.notEmpty,d=>(i=!1,`${d}:["" TO *]`)),this.#e.oneOf&&f(this.#e.oneOf,p),this.#e.contains&&f(this.#e.contains,u),this.#e.notContains&&f(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&f(this.#e.containsAny,m),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,f({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}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await $A(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await $A(n,i,r);throw s}}};async function $A(t,e,r){let n=await(0,VA.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=dr.maxLimit;n.limit&&s.length>n.limit-dr.maxLimit&&(o=n.limit-s.length);let a=new dr(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<dr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await qA(t,e,r,c)}async function cP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,dr.maxLimit);let s=new dr(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 lP(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 vf={};N(vf,{createUserIndex:()=>dP});async function dP(){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 WA(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 pP(t){return WA(t,409)}var hc=W(require("jsonwebtoken")),Nf="app"+v,jA="/app/",HA="/app/preview",fP="/builder",KA=`${fP}/app/`,mP="/api/public/v";function is(t){return t&&t.startsWith(Nf)?t:void 0}async function YA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Wo(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 hP(t){return t.path.startsWith(`/${Nf}`)?!0:t.path.startsWith(jA)}function gP(t){return t.path.startsWith(KA)}function yP(t){return t.path.startsWith(HA)}function EP(t){return t.path.startsWith(mP)}async function TP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=is(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=is(t.request.body.appId));let n=QA(t.path);!r&&n&&(r=is(n)),!r&&t.query?.appId&&(r=is(t.query?.appId));let i=t.path.startsWith(HA),s=t.path.startsWith(jA)&&!i;!r&&s&&(r=is(await YA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(KA)){let a=QA(t.request.headers.referer);r=is(a)}return r}function QA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Nf))}function gc(t){if(t)try{return hc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return hc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function Zo(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function pr(t,e){let r=t.cookies.get(e);if(r)return gc(r)}function JA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=hc.default.sign(e,h.JWT_SECRET));let i={expires:Ku,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Hr(t,e){JA(t,null,e)}function AP(t){return t.headers["x-budibase-type"]==="client"}function Pf(t){return new Promise(e=>setTimeout(e,t))}function Uf(t){return!!Uh[t]}function SP(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 _P(t){return!!t.match(/^.+:\/\/.+$/)}function Lf(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 Mf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Mf||{}),yc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/yc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*yc[e]/yc[r]}static from(e,r){return new t(r*yc[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 IP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function OP(t,e){if(t==="custom")return ai(e);switch(t){case"try_once":return ai(os.TRY_ONCE);case"try_twice":return ai(os.TRY_TWICE);case"default":return ai(os.DEFAULT);case"delay_500":return ai(os.DELAY_500);case"auto_extend":return ai(os.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var os={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={...os.DEFAULT,...t},n=(await hf()).client;return new ZA.default([n],e)}function xP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var XA=be.fromSeconds(10).toMs();async function as(t,e){let r=await OP(t.type,t.customOptions),n,i;try{let s=xP(t),o=t.type==="auto_extend"?XA: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 Ff=Te.PLATFORM_INFO.docs.tenants,kf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function wP(){return(await Ec()).tenantIds}async function Ec(){let t=ct(),e;try{e=await t.get(Ff)}catch(r){if(r.status===404)e=await CP();else throw r}return e}async function bP(t){return(await Ec()).tenantIds.indexOf(t)!==-1}function DP(){return{_id:Ff,tenantIds:[]}}async function CP(){let t=ct(),e=DP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Ff);throw r}return e}async function vP(t){let e=ct();await as(kf,async()=>{let r=await Ec();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function NP(t){try{await as(kf,async()=>{let e=ct(),r=await Ec();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 li={};N(li,{getAccount:()=>Zr,getAccountByTenantId:()=>ls,getStatus:()=>dU});var NS=W(require("node-fetch"));var Rc={};N(Rc,{correlation:()=>ea,logAlert:()=>sa,logAlertWithInfo:()=>lU,logWarn:()=>cs,logger:()=>xc,system:()=>em});var ea={};N(ea,{getId:()=>Gf,setHeader:()=>PP});var eS=require("correlation-id"),PP=t=>{let e=eS.getId();e&&(t["x-budibase-correlation-id"]=e)};function Gf(){return eS.getId()}var Oc=W(require("pino")),CS=W(require("pino-pretty"));var tm=W(require("dd-trace")),vS=require("dd-trace/ext");var em={};N(em,{getLogReadStream:()=>iU,getSingleFileMaxSizeInfo:()=>DS,localFileDestination:()=>Xf});var ia=W(require("fs")),Zf=W(require("path")),xS=W(require("rotating-file-stream"));var zf={};N(zf,{ObjectStore:()=>Mt,ObjectStoreBuckets:()=>LP,SIGNED_FILE_PREFIX:()=>Hf,bucketTTLConfig:()=>Tc,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>zP,clientLibraryPath:()=>gS,clientLibraryUrl:()=>ZP,createBucketIfNotExists:()=>na,deleteFile:()=>WP,deleteFiles:()=>QP,deleteFolder:()=>fS,downloadTarball:()=>HP,downloadTarballDirect:()=>jP,enrichPWAImages:()=>XP,enrichPluginURLs:()=>tU,extractBucketAndPath:()=>$f,getAppFileUrl:()=>yS,getGlobalFileS3Key:()=>ES,getGlobalFileUrl:()=>eU,getObjectMetadata:()=>KP,getPluginIconKey:()=>SS,getPluginJSKey:()=>AS,getPluginS3Dir:()=>IS,getPresignedUrl:()=>Jr,getReadStream:()=>Ac,listAllObjects:()=>pS,processAutomationAttachment:()=>FP,processObjectStoreAttachment:()=>sS,retrieve:()=>dS,retrieveDirectory:()=>qP,retrieveToTmp:()=>VP,sanitizeBucket:()=>Ye,sanitizeKey:()=>Le,streamUpload:()=>lS,upload:()=>$P,uploadDirectory:()=>Kf});var _c=require("@aws-sdk/client-s3"),Vf=require("@aws-sdk/lib-storage"),oS=require("@aws-sdk/s3-request-presigner"),ra=W(require("stream")),qf=W(require("node-fetch")),Wf=W(require("tar-fs")),Qf=W(require("zlib")),aS=require("util"),Yr=require("path"),fr=W(require("fs"));var ta=W(require("path")),tS=require("os"),rS=W(require("fs"));var nS=W(require("stream")),LP={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},iS=(0,ta.join)((0,tS.tmpdir)(),".budibase");try{rS.default.mkdirSync(iS)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return iS}var Tc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function MP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ta.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:nS.default.Readable.fromWeb(e.body)}}async function sS(t){let e=$f(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ac(r,n),s=ta.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function FP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await MP(t):await sS(t)}var jf=require("uuid");var uS=W(require("fs/promises")),kP=require("sanitize-s3-objectkey"),cS=(0,aS.promisify)(ra.default.pipeline),BP={bucketCreationPromises:{}},Hf="/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"},GP=[Kr.html,Kr.css,Kr.js,Kr.json];function Le(t){return kP(Ye(t)).replace(/\\/g,"/")}function Ye(t){return t.replace(new RegExp(yt,"g"),gt)}function Mt(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 _c.S3(e)}async function na(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=BP.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 $P({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await uS.default.open(r)).createReadStream():s,c=Mt(),l=await na(c,t);if(o&&l.created){let g=Tc(t,o);await c.putBucketLifecycleConfiguration(g)}let m=n,p=m||(a?Kr[a.toLowerCase()]:Kr.txt),f={Bucket:Ye(t),Key:Le(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];f.Metadata=i}return new Vf.Upload({client:c,params:f}).done()}async function lS({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=Mt(),u=await na(a,t);if(s&&u.created){let E=Tc(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),m=Le(r),p={Bucket:l,Key:m,Body:e,ContentType:c,...i},d=await new Vf.Upload({client:a,params:p}).done(),g=await a.headObject({Bucket:l,Key:m});return{...d,ContentLength:g.ContentLength}}async function dS(t,e){let r=Mt(),n={Bucket:Ye(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(GP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ra.default.Readable.fromWeb(s)}}async function pS(t,e){let r=Mt(),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=Mt({presigning:!0}),i={Bucket:Ye(t),Key:Le(e)},s=await(0,oS.getSignedUrl)(n,new _c.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Hf}${a}${u}`}else return s}async function VP(t,e){t=Ye(t),e=Le(e);let r=await dS(t,e),n=(0,Yr.join)(ci(),(0,jf.v4)());return r instanceof ra.default.Readable?r.pipe(fr.default.createWriteStream(n)):fr.default.writeFileSync(n,r),n}async function qP(t,e){let r=(0,Yr.join)(ci(),(0,jf.v4)());fr.default.mkdirSync(r);let n=await pS(t,e),i=await Promise.all(n.map(a=>Ac(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),m=l.slice(0,l.length-1),p=(0,Yr.join)(r,...m);l.length>1&&!fr.default.existsSync(p)&&fr.default.mkdirSync(p,{recursive:!0});let f=fr.default.createWriteStream((0,Yr.join)(r,...l),{mode:420});c.pipe(f),o.push(new Promise((d,g)=>{f.on("finish",()=>d()),c.on("error",g),f.on("error",g)}))}return await Promise.all(o),r}async function WP(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function QP(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function fS(t,e){t=Ye(t),e=Le(e);let r=Mt(),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 fS(t,e)}async function Kf(t,e,r){t=Ye(t);let n=[],i=fr.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(Kf(t,a,o)):n.push(lS({bucket:t,filename:o,stream:fr.default.createReadStream(a)}))}return await Promise.all(n),i}async function jP(t,e,r={}){e=Le(e);let n=await(0,qf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await cS(n.body,Qf.default.createUnzip(),Wf.default.extract(e))}async function HP(t,e,r){e=Ye(e),r=Le(r);let n=await(0,qf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(ci(),r);return await cS(n.body,Qf.default.createUnzip(),Wf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Kf(e,i,r),i}async function Ac(t,e){t=Ye(t),e=Le(e);let r=Mt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ra.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function KP(t,e){t=Ye(t),e=Le(e);let r=Mt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function $f(t){let e=t.split("?")[0],r=new RegExp(`^${Hf}/(?<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 mS=W(require("aws-cloudfront-sign")),Ic;function YP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ic||(Ic=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ic)}var JP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:YP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=Yf(t);return mS.getSignedUrl(e,JP())},Yf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var hS=W(require("querystring"));function gS(t){return`${Le(t)}/budibase-client.js`}async function zP(t,e){let r=gS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Yf(r)):await Jr(h.APPS_BUCKET_NAME,r)}function ZP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${hS.default.encode(n)}`}async function yS(t){return h.CLOUDFRONT_CDN?us(t):await Jr(h.APPS_BUCKET_NAME,t)}async function XP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await yS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var eU=async(t,e,r)=>{let n=ES(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await Jr(h.GLOBAL_BUCKET_NAME,n)},ES=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function tU(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await rU(e),n=await nU(e);return{...e,jsUrl:r,iconUrl:n}}))}async function rU(t){let e=AS(t);return TS(e)}async function nU(t){let e=SS(t);if(e)return TS(e)}async function TS(t){return h.CLOUDFRONT_CDN?us(t):await Jr(h.PLUGIN_BUCKET_NAME,t)}function AS(t){return _S(t,"plugin.min.js")}function SS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return _S(t,e)}function _S(t,e){return`${IS(t.name)}/${e}`}function IS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var RS="budibase.log",wS="budibase-logs-history.txt",bS=Zf.default.join(ci(),"systemlogs");function OS(t){return Zf.default.join(bS,t)}function DS(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 Xf(){let t=DS(h.ROLLING_LOG_MAX_SIZE);return xS.createStream(RS,{size:t?.size,path:bS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:wS,initialRotation:!1})}function iU(){let t=[],e=OS(wS);if(ia.default.existsSync(e)){let i=ia.default.readFileSync(e,"utf-8").split(`
|
|
37
|
-
`);for(let s of i.filter(o=>o))t.push(ia.default.readFileSync(s))}return t.push(ia.default.readFileSync(OS(RS))),Buffer.concat(t)}function sU(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function oU(t){return t instanceof Error}function aU(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,CS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Xf(),level:t}),zr=r.length?(0,Oc.default)(e,Oc.default.multistream(r)):(0,Oc.default)(e);let n=u=>{let c,l=[],m="";u.forEach(E=>{aU(E)&&(m=`${m} ${E}`.trimStart()),sU(E)&&l.push(E),oU(E)&&(c=E)});let p=a(),f={};f={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:Gf()};let d=tm.default.scope().active();d&&tm.default.inject(d.context(),vS.formats.LOG,f);let g={err:c,pid:process.pid,...f};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,m]};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=ef()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var xc=zr;var uU=["AccountError"];function cU(t){return t&&t.suppressAlert}function sa(t,e){e&&uU.includes(e.name)&&cU(e)||console.error(`bb-alert: ${t}`,e)}function lU(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,sa(t,n)}function cs(t,e){console.warn(`bb-warn: ${t}`,e)}var oa=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";ea.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,NS.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 rm=new oa(h.INTERNAL_ACCOUNT_PORTAL_URL),nm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(nm)return;let e={email:t},r=await rm.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]},ls=async t=>{if(nm)return;let e={tenantId:t},r=await rm.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]},dU=async()=>{if(nm)return;let t=await rm.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 Es={};N(Es,{UserDB:()=>Yt,addAppBuilder:()=>$0,bulkGetGlobalUsersById:()=>Jc,bulkUpdateGlobalUsers:()=>Ia,cleanseUserObject:()=>Nm,creatorsInList:()=>di,doesUserExist:()=>M0,getAccountHolderFromUsers:()=>Mc,getAllUserIds:()=>U0,getAllUsers:()=>L0,getById:()=>mi,getCreatorCount:()=>B0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>MS,getExistingTenantUsers:()=>LS,getFirstPlatformUser:()=>aa,getGlobalUserByAppPage:()=>C_,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>wc,getUserCount:()=>k0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>BS,hasBuilderPermissions:()=>Tt,isAdmin:()=>Xr,isAdminOrBuilder:()=>kS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Uc,isGlobalBuilder:()=>FS,paginatedUsers:()=>N_,removeAppBuilder:()=>V0,removePortalUserPermissions:()=>G0,searchExistingEmails:()=>om,searchGlobalUsersByApp:()=>zc,searchGlobalUsersByAppAccess:()=>vm,searchGlobalUsersByEmail:()=>v_,validateUniqueUser:()=>Lc});var am={};N(am,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>Mc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>BS,hasBuilderPermissions:()=>Tt,isAdmin:()=>Xr,isAdminOrBuilder:()=>kS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Uc,isGlobalBuilder:()=>FS,validateUniqueUser:()=>Lc});var sm={};N(sm,{createCode:()=>fU,deleteCode:()=>hU,getCode:()=>mU,getExistingInvites:()=>im,getInviteCodes:()=>US,updateCode:()=>pU});var PS=be.fromDays(7).toSeconds();async function pU(t,e){await(await ei()).store(t,e,PS)}async function fU(t,e){let r=me();return await(await ei()).store(r,{email:t,info:e},PS),r}async function mU(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 hU(t){await(await ei()).delete(t)}async function US(){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 im(t){return(await US()).filter(e=>t.includes(e.email))}async function om(t){let e=[],r=await LS(t);e.push(...r.map(o=>o.email));let n=await MS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await im(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function wc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function aa(t){return(await wc(t))[0]??null}async function LS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await lr("by_email2",r,void 0,n)}async function MS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("account_by_email",r)}var Pc={};N(Pc,{BadRequestError:()=>Dc,BudibaseError:()=>ps,EmailUnavailableError:()=>mr,FeatureDisabledError:()=>vc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>bc,UsageLimitError:()=>Cc,getPublicError:()=>Nc});var ps=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 ps{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}}},fs=class extends ps{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ot.users.isBuilder,Xr=ot.users.isAdmin,FS=ot.users.isGlobalBuilder,kS=ot.users.isAdminOrBuilder,en=ot.users.hasAdminPermissions,Tt=ot.users.hasBuilderPermissions,BS=ot.users.hasAppBuilderPermissions;async function di(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 ua(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?yU(t,e):r}function yU(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 aa(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function Mc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};N(ys,{account:()=>r_,action:()=>n_,ai:()=>u_,analytics:()=>kc,app:()=>i_,auditLog:()=>I_,auth:()=>Kc,automation:()=>s_,backfill:()=>E_,backfillCache:()=>jc,backup:()=>S_,datasource:()=>o_,email:()=>a_,environmentVariable:()=>__,group:()=>T_,identification:()=>Ft,initAsyncEvents:()=>A0,installation:()=>ga,layout:()=>l_,license:()=>c_,org:()=>d_,plugin:()=>A_,processors:()=>mm,publishEvent:()=>A,query:()=>p_,role:()=>Sa,rowAction:()=>O_,rows:()=>m_,screen:()=>f_,serve:()=>g_,shutdown:()=>S0,table:()=>h_,user:()=>Je,view:()=>y_});var mm={};N(mm,{analyticsProcessor:()=>zS,init:()=>FU,processors:()=>yr});var kc={};N(kc,{enabled:()=>Fc});var Fc=async()=>Bc();var WS=require("posthog-node");var EU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",TU=t=>t==="served:app:preview"||t==="served:app";var $S={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},VS=async t=>{if(!EU(t))return!1;let e=await AU(t);if(e){let r=new Date(e.timestamp);switch($S[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await GS(t,{timestamp:Date.now()}),!1):!0}}else return await GS(t,{timestamp:Date.now()}),!1},qS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return TU(t)&&(e=e+":"+Ue()),e},AU=async t=>{let e=qS(t);return await ii(e)},GS=async(t,e)=>{let r=qS(t),n=$S[t],i;switch(n){case"calendarDay":i=86400}await ur(r,e,i)};var _U=["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"],ca=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new WS.PostHog(e)}async processEvent(e,r,n,i){if(_U.includes(e)||await VS(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 QS=ca;var IU=["installation:version:upgraded","installation:version:downgraded"],OU=["installation","tenant"],la=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new QS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!IU.includes(e)&&!await Fc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!OU.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 um=h.SELF_HOSTED&&!h.isDev(),da=class{async processEvent(e,r,n){um||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){um||console.log("[audit] identified",e)}async identifyGroup(e){um||console.log("[audit] group identified",e)}async shutdown(){}};var fm={};N(fm,{BudibaseQueue:()=>gr,InMemoryQueue:()=>Gc,JobQueue:()=>hs,shutdown:()=>UU});var jS=W(require("events"));function xU(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 jS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a,u=0){try{await a}catch(c){if(u++,u<3)await jt.wait(100*u),await s(r(n),u);else throw c}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n);let a=this._messages.indexOf(n);if(a===-1)throw"Failed deleting a processed message";this._messages.splice(a,1)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}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=()=>{let a={id:me(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}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=>xU(e))}async whenCurrentJobsFinished(){do await Pf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},HS=Gc;var dm=W(require("bull"));var hs=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(hs||{});function KS(t,e,r){bU(t,e),r&&RU(t,r)}function RU(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 At(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 wU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function bU(t,e){let r=wU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Xp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var $c={};N($c,{cleanup:()=>DU,clear:()=>lm,set:()=>cm});var pa=[];function cm(t,e){let r=setInterval(t,e);return pa.push(r),r}function lm(t){let e=pa.indexOf(t);e!==-1&&pa.splice(e,1),clearInterval(t)}function DU(){for(let t of pa)clearInterval(t);pa=[]}var hr=W(require("dd-trace")),fa=W(require("object-sizeof")),CU=be.fromMinutes(5).toMs(),vU=be.fromSeconds(30).toMs(),pm=be.fromSeconds(60).toMs(),ma=[],Vc;async function YS(){for(let t of ma)await t.clean(pm,"completed"),await t.clean(pm,"failed")}async function NU(t,e,r){let n=performance.now();try{let i=await e();return hr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw hr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;hr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),hr.default.dogstatsd.increment(t,1,r)}}function JS(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 PU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,fa.default)(t.data),...JS(t.opts||{})}}var gr=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:Zn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:CU,lockRenewTime:vU}};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 dm.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new HS(this.jobQueue,r):n=new dm.default(this.jobQueue,r),KS(n,this.jobQueue,this.opts.removeStalledCb),ma.push(n),!Vc&&!h.isTest()&&(Vc=cm(YS,pm),YS().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 s=>{await hr.default.trace("queue.process",async o=>{if(s.data._parentSpanContext){let a=s.data._parentSpanContext,u={traceId:a.traceId,spanId:a.spanId,toTraceId:()=>a.traceId,toSpanId:()=>a.spanId,toTraceparent:()=>""};o.addLink(u)}o.addTags({"queue.name":this.jobQueue,...PU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),hr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,fa.default)(s.data),this.metricTags()),await this.withMetrics("queue.process",()=>n(s))})};return r?this.queue.process(r,i):this.queue.process(i)}async add(e,r){return await hr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,fa.default)(e),...JS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},hr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,fa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return NU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function UU(){Vc&&lm(Vc),console.log("Waiting for current queue jobs to finish...");for(let t of ma)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of ma)await t.close();ma=[],console.log("Queues shutdown")}var gs=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new gr("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&&Uf(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 ha=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 zS=new la,LU=new da,MU=new gs;function FU(t){return gs.init(t)}var yr=new ha([zS,LU,MU]);var qc={};N(qc,{checkInstallVersion:()=>GU,getInstall:()=>ya,getInstallFromDB:()=>gm});var hm=W(require("semver"));var ya=async()=>Wr(Ce.INSTALLATION,86400,gm,{useTenancy:!1});async function kU(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 gm();throw r}}var gm=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 kU(t);else throw r}return e}),BU=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await ya();r.version=t,await e.put(r),await ts(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},GU=async()=>{let t=await ya(),e=t.version,r=h.VERSION;try{if(e!==r){let n=hm.default.gt(r,e),i=hm.default.lt(r,e);await BU(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ga.upgraded(e,r):i&&await ga.downgraded(e,r)}),await Ft.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?sa(`Invalid version "${r}" - is it semver?`):sa("Failed to retrieve version",n)}};var $U=async()=>{let t=Pp(),e=Aa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=Ea();return{id:ZS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await Wc(j()),s=Ea();return{id:ZS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await Wc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=Ea(),{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")},VU=async(t,e)=>{let r=t,n="installation",i=Ea(),s=h.VERSION,o=Aa(),a={id:r,type:n,hosting:i,version:s,environment:o};await ym(a,e),await Ta({...a,id:`$${n}_${r}`},e)},qU=async(t,e,r)=>{let n=await Wc(t),i="tenant",s=await pi(),o=Aa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await ym(a,r),await Ta({...a,id:`$${i}_${n}`},r)},WU=async(t,e,r)=>{let n=t._id,i=await Wc(t.tenantId),s="user",o=Tt(t),a=en(t),u;Wa(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,m=!!e&&l&&e.verified,p=await pi(),f=e?e.hosting:Ea(),d=Aa();await Ta({id:n,type:s,hosting:f,installationId:p,tenantId:i,verified:m,accountHolder:l,providerType:u,builder:o,admin:a,environment:d},r)},QU=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 pi(),c=Aa();if(Va(t)){let m=await kt(t.email);m?._id&&(e=m._id)}await Ta({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ta=async(t,e)=>{await yr.identify(t,e)},ym=async(t,e)=>{await yr.identifyGroup(t,e)},Aa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ea=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>jU()?"account-portal":(await ya()).installId,Wc=async t=>h.SELF_HOSTED?XS(t):t,XS=async t=>qe(t,()=>Wr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ne(),r=await Qc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),jU=()=>h.SERVICE==="account-portal",ZS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ft={getCurrentIdentity:$U,identifyInstallationGroup:VU,identifyTenantGroup:qU,identifyUser:WU,identifyAccount:QU,identify:Ta,identifyGroup:ym,getInstallationId:pi,getUniqueTenantId:XS};var jc={};N(jc,{end:()=>KU,isAlreadySent:()=>Am,isBackfillingEvent:()=>Tm,recordEvent:()=>Em,start:()=>HU});var HU=async t=>JU({eventWhitelist:t}),Em=async(t,e)=>{let r=Sm(t,e);await ur(r,e,void 0,{useTenancy:!1})},KU=async()=>{await zU(),await ZU()},YU=async()=>ii(Ce.BACKFILL_METADATA),JU=async t=>ur(Ce.BACKFILL_METADATA,t),zU=async()=>{await Vo(Ce.BACKFILL_METADATA)},ZU=async()=>{let t=Sm(),e=await lc(t);for(let r of e)await Vo(r,{useTenancy:!1})},Tm=async t=>{let r=(await YU())?.eventWhitelist;return!!(r&&r.includes(t))},Am=async(t,e)=>{let r=Sm(t,e);return!!await ii(r,{useTenancy:!1})},XU={"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}`},Sm=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=XU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Er;function Hc(){Er=new gr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function e_(){Er&&await Er.close()}async function t_(t){Er||Hc();let{event:e,identity:r}=t;Ph.indexOf(e)!==-1&&r.tenantId&&await Er.add(t)}var A=async(t,e,r,n)=>{let i=n||await Ft.getCurrentIdentity();if(!(n?!1:await Tm(t))){await t_({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await Am(t,e)||(await yr.processEvent(t,i,e,r),await Em(t,e))};async function eL(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function tL(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function rL(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var r_={created:eL,deleted:tL,verified:rL};async function nL(t,e){await A("action:automation_step:executed",t,e)}async function iL(t,e){await A("action:crud:executed",t,e)}async function sL(t,e){await A("action:ai_agent:executed",t,e)}var n_={aiAgentExecuted:sL,automationStepExecuted:nL,crudExecuted:iL};var oL=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function aL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function uL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function cL(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function lL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function dL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function pL(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function fL(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function mL(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function hL(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function gL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function yL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var i_={created:oL,updated:aL,deleted:uL,published:cL,unpublished:lL,fileImported:dL,duplicated:pL,templateImported:fL,versionUpdated:mL,versionReverted:hL,reverted:gL,exported:yL};async function EL(t,e){let n={userId:(await Ft.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function TL(t){let r={userId:(await Ft.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function AL(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function SL(t){let e={type:t};await A("auth:sso:updated",e)}async function _L(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function IL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Kc={login:EL,logout:TL,SSOCreated:AL,SSOUpdated:SL,SSOActivated:_L,SSODeactivated:IL};async function OL(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 xL(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 RL(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 wL(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 bL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function DL(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 CL(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 s_={created:OL,triggerUpdated:xL,deleted:RL,tested:wL,run:bL,stepCreated:DL,stepDeleted:CL};function _m(t){return!Object.values(ka).includes(t.source)}async function vL(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:created",r,e)}async function NL(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:updated",e)}async function PL(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:deleted",e)}var o_={created:vL,updated:NL,deleted:PL};async function UL(t){let e={};await A("email:smtp:created",e,t)}async function LL(){let t={};await A("email:smtp:updated",t)}var a_={SMTPCreated:UL,SMTPUpdated:LL};async function ML(t){let e={};await A("ai:config:created",e,t)}async function FL(){let t={};await A("ai:config:updated",t)}var u_={AIConfigCreated:ML,AIConfigUpdated:FL};async function kL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function BL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function GL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function $L(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function VL(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 WL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var c_={planChanged:kL,activated:BL,checkoutOpened:GL,checkoutSuccess:$L,portalOpened:VL,paymentFailed:qL,paymentRecovered:WL};async function QL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function jL(t){let e={layoutId:t};await A("layout:deleted",e)}var l_={created:QL,deleted:jL};async function HL(t){let e={};await A("org:info:name:updated",e,t)}async function KL(t){let e={};await A("org:info:logo:updated",e,t)}async function YL(t){let e={};await A("org:platformurl:updated",e,t)}async function JL(){let t={};await A("analytics:opt:out",t)}async function zL(){let t={};await A("analytics:opt:out",t)}var d_={nameUpdated:HL,logoUpdated:KL,platformURLUpdated:YL,analyticsOptOut:JL,analyticsOptIn:zL};var ZL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},XL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},eM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},tM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},rM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},nM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},p_={created:ZL,updated:XL,deleted:eM,imported:tM,run:rM,previewed:nM};async function iM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function sM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function oM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function aM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function uM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Sa={created:iM,updated:sM,deleted:oM,assigned:aM,unassigned:uM};async function cM(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 lM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var f_={created:cM,deleted:lM};var dM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},pM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},m_={created:dM,imported:pM};async function fM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function mM(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 hM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function gM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function yM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var h_={created:fM,updated:mM,deleted:hM,exported:gM,imported:yM};async function EM(t){let e={timezone:t};await A("served:builder",e)}async function TM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function AM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var g_={servedBuilder:EM,servedApp:TM,servedAppPreview:AM};async function SM(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function _M(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function IM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function OM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function xM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function RM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function wM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function bM(t){let e={audited:{email:t}};await A("user:invited",e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function CM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function vM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function NM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function PM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function UM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:SM,updated:_M,deleted:IM,permissionAdminAssigned:OM,permissionAdminRemoved:xM,permissionBuilderAssigned:RM,permissionBuilderRemoved:wM,invited:bM,inviteAccepted:DM,passwordForceReset:CM,passwordUpdated:vM,passwordResetRequested:NM,passwordReset:PM,dataCollaboration:UM};async function LM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function MM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function FM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function kM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function BM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function GM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function $M(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function VM({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 WM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function QM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var y_={created:LM,updated:MM,deleted:FM,exported:kM,filterCreated:BM,filterUpdated:GM,filterDeleted:$M,calculationCreated:VM,calculationUpdated:qM,calculationDeleted:WM,viewJoinCreated:QM};async function jM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function HM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function KM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function YM(){let t={};await A("installation:firstStartup",t)}var ga={versionChecked:jM,upgraded:HM,downgraded:KM,firstStartup:YM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function JM(t){Ts||await A("app:backfill:succeeded",t)}async function zM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function ZM(t){Ts||await A("tenant:backfill:succeeded",t)}async function XM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function e0(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function t0(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var E_={appSucceeded:JM,appFailed:zM,tenantSucceeded:ZM,tenantFailed:XM,installationSucceeded:e0,installationFailed:t0};async function r0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function n0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function i0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function s0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function o0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function a0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function u0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var T_={created:r0,updated:n0,deleted:i0,usersAdded:s0,usersDeleted:o0,createdOnboarding:a0,permissionsEdited:u0};async function c0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function l0(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 d0(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 A_={init:c0,imported:l0,deleted:d0};async function p0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function f0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var S_={appBackupRestored:p0,appBackupTriggered:f0};async function m0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function h0(t){let e={name:t};await A("environment_variable:deleted",e)}async function g0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var __={created:m0,deleted:h0,upgradePanelOpened:g0};async function y0(t){let e={filters:t};await A("audit_log:filtered",e)}async function E0(t){let e={filters:t};await A("audit_log:downloaded",e)}var I_={filtered:y0,downloaded:E0};async function T0(t,e){await A("row_action:created",t,e)}var O_={created:T0};function A0(){}var S0=async()=>{await yr.shutdown(),console.log("Events shutdown")};var Im=async t=>{await Je.deleted(t),Tt(t)&&await Je.permissionBuilderRemoved(t),en(t)&&await Je.permissionAdminRemoved(t)},_0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Sa.assigned(t,i)},I0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Sa.unassigned(t,i)},O0=async(t,e)=>{let r=t.roles,n=e?.roles;await _0(t,r,n),await I0(t,r,n)},Om=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await Ft.identifyUser(t,n),e?(await Je.updated(t),R0(t,e)&&await Je.permissionBuilderRemoved(t),b0(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),x0(t,e)&&await Je.permissionBuilderAssigned(t),w0(t,e)&&await Je.permissionAdminAssigned(t),await O0(t,e)},x0=(t,e)=>x_(t,e,Tt),R0=(t,e)=>R_(t,e,Tt),w0=(t,e)=>x_(t,e,en),b0=(t,e)=>R_(t,e,en),x_=(t,e,r)=>!(!r(t)||e&&r(e)),R_=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};N(Yc,{createASession:()=>C0,endSession:()=>v0,getSession:()=>Rm,getSessionsForUser:()=>_a,invalidateSessions:()=>fi,updateSessionTTL:()=>xm});var b_=require("uuid");var D_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function _a(t){return t?(await(await Vr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function fi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await _a(t)).map(o=>({key:As(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:As(t,s)}))),i&&i.length>0){let s=await Vr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||cs(`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 C0(t,e){let r=await _a(t),n=0;if(r.length>=3){let c=r.sort((p,f)=>new Date(p.createdAt).getTime()-new Date(f.createdAt).getTime()),l=r.length-3+1,m=c.slice(0,l).map(p=>p.sessionId);n=m.length,await fi(t,{sessionIds:m,reason:"session limit exceeded"})}let i=await Vr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,b_.v4)(),a=As(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,D_),{session:u,invalidatedSessionCount:n}}async function xm(t){let e=await Vr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,D_)}async function v0(t,e){await(await Vr()).delete(As(t,e))}async function Rm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Vr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Cm={};N(Cm,{PASSWORD_MAX_LENGTH:()=>bm,PASSWORD_MIN_LENGTH:()=>wm,validatePassword:()=>Dm});var wm=+(h.PASSWORD_MIN_LENGTH||12),bm=+(h.PASSWORD_MAX_LENGTH||512);function Dm(t){return!t||t.length<wm?{valid:!1,error:`Password invalid. Minimum ${wm} characters.`}:t.length>bm?{valid:!1,error:`Password invalid. Maximum ${bm} characters.`}:{valid:!0}}var N0=async t=>{let e=t._id;await Lt.removeUser(t),await Im(t),await rn.invalidateUser(e),await fi(e,{reason:"bulk-deletion"})},Yt=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()||Wa(e)?!0:(r||(r=await ls(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 m=Dm(o);if(!m.valid)throw new lt(m.error,400)}u=r.hashPassword?await Tf(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||rs();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 vm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await Jc(e)}static async bulkUpdate(e){return await Ia(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 mi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!c&&s&&(c=await kt(s),c&&c._id!==o))throw new mr(s);let l=1,m=0;if((r.isAccountHolder||c)&&(l=0,m=1),c){let[p,f]=await di([c,e]);m=p!==f?1:0}return t.quotas.addUsers(l,m,async()=>{r.isAccountHolder||await Lc(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=Nm(p,c)),!c&&u?.length&&(p.roles={...u});let f=[];if(!o&&a.length>0)for(let d of a)f.push(t.groups.addUsers(d,[p._id]));try{let d=await i.put(p);return p._rev=d.rev,await Om(p,c),c&&p.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.addUser(n,p._id,p.email,p.ssoId),await rn.invalidateUser(d.id),await Promise.all(f),i.get(p._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(p=>p.email),u=await om(a),c=[];for(let p of e){let f=s.find(g=>g.email.toLowerCase()===p.email.toLowerCase()),d=u.includes(p.email.toLowerCase());if(f||d){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await ua(p)&&o.push(p)}let l=await ls(n),m=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let d of s)m&&delete d.password,i.push(t.buildUser(d,{hashPassword:!0,requirePassword:!m},n,void 0,l));let p=await Promise.all(i);await Ia(p);for(let d of p)await Lt.addUser(n,d._id,d.email),await Om(d,void 0);let f=p.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(f)&&r){let d=[],g=f.map(E=>E._id);for(let E of r)d.push(t.groups.addUsers(E,g));await Promise.all(d)}return{successful:f,unsuccessful:c}})}static async bulkDelete(e){let r=ne(),n={successful:[],unsuccessful:[]},i=await Mc(e);i&&(e=e.filter(f=>f.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(f=>f.userId)})).rows.map(f=>f.doc),a=o.map(f=>({...f,_deleted:!0})),u=await Ia(a),l=(await di(o)).filter(f=>f).length,m=[];for(let f of o){let g=(await aa(f._id)).ssoId;g&&(await wc(g)).filter(y=>y.ssoId==null).forEach(y=>{m.push({...y,_deleted:!0})}),await N0(f)}await ct().bulkDocs(m),await t.quotas.removeUsers(a.length,l);let p={};return o.reduce((f,d)=>(f[d._id]=d,f),p),u.forEach(f=>{let d=p[f.id].email;f.ok?n.successful.push({_id:f.id,email:d}):n.unsuccessful.push({_id:f.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===ar()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Lt.removeUser(n),await r.remove(i,n._rev);let s=await ua(n)?1:0;await t.quotas.removeUsers(1,s),await Im(n),await rn.invalidateUser(i),await fi(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 ts(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 xa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Jc(t,e){let n=(await ne().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=xa(n)),n}async function U0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function L0(){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 Ia(t){return await ne().bulkDocs(t)}async function mi(t,e){let n=await ne().get(t);return e?.cleanup&&(n=xa(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await lr("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=xa(n)),n}async function M0(t){try{let e=await kt(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=fc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=xa(s)),s}async function vm(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 C_(t,e){if(e)return pc(at(t),e._id)}async function v_(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 lr("by_email2",{...e,startkey:i,endkey:`${n}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=xa(o)),o}var F0=8;async function N_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ne(),s=n??F0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await mi(e.equal._id)]:r?(u=await zc(r,a),l=m=>C_(r,m)):e?.string?.email?(u=await v_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Jc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(si(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=Mr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(si(null,a))).rows.map(p=>p.doc),Rf(u,s,{paginate:!0,property:c,getKey:l})}async function k0(){return(await Df("by_email2",{limit:0,include_docs:!1})).total_rows}async function B0(){let t=0;async function e(r){let n=await N_({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function G0(t){return delete t.admin,delete t.builder,t}function Nm(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 $0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Yt.save(t,{hashPassword:!1})}async function V0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Yt.save(t,{hashPassword:!1})}var P_=3600;async function q0(t,e){let n=await gf(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 W0(t){let e=await Yt.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 Ra({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=q0),!e)try{e=j()}catch{e=await Lt.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,P_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Yt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function Q0(t){let e=await Go(),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 W0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,P_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function wa(t){await(await Go()).delete(t)}var Mm={};N(Mm,{Writethrough:()=>Um});var U_=1e4,Pm=null;async function Zc(){if(!Pm){let t=await mf();Pm=new ti(t)}return Pm}function ba(t,e){return t.name+e}function Lm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function j0(t,e,r=U_){let n=await Zc(),i=e._id,s;i&&(s=await n.get(ba(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await as({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let m=await t.put(l,{force:!0});a._id=m.id,a._rev=m.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;cs("Ignoring conflict in write-through cache")}})).executed||cs("Ignoring redlock conflict in write-through cache")),s=Lm(a,o?null:s?.lastWrite),a._id&&await n.store(ba(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function H0(t,e){let r=await Zc(),n=ba(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Lm(s),await r.store(n,i)}return i.doc}async function K0(t,e){let r=await Zc(),n=ba(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Lm(s),await r.store(n,i)}return i.doc}async function Y0(t,e,r){let n=await Zc();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(ba(t,i))}finally{await t.remove(i,r)}}var Um=class{constructor(e,r=U_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return j0(this.db,e,r)}async get(e){return H0(this.db,e)}async tryGet(e){return K0(this.db,e)}async remove(e,r){return Y0(this.db,e,r)}};var Fm={};N(Fm,{createCode:()=>z0,getCode:()=>Z0,invalidateCode:()=>X0});var J0=be.fromHours(1).toSeconds();async function z0(t,e){let r=me();return await(await $o()).store(r,{userId:t,info:e},J0),r}async function Z0(t){let r=await(await $o()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function X0(t){await(await $o()).delete(t)}var Bm={};N(Bm,{DocWritethrough:()=>km,DocWritethroughProcessor:()=>Da,getProcessor:()=>tF,init:()=>L_});var eF=100,Xc,Da=class t{static get queue(){return t._queue||(t._queue=new gr("docWritethroughQueue",{jobOptions:{attempts:eF}})),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)}},km=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Da.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function L_(){return Xc=new Da().init(),Xc}function tF(){return Xc||L_()}function el(t){return`config${v}${t}`}async function Bt(t){let e=ne();try{return await e.get(el(t))}catch(r){if(r.status===404)return;throw r}}async function rF(t){return t._id||(t._id=el(t.type)),ne().put(t)}async function Qc(){let t=await Bt("settings");return t||(t={_id:el("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ca({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Bc({config:t.config}),t}async function Vm(){return(await Qc()).config}async function Ca(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 Bt("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 Bt("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 nF(){return await Bt("google")}async function tl(){return(await nF())?.config}async function qm(){if(!h.SELF_HOSTED)return Gm();let t=await tl();return(!t||!t.activated)&&(t=Gm()),t}function Gm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function iF(){return Bt("logos_oidc")}async function sF(){return Bt("oidc")}async function oF(){let t=(await sF())?.config;return t?.configs&&t.configs[0]}async function Wm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function M_(){return Bt("smtp")}async function aF(t){let e=await M_();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 uF(){return(await Bt("scim"))?.config}async function cF(){return Bt("ai")}var eh={};N(eh,{AccessController:()=>Hm,BUILTIN_ROLE_IDS:()=>Km,Role:()=>nn,RoleHierarchyTraversal:()=>rl,RoleIDVersion:()=>Ym,builtinRoleToNumber:()=>va,checkForRoleResourceArray:()=>G_,externalRole:()=>hF,findRole:()=>Na,getAllRoleIds:()=>TF,getAllRoles:()=>Xm,getBuiltinRole:()=>k_,getBuiltinRoles:()=>zm,getDBRoleID:()=>$_,getExternalRoleID:()=>sn,getExternalRoleIDs:()=>V_,getRole:()=>gF,getUserRoleHierarchy:()=>Zm,getUserRoleIdHierarchy:()=>B_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>mF,prefixRoleIDNoBuiltin:()=>jm,roleIDsAreEqual:()=>St,roleToNumber:()=>fF,saveRoles:()=>yF,validInherits:()=>pF});var Qm=W(require("semver"));var nl=W(require("lodash/fp/cloneDeep"));var F_=require("lodash");var Km={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...Km,BUILDER:"BUILDER"},Ym={UUID:void 0,NAME:"name"};function dF(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=Ym.NAME}addInheritance(e){return e&&typeof e=="string"?e=jm(e):e&&Array.isArray(e)&&(e=e.map(jm)),this.inherits=e,this}},rl=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=Na(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!dF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Na(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,F_.uniqBy)(i,s=>s._id)}},Jm={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 zm(){return(0,nl.default)(Jm)}function hi(t){return Object.values(Km).includes(t)}function jm(t){return hi(t)?t:cr(t)}function k_(t){let e=Object.values(Jm).find(r=>t.includes(r._id));if(e)return(0,nl.default)(e)}function pF(t,e){if(!e)return!1;let r=n=>t.find(i=>St(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 va(t){let e=zm(),r=Object.values(e).length+1;if(St(t,he.ADMIN)||St(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 fF(t){if(hi(t))return va(t);let e=await Zm(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=>St(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(hi(n.inherits))return va(n.inherits)+1;return 0};return Math.max(...e.map(r))}function mF(t,e){return t?e&&va(t)>va(e)?e:t:e}function St(t,e){return cr(t)===cr(e)}function hF(t){let e;return t._id&&(e=sn(t._id)),{...t,_id:e,inherits:V_(t.inherits,t.version)}}function Na(t,e,r){let n=k_(t);n||(t=cr(t));let i=e.find(s=>s._id&&St(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,nl.default)(Jm.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 gF(t,e){let r=Xi(),n=[];if(!hi(t)){let i=await r.tryGet($_(t));i&&n.push(i)}return Na(t,n,e)}async function yF(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function EF(t,e){let r=await Xm();if(St(t,he.ADMIN))return r;let n=Na(t,r,e),i=[];return n&&(i=new rl(r,e).walk(n)),i}async function B_(t){return(await Zm(t)).map(r=>r._id)}async function Zm(t,e){return EF(t,e)}function G_(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 TF(t){return(await Xm(t)).map(r=>r._id)}async function Xm(t){if(t)return ut(t,e);{let r;try{r=Xi()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(mc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=sn(a._id,a.version)));let i=zm(),s=[];!r||await AF(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=>St(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=G_(o.permissions,a);return n}}async function AF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Qm.default.valid(r)?!0:!Qm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Hm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||St(e,he.BUILDER)||St(r,e)||St(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await B_(r),this.userHierarchies[r]=n),n?.find(i=>St(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 $_(t){return t?.startsWith("role")?t:cr(t)}function sn(t,e){if(t.startsWith(`role${v}`)&&(hi(t)||e===Ym.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function V_(t,e){return t&&(typeof t=="string"?sn(t,e):t.map(r=>sn(r,e)))}var th={};N(th,{BUILDER:()=>xF,BUILTIN_PERMISSIONS:()=>il,CREATOR:()=>RF,GLOBAL_BUILDER:()=>wF,PermissionImpl:()=>ge,PermissionLevel:()=>xs,PermissionType:()=>$a,doesHaveBasePermission:()=>IF,getAllowedLevels:()=>j_,getBuiltinPermissionByID:()=>_F,getBuiltinPermissions:()=>SF,isPermissionLevelHigherThanRead:()=>OF,levelToNumber:()=>Q_});var q_=W(require("lodash/flatten")),W_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function Q_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function j_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var il={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 SF(){return(0,W_.default)(il)}function _F(t){return Object.values(il).find(r=>r._id===t)}function IF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(il),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&&j_(o.level).indexOf(e)!==-1)return!0;return!1}function OF(t){return Q_(t)>1}var xF="builder",RF="creator",wF="globalBuilder";var ih={};N(ih,{FlagSet:()=>ol,all:()=>vF,flags:()=>rh,getEnvFlags:()=>J_,init:()=>bF,isEnabled:()=>CF,parseEnvFlags:()=>ul,shutdown:()=>DF,testutils:()=>nh});var al=W(require("crypto"));var H_=require("posthog-node"),K_=W(require("dd-trace"));var Y_=require("lodash");var sl;function bF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),sl=new H_.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 DF(){sl?.shutdown()}function ul(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 J_(){return ul(h.TENANT_FEATURE_FLAGS||"")}var ol=class{constructor(e){this.flagSchema=e;this.setId=al.randomUUID()}defaults(){return(0,Y_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await K_.default.trace("features.fetch",async e=>{let r=nf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:m,key:p,value:f}of J_())if(!(!m||m!=="*"&&m!==s)&&(n.readFromEnvironmentVars=!0,f===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=f,n[`flags.${p}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let m=tf();m&&(u=al.createHash("sha512").update(m).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,sl&&u){n.readFromPostHog=!0;let m={tenantId:c},p=await sl.getAllFlags(u,{personProperties:m,onlyEvaluateLocally:!0});for(let[f,d]of Object.entries(p))if(this.isFlagName(f)){if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${f}": ${d}`);continue}if(!(i[f]===!0||o.has(f)))try{i[f]=d,n[`flags.${f}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${f}": ${d}`,g)}}}let l=of();for(let[m,p]of Object.entries(l))this.isFlagName(m)&&typeof p=="boolean"&&(i[m]=p,n[`flags.${m}.source`]="override");sf(this.setId,i);for(let[m,p]of Object.entries(i))n[`flags.${m}.value`]=p;return e?.addTags(n),i})}},rh=new ol(kh);async function CF(t){return await rh.isEnabled(t)}async function vF(){return await rh.fetch()}var nh={};N(nh,{setFeatureFlags:()=>z_,withFeatureFlags:()=>UF});function NF(){let t={};for(let{tenantId:e,key:r,value:n}of ul(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function PF(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 z_(t,e){let r=NF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=PF(r);return Ro({TENANT_FEATURE_FLAGS:n})}function UF(t,e,r){let n=z_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var gh={};N(gh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,buildAuthMiddleware:()=>_k,buildCsrfMiddleware:()=>Ok,buildTenancyMiddleware:()=>Ik,builderOnly:()=>Sl,builderOrAdmin:()=>Al,google:()=>Tr,internalApi:()=>yl,joiValidator:()=>Ua,oidc:()=>Ar,passport:()=>xk,platformLogout:()=>Ck,refreshOAuthToken:()=>bk,ssoCallbackUrl:()=>on,updateUserOAuth:()=>Dk});var hh={};N(hh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,authenticated:()=>ml,builderOnly:()=>Sl,builderOrAdmin:()=>Al,correlation:()=>dI,csp:()=>yI,csrf:()=>El,datasource:()=>Ak,errorHandling:()=>fI,featureFlagCookie:()=>EI,google:()=>Tr,internalApi:()=>yl,ip:()=>AI,joiValidator:()=>Ua,local:()=>Ss,oidc:()=>Ar,pino:()=>cI,querystringToBody:()=>mI,ssoCallbackUrl:()=>on,tenancy:()=>gl});var Ss={};N(Ss,{authenticate:()=>FF,options:()=>MF});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 Vm(),n="/api/global/auth";return $r()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var sh="Invalid credentials",LF="This account has expired. Please reset your password",MF={passReqToCallback:!0};async function FF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await kt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,sh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,sh)):i.password?await Af(r,i.password)?(delete i.password,n(null,i)):Me(n,sh):(console.info(`user=${e} has no password set`,i),Me(n,LF))}var Tr={};N(Tr,{buildVerifyFn:()=>eI,getCallbackUrl:()=>GF,strategyFactory:()=>oh});var Pa=t=>Promise.resolve(t);async function cl(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=rs(t.userId),s;try{s=await mi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await kt(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 kF(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 kF(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 BF=require("passport-google-oauth").OAuth2Strategy;function eI(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 cl(s,!0,i,t)}}async function oh(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=eI(r);return new BF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function GF(t){return on("google",t)}var Ar={};N(Ar,{buildVerifyFn:()=>rI,fetchStrategyConfig:()=>WF,getCallbackUrl:()=>QF,strategyFactory:()=>qF});var tI=W(require("node-fetch"));var $F=require("@techpass/passport-openidconnect").Strategy;function rI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:VF(n,i),oauth2:{accessToken:s,refreshToken:o}};return cl(l,!1,c,t)}}function VF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Lf(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=rI(e),n=new $F(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function WF(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,tI.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 QF(){return on("oidc")}var ah={};N(ah,{postAuth:()=>KF,preAuth:()=>HF});var jF=require("passport-google-oauth").OAuth2Strategy;async function nI(){let t=await qm();if(!t)throw new Error("No google configuration found");return t}async function HF(t,e,r){let n=await nI(),s=`${await Ca({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await oh(n,s,Pa);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 KF(t,e,r){let n=await nI(),s=`${await Ca({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=pr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new jF({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 ur(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var YF=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(YF);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}}):[],yi=(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 fh={};N(fh,{SecretOption:()=>oI,decrypt:()=>ph,decryptFile:()=>tk,encrypt:()=>ZF,encryptFile:()=>XF,getSecret:()=>dh});var Sr=W(require("crypto")),an=W(require("fs")),ch=W(require("zlib"));var uh=require("path"),ll="aes-256-ctr",sI="-",JF=1e4,zF=32,dl=16,lh=16,oI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(oI||{});function dh(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 pl(t,e){return Sr.default.pbkdf2Sync(t,e,JF,zF,"sha512")}function ZF(t,e="api"){let r=Sr.default.randomBytes(dl),n=pl(dh(e),r),i=Sr.default.createCipheriv(ll,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${sI}${a}`}function ph(t,e="api"){let[r,n]=t.split(sI),i=Buffer.from(r,"hex"),s=pl(dh(e),i),o=Sr.default.createDecipheriv(ll,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function XF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,uh.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,uh.join)(t,n)),a=Sr.default.randomBytes(dl),u=Sr.default.randomBytes(lh),c=pl(r,a),l=Sr.default.createCipheriv(ll,c,u);return o.write(a),o.write(u),s.pipe(ch.default.createGzip()).pipe(l).pipe(o),new Promise(m=>{o.on("finish",()=>{m({filename:n,dir:t})})})}async function ek(t){let e=an.default.createReadStream(t),r=await iI(e,dl),n=await iI(e,lh);return e.close(),{salt:r,iv:n}}async function tk(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ek(t),s=an.default.createReadStream(t,{start:dl+lh}),o=an.default.createWriteStream(e),a=pl(r,n),u=Sr.default.createDecipheriv(ll,a,i),c=ch.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,m)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",p=>{o.close(),m(p)}),u.on("error",p=>{o.close(),m(p)}),c.on("error",p=>{o.close(),m(p)}),o.on("error",p=>{o.close(),m(p)})})}function iI(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 uI=W(require("dd-trace")),rk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function nk(){return new Date(Date.now()-rk).toISOString()}function aI(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 ik(t,e){if(Zo(t))return{valid:!0,user:void 0};let n=ph(t).split(v)[0];return qe(n,async()=>{let i;try{let s=ne();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ra({userId:i,tenantId:n,populateUser:e})};throw new fs})}function fl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ml(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=fl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=fl(n,"x-budibase-token"),c=pr(n,"budibase:auth")||gc(u),l=fl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let m=fl(n,"x-budibase-tenant-id"),p=!1,f,d=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,O;try{O=await Rm(S,y),e&&e.populateUser?f=await Ra({userId:S,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):f=await Ra({userId:S,tenantId:O.tenantId,email:O.email}),f.csrfToken=O.csrfToken,g="cookie",O?.lastAccessedAt<nk()&&await xm(O),p=!0}catch(R){p=!1,console.error(`Auth Error: ${R.message}`),Hr(n,"budibase:auth")}}if(!p&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:O}=await ik(l,y);S&&(p=!0,g="api_key",f=O,d=!O)}!f&&m?f={tenantId:m}:f&&"password"in f&&delete f.password,p||(p=!1);let E=y=>y&&y.email;return E(f)&&uI.default.setUser({id:f._id,tenantId:f.tenantId,budibaseAccess:f.budibaseAccess,status:f.status}),aI(n,{authenticated:p,user:f,internal:d,version:o,publicEndpoint:s,loginMethod:g}),E(f)?Lp(f,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 aI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var sk=async(t,e)=>e(),hl=sk;function gl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=Wo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var yl=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"),Zo(r)||t.throw(403,"Unauthorized"),e()};var ok=["GET","HEAD","OPTIONS"],ak=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function El(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||ok.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ak.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 Tl=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Al=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?Tt:h.isApps()?ms: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 Sl=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?Tt:h.isApps()?ms: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 uk=require("koa-pino-logger"),ck=require("correlation-id");function lk(){return{logger:xc,genReqId:ck.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 dk(){return h.HTTP_LOGGING?uk(lk()):(t,e)=>e()}var pk=dk(),cI=pk;var lI=require("uuid"),fk=require("correlation-id"),mk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,lI.v4)()),fk.withId(r,()=>e())},dI=mk;function pI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of $T){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function hk(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(pI(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 fI=hk;function mI(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 gI=W(require("crypto"));var hI={"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'"]},gk=/^[A-Za-z0-9-*:/.]+$/,yk=async(t,e)=>{let r=gI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...hI};if(n["script-src"]=[...hI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await jo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
|
|
38
|
-
`).filter(c=>gk.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()},yI=yk;var EI=async(t,e)=>{let n=pr(t,"budibase:featureflags")?.flags||{};await af(n,async()=>{await e()})};var Ua={};N(Ua,{body:()=>Ek,params:()=>Tk});var mh=W(require("joi"));function TI(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:mh.default.any().optional(),updatedAt:mh.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 Ek(t,e){return TI(t,"body",e)}function Tk(t,e){return TI(t,"params",e)}var AI=async(t,e)=>t.ip?await rf(t.ip,()=>e()):e();var Ak={google:ah};var SI=require("koa-passport"),Sk=require("passport-local").Strategy,_l=require("passport-oauth2-refresh"),_k=ml,Ik=gl,Ok=El,xk=SI;SI.use(new Sk(Ss.options,Ss.authenticate));async function Rk(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,Pa)}catch{throw new Error("Could not refresh OAuth Token")}return _l.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{_l.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function wk(t,e){let r=await Tr.getCallbackUrl(t),n;try{n=await Tr.strategyFactory(t,r,Pa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return _l.use(n),new Promise(i=>{_l.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function bk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Wm(r);return n?Rk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await tl();return n?wk(n,t):{err:{data:"Google configuration not found"}}}}}async function Dk(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 wa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Ck(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=pr(e,"budibase:auth"),s=await _a(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Hr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await Kc.logout(e.user?.email),await wa(r)}var Eh={};N(Eh,{validate:()=>Lk});var D=W(require("joi")),vk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function yh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Nk(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)});yh(e,t)}function Pk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(wl)).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(Rl)),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(bl).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(...vk),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()}))})});yh(n,t)}function Uk(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(...Bh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});yh(n,t)}function Lk(t){switch(t?.type){case"component":Nk(t);break;case"datasource":Pk(t);break;case"automation":Uk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Th={};N(Th,{Client:()=>We,clients:()=>qr,locks:()=>ui,utils:()=>oc});var Ah={};N(Ah,{isBlacklisted:()=>Fk,refreshBlacklist:()=>xI});var _I=W(require("dns")),Ol=W(require("net"));var II=require("util"),Il,Mk=(0,II.promisify)(_I.default.lookup);async function OI(t){return Ol.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Mk(t,{all:!0})).map(r=>r.address)}async function xI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Ol.default.isIP(i))r.push(i);else{let s=await OI(i);r=r.concat(s)}}Il=r}async function Fk(t){if(Il||await xI(),Il?.length===0)return!1;let e;return Ol.default.isIP(t)?e=[t]:e=await OI(t),!!Il?.find(r=>e.includes(r))}var _h={};N(_h,{init:()=>Bk});var kk={"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 RI(t,e){let r=kk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var La=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=RI(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 e_()}};var wI,Sh;function Bk(t){Er||Hc(),Sh||(Sh=new La(t)),wI||(wI=Er.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Sh.processEvent(r,n,i)}))}var vh={};N(vh,{COUNT_FIELD_NAME:()=>Dh,Sql:()=>MI,SqlTable:()=>xl,designDoc:()=>Ch,utils:()=>Jp});var vI=require("knex");var Gk=require("knex");function Ih(t){return["link","formula","ai"].indexOf(t)!==-1}function bI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(p=>p.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(p=>p.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,f]of Object.entries(e.schema)){let d=n?.schema[p];if(d&&d.type||c.includes(p)||i?.updated===p)continue;let g=f.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(p)?t.string(p,255):t.text(p);break;case"number":if(f.meta&&f.meta.toKey&&f.meta.toTable){let{toKey:E,toTable:y}=f.meta;t.integer(p).unsigned(),t.foreign(p).references(`${y}.${E}`)}else l.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":f.timeOnly?t.time(p):t.datetime(p,{useTz:!f.ignoreTimezones});break;case"array":case"bb_reference":jt.schema.isDeprecatedSingleUserColumn(f)?t.text(p):t.json(p);break;case"link":if(f.relationshipType!=="many-to-one"&&f.relationshipType!=="many-to-many"){if(!f.foreignKey||!f.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Qp(f.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(f.foreignKey,O):t.integer(f.foreignKey).unsigned(),t.foreign(f.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(p);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${f.type} is not a valid SQL type`);default:Ci.unreachable(g)}}let m=i?n?.schema[i.old].type:void 0;return i&&m&&!Ih(m)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([f,d])=>!Ih(d.type)&&e.schema[f]==null).forEach(([f,d])=>{i?.old===f||Ih(d.type)||(n.constrained&&n.constrained.indexOf(f)!==-1&&t.dropForeign(f),t.dropColumn(f))}),t}function Vk(t,e,r){return t.createTable(e.name,n=>{bI(n,e,r)})}function qk(t,e,r,n,i){return t.alterTable(e.name,s=>{bI(s,e,r,n,i)})}function Wk(t,e){return t.dropTable(e.name)}var Oh=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,Gk.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=Vk(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=Ji(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=Wk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},xl=Oh;var NI=require("lodash"),Dh="__bb_total";function DI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function xh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Qk(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 PI(t){return Array.isArray(t)?t.map(e=>PI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function CI(t){return t.sourceType==="internal"||t.sourceId===Ll}function jk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function UI(t,e='"'){return`${e}${jk(t,e)}${e}`}function Rh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=UI(t[r],e));return`[${t.join(",")}]`}function LI(t){return Vh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var Hk={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},wh=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()&&LI(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(!Kp(e))return null}else if(r.dateOnly){let n=Hp(e);return n?new Date(n):null}else return r.ignoreTimezones?rc(e)?new Date(e):jp(e)?new Date(e+"Z"):null:rc(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,NI.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(Jt)){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=m=>n.match(new RegExp(`^${m}\\.`));if(!s)return e;for(let m of s){let p=m.tableName,f=a?.[p]||p,d=l(p)||l(f),g=l(m.column);if((d||g)&&m.to&&m.tableName){let E=this.knex.select(this.knex.raw(1)).from({[f]:p}),y=E.clone(),S=Yp(m),O;if(d?O=n:O=n.replace(new RegExp(`^${m.column}.`),`${a?.[m.tableName]||m.tableName}.`),S){let R=a?.[S.through]||m.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${f}.${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=`${f}.${m.to}`,T=`${c}.${m.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,Hk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let m=(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}%`]))),p=(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(Rh(O,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Rh(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(UI(Rh(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",m),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=nc(E.low),O=nc(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&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let f=s?.[this.table._id]||this.table._id;return r.documentType&&!Wp(this.table)&&f&&e.andWhereLike(`${f}._id`,`${Or(r.documentType)}%`),e}isSqs(){return CI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;CI(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 ${Dh}`)}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 m=`${s}.${a}`,p;this.isAggregateField(a)?p=this.rawQuotedIdentifier(a):this.client==="oracledb"?p=this.convertClobs(m):p=this.rawQuotedIdentifier(m),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[p,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 m of n){let{tableName:p,through:f,to:d,from:g,fromPrimary:E,toPrimary:y}=m;if(!p||!r)continue;let S=c[p];if(!S)throw new Error(`related table "${p}" not found in datasource`);let O=a?.[p]||p,R=a?.[r]||r,T=f&&a?.[f]||f,_=this.tableNameWithSchema(p,{alias:O,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=Qk(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=f&&y&&E,I=F?`${T}.${g}`:`${O}.${d}`,q=F?`${R}.${E}`:`${R}.${g}`;if(F){let V=this.tableNameWithSchema(f,{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(xh()),s.select(V).from({[O]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,m),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 ${xh()})`));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(xh())});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({[m.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,m=i?.[a]||a,p=this.tableNameWithSchema(o,{alias:c,schema:s}),f=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(f,function(){for(let d of n){let g=d.fromPrimary,E=d.from;this.orOn(`${m}.${g}`,"=",`${l}.${E}`)}}).leftJoin(p,function(){for(let d of n){let g=d.toPrimary,E=d.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(p,function(){for(let d of n){let g=d.from,E=d.to;this.orOn(`${m}.${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 f=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=f}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 m=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):m.length>0?u=this.addAggregations(u,m):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&m.length===0){let p=this.query.tableAliases?.[o.name]||o.name,f=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"paginated"}));return this.addJsonRelationships(f,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())}},bh=class extends xl{constructor(r,n=DI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Ji(r);return i==="sqlite3"&&(s=PI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,vI.knex)(s),a,u=new wh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:DI()}});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 m=[];for(let p of a)m.push(await n(p,o));return m}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 m;s==="mssql"?m=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(m=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(m,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===Ll){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(!LI(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){Co(this.getSqlClient(),r,n)}},MI=bh;var Ch={};N(Ch,{base:()=>Kk});function Kk(t){return{_id:Ht,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Yk={...Qo,...Se},Jk=(t={})=>{ec(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: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});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|