@budibase/backend-core 3.12.6 → 3.12.8

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.
Files changed (33) hide show
  1. package/dist/index.js +15 -15
  2. package/dist/index.js.map +4 -4
  3. package/dist/package.json +2 -2
  4. package/dist/plugins.js +1 -1
  5. package/dist/plugins.js.map +2 -2
  6. package/dist/src/context/mainContext.d.ts +1 -1
  7. package/dist/src/context/mainContext.js +4 -4
  8. package/dist/src/context/mainContext.js.map +1 -1
  9. package/dist/src/environment.js +25 -6
  10. package/dist/src/environment.js.map +1 -1
  11. package/dist/src/events/index.d.ts +1 -1
  12. package/dist/src/events/index.js +12 -3
  13. package/dist/src/events/index.js.map +1 -1
  14. package/dist/src/events/processors/AnalyticsProcessor.d.ts +1 -1
  15. package/dist/src/events/processors/AnalyticsProcessor.js +5 -3
  16. package/dist/src/events/processors/AnalyticsProcessor.js.map +1 -1
  17. package/dist/src/events/processors/AuditLogsProcessor.d.ts +1 -1
  18. package/dist/src/events/processors/AuditLogsProcessor.js +4 -2
  19. package/dist/src/events/processors/AuditLogsProcessor.js.map +1 -1
  20. package/dist/src/events/processors/LoggingProcessor.d.ts +1 -1
  21. package/dist/src/events/processors/LoggingProcessor.js +3 -1
  22. package/dist/src/events/processors/LoggingProcessor.js.map +1 -1
  23. package/dist/src/events/processors/Processors.d.ts +1 -1
  24. package/dist/src/events/processors/Processors.js +6 -4
  25. package/dist/src/events/processors/Processors.js.map +1 -1
  26. package/dist/src/events/processors/posthog/PosthogProcessor.d.ts +1 -1
  27. package/dist/src/events/processors/posthog/PosthogProcessor.js +3 -1
  28. package/dist/src/events/processors/posthog/PosthogProcessor.js.map +1 -1
  29. package/dist/src/index.d.ts +1 -1
  30. package/dist/src/sql/utils.d.ts +1 -1
  31. package/dist/src/sql/utils.js +9 -3
  32. package/dist/src/sql/utils.js.map +1 -1
  33. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var DI=Object.create;var La=Object.defineProperty;var CI=Object.getOwnPropertyDescriptor;var vI=Object.getOwnPropertyNames;var NI=Object.getPrototypeOf,PI=Object.prototype.hasOwnProperty;var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)La(t,r,{get:e[r],enumerable:!0})},wh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vI(e))!PI.call(t,i)&&i!==r&&La(t,i,{get:()=>e[i],enumerable:!(n=CI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?DI(NI(t)):{},wh(e||!t||!t.__esModule?La(r,"default",{value:t,enumerable:!0}):r,t)),UI=t=>wh(La({},"__esModule",{value:!0}),t);var Zh=j((kl,Fl)=>{"use strict";(function(t,e){typeof kl=="object"&&typeof Fl<"u"?Fl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(kl,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",d="year",m="date",p="Invalid Date",f=/^(\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"],v=$%100;return"["+$+(F[(v-20)%10]||F[v]||F[0])+"]"}},y=function($,F,v){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(v)+$},_={s:y,z:function($){var F=-$.utcOffset(),v=Math.abs(F),q=Math.floor(v/60),L=v%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(L,2,"0")},m:function $(F,v){if(F.date()<v.date())return-$(v,F);var q=12*(v.year()-F.year())+(v.month()-F.month()),L=F.clone().add(q,c),K=v-L<0,V=F.clone().add(q+(K?-1:1),c);return+(-(q+(v-L)/(K?L-V:V-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},S="en",M={};M[S]=E;var T="$isDayjsObject",I=function($){return $ instanceof le||!(!$||!$[T])},x=function $(F,v,q){var L;if(!F)return S;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),v&&(M[K]=v,L=K);var V=F.split("-");if(!L&&V.length>1)return $(V[0])}else{var se=F.name;M[se]=F,L=se}return!q&&L&&(S=L),L||!q&&S},w=function($,F){if(I($))return $.clone();var v=typeof F=="object"?F:{};return v.date=$,v.args=arguments,new le(v)},B=_;B.l=x,B.i=I,B.w=function($,F){return w($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var le=function(){function $(v){this.$L=x(v.locale,null,!0),this.parse(v),this.$x=this.$x||v.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(v){this.$d=function(q){var L=q.date,K=q.utc;if(L===null)return new Date(NaN);if(B.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(f);if(V){var se=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return K?new Date(Date.UTC(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(L)}(v),this.init()},F.init=function(){var v=this.$d;this.$y=v.getFullYear(),this.$M=v.getMonth(),this.$D=v.getDate(),this.$W=v.getDay(),this.$H=v.getHours(),this.$m=v.getMinutes(),this.$s=v.getSeconds(),this.$ms=v.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(v,q){var L=w(v);return this.startOf(q)<=L&&L<=this.endOf(q)},F.isAfter=function(v,q){return w(v)<this.startOf(q)},F.isBefore=function(v,q){return this.endOf(q)<w(v)},F.$g=function(v,q,L){return B.u(v)?this[q]:this.set(L,v)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(v,q){var L=this,K=!!B.u(q)||q,V=B.p(v),se=function(pn,Qe){var Or=B.w(L.$u?Date.UTC(L.$y,Qe,pn):new Date(L.$y,Qe,pn),L);return K?Or:Or.endOf(a)},Oe=function(pn,Qe){return B.w(L.toDate()[pn].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Qe)),L)},ve=this.$W,ke=this.$M,dt=this.$D,J="set"+(this.$u?"UTC":"");switch(V){case d:return K?se(1,0):se(31,11);case c:return K?se(1,ke):se(0,ke+1);case u:var dn=this.$locale().weekStart||0,_s=(ve<dn?ve+7:ve)-dn;return se(K?dt-_s:dt+(6-_s),ke);case a:case m:return Oe(J+"Hours",0);case o:return Oe(J+"Minutes",1);case s:return Oe(J+"Seconds",2);case i:return Oe(J+"Milliseconds",3);default:return this.clone()}},F.endOf=function(v){return this.startOf(v,!1)},F.$set=function(v,q){var L,K=B.p(v),V="set"+(this.$u?"UTC":""),se=(L={},L[a]=V+"Date",L[m]=V+"Date",L[c]=V+"Month",L[d]=V+"FullYear",L[o]=V+"Hours",L[s]=V+"Minutes",L[i]=V+"Seconds",L[n]=V+"Milliseconds",L)[K],Oe=K===a?this.$D+(q-this.$W):q;if(K===c||K===d){var ve=this.clone().set(m,1);ve.$d[se](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else se&&this.$d[se](Oe);return this.init(),this},F.set=function(v,q){return this.clone().$set(v,q)},F.get=function(v){return this[B.p(v)]()},F.add=function(v,q){var L,K=this;v=Number(v);var V=B.p(q),se=function(ke){var dt=w(K);return B.w(dt.date(dt.date()+Math.round(ke*v)),K)};if(V===c)return this.set(c,this.$M+v);if(V===d)return this.set(d,this.$y+v);if(V===a)return se(1);if(V===u)return se(7);var Oe=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,ve=this.$d.getTime()+v*Oe;return B.w(ve,this)},F.subtract=function(v,q){return this.add(-1*v,q)},F.format=function(v){var q=this,L=this.$locale();if(!this.isValid())return L.invalidDate||p;var K=v||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Oe=this.$m,ve=this.$M,ke=L.weekdays,dt=L.months,J=L.meridiem,dn=function(Qe,Or,Is,Ua){return Qe&&(Qe[Or]||Qe(q,K))||Is[Or].slice(0,Ua)},_s=function(Qe){return B.s(se%12||12,Qe,"0")},pn=J||function(Qe,Or,Is){var Ua=Qe<12?"AM":"PM";return Is?Ua.toLowerCase():Ua};return K.replace(g,function(Qe,Or){return Or||function(Is){switch(Is){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return ve+1;case"MM":return B.s(ve+1,2,"0");case"MMM":return dn(L.monthsShort,ve,dt,3);case"MMMM":return dn(dt,ve);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return dn(L.weekdaysMin,q.$W,ke,2);case"ddd":return dn(L.weekdaysShort,q.$W,ke,3);case"dddd":return ke[q.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return _s(1);case"hh":return _s(2);case"a":return pn(se,Oe,!0);case"A":return pn(se,Oe,!1);case"m":return String(Oe);case"mm":return B.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return B.s(q.$s,2,"0");case"SSS":return B.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(v,q,L){var K,V=this,se=B.p(q),Oe=w(v),ve=(Oe.utcOffset()-this.utcOffset())*e,ke=this-Oe,dt=function(){return B.m(V,Oe)};switch(se){case d:K=dt()/12;break;case c:K=dt();break;case l:K=dt()/3;break;case u:K=(ke-ve)/6048e5;break;case a:K=(ke-ve)/864e5;break;case o:K=ke/r;break;case s:K=ke/e;break;case i:K=ke/t;break;default:K=ke}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(v,q){if(!v)return this.$L;var L=this.clone(),K=x(v,q,!0);return K&&(L.$L=K),L},F.clone=function(){return B.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()},$}(),ln=le.prototype;return w.prototype=ln,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){ln[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),w.extend=function($,F){return $.$i||($(F,le,w),$.$i=!0),w},w.locale=x,w.isDayjs=I,w.unix=function($){return w(1e3*$)},w.en=M[S],w.Ls=M,w.p={},w})});var xt=j(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var ax=t=>new ru(t);He.valid=ax;var ux=t=>new nu(t);He.err=ux;var ru=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=ru;var nu=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=nu});var Rt=j(rg=>{"use strict";Object.defineProperty(rg,"__esModule",{value:!0})});var Nr=j(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});qt();var re=xt();Rt();var cx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],lx=["sun","mon","tue","wed","thu","fri","sat"],dx=(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&&cx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&lx.indexOf(t.toLowerCase())!==-1)return(0,re.valid)(!0);let n=Number(t);if(isNaN(n))return(0,re.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,re.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,re.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,re.valid)(!0)},px=(t,e,r)=>{if(t==="*")return dx(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.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,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},ng=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Ns(t,e,r),fx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return px(n[0],e,r);if(n.length===2){let i=ng(n[0],e,r,0),s=ng(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,re.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,re.valid)(!0)}return(0,re.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},mx=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '/')`);let i=fx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,re.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,re.valid)(!0)},hx=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,re.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,re.valid)(!0):(0,re.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,re.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(mx(o,e,r))}),i.every(o=>o.isValid()))return(0,re.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,re.err)(s)};Vl.default=hx});var ig=j(Ps=>{"use strict";var gx=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});qt();var yx=xt(),Ex=gx(Nr());Rt();var Tx=(t,e)=>{if(!t.seconds)return(0,yx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Ex.default)(r,"seconds",e)};Ps.default=Tx});var sg=j(Us=>{"use strict";var Ax=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});qt();var Sx=xt(),_x=Ax(Nr());Rt();var Ix=(t,e)=>{if(!t.minutes)return(0,Sx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,_x.default)(r,"minutes",e)};Us.default=Ix});var og=j(Ls=>{"use strict";var Ox=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});qt();var xx=xt(),Rx=Ox(Nr());Rt();var wx=(t,e)=>{if(!t.hours)return(0,xx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Rx.default)(r,"hours",e)};Ls.default=wx});var ag=j(ks=>{"use strict";var bx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});qt();var Ms=xt(),Dx=bx(Nr());Rt();var Cx=(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,Dx.default)(r,"daysOfMonth",e)};ks.default=Cx});var ug=j(Fs=>{"use strict";var vx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var Nx=xt(),Px=vx(Nr());Rt();var Ux=(t,e)=>{if(!t.months)return(0,Nx.err)(["months field is undefined."]);let{months:r}=t;return(0,Px.default)(r,"months",e)};Fs.default=Ux});var cg=j(Gs=>{"use strict";var Lx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var Bs=xt(),Mx=Lx(Nr());Rt();var kx=(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,Mx.default)(r,"daysOfWeek",e)};Gs.default=kx});var lg=j($s=>{"use strict";var Fx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var Bx=xt(),Gx=Fx(Nr());Rt();var $x=(t,e)=>{if(!t.years)return(0,Bx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Gx.default)(r,"years",e)};$s.default=$x});var mg=j((WW,fg)=>{"use strict";var ql;try{ql=Map}catch{}var Wl;try{Wl=Set}catch{}function dg(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(pg);if(ql&&t instanceof ql)return new Map(Array.from(t.entries()));if(Wl&&t instanceof Wl)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]:dg(t[i],e,r)}return n}return t}function pg(t){return dg(t,[],[])}fg.exports=pg});var Vs=j(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.default=Kx;var Vx=Object.prototype.toString,qx=Error.prototype.toString,Wx=RegExp.prototype.toString,Qx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",jx=/^Symbol\((.*)\)(.*)$/;function Hx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function hg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Hx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Qx.call(t).replace(jx,"Symbol($1)");let n=Vx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+qx.call(t)+"]":n==="RegExp"?Wx.call(t):null}function Kx(t,e){let r=hg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=hg(this[n],e);return s!==null?s:i},2)}});var er=j(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 gg=Yx(Vs());function Yx(t){return t&&t.__esModule?t:{default:t}}var yg={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,gg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,gg.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=yg;var Eg={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=Eg;var Tg={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=Tg;var Ag={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Ag;var Sg={isValue:"${path} field must be ${value}"};Ne.boolean=Sg;var _g={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=_g;var Ig={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=Ig;var Jx=Object.assign(Object.create(null),{mixed:yg,string:Eg,number:Tg,date:Ag,object:_g,array:Ig,boolean:Sg});Ne.default=Jx});var vi=j(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.default=void 0;var zx=t=>t&&t.__isYupSchema__;iu.default=zx});var xg=j(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Zx=Og(require("lodash/has")),Xx=Og(vi());function Og(t){return t&&t.__esModule?t:{default:t}}var jl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Zx.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,Xx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},eR=jl;su.default=eR});var Kl=j(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=tR;function tR(t){return t==null?[]:[].concat(t)}});var vn=j(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var rR=Rg(Vs()),nR=Rg(Kl());function Rg(t){return t&&t.__esModule?t:{default:t}}function Yl(){return Yl=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},Yl.apply(this,arguments)}var iR=/\$\{\s*(\w+)\s*\}/g,Jl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Yl({},r,{path:n})),typeof e=="string"?e.replace(iR,(i,s)=>(0,rR.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,nR.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)}};ou.default=Jl});var au=j(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=aR;var zl=sR(vn());function sR(t){return t&&t.__esModule?t:{default:t}}var oR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function aR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=oR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new zl.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let p=n[m];p(i,function(g){if(g){if(!zl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new zl.default(o,s,u),s);return}c(null,s)}})}}});var qs=j((ZW,vg)=>{"use strict";function Nn(t){this._maxSize=t,this.clear()}Nn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Nn.prototype.get=function(t){return this._values[t]};Nn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var uR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Cg=/^\d+$/,cR=/^\d/,lR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,dR=/^\s*(['"]?)(.*?)(\1)\s*$/,td=512,wg=new Nn(td),bg=new Nn(td),Dg=new Nn(td);vg.exports={Cache:Nn,split:ed,normalizePath:Xl,setter:function(t){var e=Xl(t);return bg.get(t)||bg.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=Xl(t);return Dg.get(t)||Dg.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+(rd(r)||Cg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){pR(Array.isArray(t)?t:ed(t),e,r)}};function Xl(t){return wg.get(t)||wg.set(t,ed(t).map(function(e){return e.replace(dR,"$2")}))}function ed(t){return t.match(uR)||[""]}function pR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(hR(i)&&(i='"'+i+'"'),a=rd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function rd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function fR(t){return t.match(cR)&&!t.match(Cg)}function mR(t){return lR.test(t)}function hR(t){return!rd(t)&&(fR(t)||mR(t))}});var Pn=j(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=yR;Qs.default=void 0;var gR=qs(),uu={context:"$",value:"."};function yR(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]===uu.context,this.isValue=this.key[0]===uu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?uu.context:this.isValue?uu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,gR.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 Ng=j(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=SR;var ER=nd(require("lodash/mapValues")),cu=nd(vn()),TR=nd(Pn());function nd(t){return t&&t.__esModule?t:{default:t}}function lu(){return lu=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},lu.apply(this,arguments)}function AR(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 SR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=AR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(I){return TR.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let x=(0,ER.default)(lu({value:i,originalValue:u,label:o,path:I.path||s},p,I.params),y),w=new cu.default(cu.default.formatError(I.message||f,x),i,x.path,I.type||d);return w.params=x,w}let S=lu({path:s,parent:g,type:d,createError:_,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(I=>{cu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let M;try{var T;if(M=m.call(S,i,S),typeof((T=M)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}cu.default.isError(M)?n(M):M?n(null,M):n(_())}return e.OPTIONS=t,e}});var sd=j(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Pg;js.default=void 0;var _R=qs(),IR=t=>t.substr(0,t.length-1).substr(1);function Pg(t,e,r,n=r){let i,s,o;return e?((0,_R.forEach)(e,(a,u,c)=>{let l=u?IR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=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[d],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 OR=(t,e,r,n)=>Pg(t,e,r,n).schema,xR=OR;js.default=xR});var Lg=j(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var Ug=RR(Pn());function RR(t){return t&&t.__esModule?t:{default:t}}var od=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){Ug.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Ug.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}};du.default=od});var rr=j(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var Mg=tr(mg()),Ni=er(),wR=tr(xg()),kg=tr(au()),pu=tr(Ng()),Fg=tr(Vs()),bR=tr(Pn()),DR=sd(),CR=tr(Kl()),Bg=tr(vn()),Gg=tr(Lg());function tr(t){return t&&t.__esModule?t:{default:t}}function mt(){return mt=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},mt.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Gg.default,this._blacklist=new Gg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.mixed.notType)}),this.type=e?.type||"mixed",this.spec=mt({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=mt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Mg.default)(mt({},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=mt({},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(mt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Fg.default)(e),o=(0,Fg.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 PI=Object.create;var Ma=Object.defineProperty;var LI=Object.getOwnPropertyDescriptor;var UI=Object.getOwnPropertyNames;var MI=Object.getPrototypeOf,FI=Object.prototype.hasOwnProperty;var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)Ma(t,r,{get:e[r],enumerable:!0})},Dh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of UI(e))!FI.call(t,i)&&i!==r&&Ma(t,i,{get:()=>e[i],enumerable:!(n=LI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?PI(MI(t)):{},Dh(e||!t||!t.__esModule?Ma(r,"default",{value:t,enumerable:!0}):r,t)),kI=t=>Dh(Ma({},"__esModule",{value:!0}),t);var tg=j((Bl,Gl)=>{"use strict";(function(t,e){typeof Bl=="object"&&typeof Gl<"u"?Gl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Bl,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",d="year",m="date",p="Invalid Date",f=/^(\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 O=["th","st","nd","rd"],N=$%100;return"["+$+(O[(N-20)%10]||O[N]||O[0])+"]"}},y=function($,O,N){var q=String($);return!q||q.length>=O?$:""+Array(O+1-q.length).join(N)+$},S={s:y,z:function($){var O=-$.utcOffset(),N=Math.abs(O),q=Math.floor(N/60),M=N%60;return(O<=0?"+":"-")+y(q,2,"0")+":"+y(M,2,"0")},m:function $(O,N){if(O.date()<N.date())return-$(N,O);var q=12*(N.year()-O.year())+(N.month()-O.month()),M=O.clone().add(q,c),Y=N-M<0,V=O.clone().add(q+(Y?-1:1),c);return+(-(q+(N-M)/(Y?M-V:V-M))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},I="en",R={};R[I]=E;var T="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[T])},B=function $(O,N,q){var M;if(!O)return I;if(typeof O=="string"){var Y=O.toLowerCase();R[Y]&&(M=Y),N&&(R[Y]=N,M=Y);var V=O.split("-");if(!M&&V.length>1)return $(V[0])}else{var ae=O.name;R[ae]=O,M=ae}return!q&&M&&(I=M),M||!q&&I},b=function($,O){if(_($))return $.clone();var N=typeof O=="object"?O:{};return N.date=$,N.args=arguments,new de(N)},k=S;k.l=B,k.i=_,k.w=function($,O){return b($,{locale:O.$L,utc:O.$u,x:O.$x,$offset:O.$offset})};var de=function(){function $(N){this.$L=B(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[T]=!0}var O=$.prototype;return O.parse=function(N){this.$d=function(q){var M=q.date,Y=q.utc;if(M===null)return new Date(NaN);if(k.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var V=M.match(f);if(V){var ae=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return Y?new Date(Date.UTC(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(M)}(N),this.init()},O.init=function(){var N=this.$d;this.$y=N.getFullYear(),this.$M=N.getMonth(),this.$D=N.getDate(),this.$W=N.getDay(),this.$H=N.getHours(),this.$m=N.getMinutes(),this.$s=N.getSeconds(),this.$ms=N.getMilliseconds()},O.$utils=function(){return k},O.isValid=function(){return this.$d.toString()!==p},O.isSame=function(N,q){var M=b(N);return this.startOf(q)<=M&&M<=this.endOf(q)},O.isAfter=function(N,q){return b(N)<this.startOf(q)},O.isBefore=function(N,q){return this.endOf(q)<b(N)},O.$g=function(N,q,M){return k.u(N)?this[q]:this.set(M,N)},O.unix=function(){return Math.floor(this.valueOf()/1e3)},O.valueOf=function(){return this.$d.getTime()},O.startOf=function(N,q){var M=this,Y=!!k.u(q)||q,V=k.p(N),ae=function(pn,Qe){var Or=k.w(M.$u?Date.UTC(M.$y,Qe,pn):new Date(M.$y,Qe,pn),M);return Y?Or:Or.endOf(a)},Oe=function(pn,Qe){return k.w(M.toDate()[pn].apply(M.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(Qe)),M)},ve=this.$W,Fe=this.$M,dt=this.$D,J="set"+(this.$u?"UTC":"");switch(V){case d:return Y?ae(1,0):ae(31,11);case c:return Y?ae(1,Fe):ae(0,Fe+1);case u:var dn=this.$locale().weekStart||0,_s=(ve<dn?ve+7:ve)-dn;return ae(Y?dt-_s:dt+(6-_s),Fe);case a:case m:return Oe(J+"Hours",0);case o:return Oe(J+"Minutes",1);case s:return Oe(J+"Seconds",2);case i:return Oe(J+"Milliseconds",3);default:return this.clone()}},O.endOf=function(N){return this.startOf(N,!1)},O.$set=function(N,q){var M,Y=k.p(N),V="set"+(this.$u?"UTC":""),ae=(M={},M[a]=V+"Date",M[m]=V+"Date",M[c]=V+"Month",M[d]=V+"FullYear",M[o]=V+"Hours",M[s]=V+"Minutes",M[i]=V+"Seconds",M[n]=V+"Milliseconds",M)[Y],Oe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===d){var ve=this.clone().set(m,1);ve.$d[ae](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else ae&&this.$d[ae](Oe);return this.init(),this},O.set=function(N,q){return this.clone().$set(N,q)},O.get=function(N){return this[k.p(N)]()},O.add=function(N,q){var M,Y=this;N=Number(N);var V=k.p(q),ae=function(Fe){var dt=b(Y);return k.w(dt.date(dt.date()+Math.round(Fe*N)),Y)};if(V===c)return this.set(c,this.$M+N);if(V===d)return this.set(d,this.$y+N);if(V===a)return ae(1);if(V===u)return ae(7);var Oe=(M={},M[s]=e,M[o]=r,M[i]=t,M)[V]||1,ve=this.$d.getTime()+N*Oe;return k.w(ve,this)},O.subtract=function(N,q){return this.add(-1*N,q)},O.format=function(N){var q=this,M=this.$locale();if(!this.isValid())return M.invalidDate||p;var Y=N||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ae=this.$H,Oe=this.$m,ve=this.$M,Fe=M.weekdays,dt=M.months,J=M.meridiem,dn=function(Qe,Or,Is,Ua){return Qe&&(Qe[Or]||Qe(q,Y))||Is[Or].slice(0,Ua)},_s=function(Qe){return k.s(ae%12||12,Qe,"0")},pn=J||function(Qe,Or,Is){var Ua=Qe<12?"AM":"PM";return Is?Ua.toLowerCase():Ua};return Y.replace(g,function(Qe,Or){return Or||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 dn(M.monthsShort,ve,dt,3);case"MMMM":return dn(dt,ve);case"D":return q.$D;case"DD":return k.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return dn(M.weekdaysMin,q.$W,Fe,2);case"ddd":return dn(M.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(ae);case"HH":return k.s(ae,2,"0");case"h":return _s(1);case"hh":return _s(2);case"a":return pn(ae,Oe,!0);case"A":return pn(ae,Oe,!1);case"m":return String(Oe);case"mm":return k.s(Oe,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(":","")})},O.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},O.diff=function(N,q,M){var Y,V=this,ae=k.p(q),Oe=b(N),ve=(Oe.utcOffset()-this.utcOffset())*e,Fe=this-Oe,dt=function(){return k.m(V,Oe)};switch(ae){case d:Y=dt()/12;break;case c:Y=dt();break;case l:Y=dt()/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 M?Y:k.a(Y)},O.daysInMonth=function(){return this.endOf(c).$D},O.$locale=function(){return R[this.$L]},O.locale=function(N,q){if(!N)return this.$L;var M=this.clone(),Y=B(N,q,!0);return Y&&(M.$L=Y),M},O.clone=function(){return k.w(this.$d,this)},O.toDate=function(){return new Date(this.valueOf())},O.toJSON=function(){return this.isValid()?this.toISOString():null},O.toISOString=function(){return this.$d.toISOString()},O.toString=function(){return this.$d.toUTCString()},$}(),ln=de.prototype;return b.prototype=ln,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){ln[$[1]]=function(O){return this.$g(O,$[0],$[1])}}),b.extend=function($,O){return $.$i||($(O,de,b),$.$i=!0),b},b.locale=B,b.isDayjs=_,b.unix=function($){return b(1e3*$)},b.en=R[I],b.Ls=R,b.p={},b})});var xt=j(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var dx=t=>new nu(t);He.valid=dx;var px=t=>new iu(t);He.err=px;var nu=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=nu;var iu=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=iu});var Rt=j(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0})});var Nr=j(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});qt();var ie=xt();Rt();var fx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],mx=["sun","mon","tue","wed","thu","fri","sat"],hx=(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&&fx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&mx.indexOf(t.toLowerCase())!==-1)return(0,ie.valid)(!0);let n=Number(t);if(isNaN(n))return(0,ie.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,ie.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,ie.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,ie.valid)(!0)},gx=(t,e,r)=>{if(t==="*")return hx(e,r)?(0,ie.valid)(!0):(0,ie.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,ie.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,ie.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,ie.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,ie.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,ie.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,ie.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,ie.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,ie.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},og=(t,e,r,n)=>t==="*"?(0,ie.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,ie.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,ie.valid)(!0):Ns(t,e,r),yx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return gx(n[0],e,r);if(n.length===2){let i=og(n[0],e,r,0),s=og(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,ie.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,ie.valid)(!0)}return(0,ie.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},Ex=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '/')`);let i=yx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,ie.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,ie.valid)(!0)},Tx=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,ie.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,ie.valid)(!0):(0,ie.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,ie.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(Ex(o,e,r))}),i.every(o=>o.isValid()))return(0,ie.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,ie.err)(s)};Wl.default=Tx});var ag=j(Ps=>{"use strict";var Ax=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});qt();var Sx=xt(),_x=Ax(Nr());Rt();var Ix=(t,e)=>{if(!t.seconds)return(0,Sx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,_x.default)(r,"seconds",e)};Ps.default=Ix});var ug=j(Ls=>{"use strict";var Ox=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});qt();var xx=xt(),Rx=Ox(Nr());Rt();var wx=(t,e)=>{if(!t.minutes)return(0,xx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Rx.default)(r,"minutes",e)};Ls.default=wx});var cg=j(Us=>{"use strict";var bx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});qt();var Dx=xt(),Cx=bx(Nr());Rt();var vx=(t,e)=>{if(!t.hours)return(0,Dx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Cx.default)(r,"hours",e)};Us.default=vx});var lg=j(Fs=>{"use strict";var Nx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var Ms=xt(),Px=Nx(Nr());Rt();var Lx=(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,Px.default)(r,"daysOfMonth",e)};Fs.default=Lx});var dg=j(ks=>{"use strict";var Ux=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});qt();var Mx=xt(),Fx=Ux(Nr());Rt();var kx=(t,e)=>{if(!t.months)return(0,Mx.err)(["months field is undefined."]);let{months:r}=t;return(0,Fx.default)(r,"months",e)};ks.default=kx});var pg=j(Gs=>{"use strict";var Bx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var Bs=xt(),Gx=Bx(Nr());Rt();var $x=(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,Gx.default)(r,"daysOfWeek",e)};Gs.default=$x});var fg=j($s=>{"use strict";var Vx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var qx=xt(),Wx=Vx(Nr());Rt();var Qx=(t,e)=>{if(!t.years)return(0,qx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Wx.default)(r,"years",e)};$s.default=Qx});var yg=j((nQ,gg)=>{"use strict";var Ql;try{Ql=Map}catch{}var jl;try{jl=Set}catch{}function mg(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(hg);if(Ql&&t instanceof Ql)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]:mg(t[i],e,r)}return n}return t}function hg(t){return mg(t,[],[])}gg.exports=hg});var Vs=j(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=Zx;var jx=Object.prototype.toString,Hx=Error.prototype.toString,Yx=RegExp.prototype.toString,Kx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Jx=/^Symbol\((.*)\)(.*)$/;function zx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Eg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return zx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Kx.call(t).replace(Jx,"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?"["+Hx.call(t)+"]":n==="RegExp"?Yx.call(t):null}function Zx(t,e){let r=Eg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Eg(this[n],e);return s!==null?s:i},2)}});var er=j(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 Tg=Xx(Vs());function Xx(t){return t&&t.__esModule?t:{default:t}}var Ag={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,Tg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Tg.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=Ag;var Sg={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=Sg;var _g={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=_g;var Ig={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Ig;var Og={isValue:"${path} field must be ${value}"};Ne.boolean=Og;var xg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=xg;var Rg={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=Rg;var eR=Object.assign(Object.create(null),{mixed:Ag,string:Sg,number:_g,date:Ig,object:xg,array:Rg,boolean:Og});Ne.default=eR});var vi=j(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var tR=t=>t&&t.__isYupSchema__;su.default=tR});var bg=j(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var rR=wg(require("lodash/has")),nR=wg(vi());function wg(t){return t&&t.__esModule?t:{default:t}}var Yl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,rR.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,nR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},iR=Yl;ou.default=iR});var Jl=j(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=sR;function sR(t){return t==null?[]:[].concat(t)}});var vn=j(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var oR=Dg(Vs()),aR=Dg(Jl());function Dg(t){return t&&t.__esModule?t:{default:t}}function zl(){return zl=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},zl.apply(this,arguments)}var uR=/\$\{\s*(\w+)\s*\}/g,Zl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=zl({},r,{path:n})),typeof e=="string"?e.replace(uR,(i,s)=>(0,oR.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,aR.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)}};au.default=Zl});var uu=j(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=dR;var Xl=cR(vn());function cR(t){return t&&t.__esModule?t:{default:t}}var lR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function dR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=lR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Xl.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let p=n[m];p(i,function(g){if(g){if(!Xl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new Xl.default(o,s,u),s);return}c(null,s)}})}}});var qs=j((dQ,Lg)=>{"use strict";function Nn(t){this._maxSize=t,this.clear()}Nn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Nn.prototype.get=function(t){return this._values[t]};Nn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var pR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Pg=/^\d+$/,fR=/^\d/,mR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,hR=/^\s*(['"]?)(.*?)(\1)\s*$/,nd=512,Cg=new Nn(nd),vg=new Nn(nd),Ng=new Nn(nd);Lg.exports={Cache:Nn,split:rd,normalizePath:td,setter:function(t){var e=td(t);return vg.get(t)||vg.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=td(t);return Ng.get(t)||Ng.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+(id(r)||Pg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){gR(Array.isArray(t)?t:rd(t),e,r)}};function td(t){return Cg.get(t)||Cg.set(t,rd(t).map(function(e){return e.replace(hR,"$2")}))}function rd(t){return t.match(pR)||[""]}function gR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(TR(i)&&(i='"'+i+'"'),a=id(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function id(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function yR(t){return t.match(fR)&&!t.match(Pg)}function ER(t){return mR.test(t)}function TR(t){return!id(t)&&(yR(t)||ER(t))}});var Pn=j(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=SR;Qs.default=void 0;var AR=qs(),cu={context:"$",value:"."};function SR(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]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,AR.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 Ug=j(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=xR;var _R=sd(require("lodash/mapValues")),lu=sd(vn()),IR=sd(Pn());function sd(t){return t&&t.__esModule?t:{default:t}}function du(){return du=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},du.apply(this,arguments)}function OR(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 xR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=OR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(_){return IR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,_R.default)(du({value:i,originalValue:u,label:o,path:_.path||s},p,_.params),y),b=new lu.default(lu.default.formatError(_.message||f,B),i,B.path,_.type||d);return b.params=B,b}let I=du({path:s,parent:g,type:d,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(I,i,I)).then(_=>{lu.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=m.call(I,i,I),typeof((T=R)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${I.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}lu.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var ad=j(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Mg;js.default=void 0;var RR=qs(),wR=t=>t.substr(0,t.length-1).substr(1);function Mg(t,e,r,n=r){let i,s,o;return e?((0,RR.forEach)(e,(a,u,c)=>{let l=u?wR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=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[d],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 bR=(t,e,r,n)=>Mg(t,e,r,n).schema,DR=bR;js.default=DR});var kg=j(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Fg=CR(Pn());function CR(t){return t&&t.__esModule?t:{default:t}}var ud=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){Fg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Fg.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}};pu.default=ud});var rr=j(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Bg=tr(yg()),Ni=er(),vR=tr(bg()),Gg=tr(uu()),fu=tr(Ug()),$g=tr(Vs()),NR=tr(Pn()),PR=ad(),LR=tr(Jl()),Vg=tr(vn()),qg=tr(kg());function tr(t){return t&&t.__esModule?t:{default:t}}function mt(){return mt=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},mt.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new qg.default,this._blacklist=new qg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.mixed.notType)}),this.type=e?.type||"mixed",this.spec=mt({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=mt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Bg.default)(mt({},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=mt({},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(mt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,$g.default)(e),o=(0,$g.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,mt({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,kg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,kg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(mt({},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(mt({},r,{value:e})),i;return n._validate(e,mt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Bg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Bg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Mg.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,pu.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,CR.default)(e).map(s=>new bR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new wR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,pu.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,pu.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,pu.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)}}};fu.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,DR.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},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 Vg=j(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=$g;Hs.default=void 0;var vR=NR(rr());function NR(t){return t&&t.__esModule?t:{default:t}}var ad=vR.default,PR=ad;Hs.default=PR;function $g(){return new ad}$g.prototype=ad.prototype});var Pi=j(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var UR=t=>t==null;mu.default=UR});var Hg=j(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=jg;Ys.default=void 0;var LR=Qg(rr()),qg=er(),Wg=Qg(Pi());function Qg(t){return t&&t.__esModule?t:{default:t}}function jg(){return new Ks}var Ks=class extends LR.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=qg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Wg.default)(r)||r===!0}})}isFalse(e=qg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Wg.default)(r)||r===!1}})}};Ys.default=Ks;jg.prototype=Ks.prototype});var Jg=j(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Yg;zs.default=void 0;var Wt=er(),nr=Kg(Pi()),MR=Kg(rr());function Kg(t){return t&&t.__esModule?t:{default:t}}var kR=/^((([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,FR=/^((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,BR=/^(?:[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,GR=t=>(0,nr.default)(t)||t===t.trim(),$R={}.toString();function Yg(){return new Js}var Js=class extends MR.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===$R?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=Wt.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=Wt.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=Wt.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||Wt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Wt.string.email){return this.matches(kR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Wt.string.url){return this.matches(FR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Wt.string.uuid){return this.matches(BR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Wt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:GR})}lowercase(e=Wt.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=Wt.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;Yg.prototype=Js.prototype});var Xg=j(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Zg;Xs.default=void 0;var Un=er(),Ln=zg(Pi()),VR=zg(rr());function zg(t){return t&&t.__esModule?t:{default:t}}var qR=t=>t!=+t;function Zg(){return new Zs}var Zs=class extends VR.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"&&!qR(e)}min(e,r=Un.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ln.default)(n)||n>=this.resolve(e)}})}max(e,r=Un.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ln.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Un.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Ln.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Un.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Ln.default)(n)||n>this.resolve(e)}})}positive(e=Un.number.positive){return this.moreThan(0,e)}negative(e=Un.number.negative){return this.lessThan(0,e)}integer(e=Un.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Ln.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Ln.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,Ln.default)(i)?i:Math[e](i))}};Xs.default=Zs;Zg.prototype=Zs.prototype});var ey=j(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=QR;var WR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function QR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=WR.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 ny=j(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=ld;eo.default=void 0;var jR=hu(ey()),ty=er(),ry=hu(Pi()),HR=hu(Pn()),KR=hu(rr());function hu(t){return t&&t.__esModule?t:{default:t}}var cd=new Date(""),YR=t=>Object.prototype.toString.call(t)==="[object Date]";function ld(){return new Ui}var Ui=class extends KR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,jR.default)(e),isNaN(e)?cd:new Date(e))})})}_typeCheck(e){return YR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(HR.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=ty.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,ry.default)(i)||i>=this.resolve(n)}})}max(e,r=ty.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,ry.default)(i)||i<=this.resolve(n)}})}};eo.default=Ui;Ui.INVALID_DATE=cd;ld.prototype=Ui.prototype;ld.INVALID_DATE=cd});var sy=j((dQ,dd)=>{"use strict";dd.exports=function(t){return iy(JR(t),t)};dd.exports.array=iy;function iy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=zR(e),a=ZR(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,d){if(d.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}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 p=o.get(c)||new Set;if(p=Array.from(p),l=p.length){d.add(c);do{var f=p[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function JR(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 zR(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 ZR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var oy=j(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=iw;var XR=gu(require("lodash/has")),ew=gu(sy()),tw=qs(),rw=gu(Pn()),nw=gu(vi());function gu(t){return t&&t.__esModule?t:{default:t}}function iw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,tw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,XR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),rw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,nw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return ew.default.array(n,r).reverse()}});var uy=j(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=sw;function ay(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 sw(t){return(e,r)=>ay(t,e)-ay(t,r)}});var hy=j(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=my;ro.default=void 0;var cy=Qt(require("lodash/has")),ly=Qt(require("lodash/snakeCase")),ow=Qt(require("lodash/camelCase")),aw=Qt(require("lodash/mapKeys")),uw=Qt(require("lodash/mapValues")),cw=qs(),dy=er(),lw=Qt(oy()),fy=Qt(uy()),dw=Qt(au()),pw=Qt(vn()),md=Qt(rr());function Qt(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 py=t=>Object.prototype.toString.call(t)==="[object Object]";function fw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var mw=(0,fy.default)([]),to=class extends md.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=mw,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 py(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(d=>this._nodes.indexOf(d)===-1)),u={},c=Li({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,cy.default)(i,d);if(m){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||d in i;continue}f=!r.__validating||!y?m.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else p&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(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,d)=>{if(l){if(!pw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!py(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Li({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,dw.default)({sync:s,tests:m,value:d,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 md.default&&s instanceof md.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,fy.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,lw.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,cw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,cy.default)(s,e)&&(o=Li({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=dy.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=fw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=dy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,aw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(ow.default)}snakeCase(){return this.transformKeys(ly.default)}constantCase(){return this.transformKeys(e=>(0,ly.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,uw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function my(t){return new to(t)}my.prototype=to.prototype});var yy=j(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=gy;io.default=void 0;var hd=Mi(Pi()),hw=Mi(vi()),gw=Mi(Vs()),gd=er(),yw=Mi(au()),Ew=Mi(vn()),Tw=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function yu(){return yu=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},yu.apply(this,arguments)}function gy(t){return new no(t)}var no=class extends Tw.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,yu({},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,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!Ew.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],_=`${r.path||""}[${E}]`,S=yu({},r,{path:_,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,S,T)}(0,yw.default)({sync:a,path:u,value:f,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,hw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,gw.default)(e));return r.innerType=e,r}length(e,r=gd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,hd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||gd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,hd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||gd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,hd.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;gy.prototype=no.prototype});var Ey=j(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=_w;so.default=void 0;var Aw=Sw(vi());function Sw(t){return t&&t.__esModule?t:{default:t}}function _w(t){return new Eu(t)}var Eu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Aw.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)}},Iw=Eu;so.default=Iw});var Ty=j(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=Rw;var Ow=xw(er());function xw(t){return t&&t.__esModule?t:{default:t}}function Rw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Ow.default[e][r]=t[e][r]})})}});var Td=j(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Pw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return Ed.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return Ed.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return Ed.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Sy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Sy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return _y.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return ww.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return bw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return Dw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return Cw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return vw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return Nw.default}});var Ay=Mn(Vg()),Ed=Mn(Hg()),Sy=Mn(Jg()),_y=Mn(Xg()),Iy=Mn(ny()),Oy=Mn(hy()),xy=Mn(yy()),ww=Pn(),bw=Ey(),Dw=oo(vn()),Cw=oo(sd()),Ry=oo(vi()),vw=oo(Ty()),Nw=oo(rr());function oo(t){return t&&t.__esModule?t:{default:t}}function wy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return wy=function(){return t},t}function Mn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=wy();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 Pw(t,e,r){if(!t||!(0,Ry.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 by=j(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});var Ad=_d();Sd.default=()=>{(0,Ad.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,Ad.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,Ad.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 _d=j(Pe=>{"use strict";var Uw=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]}),Lw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Mw=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)&&Uw(e,t,r);return Lw(e,t),e},kw=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 R=Mw(Td());Td();var ao=xt(),Fw=kw(by());Rt();var kn={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}}},Dy=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),Bw=t=>kn[t]?(0,ao.valid)(kn[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Bw;var Gw=()=>kn;Pe.getOptionPresets=Gw;var $w=(t,e)=>{kn[t]=Dy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=$w;var Vw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,_,S,M;try{(0,Fw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!kn[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);T=kn[t.preset]}else T=t.preset;else T=kn.default;let I=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(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:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f: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:(_=T.daysOfWeek.upperLimit)!==null&&_!==void 0?_:T.daysOfWeek.maxValue},years:{lowerLimit:(S=T.years.lowerLimit)!==null&&S!==void 0?S:T.years.minValue,upperLimit:(M=T.years.upperLimit)!==null&&M!==void 0?M:T.years.maxValue}}),t.override),w=R.object({presetId:R.string().required(),preset:Dy.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ao.valid)(w)}catch(T){return(0,ao.err)(T.errors)}};Pe.validateOptions=Vw});var qt=j((uo,Od)=>{"use strict";var Bn=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var Fn=xt(),qw=Bn(ig()),Ww=Bn(sg()),Qw=Bn(og()),jw=Bn(ag()),Hw=Bn(ug()),Kw=Bn(cg()),Yw=Bn(lg()),Jw=_d();Rt();var zw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Fn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Fn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Fn.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,Fn.valid)(n)},Id=(t,e={})=>{let r=(0,Jw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=zw(t,n);if(i.isError())return(0,Fn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,qw.default)(s,n)),o.push((0,Ww.default)(s,n)),o.push((0,Qw.default)(s,n)),o.push((0,jw.default)(s,n)),o.push((0,Hw.default)(s,n)),o.push((0,Kw.default)(s,n)),n.useYears&&o.push((0,Yw.default)(s,n)),o.every(u=>u.isValid()))return(0,Fn.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,Fn.err)(a)};uo.default=Id;Od.exports=Id;Od.exports.default=Id});var XE=j(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},Pd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ud=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Ld=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Vn=class extends sr{},xu=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends sr{},jt=class extends sr{constructor(){super("Zone is an abstract class")}},D="numeric",Ct="short",nt="long",Ru={year:D,month:D,day:D},tE={year:D,month:Ct,day:D},Zw={year:D,month:Ct,day:D,weekday:Ct},rE={year:D,month:nt,day:D},nE={year:D,month:nt,day:D,weekday:nt},iE={hour:D,minute:D},sE={hour:D,minute:D,second:D},oE={hour:D,minute:D,second:D,timeZoneName:Ct},aE={hour:D,minute:D,second:D,timeZoneName:nt},uE={hour:D,minute:D,hourCycle:"h23"},cE={hour:D,minute:D,second:D,hourCycle:"h23"},lE={hour:D,minute:D,second:D,hourCycle:"h23",timeZoneName:Ct},dE={hour:D,minute:D,second:D,hourCycle:"h23",timeZoneName:nt},pE={year:D,month:D,day:D,hour:D,minute:D},fE={year:D,month:D,day:D,hour:D,minute:D,second:D},mE={year:D,month:Ct,day:D,hour:D,minute:D},hE={year:D,month:Ct,day:D,hour:D,minute:D,second:D},Xw={year:D,month:Ct,day:D,weekday:Ct,hour:D,minute:D},gE={year:D,month:nt,day:D,hour:D,minute:D,timeZoneName:Ct},yE={year:D,month:nt,day:D,hour:D,minute:D,second:D,timeZoneName:Ct},EE={year:D,month:nt,day:D,weekday:nt,hour:D,minute:D,timeZoneName:nt},TE={year:D,month:nt,day:D,weekday:nt,hour:D,minute:D,second:D,timeZoneName:nt},Mr=class{get type(){throw new jt}get name(){throw new jt}get ianaName(){return this.name}get isUniversal(){throw new jt}offsetName(e,r){throw new jt}formatOffset(e,r){throw new jt}offset(e){throw new jt}equals(e){throw new jt}get isValid(){throw new jt}},xd=null,go=class t extends Mr{static get instance(){return xd===null&&(xd=new t),xd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return SE(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}},Iu={};function eb(t){return Iu[t]||(Iu[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"})),Iu[t]}var tb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function rb(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 nb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=tb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Tu={},or=class t extends Mr{static create(e){return Tu[e]||(Tu[e]=new t(e)),Tu[e]}static resetCache(){Tu={},Iu={}}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 SE(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=eb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?nb(n,r):rb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Hd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,f=p%1e3;return p-=f>=0?f:1e3+f,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Cy={};function ib(t,e={}){let r=JSON.stringify([t,e]),n=Cy[r];return n||(n=new Intl.ListFormat(t,e),Cy[r]=n),n}var Md={};function kd(t,e={}){let r=JSON.stringify([t,e]),n=Md[r];return n||(n=new Intl.DateTimeFormat(t,e),Md[r]=n),n}var Fd={};function sb(t,e={}){let r=JSON.stringify([t,e]),n=Fd[r];return n||(n=new Intl.NumberFormat(t,e),Fd[r]=n),n}var Bd={};function ob(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Bd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Bd[i]=s),s}var fo=null;function ab(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function ub(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=kd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=kd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function cb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function lb(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function db(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 Au(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function pb(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 Gd=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=sb(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):jd(e,3);return Re(r,this.padTo)}}},$d=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=kd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Vd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&AE()&&(this.rtf=ob(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):bb(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":ab()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,Md={},Fd={},Bd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=ub(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=cb(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=pb(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 Au(this,e,n,OE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=lb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Au(this,e,n,wE,()=>{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]=db(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Au(this,void 0,e,()=>bE,()=>{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 Au(this,e,r,DE,()=>{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 Gd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new $d(e,this.intl,r)}relFormatter(e={}){return new Vd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return ib(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}},Rd=null,it=class t extends Mr{static get utcInstance(){return Rd===null&&(Rd=new t(0)),Rd}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(Nu(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}},wu=class extends Mr{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 Lr(t,e){if(ne(t)||t===null)return e;if(t instanceof Mr)return t;if(fb(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 Wn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new wu(t)}var vy=()=>Date.now(),Ny="system",Py=null,Uy=null,Ly=null,My=60,ky,Ee=class{static get now(){return vy}static set now(e){vy=e}static set defaultZone(e){Ny=e}static get defaultZone(){return Lr(Ny,go.instance)}static get defaultLocale(){return Py}static set defaultLocale(e){Py=e}static get defaultNumberingSystem(){return Uy}static set defaultNumberingSystem(e){Uy=e}static get defaultOutputCalendar(){return Ly}static set defaultOutputCalendar(e){Ly=e}static get twoDigitCutoffYear(){return My}static set twoDigitCutoffYear(e){My=e%100}static get throwOnInvalid(){return ky}static set throwOnInvalid(e){ky=e}static resetCaches(){_e.resetCache(),or.resetCache()}};function ne(t){return typeof t>"u"}function Wn(t){return typeof t=="number"}function vu(t){return typeof t=="number"&&t%1===0}function fb(t){return typeof t=="string"}function mb(t){return Object.prototype.toString.call(t)==="[object Date]"}function AE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function hb(t){return Array.isArray(t)?t:[t]}function Fy(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 gb(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 vu(t)&&t>=e&&t<=r}function yb(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 Ur(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Gn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Qd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function jd(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 bu(t,e){let r=yb(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 Hd(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 Du(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 qd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function SE(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 Nu(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 _E(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ke(`Invalid unit value ${t}`);return e}function Cu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=_E(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 Pu(t){return gb(t,["hour","minute","second","millisecond"])}var Eb=["January","February","March","April","May","June","July","August","September","October","November","December"],IE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Tb=["J","F","M","A","M","J","J","A","S","O","N","D"];function OE(t){switch(t){case"narrow":return[...Tb];case"short":return[...IE];case"long":return[...Eb];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 xE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],RE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Ab=["M","T","W","T","F","S","S"];function wE(t){switch(t){case"narrow":return[...Ab];case"short":return[...RE];case"long":return[...xE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var bE=["AM","PM"],Sb=["Before Christ","Anno Domini"],_b=["BC","AD"],Ib=["B","A"];function DE(t){switch(t){case"narrow":return[...Ib];case"short":return[..._b];case"long":return[...Sb];default:return null}}function Ob(t){return bE[t.hour<12?0:1]}function xb(t,e){return wE(e)[t.weekday-1]}function Rb(t,e){return OE(e)[t.month-1]}function wb(t,e){return DE(e)[t.year<0?0:1]}function bb(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 d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"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 By(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Db={D:Ru,DD:tE,DDD:rE,DDDD:nE,t:iE,tt:sE,ttt:oE,tttt:aE,T:uE,TT:cE,TTT:lE,TTTT:dE,f:pE,ff:mE,fff:gE,ffff:EE,F:fE,FF:hE,FFF:yE,FFFF:TE},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 Db[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=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?Ob(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?Rb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?xb(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?wb(e,p):s({era:p},"era"),m=p=>{switch(p){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 d("short");case"GG":return d("long");case"GGGGG":return d("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(p)}};return By(t.parseFormat(r),m)}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 By(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},CE=/[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 vE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Ur(e[r+i]);return[n,null,r+i]}}var NE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Cb=`(?:${NE.source}?(?:\\[(${CE.source})\\])?)?`,Kd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,PE=RegExp(`${Kd.source}${Cb}`),Yd=RegExp(`(?:T${PE.source})?`),vb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Nb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Pb=/(\d{4})-?(\d{3})/,Ub=vE("weekYear","weekNumber","weekDay"),Lb=vE("year","ordinal"),Mb=/(\d{4})-(\d\d)-(\d\d)/,UE=RegExp(`${Kd.source} ?(?:${NE.source}|(${CE.source}))?`),kb=RegExp(`(?: ${UE.source})?`);function Bi(t,e,r){let n=t[e];return ne(n)?r:Ur(n)}function Fb(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:Qd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Nu(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 Bb=RegExp(`^T?${Kd.source}$`),Gb=/^-?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 $b(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(Gn(r)),months:m(Gn(n)),weeks:m(Gn(i)),days:m(Gn(s)),hours:m(Gn(o)),minutes:m(Gn(a)),seconds:m(Gn(u),u==="-0"),milliseconds:m(Qd(c),d)}]}var Vb={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 Jd(t,e,r,n,i,s,o){let a={year:e.length===2?qd(Ur(e)):Ur(e),month:IE.indexOf(r)+1,day:Ur(n),hour:Ur(i),minute:Ur(s)};return o&&(a.second=Ur(o)),t&&(a.weekday=t.length>3?xE.indexOf(t)+1:RE.indexOf(t)+1),a}var qb=/^(?:(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 Wb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Jd(e,i,n,r,s,o,a),p;return u?p=Vb[u]:c?p=0:p=Nu(l,d),[m,new it(p)]}function Qb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var jb=/^(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$/,Hb=/^(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$/,Kb=/^(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 Gy(t){let[,e,r,n,i,s,o,a]=t;return[Jd(e,i,n,r,s,o,a),it.utcInstance]}function Yb(t){let[,e,r,n,i,s,o,a]=t;return[Jd(e,a,r,n,i,s,o),it.utcInstance]}var Jb=$i(vb,Yd),zb=$i(Nb,Yd),Zb=$i(Pb,Yd),Xb=$i(PE),LE=Vi(Fb,Wi,Eo,To),eD=Vi(Ub,Wi,Eo,To),tD=Vi(Lb,Wi,Eo,To),rD=Vi(Wi,Eo,To);function nD(t){return qi(t,[Jb,LE],[zb,eD],[Zb,tD],[Xb,rD])}function iD(t){return qi(Qb(t),[qb,Wb])}function sD(t){return qi(t,[jb,Gy],[Hb,Gy],[Kb,Yb])}function oD(t){return qi(t,[Gb,$b])}var aD=Vi(Wi);function uD(t){return qi(t,[Bb,aD])}var cD=$i(Mb,kb),lD=$i(UE),dD=Vi(Wi,Eo,To);function pD(t){return qi(t,[cD,LE],[lD,dD])}var fD="Invalid Duration",ME={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}},mD={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},...ME},ht=146097/400,ki=146097/4800,hD={years:{quarters:4,months:12,weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},quarters:{months:3,weeks:ht/28,days:ht/4,hours:ht*24/4,minutes:ht*24*60/4,seconds:ht*24*60*60/4,milliseconds:ht*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},...ME},$n=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],gD=$n.slice(0).reverse();function Pr(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 yD(t){return t<0?Math.floor(t):Math.ceil(t)}function kE(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?yD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function ED(t,e){gD.reduce((r,n)=>ne(e[n])?r:(r&&kE(t,e,r,e,n),n),null)}function TD(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?hD:mD;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:Cu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Wn(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]=oD(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]=uD(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 Ld(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 xu(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):fD}toHuman(e={}){let r=$n.map(n=>{let i=this.values[n];return ne(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+=jd(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 $n)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Pr(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]=_E(e(this.values[n],n));return Pr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Cu(e,t.normalizeUnit)};return Pr(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 Pr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return ED(this.matrix,e),Pr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=TD(this.normalize().shiftToAll().toObject());return Pr(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 $n)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;Wn(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)$n.indexOf(c)>$n.indexOf(o)&&kE(this.matrix,i,c,r,o)}else Wn(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 Pr(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 Pr(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 $n)if(!r(this.values[n],e.values[n]))return!1;return!0}},Fi="Invalid Interval";function AD(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 Ud(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=AD(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()})`:Fi}toLocaleString(e=Ru,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):Fi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Fi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Fi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Fi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Fi}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))}},qn=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 Lr(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:AE()}}};function $y(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 SD(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=$y(u,c);return(l-l%7)/7}],["days",$y]],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 _D(t,e,r,n){let[i,s,o,a]=SD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=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 zd={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"},Vy={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]},ID=zd.hanidec.replace(/[\[|\]]/g,"").split("");function OD(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(zd.hanidec)!==-1)e+=ID.indexOf(t[r]);else for(let i in Vy){let[s,o]=Vy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${zd[t||"latn"]}${e}`)}var xD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(OD(r))}}var RD=String.fromCharCode(160),FE=`[ ${RD}]`,BE=new RegExp(FE,"g");function wD(t){return t.replace(/\./g,"\\.?").replace(BE,FE)}function qy(t){return t.replace(/\./g,"").replace(BE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(wD).join("|")),deser:([r])=>t.findIndex(n=>qy(r)===qy(n))+e}}function Wy(t,e){return{regex:t,deser:([,r,n])=>Nu(r,n),groups:e}}function wd(t){return{regex:t,deser:([e])=>e}}function bD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function DD(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}"),d=bt(e,"{2,4}"),m=bt(e,"{4,6}"),p=E=>({regex:RegExp(bD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(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 ce(c);case"yy":return ce(d,qd);case"yyyy":return ce(s);case"yyyyy":return ce(m);case"yyyyyy":return ce(o);case"M":return ce(a);case"MM":return ce(n);case"MMM":return Dt(e.months("short",!0,!1),1);case"MMMM":return Dt(e.months("long",!0,!1),1);case"L":return ce(a);case"LL":return ce(n);case"LLL":return Dt(e.months("short",!1,!1),1);case"LLLL":return Dt(e.months("long",!1,!1),1);case"d":return ce(a);case"dd":return ce(n);case"o":return ce(u);case"ooo":return ce(i);case"HH":return ce(n);case"H":return ce(a);case"hh":return ce(n);case"h":return ce(a);case"mm":return ce(n);case"m":return ce(a);case"q":return ce(a);case"qq":return ce(n);case"s":return ce(a);case"ss":return ce(n);case"S":return ce(u);case"SSS":return ce(i);case"u":return wd(l);case"uu":return wd(a);case"uuu":return ce(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(d,qd);case"W":return ce(a);case"WW":return ce(n);case"E":case"c":return ce(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 Wy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Wy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return wd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:xD};return g.token=t,g}var CD={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 vD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=CD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function ND(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function PD(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 UD(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 ne(t.z)||(r=or.create(t.z)),ne(t.Z)||(r||(r=new it(t.Z)),n=t.Z),ne(t.q)||(t.M=(t.q-1)*3+1),ne(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),ne(t.u)||(t.S=Qd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var bd=null;function LD(){return bd||(bd=Ie.fromMillis(1555555555555)),bd}function MD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=VE(r,e);return n==null||n.includes(void 0)?t:n}function GE(t,e){return Array.prototype.concat(...t.map(r=>MD(r,e)))}function $E(t,e,r){let n=GE(tt.parseFormat(r),t),i=n.map(o=>DD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=ND(i),u=RegExp(o,"i"),[c,l]=PD(e,u,a),[d,m,p]=l?UD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new Vn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function kD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=$E(t,e,r);return[n,i,s,o]}function VE(t,e){return t?tt.create(e,t).formatDateTimeParts(LD()).map(i=>vD(i,t)):null}var qE=[0,31,59,90,120,151,181,212,243,273,304,334],WE=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function QE(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 jE(t,e,r){return r+(yo(t)?WE:qE)[e-1]}function HE(t,e){let r=yo(t)?WE:qE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Wd(t){let{year:e,month:r,day:n}=t,i=jE(e,r,n),s=QE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Du(a)):o>Du(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Pu(t)}}function Qy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=QE(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}=HE(a,o);return{year:a,month:u,day:c,...Pu(t)}}function Dd(t){let{year:e,month:r,day:n}=t,i=jE(e,r,n);return{year:e,ordinal:i,...Pu(t)}}function jy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=HE(e,r);return{year:e,month:n,day:i,...Pu(t)}}function FD(t){let e=vu(t.weekYear),r=ir(t.weekNumber,1,Du(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function BD(t){let e=vu(t.year),r=ir(t.ordinal,1,mo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function KE(t){let e=vu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,bu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function YE(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:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var Cd="Invalid DateTime",Hy=864e13;function Su(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function vd(t){return t.weekData===null&&(t.weekData=Wd(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 JE(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 Ky(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 Ou(t,e,r){return JE(Hd(t),e,r)}function Yy(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,bu(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=Hd(s),[u,c]=JE(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 _u(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Nd(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 Jy(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 zE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},GD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},$D={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ZE=["year","month","day","hour","minute","second","millisecond"],VD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],qD=["year","ordinal","hour","minute","second","millisecond"];function zy(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 xu(t);return e}function Zy(t,e){let r=Lr(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(ne(t.year))s=i;else{for(let c of ZE)ne(t[c])&&(t[c]=zE[c]);let a=KE(t)||YE(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=Ou(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function Xy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=jd(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 eE(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:Su(r));this.ts=ne(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=Ky(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]=eE(arguments),[n,i,s,o,a,u,c]=r;return Zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=eE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,Zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=mb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Lr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if(Wn(e))return e<-Hy||e>Hy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Lr(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(Wn(e))return new t({ts:e*1e3,zone:Lr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ke("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Lr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(Su(n));let i=Ee.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Cu(e,zy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&d)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Vn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=Ky(i,s);p?(f=VD,g=GD,E=Wd(E)):a?(f=qD,g=$D,E=Dd(E)):(f=ZE,g=zE);let y=!1;for(let w of f){let B=o[w];ne(B)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let _=p?FD(o):a?BD(o):KE(o),S=_||YE(o);if(S)return t.invalid(S);let M=p?Qy(o):a?jy(o):o,[T,I]=Ou(M,s,n),x=new t({ts:T,zone:n,o:I,loc:m});return o.weekday&&l&&e.weekday!==x.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${x.toISO()}`):x}static fromISO(e,r={}){let[n,i]=nD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=iD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=sD(e);return lo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(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]=kD(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]=pD(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 Pd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=VE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return GE(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?vd(this).weekYear:NaN}get weekNumber(){return this.isValid?vd(this).weekNumber:NaN}get weekday(){return this.isValid?vd(this).weekday:NaN}get ordinal(){return this.isValid?Dd(this.c).ordinal:NaN}get monthShort(){return this.isValid?qn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?qn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?qn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?qn.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 bu(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Du(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=Lr(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]=Ou(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(Su(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=Cu(e,zy),n=!ne(r.weekYear)||!ne(r.weekNumber)||!ne(r.weekday),i=!ne(r.ordinal),s=!ne(r.year),o=!ne(r.month)||!ne(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Vn("Can't mix ordinal dates with month/day");let c;n?c=Qy({...Wd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(bu(c.year,c.month),c.day))):c=jy({...Dd(this.c),...r});let[l,d]=Ou(c,this.o,this.zone);return co(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,Yy(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(this,Yy(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):Cd}toLocaleString(e=Ru,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Cd}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=Nd(this,o);return a+="T",a+=Jy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Nd(this,e==="extended"):null}toISOWeekDate(){return _u(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":"")+Jy(this,o==="extended",r,e,n,s):null}toRFC2822(){return _u(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return _u(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Nd(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")),_u(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Cd}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=hb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=_D(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),Xy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Xy(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 Fy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("max requires all arguments be DateTimes");return Fy(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 $E(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Ru}static get DATE_MED(){return tE}static get DATE_MED_WITH_WEEKDAY(){return Zw}static get DATE_FULL(){return rE}static get DATE_HUGE(){return nE}static get TIME_SIMPLE(){return iE}static get TIME_WITH_SECONDS(){return sE}static get TIME_WITH_SHORT_OFFSET(){return oE}static get TIME_WITH_LONG_OFFSET(){return aE}static get TIME_24_SIMPLE(){return uE}static get TIME_24_WITH_SECONDS(){return cE}static get TIME_24_WITH_SHORT_OFFSET(){return lE}static get TIME_24_WITH_LONG_OFFSET(){return dE}static get DATETIME_SHORT(){return pE}static get DATETIME_SHORT_WITH_SECONDS(){return fE}static get DATETIME_MED(){return mE}static get DATETIME_MED_WITH_SECONDS(){return hE}static get DATETIME_MED_WITH_WEEKDAY(){return Xw}static get DATETIME_FULL(){return gE}static get DATETIME_FULL_WITH_SECONDS(){return yE}static get DATETIME_HUGE(){return EE}static get DATETIME_HUGE_WITH_SECONDS(){return TE}};function po(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&Wn(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 WD="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=qn;st.Interval=Qn;st.InvalidZone=wu;st.Settings=Ee;st.SystemZone=go;st.VERSION=WD;st.Zone=Mr});var tT=j((_Q,eT)=>{"use strict";var jn=XE();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=jn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=jn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=jn.DateTime.fromISO(t,r),this._date.isValid||(this._date=jn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=jn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=jn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=jn.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))}eT.exports=z});var iT=j((IQ,nT)=>{"use strict";function Hn(t){return{start:t,count:1}}function rT(t,e){t.end=e,t.step=e-t.start,t.count=2}function Zd(t,e,r){e&&(e.count===2?(t.push(Hn(e.start)),t.push(Hn(e.end))):t.push(e)),r&&t.push(r)}function QD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Zd(e,r,Hn(i)),r=void 0):r?r.count===1?rT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hn(r.start)),r=Hn(r.end),rT(r,i)):(Zd(e,r),r=Hn(i)):r=Hn(i)}return Zd(e,r),e}nT.exports=QD});var oT=j((OQ,sT)=>{"use strict";var jD=iT();function HD(t,e,r){var n=jD(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(m,p){var f=c.start+p;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}sT.exports=HD});var cT=j((xQ,uT)=>{"use strict";var Kn=tT(),KD=oT(),aT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Kn(e.currentDate,this._tz),this._startDate=e.startDate?new Kn(e.startDate,this._tz):null,this._endDate=e.endDate?new Kn(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(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[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,f)){c.push(f);return}var _=+f;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));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=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}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,_){for(var S=0,M=_.length;S<M;S++)if(_[S]>=y)return _[S]===y;return _[0]===y}function n(y,_){if(_<6){if(y.getDate()<8&&_===1)return!0;var S=y.getDate()%7?1:0,M=y.getDate()-y.getDate()%7,T=Math.floor(M/7)+S;return T===_}return!1}function i(y){return y.length>0&&y.some(function(_){return typeof _=="string"&&_.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Kn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(_){if(!i([_]))return!1;var S=Number.parseInt(_[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+_);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<aT;){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 m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=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(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){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>=aT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Kn(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 Kn(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(KD(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 Kn(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,d=U.map.length;l<d;++l){var m=U.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?_(p):p;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;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){var M=S.split("#");if(M.length>1){var T=+M[M.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(M.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,M[0]}return S}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.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(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};uT.exports=U});var dT=j((RQ,lT)=>{"use strict";var Uu=cT();function kr(){}kr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Uu.parse(e)};if(r.length>6)return{interval:Uu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};kr.parseExpression=function(e,r){return Uu.parse(e,r)};kr.fieldsToExpression=function(e,r){return Uu.fieldsToExpression(e,r)};kr.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=kr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};kr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,kr.parseString(i.toString()))})};lT.exports=kr});var CF={};N(CF,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>Ap,BadRequestError:()=>Rc,BudibaseError:()=>ps,Config:()=>Rp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Ip,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Sp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DocumentType:()=>ge,Duration:()=>be,DurationType:()=>vf,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>bc,GlobalRole:()=>xp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>wr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>xT,NotFoundError:()=>xc,RedisClient:()=>We,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Tp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Be,UsageLimitError:()=>wc,UserStatus:()=>qu,ViewName:()=>Gr,accounts:()=>di,auth:()=>dh,blacklist:()=>hh,cache:()=>_a,configs:()=>nn,constants:()=>wp,context:()=>Se,db:()=>Kr,docIds:()=>Af,docUpdates:()=>yh,encryption:()=>uh,env:()=>h,errors:()=>Cc,events:()=>ys,features:()=>Xm,getPublicError:()=>Dc,init:()=>DF,installation:()=>Gc,locks:()=>ci,logging:()=>Ic,middleware:()=>lh,objectStore:()=>jf,permissions:()=>Jm,platform:()=>Zo,plugins:()=>fh,queue:()=>um,redis:()=>mh,roles:()=>Ym,security:()=>xm,sessions:()=>Hc,setEnv:()=>xo,sql:()=>Rh,tenancy:()=>bF,timers:()=>Fc,userUtils:()=>rm,users:()=>Es,utils:()=>ss,withEnv:()=>vT});module.exports=UI(CF);var nn={};N(nn,{analyticsEnabled:()=>Mc,generateConfigID:()=>Zc,getAIConfig:()=>V0,getConfig:()=>Gt,getDefaultGoogleConfig:()=>Lm,getGoogleConfig:()=>Xc,getGoogleDatasourceConfig:()=>Fm,getOIDCConfig:()=>B0,getOIDCConfigById:()=>Bm,getOIDCLogosDoc:()=>k0,getPlatformUrl:()=>ba,getSCIMConfig:()=>$0,getSMTPConfig:()=>G0,getSMTPConfigDoc:()=>b_,getSettingsConfig:()=>km,getSettingsConfigDoc:()=>Vc,save:()=>L0});var LI=["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"],bh=[...LI],Dh={"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,"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 Ol=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ol||{}),xl=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(xl||{}),Ma=(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))(Ma||{});var Rl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Rl||{});var MI=W(require("lodash")),xr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(xr||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),fn=(e=>(e.RANGE="range",e))(fn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function ka(t){return Object.values(Ti).includes(t)}function Ch(t){return Object.values(xr).includes(t)}function vh(t){return Object.values(Jt).includes(t)}function Fa(t){return Object.values(fn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Nh=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 Ph={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 vB={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 Ba=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Ba||{});var Ga=t=>t.hosting==="cloud";var $a=t=>t.authType==="sso";var b="_",Be="\uFFF0",Rr=t=>`${t}${b}`,ge=(J=>(J.USER="us",J.GROUP="gr",J.WORKSPACE="workspace",J.CONFIG="config",J.TEMPLATE="template",J.APP="app",J.DEV="dev",J.APP_DEV="app_dev",J.APP_METADATA="app_metadata",J.ROLE="role",J.MIGRATIONS="migrations",J.DEV_INFO="devinfo",J.AUTOMATION_LOG="log_au",J.ACCOUNT_METADATA="acc_metadata",J.PLUGIN="plg",J.DATASOURCE="datasource",J.DATASOURCE_PLUS="datasource_plus",J.APP_BACKUP="backup",J.TABLE="ta",J.ROW="ro",J.AUTOMATION="au",J.LINK="li",J.WEBHOOK="wh",J.INSTANCE="inst",J.LAYOUT="layout",J.SCREEN="screen",J.QUERY="query",J.DEPLOYMENTS="deployments",J.METADATA="metadata",J.MEM_VIEW="view",J.USER_FLAG="flag",J.AUTOMATION_METADATA="meta_au",J.AUDIT_LOG="al",J.APP_MIGRATION_METADATA="_design/migrations",J.SCIM_LOG="scimlog",J.ROW_ACTIONS="ra",J.OAUTH2_CONFIG="oauth2",J.OAUTH2_CONFIG_LOG="oauth2log",J.AGENT_CHAT="agentchat",J.WORKSPACE_APP="workspace_app",J))(ge||{}),EG=Object.values(ge).sort((t,e)=>e.length-t.length);var wr=(e=>(e.USER_METADATA="ta_users",e))(wr||{}),wl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(wl||{}),TG=Object.values(wl).sort((t,e)=>e.length-t.length);var oe=(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))(oe||{}),ye=(S=>(S.TABLE="table",S.ROW="row",S.ROWS="rows",S.WIDE="wide",S.QUERY="query",S.QUERY_PARAMS="queryParams",S.QUERY_LIMIT="queryLimit",S.LOOP_OPTION="loopOption",S.ITEM="item",S.CODE="code",S.FILTERS="filters",S.COLUMN="column",S.TRIGGER_SCHEMA="triggerSchema",S.CRON="cron",S.WEBHOOK_URL="webhookUrl",S.AUTOMATION="automation",S.AUTOMATION_FIELDS="automationFields",S.MULTI_ATTACHMENTS="multi_attachments",S.TRIGGER_FILTER="trigger_filter",S))(ye||{}),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 de=(x=>(x.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",x.CREATE_ROW="CREATE_ROW",x.UPDATE_ROW="UPDATE_ROW",x.DELETE_ROW="DELETE_ROW",x.EXECUTE_BASH="EXECUTE_BASH",x.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",x.EXECUTE_SCRIPT="EXECUTE_SCRIPT",x.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",x.EXECUTE_QUERY="EXECUTE_QUERY",x.SERVER_LOG="SERVER_LOG",x.DELAY="DELAY",x.FILTER="FILTER",x.QUERY_ROWS="QUERY_ROWS",x.LOOP="LOOP",x.COLLECT="COLLECT",x.OPENAI="OPENAI",x.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",x.BRANCH="BRANCH",x.discord="discord",x.slack="slack",x.zapier="zapier",x.integromat="integromat",x.n8n="n8n",x))(de||{}),Uh=[...Object.values(de),...Object.values(It)];var bl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(bl||{});var Dl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Dl||{});var Cl="bb_internal";var Lh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Va(t){return!!t.providerType}var vl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(vl||{});var k$=Object.values(vl);var V$=["rows","queries","automations"],q$=["queries","automations"];var te;(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})(te||(te={}));var Pl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Pl||(Pl={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),br=t=>{switch(typeof t){case"undefined":return k.undefined;case"string":return k.string;case"number":return isNaN(t)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(t)?k.array:t===null?k.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?k.promise:typeof Map<"u"&&t instanceof Map?k.map:typeof Set<"u"&&t instanceof Set?k.set:typeof Date<"u"&&t instanceof Date?k.date:k.object;default:return k.unknown}},O=te.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"]),GI=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,te.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 O.invalid_type:t.received===k.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case O.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case O.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case O.invalid_union:r="Invalid input";break;case O.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case O.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case O.invalid_arguments:r="Invalid function arguments";break;case O.invalid_return_type:r="Invalid function return type";break;case O.invalid_date:r="Invalid date";break;case O.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}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case O.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 O.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 O.custom:r="Invalid input";break;case O.invalid_intersection_types:r="Intersection results could not be merged";break;case O.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case O.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Fh=Ii;function $I(t){Fh=t}function qa(){return Fh}var Wa=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}},VI=[];function P(t,e){let r=qa(),n=Wa({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 Fe=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 Y;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 Y;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}}},Y=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),Ge=t=>({status:"valid",value:t}),Ul=t=>t.status==="aborted",Ll=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function Qa(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 Bh(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,ft=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}},Mh=(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 br(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:br(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Fe,ctx:{common:e.parent.common,data:e.data,parsedType:br(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:br(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Mh(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:br(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ds(i)?i:Promise.resolve(i));return Mh(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:O.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:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return Vt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.create(this,this._def)}promise(){return vr.create(this,this._def)}or(e){return Sn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Cs({typeName:H.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new bn({...Z(this._def),innerType:this,catchValue:r,typeName:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return vs.create(this,e)}readonly(){return Dn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},qI=/^c[^\s-]{8,}$/i,WI=/^[0-9a-z]+$/,QI=/^[0-9A-HJKMNP-TV-Z]{26}$/,jI=/^[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,HI=/^[a-z0-9_-]{21}$/i,KI=/^[-+]?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)?)??$/,YI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,JI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Nl,zI=/^(?:(?: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])$/,ZI=/^(([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})))$/,XI=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Gh="((\\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])))",eO=new RegExp(`^${Gh}$`);function $h(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 tO(t){return new RegExp(`^${$h(t)}$`)}function Vh(t){let e=`${Gh}T${$h(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 rO(t,e){return!!((e==="v4"||!e)&&zI.test(t)||(e==="v6"||!e)&&ZI.test(t))}var Dr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.string,received:s.parsedType}),Y}let n=new Fe,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:O.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:O.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:O.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:O.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")YI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Nl||(Nl=new RegExp(JI,"u")),Nl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")jI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")HI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")qI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")WI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")QI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:O.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:O.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:O.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:O.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:O.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:O.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Vh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?eO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?tO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?KI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?rO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:O.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:O.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}};Dr.create=t=>{var e;return new Dr({checks:[],typeName:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function nO(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 hn=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)!==k.number){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.number,received:s.parsedType}),Y}let n,i=new Fe;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.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:O.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:O.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?nO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.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:O.not_finite,message:s.message}),i.dirty()):te.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"&&te.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)}};hn.create=t=>new hn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var gn=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)!==k.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.bigint,received:s.parsedType}),Y}let n,i=new Fe;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:O.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:O.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:O.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.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}};gn.create=t=>{var e;return new gn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var yn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.boolean,received:n.parsedType}),Y}return Ge(e.data)}};yn.create=t=>new yn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var En=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.date,received:s.parsedType}),Y}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_date}),Y}let n=new Fe,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.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:O.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.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}};En.create=t=>new En({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==k.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.symbol,received:n.parsedType}),Y}return Ge(e.data)}};Oi.create=t=>new Oi({typeName:H.ZodSymbol,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.undefined,received:n.parsedType}),Y}return Ge(e.data)}};Tn.create=t=>new Tn({typeName:H.ZodUndefined,...Z(t)});var An=class extends X{_parse(e){if(this._getType(e)!==k.null){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.null,received:n.parsedType}),Y}return Ge(e.data)}};An.create=t=>new An({typeName:H.ZodNull,...Z(t)});var Cr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Ge(e.data)}};Cr.create=t=>new Cr({typeName:H.ZodAny,...Z(t)});var Zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ge(e.data)}};Zt.create=t=>new Zt({typeName:H.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:O.invalid_type,expected:k.never,received:r.parsedType}),Y}};Ot.create=t=>new Ot({typeName:H.ZodNever,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.void,received:n.parsedType}),Y}return Ge(e.data)}};xi.create=t=>new xi({typeName:H.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!==k.array)return P(r,{code:O.invalid_type,expected:k.array,received:r.parsedType}),Y;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?O.too_big:O.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:O.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:O.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 ft(r,o,r.path,a)))).then(o=>Fe.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(r,o,r.path,a)));return Fe.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:H.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]=pt.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 pt?pt.create(Si(t.unwrap())):t instanceof Vt?Vt.create(Si(t.unwrap())):t instanceof $t?$t.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=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==k.object){let c=this._getOrReturnCtx(e);return P(c,{code:O.invalid_type,expected:k.object,received:c.parsedType}),Y}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],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ft(i,d,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:O.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 d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new ft(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Fe.mergeObjectSync(n,c)):Fe.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:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.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 te.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 te.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 te.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof pt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return qh(te.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});var Sn=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:O.invalid_union,unionErrors:o}),Y}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:O.invalid_union,unionErrors:a}),Y}}get options(){return this._def.options}};Sn.create=(t,e)=>new Sn({options:t,typeName:H.ZodUnion,...Z(e)});var zt=t=>t instanceof In?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof On?[t.value]:t instanceof xn?t.options:t instanceof Rn?te.objectValues(t.enum):t instanceof wn?zt(t._def.innerType):t instanceof Tn?[void 0]:t instanceof An?[null]:t instanceof pt?[void 0,...zt(t.unwrap())]:t instanceof Vt?[null,...zt(t.unwrap())]:t instanceof Cs||t instanceof Dn?zt(t.unwrap()):t instanceof bn?zt(t._def.innerType):[],ja=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.object)return P(r,{code:O.invalid_type,expected:k.object,received:r.parsedType}),Y;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:O.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Y)}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:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Ml(t,e){let r=br(t),n=br(e);if(t===e)return{valid:!0,data:t};if(r===k.object&&n===k.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Ml(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===k.array&&n===k.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=Ml(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===k.date&&n===k.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Ul(s)||Ul(o))return Y;let a=Ml(s.value,o.value);return a.valid?((Ll(s)||Ll(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:O.invalid_intersection_types}),Y)};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}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:H.ZodIntersection,...Z(r)});var $t=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.array)return P(n,{code:O.invalid_type,expected:k.array,received:n.parsedType}),Y;if(n.data.length<this._def.items.length)return P(n,{code:O.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Y;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:O.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 ft(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Fe.mergeArray(r,o)):Fe.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};$t.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $t({items:t,typeName:H.ZodTuple,rest:null,...Z(e)})};var Ha=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!==k.object)return P(n,{code:O.invalid_type,expected:k.object,received:n.parsedType}),Y;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new ft(n,a,n.path,a)),value:o._parse(new ft(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Fe.mergeObjectAsync(r,i):Fe.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:H.ZodRecord,...Z(n)}):new t({keyType:Dr.create(),valueType:e,typeName:H.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!==k.map)return P(n,{code:O.invalid_type,expected:k.map,received:n.parsedType}),Y;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new ft(n,a,n.path,[c,"key"])),value:s._parse(new ft(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 Y;(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 Y;(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:H.ZodMap,...Z(r)});var wi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.set)return P(n,{code:O.invalid_type,expected:k.set,received:n.parsedType}),Y;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:O.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:O.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 Y;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 ft(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:H.ZodSet,...Z(e)});var Ka=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.function)return P(r,{code:O.invalid_type,expected:k.function,received:r.parsedType}),Y;function n(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),Ii].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),Ii].filter(c=>!!c),issueData:{code:O.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof vr){let a=this;return Ge(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),c})})}else{let a=this;return Ge(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),d=a._def.returns.safeParse(l,s);if(!d.success)throw new ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:$t.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||$t.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName:H.ZodFunction,...Z(n)})}},In=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})}};In.create=(t,e)=>new In({getter:t,typeName:H.ZodLazy,...Z(e)});var On=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:O.invalid_literal,expected:this._def.value}),Y}return{status:"valid",value:e.data}}get value(){return this._def.value}};On.create=(t,e)=>new On({value:t,typeName:H.ZodLiteral,...Z(e)});function qh(t,e){return new xn({values:t,typeName:H.ZodEnum,...Z(e)})}var xn=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:te.joinValues(n),received:r.parsedType,code:O.invalid_type}),Y}if(Qa(this,Rs,"f")||Bh(this,Rs,new Set(this._def.values),"f"),!Qa(this,Rs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:O.invalid_enum_value,options:n}),Y}return Ge(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;xn.create=qh;var Rn=class extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==k.string&&n.parsedType!==k.number){let i=te.objectValues(r);return P(n,{expected:te.joinValues(i),received:n.parsedType,code:O.invalid_type}),Y}if(Qa(this,ws,"f")||Bh(this,ws,new Set(te.getValidEnumValues(this._def.values)),"f"),!Qa(this,ws,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:O.invalid_enum_value,options:i}),Y}return Ge(e.data)}get enum(){return this._def.values}};ws=new WeakMap;Rn.create=(t,e)=>new Rn({values:t,typeName:H.ZodNativeEnum,...Z(e)});var vr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:O.invalid_type,expected:k.promise,received:r.parsedType}),Y;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Ge(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};vr.create=(t,e)=>new vr({type:t,typeName:H.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.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 Y;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?Y:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return Y;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?Y: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"?Y:(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"?Y:(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);te.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:H.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var pt=class extends X{_parse(e){return this._getType(e)===k.undefined?Ge(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Vt=class extends X{_parse(e){return this._getType(e)===k.null?Ge(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Vt.create=(t,e)=>new Vt({innerType:t,typeName:H.ZodNullable,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===k.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var bn=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}};bn.create=(t,e)=>new bn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var bi=class extends X{_parse(e){if(this._getType(e)!==k.nan){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.nan,received:n.parsedType}),Y}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:H.ZodNaN,...Z(t)});var iO=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"?Y: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"?Y: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:H.ZodPipeline})}},Dn=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}};Dn.create=(t,e)=>new Dn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Wh(t,e={},r){return t?Cr.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})}}):Cr.create()}var sO={object:je.lazycreate},H;(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"})(H||(H={}));var oO=(t,e={message:`Input not instance of ${t.name}`})=>Wh(r=>r instanceof t,e),Qh=Dr.create,jh=hn.create,aO=bi.create,uO=gn.create,Hh=yn.create,cO=En.create,lO=Oi.create,dO=Tn.create,pO=An.create,fO=Cr.create,mO=Zt.create,hO=Ot.create,gO=xi.create,yO=Xt.create,EO=je.create,TO=je.strictCreate,AO=Sn.create,SO=ja.create,_O=_n.create,IO=$t.create,OO=Ha.create,xO=Ri.create,RO=wi.create,wO=Ka.create,bO=In.create,DO=On.create,CO=xn.create,vO=Rn.create,NO=vr.create,kh=Ze.create,PO=pt.create,UO=Vt.create,LO=Ze.createWithPreprocess,MO=vs.create,kO=()=>Qh().optional(),FO=()=>jh().optional(),BO=()=>Hh().optional(),GO={string:t=>Dr.create({...t,coerce:!0}),number:t=>hn.create({...t,coerce:!0}),boolean:t=>yn.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>En.create({...t,coerce:!0})},$O=Y,ee=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:$I,getErrorMap:qa,makeIssue:Wa,EMPTY_PATH:VI,addIssueToContext:P,ParseStatus:Fe,INVALID:Y,DIRTY:_i,OK:Ge,isAborted:Ul,isDirty:Ll,isValid:bs,isAsync:Ds,get util(){return te},get objectUtil(){return Pl},ZodParsedType:k,getParsedType:br,ZodType:X,datetimeRegex:Vh,ZodString:Dr,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:yn,ZodDate:En,ZodSymbol:Oi,ZodUndefined:Tn,ZodNull:An,ZodAny:Cr,ZodUnknown:Zt,ZodNever:Ot,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:Sn,ZodDiscriminatedUnion:ja,ZodIntersection:_n,ZodTuple:$t,ZodRecord:Ha,ZodMap:Ri,ZodSet:wi,ZodFunction:Ka,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:vr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:Vt,ZodDefault:wn,ZodCatch:bn,ZodNaN:bi,BRAND:iO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:Dn,custom:Wh,Schema:X,ZodSchema:X,late:sO,get ZodFirstPartyTypeKind(){return H},coerce:GO,any:fO,array:yO,bigint:uO,boolean:Hh,date:cO,discriminatedUnion:SO,effect:kh,enum:CO,function:wO,instanceof:oO,intersection:_O,lazy:bO,literal:DO,map:xO,nan:aO,nativeEnum:vO,never:hO,null:pO,nullable:UO,number:jh,object:EO,oboolean:BO,onumber:FO,optional:PO,ostring:kO,pipeline:MO,preprocess:LO,promise:NO,record:OO,set:RO,strictObject:TO,string:Qh,symbol:lO,transformer:kh,tuple:IO,undefined:dO,union:AO,unknown:mO,void:gO,NEVER:$O,ZodIssueCode:O,quotelessJson:GI,ZodError:ze});var Cn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Cn||{}),Ya=(r=>(r.STRING="string",r.NUMBER="number",r))(Ya||{});var Xa=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Kh=ee.record(Xa,ee.string()),Ja=ee.record(Xa,ee.any()),za=ee.record(Xa,ee.union([ee.any().array(),ee.string()])),Yh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Jh))})),Za=ee.union([ee.string(),ee.number()]),Jh={string:Kh.optional(),fuzzy:Kh.optional(),range:ee.record(Xa,ee.union([ee.object({high:Za,low:Za}),ee.object({high:Za}),ee.object({low:Za})])).optional(),equal:Ja.optional(),notEqual:Ja.optional(),empty:Ja.optional(),notEmpty:Ja.optional(),oneOf:za.optional(),contains:za.optional(),notContains:za.optional(),containsAny:za.optional(),$and:Yh.optional(),$or:Yh.optional()},FV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ai).optional(),...Jh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(Cn).optional(),sortType:ee.nativeEnum(Ya).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var wp={};N(wp,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>Ap,Config:()=>Rp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Ip,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Sp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DocumentType:()=>ge,GlobalRole:()=>xp,Header:()=>Xe,InternalTable:()=>wr,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>xT,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Tp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Be,UserStatus:()=>qu,ViewName:()=>Gr});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=(_=>(_.API_KEY="x-budibase-api-key",_.LICENSE_KEY="x-budibase-license-key",_.API_VER="x-budibase-api-version",_.APP_ID="x-budibase-app-id",_.SESSION_ID="x-budibase-session-id",_.TYPE="x-budibase-type",_.PREVIEW_ROLE="x-budibase-role",_.TENANT_ID="x-budibase-tenant-id",_.VERIFICATION_CODE="x-budibase-verification-code",_.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",_.RESET_PASSWORD_CODE="x-budibase-reset-password-code",_.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",_.TOKEN="x-budibase-token",_.CSRF_TOKEN="x-csrf-token",_.CORRELATION_ID="x-budibase-correlation-id",_.AUTHORIZATION="authorization",_.MIGRATING_APP="x-budibase-migrating-app",_.COOKIE="cookie",_))(Xe||{});var oW={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 pW="darkest",fW="light",WO=[{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"}},zh={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 Fr={};N(Fr,{ColumnSplitter:()=>sp,NoEmptyFilterStrings:()=>ET,buildQuery:()=>TT,cleanupQuery:()=>up,fixupFilterArrays:()=>lp,getKeyNumbering:()=>cp,getValidOperatorsForType:()=>gC,hasFilters:()=>op,limit:()=>ST,recurseLogicalOperators:()=>ap,removeKeyNumbering:()=>eu,runQuery:()=>Lu,search:()=>TC,sort:()=>AT,splitFiltersArray:()=>tu});var Qi=W(Zh());var Ci={};N(Ci,{filterValueToLabel:()=>JO,hasSchema:()=>zO,isSupportedUserSearch:()=>eg,parallelForeach:()=>YO,processSearchFilters:()=>Bl,toMap:()=>XO,trimOtherProps:()=>ZO,unreachable:()=>KO});var Xh=W(require("lodash")),HO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function KO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function YO(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function JO(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function zO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ZO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function eg(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(ka(s)){for(let c of t[s].conditions)if(!eg(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 Bl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=tu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Xh.default.pick(i,HO);return s.field=eu(s.field),s})}]}}function XO(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Ht={};N(Ht,{cancelableTimeout:()=>tg,cron:()=>Xd,deepGet:()=>Gl,duplicateName:()=>pC,getSequentialName:()=>fC,getUserColor:()=>tx,getUserInitials:()=>ex,getUserLabel:()=>rx,isGoogleSheets:()=>ix,isSQL:()=>sx,lists:()=>ip,retry:()=>ox,roles:()=>np,schema:()=>Ao,views:()=>rp,wait:()=>$l,withTimeout:()=>nx});var Gl=(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},ex=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"},tx=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%)`},rx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function tg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function nx(t,e){let[r,n]=tg(t),i=await Promise.race([e(),r]);return n(),i}function ix(t){return t==="GOOGLE_SHEETS"}function sx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function $l(t){return new Promise(e=>setTimeout(e,t))}async function ox(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 $l(s);try{return await t()}catch(o){n=o}}throw n}var Xd={};N(Xd,{getNextExecutionDates:()=>zD,validate:()=>ZD});var fT=W(qt()),mT=W(dT()),pT="(Input cron: ",YD={"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 JD(t){let e=[];for(let r of t){r.includes(pT)&&(r=r.split(pT)[0].trim());for(let[n,i]of Object.entries(YD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function zD(t,e=4){let r=mT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function ZD(t){let e=(0,fT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:JD(e.getError())}}var Ao={};N(Ao,{decodeNonAscii:()=>ep,encodeNonAscii:()=>tC,isDeprecatedSingleUserColumn:()=>XD,isNumeric:()=>rC,isRequired:()=>eC});function XD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function eC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function tC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function ep(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function rC(t){return t.type==="number"||t.type==="bigint"}var rp={};N(rp,{basicFields:()=>aC,calculationFields:()=>oC,hasCalculationFields:()=>sC,isBasicViewField:()=>nC,isCalculationField:()=>So,isCalculationView:()=>iC,isV2:()=>uC,isVisible:()=>hT});var tp=require("lodash");function So(t){return"calculationType"in t}function nC(t){return!So(t)}function iC(t){return t.type==="calculation"}function sC(t){return Object.values(t.schema||{}).some(So)}function oC(t){return(0,tp.pickBy)(t.schema||{},So)}function hT(t){return t.visible!==!1}function aC(t,e){let{visible:r=!0}=e||{};return(0,tp.pickBy)(t.schema||{},n=>!So(n)&&(!r||hT(n)))}function uC(t){return t.version===2}var np={};N(np,{checkForRoleInheritanceLoops:()=>lC});function cC(t){return`role${b}${t}`}function lC(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=cC(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 ip={};N(ip,{punctuateList:()=>dC});function dC(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 pC=(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}`},fC=(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 d=parseInt(l[1]);d>a&&(a=d)}),a===0?o:`${e}${i}${a+1}`};var Yn=require("lodash");var mC=/{{([^{].*?)}}/g,yT=Object.values(Ti),hC=[...Object.values(xr),...Object.values(Jt),...Object.values(fn)],gC=(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]);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},ET=[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 ap(t,e){for(let r of yT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var up=t=>{for(let e of ET)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===""||yC(s))&&delete t[e][i]}return t=ap(t,up),t};function yC(t){return Array.isArray(t)&&t.length===0}var eu=t=>cp(t).key,cp=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}},sp=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}=cp(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=ep(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function EC(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(mC)||[]).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(Fa(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(Fa(r)){let c=zh[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(Ch(r)||vh(r)||Fa(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 tu(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 TT(t){if(!t)return{};if(Array.isArray(t)&&(t=Bl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=gT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=TT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=tu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=gT(n.logicalOperator)),{[a]:{conditions:o.map(EC).filter(u=>u)}}})},e}function gT(t){return t==="all"?"$and":"$or"}function lp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Yn.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 ap(t,lp),t}function TC(t,e){let r=Lu(t,e.query);e.sort&&(r=AT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=ST(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Lu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=up(e),e=lp(e),!op(e)&&e.onEmptyFilter==="none")return[];let r=(T,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=ka(T)?x:Gl(x,eu(w)),ln=I(le,B);if(e.allOr&&ln)return!0;if(!e.allOr&&!ln)return!1}return!e.allOr},n=r("string",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().includes(I.toLowerCase())),s=r("range",(T,I)=>{if(T==null||T===""||((0,Yn.isPlainObject)(I.low)&&(0,Yn.isEmpty)(I.low)&&(I.low=void 0),(0,Yn.isPlainObject)(I.high)&&(0,Yn.isEmpty)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let x=+T;if(!isNaN(x)){let B=+I.low,le=+I.high;if(!isNaN(B)&&!isNaN(le))return x>=B&&x<=le;if(isNaN(B)){if(!isNaN(le))return x<=le}else return x>=B}let w=(0,Qi.default)(T);if(w.isValid()){let B=(0,Qi.default)(I.low||"0000-00-00T00:00:00.000Z"),le=(0,Qi.default)(I.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&le.isValid())return w.isAfter(B)&&w.isBefore(le)||w.isSame(B)||w.isSame(le);if(B.isValid())return w.isAfter(B)||w.isSame(B);if(le.isValid())return w.isBefore(le)||w.isSame(le)}return I.low!=null&&I.high!=null?T>=I.low&&T<=I.high:I.low!=null?T>=I.low:I.high!=null?T<=I.high:!1}),o=(T,I)=>{if(Array.isArray(T)){for(let w of T)if(o(w,I))return!0;return!1}if(T&&typeof T=="object"&&typeof I=="string")return T._id===I;if(T===I)return!0;if(T==null&&I!=null||T!=null&&I==null)return!1;let x=(0,Qi.default)(T);if(x.isValid()){let w=(0,Qi.default)(I);if(w.isValid())return x.isSame(w)}return!1},a=T=>(...I)=>!T(...I),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,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,I)=>(typeof I=="string"&&(I=I.split(",")),typeof T=="number"&&(I=I.map(x=>parseFloat(x))),Array.isArray(I)?I.some(x=>o(T,x)):!1)),f=T=>(I,x)=>!Array.isArray(I)||(typeof x=="string"&&(x=x.split(","),typeof I[0]=="number"&&(x=x.map(w=>parseFloat(w)))),!Array.isArray(x))?!1:x.length===0?!0:x[T](w=>o(I,w)),g=r("contains",(T,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(T,I)),E=r("notContains",(T,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(T,I)),y=r("containsAny",f("some")),_=r("$and",(T,I)=>{if(!I.length)return!1;for(let x of I)if(!Lu([T],x).length)return!1;return!0}),S=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if(Lu([T],{...x,allOr:!0}).length)return!0;return!1}),M=T=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:_,$or:S},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>I[w]?.(T)??!1);return op(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function AT(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 ST(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var op=t=>{if(!t)return!1;let e=r=>{for(let n of yT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of hC){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:()=>pp,automations:()=>fp,screens:()=>Ep,users:()=>yp});var pp={};N(pp,{getDevAppID:()=>AC,getProdAppID:()=>Mu});var dp=Rr("app"),_o=Rr("app_dev");function AC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(dp);e.shift();let r=e.join(dp);return`${_o}${r}`}function Mu(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`${dp}${r}`}var fp={};N(fp,{isAppAction:()=>IC,isRowAction:()=>SC,isWebhookAction:()=>_C});function SC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function _C(t){return t.definition.trigger?.stepId==="WEBHOOK"}function IC(t){return t.definition.trigger?.stepId==="APP"}var yp={};N(yp,{canCreateApps:()=>OC,containsUserID:()=>CC,getGlobalUserID:()=>DC,getUserAppGroups:()=>vC,getUserGroups:()=>gp,hasAdminPermissions:()=>hp,hasAppBuilderPermissions:()=>Bu,hasAppCreatorPermissions:()=>_T,hasBuilderPermissions:()=>wC,hasCreatorPermissions:()=>Gu,isAdmin:()=>Fu,isAdminOrBuilder:()=>xC,isAdminOrGlobalBuilder:()=>RC,isBuilder:()=>mp,isCreator:()=>bC,isGlobalBuilder:()=>ku,userAppAccessList:()=>NC});var Br=W(require("lodash/fp"));function mp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Mu(e))):!1}function ku(t){return mp(t)&&!Bu(t)||Fu(t)}function OC(t){return ku(t)||Gu(t)}function Fu(t){return t?hp(t):!1}function xC(t,e){return mp(t,e)||Fu(t)}function RC(t){return ku(t)||Fu(t)}function Bu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function _T(t){return t?Br.flow(Br.get("roles"),Br.values,Br.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function wC(t){return t?t.builder?.global||Bu(t)||Gu(t):!1}function hp(t){return t?!!t.admin?.global:!1}function Gu(t){return t?!!t.builder?.creator:!1}function bC(t){return t?ku(t)||hp(t)||Gu(t)||Bu(t)||_T(t):!1}function DC(t){if(typeof t!="string")return t;let e=`ro${b}ta_users${b}`;return t.startsWith(e)?t.split(e)[1]:t}function CC(t){return typeof t!="string"?!1:t.includes(`us${b}`)}function gp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function vC(t,e,r){let n=Mu(t);return gp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function NC(t,e){let n=gp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ep={};N(Ep,{findInSettings:()=>PC});function PC(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 Ij={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},Oj={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 Pj={name:"Bash Scripting",tagline:"Execute a bash command",icon:"JourneyEvent",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 Mj={name:"Branch",icon:"Branch3",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 Bj={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",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 Vj={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",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 Qj={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 Kj={description:"Delete a row from your database",icon:"TableRowRemoveCenter",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 zj={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 eH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"Data",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 nH={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 oH={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",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 WC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},cH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",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(bl),pretty:Object.values(WC)},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 pH={name:"Looping",icon:"Reuse",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 hH={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 EH={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(Dl)},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 IT=(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))(IT||{}),SH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(IT)}},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 OT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(OT||{}),OH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",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(OT),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 zC={ascending:"Ascending",descending:"Descending"},wH={description:"Query rows from the database",icon:"Search",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(Cn),pretty:Object.values(zC)},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 CH={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"Email",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 PH={name:"Backend log",tagline:"Console log a value in the backend",icon:"Monitoring",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 MH={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 BH={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",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 VH={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",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 QH={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 ov={name:"App Action",event:"app:trigger",icon:"Apps",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 uv={name:"Cron Trigger",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 lv={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",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 pv={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var mv={name:"Row Updated",event:"row:update",icon:"Refresh",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 gv={name:"Webhook",event:"web:trigger",icon:"Send",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 Ev={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",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 $u=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))($u||{}),Gr=(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",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))(Gr||{}),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"}},yt=Rr("app"),Vu=Rr("app_dev"),Et=Vu,Tp="internal",Ap="budibase",ar="_design/sqlite",Sp="ta_bb_jobs",_p="ta_bb_inventory",Ip="ta_bb_expenses",Op="ta_bb_employee";var qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(qu||{}),Jn=(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))(Jn||{}),xp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(xp||{}),Rp=(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))(Rp||{}),xT=new Date(-2147483647e3),Wu=new Date(2147483647e3),Ae="default";var _a={};N(_a,{CacheKey:()=>Ce,TTL:()=>ii,app:()=>Qo,bustCache:()=>ts,destroy:()=>$o,docWritethrough:()=>Um,generic:()=>Vo,get:()=>si,invite:()=>em,keys:()=>ac,passwordReset:()=>Nm,store:()=>lr,user:()=>sn,withCache:()=>jr,withCacheWithDynamicTTL:()=>XT,writethrough:()=>vm});var Vo={};N(Vo,{CacheKey:()=>Ce,TTL:()=>ii,bustCache:()=>ts,destroy:()=>$o,get:()=>si,keys:()=>ac,store:()=>lr,withCache:()=>jr,withCacheWithDynamicTTL:()=>XT});var Se={};N(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>Co,doInAppContext:()=>iN,doInAppMigrationContext:()=>oN,doInAutomationContext:()=>Xv,doInContext:()=>Hp,doInEnvironmentContext:()=>uN,doInFeatureFlagOverrideContext:()=>ef,doInIPContext:()=>Jp,doInIdentityContext:()=>Oo,doInLicenseContext:()=>tN,doInScimContext:()=>cN,doInSelfHostTenantUsingCloud:()=>eN,doInTenant:()=>qe,ensureSnippetContext:()=>YT,getAppDB:()=>Xi,getAppId:()=>Ue,getAuditLogDBName:()=>jT,getAuditLogsDB:()=>dN,getAutomationId:()=>Kp,getCurrentContext:()=>Zn,getDevAppDB:()=>fN,getEnvironmentVariables:()=>lN,getFeatureFlagOverrides:()=>Xp,getFeatureFlags:()=>zp,getGlobalDB:()=>ie,getGlobalDBName:()=>cr,getIP:()=>Yp,getIdentity:()=>ur,getLicense:()=>rN,getPlatformURL:()=>jp,getProdAppDB:()=>pN,getProdAppId:()=>aN,getScimDBName:()=>Yv,getSelfHostCloudDB:()=>nN,getTableForView:()=>mN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>Q,identity:()=>Io,isMultiTenant:()=>qr,isScim:()=>Ut,isSelfHostUsingCloud:()=>HT,isTenancyEnabled:()=>zv,isTenantIdSet:()=>Jv,setFeatureFlags:()=>Zp,setTableForView:()=>hN});var Io={};N(Io,{doInAccountContext:()=>_v,doInIdentityContext:()=>Dp,doInUserContext:()=>Cp,getAccountUserId:()=>RT,getIdentity:()=>bp});function bp(){return ur()}function Dp(t,e){return Oo(t,e)}function Cp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Dp(n,r)}function _v(t,e){let r=RT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Dp(i,e)}function RT(t){let e;return Ga(t)?e=t.budibaseUserId:e=t.accountId,e}var Hu=require("fs");var DT=require("lodash"),vp=require("crypto");function Np(){return CT()}function CT(){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 Iv(t){if(t)return parseInt(t)}var wT=!1;!wT&&ju()&&!Np()&&(require("dotenv").config(),wT=!0);var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},bT=!!parseInt(process.env.SELF_HOSTED||"");function Ov(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function xv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Rv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Hu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Hu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ju()&&!Np())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 vt.SERVICE_TYPE==="worker"}function bv(){return vt.SERVICE_TYPE==="apps"}function Dv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Np,isJest:CT,isDev:ju,isWorker:wv,isApps:bv,isQA:Dv,isProd:()=>!ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,vp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,vp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Ov(),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",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||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:process.env.SERVICE||"budibase",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:xv(),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,...Rv(),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:Iv(process.env.BSON_BUFFER_SIZE)};function xo(t){let e=(0,DT.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=xo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var NT=["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 PT=require("async_hooks"),we=class t{static{this.storage=new PT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Pp="No app provided";function $r(t){if(!t)throw Pp;return t.startsWith(Et)}function Cv(t){if(!t)throw Pp;return t.startsWith(yt)&&!$r(t)}function Ro(t){if(!t)throw Pp;return $r(t.appId)}function Ku(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var vv=Ku;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 Nv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=Up(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:Up(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Up=(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 d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var WT=W(require("@budibase/nano"));var UT=W(require("node-fetch"));function Yu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function LT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await wo({url:s,cookie:i,method:e,body:r})}async function wo({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,UT.default)(Yu(encodeURI(t)),i)}async function Ju(t,e="GET",r){let n=await LT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var zn=W(require("pouchdb"));var MT,kT=!1,Lp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),zn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");zn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");zn.default.plugin(i.plugin),zn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");zn.default.plugin(i)}return zn.default.defaults(n)};function zu(t){MT=Lp(t),kT=!0}var Uv=()=>{if(!kT)throw new Error("init has not been called")};function Tt(t,e){Uv();let r=new MT(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 bo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var FT=require("uuid");function he(){return(0,FT.v4)().replace(/-/g,"")}var xe=W(require("dd-trace")),Yi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.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 xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.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 xe.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 xe.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 xe.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 xe.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 xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.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 xe.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 xe.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 xe.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 xe.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 xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.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 xe.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 xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var qp={};N(qp,{breakExternalTableId:()=>Fp,breakRowIdField:()=>jv,buildExternalTableId:()=>Gv,convertRowId:()=>Qv,encodeTableId:()=>$v,encodeViewId:()=>Vv,extractDate:()=>Gp,generateRowIdField:()=>qv,getNativeSql:()=>Ji,isExternalTable:()=>kp,isExternalTableID:()=>Zu,isInternalTableID:()=>Bv,isInvalidISODateString:()=>Bp,isRowId:()=>Wv,isValidFilter:()=>ec,isValidISODateString:()=>Xu,isValidTime:()=>$p,sqlLog:()=>Do,validateManyToMany:()=>Vp});var Mp=`${b}${b}`,GT=/^\[.*]$/g,Lv=encodeURIComponent(" "),Mv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,kv=/(\d{4}-\d{2}-\d{2})/,Fv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Zu(t){return t.startsWith("datasource"+b)}function Bv(t){return!Zu(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 kp(t){return t?.sourceId&&t.sourceId.includes("datasource"+b)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&Zu(t._id))}function Gv(t,e){return`${t}${Mp}${encodeURIComponent(e)}`}function $v(t){return Zu(t)?encodeURIComponent(t):t}function Vv(t){return encodeURIComponent(t)}function Fp(t){let e=t.split(Mp),r=e.shift(),n=e.join(Mp);if(n.includes(Lv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function qv(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 Wv(t){return Array.isArray(t)||typeof t=="string"&&t.match(GT)!=null}function Qv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(GT)!=null?t.substring(1,t.length-1):t}function jv(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 Xu(t){let e=t.trim();if(!Mv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Bp(t){return!Xu(t)}function Gp(t){let e=t.match(kv);if(e)return e[0]}function ec(t){return t!=null&&t!==""}function $p(t){return Fv.test(t)}function Do(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 Hv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Vp(t){if(Hv(t))return t}var $T="Database does not exist.";function VT(t){return(0,WT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Vr=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 Kv(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=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=VT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=VT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await wo({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 Vr(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===$T)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Vr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Vr(`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(Nh(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 Vr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=he()),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 allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===$T)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Yu(`${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 wo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Vr("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}/${ar}`;return Do("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(ar)){let e=await this.get(ar);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 Vr(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 Yi(new zi(t,e))}async function ut(t,e,r){let n=Ve(t,r);return await e(n)}async function Wp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Ju(e)}async function Qp(t,e){let r=await Ju(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var QT=null;function cr(t){return t||(t=Q()),Co(t)}function jT(t){return t||(t=Q()),t===Ae?Te.AUDIT_LOGS.name:`${t}${b}${Te.AUDIT_LOGS.name}`}function Yv(t){return t||(t=Q()),t===Ae?Te.SCIM_LOGS.name:`${t}${b}${Te.SCIM_LOGS.name}`}function Co(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${b}${Te.GLOBAL.name}`}function jp(){return h.PLATFORM_URL}function qr(){return!!h.MULTI_TENANCY}function Jv(){return!!we.get()?.tenantId}function zv(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!qr())return Ae;let e=t.split(b),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Zv(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){sN();let r=Zv(t);return we.run(r,e)}async function Xv(t){return await YT(),await Pt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Hp(t,e){let r=Zi(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 eN(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function tN(t,e){return Pt({license:t},e)}function rN(){return we.get()?.license}function HT(){return!!we.get()?.isSelfHostUsingCloud}function nN(){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 iN(t,e){return KT(t,e)}async function KT(t,e,r){if(!t)throw new Error("appId is required");let n=Zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(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),Pt(r,e)}function sN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function oN(t,e){return KT(t,e,{isMigrating:!0})}function ur(){try{return we.get()?.identity}catch{}}function Q(){if(!qr())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Kp(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&QT?QT:e}function Yp(){return we.get()?.ip}var aN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function uN(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 Jp(t,e){return Pt({ip:t},e)}async function YT(t=!h.isTest()){let e=Zn();if(!e||e.snippets)return;let r,n=Xi();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function lN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function ie(){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(Co(t?.tenantId))}function dN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(jT())}function Xi(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(HT())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 fN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Ku(e),t)}function Ut(){return!!we.get()?.isScim}function Zn(){try{return we.get()}catch{return}}function zp(t){let e=Zn();if(e)return e.featureFlagCache?.[t]}function Zp(t,e){let r=Zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function Xp(){return Zn()?.featureFlagOverrides||{}}async function ef(t,e){return await Pt({featureFlagOverrides:t},e)}function mN(t){let e=Zn();if(e)return e.viewToTableCache?.[t]}function hN(t,e){let r=Zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Qr={};N(Qr,{getAppClient:()=>oc,getCacheClient:()=>af,getDocWritethroughClient:()=>AN,getInviteClient:()=>ti,getLockClient:()=>cf,getPasswordResetClient:()=>Go,getSessionClient:()=>Wr,getSocketClient:()=>TN,getUserClient:()=>Bo,getWritethroughClient:()=>uf,init:()=>Lt,shutdown:()=>ZT});var sc=W(require("ioredis"));var nc={};N(nc,{Databases:()=>tf,SEPARATOR:()=>es,SelectableDatabase:()=>tc,getRedisClusterOptions:()=>rf,getRedisConnectionDetails:()=>rc,getRedisOptions:()=>Xn,removeDbPrefix:()=>nf});var es="-",tf=(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))(tf||{}),tc=(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))(tc||{});function rc(){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 rf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Xn(),tls:{}}}}function Xn(){let{host:t,password:e,port:r}=rc();return{connectTimeout:3e4,port:r,host:t,password:e}}function nf(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var ic=require("dd-trace"),zT=require("lodash"),JT;if(h.MOCK_REDIS)try{JT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function gN(t=0){return await ic.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new JT(Xn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=rc();r=new sc.Cluster([{host:n,port:i}],rf())}else r=new sc.default(Xn());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 yN(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:nf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function EN(t){return t.isCluster}var sf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await ic.tracer.trace("RedisWrapper.init",async n=>{let i=await gN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return ic.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;EN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await yN(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,zT.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,mt({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Gg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Gg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(mt({},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(mt({},r,{value:e})),i;return n._validate(e,mt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Vg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Vg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Bg.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,fu.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,LR.default)(e).map(s=>new NR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new vR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.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,fu.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,fu.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)}}};mu.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,PR.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},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 Qg=j(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Wg;Hs.default=void 0;var UR=MR(rr());function MR(t){return t&&t.__esModule?t:{default:t}}var cd=UR.default,FR=cd;Hs.default=FR;function Wg(){return new cd}Wg.prototype=cd.prototype});var Pi=j(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var kR=t=>t==null;hu.default=kR});var Jg=j(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Kg;Ks.default=void 0;var BR=Yg(rr()),jg=er(),Hg=Yg(Pi());function Yg(t){return t&&t.__esModule?t:{default:t}}function Kg(){return new Ys}var Ys=class extends BR.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,Hg.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,Hg.default)(r)||r===!1}})}};Ks.default=Ys;Kg.prototype=Ys.prototype});var Xg=j(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Zg;zs.default=void 0;var Wt=er(),nr=zg(Pi()),GR=zg(rr());function zg(t){return t&&t.__esModule?t:{default:t}}var $R=/^((([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,VR=/^((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,qR=/^(?:[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,WR=t=>(0,nr.default)(t)||t===t.trim(),QR={}.toString();function Zg(){return new Js}var Js=class extends GR.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===QR?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=Wt.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=Wt.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=Wt.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||Wt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Wt.string.email){return this.matches($R,{name:"email",message:e,excludeEmptyString:!0})}url(e=Wt.string.url){return this.matches(VR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Wt.string.uuid){return this.matches(qR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Wt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:WR})}lowercase(e=Wt.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=Wt.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;Zg.prototype=Js.prototype});var ry=j(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=ty;Xs.default=void 0;var Ln=er(),Un=ey(Pi()),jR=ey(rr());function ey(t){return t&&t.__esModule?t:{default:t}}var HR=t=>t!=+t;function ty(){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"&&!HR(e)}min(e,r=Ln.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Un.default)(n)||n>=this.resolve(e)}})}max(e,r=Ln.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Un.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Ln.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Un.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Ln.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Un.default)(n)||n>this.resolve(e)}})}positive(e=Ln.number.positive){return this.moreThan(0,e)}negative(e=Ln.number.negative){return this.lessThan(0,e)}integer(e=Ln.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Un.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Un.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,Un.default)(i)?i:Math[e](i))}};Xs.default=Zs;ty.prototype=Zs.prototype});var ny=j(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=KR;var YR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function KR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=YR.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 oy=j(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=pd;eo.default=void 0;var JR=gu(ny()),iy=er(),sy=gu(Pi()),zR=gu(Pn()),ZR=gu(rr());function gu(t){return t&&t.__esModule?t:{default:t}}var dd=new Date(""),XR=t=>Object.prototype.toString.call(t)==="[object Date]";function pd(){return new Li}var Li=class extends ZR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,JR.default)(e),isNaN(e)?dd:new Date(e))})})}_typeCheck(e){return XR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(zR.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=iy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,sy.default)(i)||i>=this.resolve(n)}})}max(e,r=iy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,sy.default)(i)||i<=this.resolve(n)}})}};eo.default=Li;Li.INVALID_DATE=dd;pd.prototype=Li.prototype;pd.INVALID_DATE=dd});var uy=j((OQ,fd)=>{"use strict";fd.exports=function(t){return ay(ew(t),t)};fd.exports.array=ay;function ay(t,e){var r=t.length,n=new Array(r),i={},s=r,o=tw(e),a=rw(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,d){if(d.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}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 p=o.get(c)||new Set;if(p=Array.from(p),l=p.length){d.add(c);do{var f=p[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function ew(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 tw(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 rw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var cy=j(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.default=uw;var nw=yu(require("lodash/has")),iw=yu(uy()),sw=qs(),ow=yu(Pn()),aw=yu(vi());function yu(t){return t&&t.__esModule?t:{default:t}}function uw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,sw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,nw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),ow.default.isRef(o)&&o.isSibling?i(o.path,s):(0,aw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return iw.default.array(n,r).reverse()}});var dy=j(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=cw;function ly(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 cw(t){return(e,r)=>ly(t,e)-ly(t,r)}});var Ey=j(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=yy;ro.default=void 0;var py=Qt(require("lodash/has")),fy=Qt(require("lodash/snakeCase")),lw=Qt(require("lodash/camelCase")),dw=Qt(require("lodash/mapKeys")),pw=Qt(require("lodash/mapValues")),fw=qs(),my=er(),mw=Qt(cy()),gy=Qt(dy()),hw=Qt(uu()),gw=Qt(vn()),gd=Qt(rr());function Qt(t){return t&&t.__esModule?t:{default:t}}function Ui(){return Ui=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},Ui.apply(this,arguments)}var hy=t=>Object.prototype.toString.call(t)==="[object Object]";function yw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Ew=(0,gy.default)([]),to=class extends gd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Ew,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 hy(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(d=>this._nodes.indexOf(d)===-1)),u={},c=Ui({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,py.default)(i,d);if(m){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||d in i;continue}f=!r.__validating||!y?m.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else p&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(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,d)=>{if(l){if(!gw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!hy(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Ui({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,hw.default)({sync:s,tests:m,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ui({},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 gd.default&&s instanceof gd.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,gy.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,mw.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,fw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,py.default)(s,e)&&(o=Ui({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=my.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=yw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=my.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,dw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(lw.default)}snakeCase(){return this.transformKeys(fy.default)}constantCase(){return this.transformKeys(e=>(0,fy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,pw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function yy(t){return new to(t)}yy.prototype=to.prototype});var Ay=j(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Ty;io.default=void 0;var yd=Mi(Pi()),Tw=Mi(vi()),Aw=Mi(Vs()),Ed=er(),Sw=Mi(uu()),_w=Mi(vn()),Iw=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=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},Eu.apply(this,arguments)}function Ty(t){return new no(t)}var no=class extends Iw.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,Eu({},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,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!_w.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],S=`${r.path||""}[${E}]`,I=Eu({},r,{path:S,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(R,T)=>c.validate(y,I,T)}(0,Sw.default)({sync:a,path:u,value:f,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,Tw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Aw.default)(e));return r.innerType=e,r}length(e,r=Ed.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,yd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Ed.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,yd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Ed.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,yd.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;Ty.prototype=no.prototype});var Sy=j(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Rw;so.default=void 0;var Ow=xw(vi());function xw(t){return t&&t.__esModule?t:{default:t}}function Rw(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Ow.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)}},ww=Tu;so.default=ww});var _y=j(Td=>{"use strict";Object.defineProperty(Td,"__esModule",{value:!0});Td.default=Cw;var bw=Dw(er());function Dw(t){return t&&t.__esModule?t:{default:t}}function Cw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{bw.default[e][r]=t[e][r]})})}});var Sd=j(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=Fw;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Ad.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return vw.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Nw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return Pw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return Lw.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Uw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return Mw.default}});var Iy=Mn(Qg()),Ad=Mn(Jg()),Oy=Mn(Xg()),xy=Mn(ry()),Ry=Mn(oy()),wy=Mn(Ey()),by=Mn(Ay()),vw=Pn(),Nw=Sy(),Pw=oo(vn()),Lw=oo(ad()),Dy=oo(vi()),Uw=oo(_y()),Mw=oo(rr());function oo(t){return t&&t.__esModule?t:{default:t}}function Cy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Cy=function(){return t},t}function Mn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Cy();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 Fw(t,e,r){if(!t||!(0,Dy.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 vy=j(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});var _d=Od();Id.default=()=>{(0,_d.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,_d.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,_d.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 Od=j(Pe=>{"use strict";var kw=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]}),Bw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Gw=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)&&kw(e,t,r);return Bw(e,t),e},$w=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=Gw(Sd());Sd();var ao=xt(),Vw=$w(vy());Rt();var Fn={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}}},Ny=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(),qw=t=>Fn[t]?(0,ao.valid)(Fn[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=qw;var Ww=()=>Fn;Pe.getOptionPresets=Ww;var Qw=(t,e)=>{Fn[t]=Ny.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Qw;var jw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,S,I,R;try{(0,Vw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Fn[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);T=Fn[t.preset]}else T=t.preset;else T=Fn.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:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f: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:(I=T.years.lowerLimit)!==null&&I!==void 0?I: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:Ny.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 qt=j((uo,Rd)=>{"use strict";var Bn=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var kn=xt(),Hw=Bn(ag()),Yw=Bn(ug()),Kw=Bn(cg()),Jw=Bn(lg()),zw=Bn(dg()),Zw=Bn(pg()),Xw=Bn(fg()),eb=Od();Rt();var tb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,kn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,kn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,kn.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,kn.valid)(n)},xd=(t,e={})=>{let r=(0,eb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=tb(t,n);if(i.isError())return(0,kn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Hw.default)(s,n)),o.push((0,Yw.default)(s,n)),o.push((0,Kw.default)(s,n)),o.push((0,Jw.default)(s,n)),o.push((0,zw.default)(s,n)),o.push((0,Zw.default)(s,n)),n.useYears&&o.push((0,Xw.default)(s,n)),o.every(u=>u.isValid()))return(0,kn.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,kn.err)(a)};uo.default=xd;Rd.exports=xd;Rd.exports.default=xd});var rT=j(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},Ud=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Md=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Fd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Vn=class extends sr{},Ru=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends sr{},jt=class extends sr{constructor(){super("Zone is an abstract class")}},C="numeric",Ct="short",nt="long",wu={year:C,month:C,day:C},iE={year:C,month:Ct,day:C},rb={year:C,month:Ct,day:C,weekday:Ct},sE={year:C,month:nt,day:C},oE={year:C,month:nt,day:C,weekday:nt},aE={hour:C,minute:C},uE={hour:C,minute:C,second:C},cE={hour:C,minute:C,second:C,timeZoneName:Ct},lE={hour:C,minute:C,second:C,timeZoneName:nt},dE={hour:C,minute:C,hourCycle:"h23"},pE={hour:C,minute:C,second:C,hourCycle:"h23"},fE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Ct},mE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},hE={year:C,month:C,day:C,hour:C,minute:C},gE={year:C,month:C,day:C,hour:C,minute:C,second:C},yE={year:C,month:Ct,day:C,hour:C,minute:C},EE={year:C,month:Ct,day:C,hour:C,minute:C,second:C},nb={year:C,month:Ct,day:C,weekday:Ct,hour:C,minute:C},TE={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Ct},AE={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Ct},SE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},_E={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,timeZoneName:nt},Mr=class{get type(){throw new jt}get name(){throw new jt}get ianaName(){return this.name}get isUniversal(){throw new jt}offsetName(e,r){throw new jt}formatOffset(e,r){throw new jt}offset(e){throw new jt}equals(e){throw new jt}get isValid(){throw new jt}},wd=null,go=class t extends Mr{static get instance(){return wd===null&&(wd=new t),wd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return OE(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}},Ou={};function ib(t){return Ou[t]||(Ou[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"})),Ou[t]}var sb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ob(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 ab(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=sb[s];s==="era"?n[a]=o:se(a)||(n[a]=parseInt(o,10))}return n}var Au={},or=class t extends Mr{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},Ou={}}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 OE(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=ib(this.name),[i,s,o,a,u,c,l]=n.formatToParts?ab(n,r):ob(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Kd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,f=p%1e3;return p-=f>=0?f:1e3+f,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Py={};function ub(t,e={}){let r=JSON.stringify([t,e]),n=Py[r];return n||(n=new Intl.ListFormat(t,e),Py[r]=n),n}var kd={};function Bd(t,e={}){let r=JSON.stringify([t,e]),n=kd[r];return n||(n=new Intl.DateTimeFormat(t,e),kd[r]=n),n}var Gd={};function cb(t,e={}){let r=JSON.stringify([t,e]),n=Gd[r];return n||(n=new Intl.NumberFormat(t,e),Gd[r]=n),n}var $d={};function lb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=$d[i];return s||(s=new Intl.RelativeTimeFormat(t,e),$d[i]=s),s}var fo=null;function db(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function pb(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=Bd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Bd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function fb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function mb(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function hb(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 Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function gb(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 Vd=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=cb(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):Yd(e,3);return Re(r,this.padTo)}}},qd=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=Bd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Wd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&IE()&&(this.rtf=lb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Nb(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":db()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,kd={},Gd={},$d={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=pb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=fb(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=gb(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 Su(this,e,n,wE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=mb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,CE,()=>{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]=hb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>vE,()=>{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 Su(this,e,r,NE,()=>{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 Vd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new qd(e,this.intl,r)}relFormatter(e={}){return new Wd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return ub(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}},bd=null,it=class t extends Mr{static get utcInstance(){return bd===null&&(bd=new t(0)),bd}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(Pu(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}},bu=class extends Mr{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 Ur(t,e){if(se(t)||t===null)return e;if(t instanceof Mr)return t;if(yb(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 Wn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new bu(t)}var Ly=()=>Date.now(),Uy="system",My=null,Fy=null,ky=null,By=60,Gy,Ee=class{static get now(){return Ly}static set now(e){Ly=e}static set defaultZone(e){Uy=e}static get defaultZone(){return Ur(Uy,go.instance)}static get defaultLocale(){return My}static set defaultLocale(e){My=e}static get defaultNumberingSystem(){return Fy}static set defaultNumberingSystem(e){Fy=e}static get defaultOutputCalendar(){return ky}static set defaultOutputCalendar(e){ky=e}static get twoDigitCutoffYear(){return By}static set twoDigitCutoffYear(e){By=e%100}static get throwOnInvalid(){return Gy}static set throwOnInvalid(e){Gy=e}static resetCaches(){_e.resetCache(),or.resetCache()}};function se(t){return typeof t>"u"}function Wn(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function yb(t){return typeof t=="string"}function Eb(t){return Object.prototype.toString.call(t)==="[object Date]"}function IE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Tb(t){return Array.isArray(t)?t:[t]}function $y(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 Ab(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 Nu(t)&&t>=e&&t<=r}function Sb(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 Lr(t){if(!(se(t)||t===null||t===""))return parseInt(t,10)}function Gn(t){if(!(se(t)||t===null||t===""))return parseFloat(t)}function Hd(t){if(!(se(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Yd(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 Du(t,e){let r=Sb(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 Kd(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 Cu(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 Qd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function OE(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 Pu(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 xE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function vu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=xE(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 Ab(t,["hour","minute","second","millisecond"])}var _b=["January","February","March","April","May","June","July","August","September","October","November","December"],RE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ib=["J","F","M","A","M","J","J","A","S","O","N","D"];function wE(t){switch(t){case"narrow":return[...Ib];case"short":return[...RE];case"long":return[..._b];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 bE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],DE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Ob=["M","T","W","T","F","S","S"];function CE(t){switch(t){case"narrow":return[...Ob];case"short":return[...DE];case"long":return[...bE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var vE=["AM","PM"],xb=["Before Christ","Anno Domini"],Rb=["BC","AD"],wb=["B","A"];function NE(t){switch(t){case"narrow":return[...wb];case"short":return[...Rb];case"long":return[...xb];default:return null}}function bb(t){return vE[t.hour<12?0:1]}function Db(t,e){return CE(e)[t.weekday-1]}function Cb(t,e){return wE(e)[t.month-1]}function vb(t,e){return NE(e)[t.year<0?0:1]}function Nb(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 d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"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 Vy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Pb={D:wu,DD:iE,DDD:sE,DDDD:oE,t:aE,tt:uE,ttt:cE,tttt:lE,T:dE,TT:pE,TTT:fE,TTTT:mE,f:hE,ff:yE,fff:TE,ffff:SE,F:gE,FF:EE,FFF:AE,FFFF:_E},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 Pb[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=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?bb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?Cb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?Db(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?vb(e,p):s({era:p},"era"),m=p=>{switch(p){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 d("short");case"GG":return d("long");case"GGGGG":return d("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(p)}};return Vy(t.parseFormat(r),m)}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 Vy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},PE=/[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 LE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Lr(e[r+i]);return[n,null,r+i]}}var UE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Lb=`(?:${UE.source}?(?:\\[(${PE.source})\\])?)?`,Jd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,ME=RegExp(`${Jd.source}${Lb}`),zd=RegExp(`(?:T${ME.source})?`),Ub=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Mb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Fb=/(\d{4})-?(\d{3})/,kb=LE("weekYear","weekNumber","weekDay"),Bb=LE("year","ordinal"),Gb=/(\d{4})-(\d\d)-(\d\d)/,FE=RegExp(`${Jd.source} ?(?:${UE.source}|(${PE.source}))?`),$b=RegExp(`(?: ${FE.source})?`);function Bi(t,e,r){let n=t[e];return se(n)?r:Lr(n)}function Vb(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:Hd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Pu(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 qb=RegExp(`^T?${Jd.source}$`),Wb=/^-?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 Qb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(Gn(r)),months:m(Gn(n)),weeks:m(Gn(i)),days:m(Gn(s)),hours:m(Gn(o)),minutes:m(Gn(a)),seconds:m(Gn(u),u==="-0"),milliseconds:m(Hd(c),d)}]}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 Zd(t,e,r,n,i,s,o){let a={year:e.length===2?Qd(Lr(e)):Lr(e),month:RE.indexOf(r)+1,day:Lr(n),hour:Lr(i),minute:Lr(s)};return o&&(a.second=Lr(o)),t&&(a.weekday=t.length>3?bE.indexOf(t)+1:DE.indexOf(t)+1),a}var Hb=/^(?:(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 Yb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Zd(e,i,n,r,s,o,a),p;return u?p=jb[u]:c?p=0:p=Pu(l,d),[m,new it(p)]}function Kb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Jb=/^(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$/,zb=/^(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$/,Zb=/^(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 qy(t){let[,e,r,n,i,s,o,a]=t;return[Zd(e,i,n,r,s,o,a),it.utcInstance]}function Xb(t){let[,e,r,n,i,s,o,a]=t;return[Zd(e,a,r,n,i,s,o),it.utcInstance]}var eD=$i(Ub,zd),tD=$i(Mb,zd),rD=$i(Fb,zd),nD=$i(ME),kE=Vi(Vb,Wi,Eo,To),iD=Vi(kb,Wi,Eo,To),sD=Vi(Bb,Wi,Eo,To),oD=Vi(Wi,Eo,To);function aD(t){return qi(t,[eD,kE],[tD,iD],[rD,sD],[nD,oD])}function uD(t){return qi(Kb(t),[Hb,Yb])}function cD(t){return qi(t,[Jb,qy],[zb,qy],[Zb,Xb])}function lD(t){return qi(t,[Wb,Qb])}var dD=Vi(Wi);function pD(t){return qi(t,[qb,dD])}var fD=$i(Gb,$b),mD=$i(FE),hD=Vi(Wi,Eo,To);function gD(t){return qi(t,[fD,kE],[mD,hD])}var yD="Invalid Duration",BE={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}},ED={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},...BE},ht=146097/400,Fi=146097/4800,TD={years:{quarters:4,months:12,weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},quarters:{months:3,weeks:ht/28,days:ht/4,hours:ht*24/4,minutes:ht*24*60/4,seconds:ht*24*60*60/4,milliseconds:ht*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},...BE},$n=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],AD=$n.slice(0).reverse();function Pr(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 SD(t){return t<0?Math.floor(t):Math.ceil(t)}function GE(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?SD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function _D(t,e){AD.reduce((r,n)=>se(e[n])?r:(r&&GE(t,e,r,e,n),n),null)}function ID(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?TD:ED;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:vu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Wn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=lD(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]=pD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Fd(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 Ru(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):yD}toHuman(e={}){let r=$n.map(n=>{let i=this.values[n];return se(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+=Yd(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 $n)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Pr(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]=xE(e(this.values[n],n));return Pr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...vu(e,t.normalizeUnit)};return Pr(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 Pr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return _D(this.matrix,e),Pr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=ID(this.normalize().shiftToAll().toObject());return Pr(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 $n)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;Wn(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)$n.indexOf(c)>$n.indexOf(o)&&GE(this.matrix,i,c,r,o)}else Wn(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 Pr(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 Pr(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 $n)if(!r(this.values[n],e.values[n]))return!1;return!0}},ki="Invalid Interval";function OD(t,e){return!t||!t.isValid?Qn.invalid("missing or invalid start"):!e||!e.isValid?Qn.invalid("missing or invalid end"):e<t?Qn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var Qn=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Md(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=OD(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=wu,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))}},qn=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 Ur(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:IE()}}};function Wy(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 xD(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=Wy(u,c);return(l-l%7)/7}],["days",Wy]],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 RD(t,e,r,n){let[i,s,o,a]=xD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=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 Xd={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"},Qy={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]},wD=Xd.hanidec.replace(/[\[|\]]/g,"").split("");function bD(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(Xd.hanidec)!==-1)e+=wD.indexOf(t[r]);else for(let i in Qy){let[s,o]=Qy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${Xd[t||"latn"]}${e}`)}var DD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(bD(r))}}var CD=String.fromCharCode(160),$E=`[ ${CD}]`,VE=new RegExp($E,"g");function vD(t){return t.replace(/\./g,"\\.?").replace(VE,$E)}function jy(t){return t.replace(/\./g,"").replace(VE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(vD).join("|")),deser:([r])=>t.findIndex(n=>jy(r)===jy(n))+e}}function Hy(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Dd(t){return{regex:t,deser:([e])=>e}}function ND(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function PD(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}"),d=bt(e,"{2,4}"),m=bt(e,"{4,6}"),p=E=>({regex:RegExp(ND(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(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(d,Qd);case"yyyy":return le(s);case"yyyyy":return le(m);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 Dd(l);case"uu":return Dd(a);case"uuu":return le(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,Qd);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 Hy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Hy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Dd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:DD};return g.token=t,g}var LD={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 UD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=LD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function MD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function FD(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 kD(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 se(t.z)||(r=or.create(t.z)),se(t.Z)||(r||(r=new it(t.Z)),n=t.Z),se(t.q)||(t.M=(t.q-1)*3+1),se(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),se(t.u)||(t.S=Hd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Cd=null;function BD(){return Cd||(Cd=Ie.fromMillis(1555555555555)),Cd}function GD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=QE(r,e);return n==null||n.includes(void 0)?t:n}function qE(t,e){return Array.prototype.concat(...t.map(r=>GD(r,e)))}function WE(t,e,r){let n=qE(tt.parseFormat(r),t),i=n.map(o=>PD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=MD(i),u=RegExp(o,"i"),[c,l]=FD(e,u,a),[d,m,p]=l?kD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new Vn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function $D(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=WE(t,e,r);return[n,i,s,o]}function QE(t,e){return t?tt.create(e,t).formatDateTimeParts(BD()).map(i=>UD(i,t)):null}var jE=[0,31,59,90,120,151,181,212,243,273,304,334],HE=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function YE(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 KE(t,e,r){return r+(yo(t)?HE:jE)[e-1]}function JE(t,e){let r=yo(t)?HE:jE,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=KE(e,r,n),s=YE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Cu(a)):o>Cu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function Yy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=YE(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}=JE(a,o);return{year:a,month:u,day:c,...Lu(t)}}function vd(t){let{year:e,month:r,day:n}=t,i=KE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Ky(t){let{year:e,ordinal:r}=t,{month:n,day:i}=JE(e,r);return{year:e,month:n,day:i,...Lu(t)}}function VD(t){let e=Nu(t.weekYear),r=ir(t.weekNumber,1,Cu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function qD(t){let e=Nu(t.year),r=ir(t.ordinal,1,mo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function zE(t){let e=Nu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Du(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function ZE(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:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var Nd="Invalid DateTime",Jy=864e13;function _u(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Pd(t){return t.weekData===null&&(t.weekData=jd(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 XE(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 zy(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 xu(t,e,r){return XE(Kd(t),e,r)}function Zy(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,Du(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=Kd(s),[u,c]=XE(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 Iu(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Ld(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 Xy(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 eT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},WD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},QD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},tT=["year","month","day","hour","minute","second","millisecond"],jD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],HD=["year","ordinal","hour","minute","second","millisecond"];function eE(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 Ru(t);return e}function tE(t,e){let r=Ur(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(se(t.year))s=i;else{for(let c of tT)se(t[c])&&(t[c]=eT[c]);let a=zE(t)||ZE(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function rE(t,e,r){let n=se(r.round)?!0:r.round,i=(o,a)=>(o=Yd(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 nE(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:_u(r));this.ts=se(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=zy(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]=nE(arguments),[n,i,s,o,a,u,c]=r;return tE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=nE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,tE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Eb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Ur(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(_u(i))}static fromMillis(e,r={}){if(Wn(e))return e<-Jy||e>Jy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Wn(e))return new t({ts:e*1e3,zone:Ur(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ur(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(_u(n));let i=Ee.now(),s=se(r.specificOffset)?n.offset(i):r.specificOffset,o=vu(e,eE),a=!se(o.ordinal),u=!se(o.year),c=!se(o.month)||!se(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&d)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Vn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=zy(i,s);p?(f=jD,g=WD,E=jd(E)):a?(f=HD,g=QD,E=vd(E)):(f=tT,g=eT);let y=!1;for(let b of f){let k=o[b];se(k)?y?o[b]=g[b]:o[b]=E[b]:y=!0}let S=p?VD(o):a?qD(o):zE(o),I=S||ZE(o);if(I)return t.invalid(I);let R=p?Yy(o):a?Ky(o):o,[T,_]=xu(R,s,n),B=new t({ts:T,zone:n,o:_,loc:m});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]=aD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=uD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=cD(e);return lo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(se(e)||se(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=$D(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]=gD(e);return lo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Ud(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=QE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return qE(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?Pd(this).weekYear:NaN}get weekNumber(){return this.isValid?Pd(this).weekNumber:NaN}get weekday(){return this.isValid?Pd(this).weekday:NaN}get ordinal(){return this.isValid?vd(this.c).ordinal:NaN}get monthShort(){return this.isValid?qn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?qn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?qn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?qn.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 Du(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Cu(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=Ur(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]=xu(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(_u(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=vu(e,eE),n=!se(r.weekYear)||!se(r.weekNumber)||!se(r.weekday),i=!se(r.ordinal),s=!se(r.year),o=!se(r.month)||!se(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Vn("Can't mix ordinal dates with month/day");let c;n?c=Yy({...jd(this.c),...r}):se(r.ordinal)?(c={...this.toObject(),...r},se(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=Ky({...vd(this.c),...r});let[l,d]=xu(c,this.o,this.zone);return co(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,Zy(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(this,Zy(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):Nd}toLocaleString(e=wu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Nd}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=Ld(this,o);return a+="T",a+=Xy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Ld(this,e==="extended"):null}toISOWeekDate(){return Iu(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":"")+Xy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Iu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Iu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Ld(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")),Iu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Nd}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=Tb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=RD(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),rE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?rE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Ye("min requires all arguments be DateTimes");return $y(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return $y(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 WE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return iE}static get DATE_MED_WITH_WEEKDAY(){return rb}static get DATE_FULL(){return sE}static get DATE_HUGE(){return oE}static get TIME_SIMPLE(){return aE}static get TIME_WITH_SECONDS(){return uE}static get TIME_WITH_SHORT_OFFSET(){return cE}static get TIME_WITH_LONG_OFFSET(){return lE}static get TIME_24_SIMPLE(){return dE}static get TIME_24_WITH_SECONDS(){return pE}static get TIME_24_WITH_SHORT_OFFSET(){return fE}static get TIME_24_WITH_LONG_OFFSET(){return mE}static get DATETIME_SHORT(){return hE}static get DATETIME_SHORT_WITH_SECONDS(){return gE}static get DATETIME_MED(){return yE}static get DATETIME_MED_WITH_SECONDS(){return EE}static get DATETIME_MED_WITH_WEEKDAY(){return nb}static get DATETIME_FULL(){return TE}static get DATETIME_FULL_WITH_SECONDS(){return AE}static get DATETIME_HUGE(){return SE}static get DATETIME_HUGE_WITH_SECONDS(){return _E}};function po(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&Wn(t.valueOf()))return Ie.fromJSDate(t);if(t&&typeof t=="object")return Ie.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var YD="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=qn;st.Interval=Qn;st.InvalidZone=bu;st.Settings=Ee;st.SystemZone=go;st.VERSION=YD;st.Zone=Mr});var iT=j((UQ,nT)=>{"use strict";var jn=rT();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=jn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=jn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=jn.DateTime.fromISO(t,r),this._date.isValid||(this._date=jn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=jn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=jn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=jn.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))}nT.exports=z});var aT=j((MQ,oT)=>{"use strict";function Hn(t){return{start:t,count:1}}function sT(t,e){t.end=e,t.step=e-t.start,t.count=2}function ep(t,e,r){e&&(e.count===2?(t.push(Hn(e.start)),t.push(Hn(e.end))):t.push(e)),r&&t.push(r)}function KD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(ep(e,r,Hn(i)),r=void 0):r?r.count===1?sT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hn(r.start)),r=Hn(r.end),sT(r,i)):(ep(e,r),r=Hn(i)):r=Hn(i)}return ep(e,r),e}oT.exports=KD});var cT=j((FQ,uT)=>{"use strict";var JD=aT();function zD(t,e,r){var n=JD(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(m,p){var f=c.start+p;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}uT.exports=zD});var pT=j((kQ,dT)=>{"use strict";var Yn=iT(),ZD=cT(),lT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Yn(e.currentDate,this._tz),this._startDate=e.startDate?new Yn(e.startDate,this._tz):null,this._endDate=e.endDate?new Yn(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(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[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,f)){c.push(f);return}var S=+f;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));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=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}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 I=0,R=S.length;I<R;I++)if(S[I]>=y)return S[I]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var I=y.getDate()%7?1:0,R=y.getDate()-y.getDate()%7,T=Math.floor(R/7)+I;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 Yn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(S){if(!i([S]))return!1;var I=Number.parseInt(S[0])%7;if(Number.isNaN(I))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===I&&o.isLastWeekdayOfMonth()})}for(;l<lT;){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 m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=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(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){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>=lT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Yn(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 Yn(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(ZD(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 Yn(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,d=U.map.length;l<d;++l){var m=U.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?S(p):p;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;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(I){var R=I.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(I))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(I))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(I))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 I}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.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(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};dT.exports=U});var mT=j((BQ,fT)=>{"use strict";var Uu=pT();function Fr(){}Fr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Uu.parse(e)};if(r.length>6)return{interval:Uu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Fr.parseExpression=function(e,r){return Uu.parse(e,r)};Fr.fieldsToExpression=function(e,r){return Uu.fieldsToExpression(e,r)};Fr.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=Fr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Fr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Fr.parseString(i.toString()))})};fT.exports=Fr});var qk={};P(qk,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>_p,BadRequestError:()=>wc,BudibaseError:()=>ps,Config:()=>bp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Op,DEFAULT_JOBS_TABLE_ID:()=>Ip,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Pf,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Dc,GlobalRole:()=>wp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>wr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>DT,NotFoundError:()=>Rc,RedisClient:()=>We,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>bc,UserStatus:()=>Wu,ViewName:()=>Gr,accounts:()=>di,auth:()=>fh,blacklist:()=>yh,cache:()=>Ia,configs:()=>nn,constants:()=>Dp,context:()=>Se,db:()=>Yr,docIds:()=>_f,docUpdates:()=>Th,encryption:()=>lh,env:()=>h,errors:()=>vc,events:()=>ys,features:()=>th,getPublicError:()=>Cc,init:()=>Vk,installation:()=>$c,locks:()=>ci,logging:()=>Oc,middleware:()=>ph,objectStore:()=>Yf,permissions:()=>Zm,platform:()=>Xo,plugins:()=>hh,queue:()=>lm,redis:()=>gh,roles:()=>zm,security:()=>wm,sessions:()=>Yc,setEnv:()=>Ro,sql:()=>bh,tenancy:()=>$k,timers:()=>Bc,userUtils:()=>im,users:()=>Es,utils:()=>ss,withEnv:()=>UT});module.exports=kI(qk);var nn={};P(nn,{analyticsEnabled:()=>Fc,generateConfigID:()=>Xc,getAIConfig:()=>tF,getConfig:()=>Gt,getDefaultGoogleConfig:()=>Fm,getGoogleConfig:()=>el,getGoogleDatasourceConfig:()=>Gm,getOIDCConfig:()=>Z0,getOIDCConfigById:()=>$m,getOIDCLogosDoc:()=>J0,getPlatformUrl:()=>Da,getSCIMConfig:()=>eF,getSMTPConfig:()=>X0,getSMTPConfigDoc:()=>N_,getSettingsConfig:()=>Bm,getSettingsConfigDoc:()=>qc,save:()=>Y0});var BI=["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"],Ch=[...BI],vh={"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,"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 xl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(xl||{}),Rl=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(Rl||{}),Fa=(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))(Fa||{});var wl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(wl||{});var GI=W(require("lodash")),xr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(xr||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),fn=(e=>(e.RANGE="range",e))(fn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function ka(t){return Object.values(Ti).includes(t)}function Nh(t){return Object.values(xr).includes(t)}function Ph(t){return Object.values(Jt).includes(t)}function Ba(t){return Object.values(fn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Lh=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 Uh={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 WB={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 Ga=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Ga||{});var $a=t=>t.hosting==="cloud";var Va=t=>t.authType==="sso";var D="_",Ge="\uFFF0",Rr=t=>`${t}${D}`,ye=(J=>(J.USER="us",J.GROUP="gr",J.WORKSPACE="workspace",J.CONFIG="config",J.TEMPLATE="template",J.APP="app",J.DEV="dev",J.APP_DEV="app_dev",J.APP_METADATA="app_metadata",J.ROLE="role",J.MIGRATIONS="migrations",J.DEV_INFO="devinfo",J.AUTOMATION_LOG="log_au",J.ACCOUNT_METADATA="acc_metadata",J.PLUGIN="plg",J.DATASOURCE="datasource",J.DATASOURCE_PLUS="datasource_plus",J.APP_BACKUP="backup",J.TABLE="ta",J.ROW="ro",J.AUTOMATION="au",J.LINK="li",J.WEBHOOK="wh",J.INSTANCE="inst",J.LAYOUT="layout",J.SCREEN="screen",J.QUERY="query",J.DEPLOYMENTS="deployments",J.METADATA="metadata",J.MEM_VIEW="view",J.USER_FLAG="flag",J.AUTOMATION_METADATA="meta_au",J.AUDIT_LOG="al",J.APP_MIGRATION_METADATA="_design/migrations",J.SCIM_LOG="scimlog",J.ROW_ACTIONS="ra",J.OAUTH2_CONFIG="oauth2",J.OAUTH2_CONFIG_LOG="oauth2log",J.AGENT_CHAT="agentchat",J.WORKSPACE_APP="workspace_app",J))(ye||{}),vG=Object.values(ye).sort((t,e)=>e.length-t.length);var wr=(e=>(e.USER_METADATA="ta_users",e))(wr||{}),bl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(bl||{}),NG=Object.values(bl).sort((t,e)=>e.length-t.length);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 ue=(O=>(O.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",O.CREATE_ROW="CREATE_ROW",O.UPDATE_ROW="UPDATE_ROW",O.DELETE_ROW="DELETE_ROW",O.EXECUTE_BASH="EXECUTE_BASH",O.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",O.EXECUTE_SCRIPT="EXECUTE_SCRIPT",O.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",O.EXECUTE_QUERY="EXECUTE_QUERY",O.SERVER_LOG="SERVER_LOG",O.DELAY="DELAY",O.FILTER="FILTER",O.API_REQUEST="API_REQUEST",O.QUERY_ROWS="QUERY_ROWS",O.LOOP="LOOP",O.COLLECT="COLLECT",O.OPENAI="OPENAI",O.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",O.BRANCH="BRANCH",O.CLASSIFY_CONTENT="CLASSIFY_CONTENT",O.PROMPT_LLM="PROMPT_LLM",O.TRANSLATE="TRANSLATE",O.SUMMARISE="SUMMARISE",O.GENERATE_TEXT="GENERATE_TEXT",O.discord="discord",O.slack="slack",O.zapier="zapier",O.integromat="integromat",O.n8n="n8n",O))(ue||{}),Mh=[...Object.values(ue),...Object.values(It)];var Dl=(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))(Dl||{}),Fh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"};var Cl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Cl||{});var vl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(vl||{});var Nl="bb_internal";var kh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function qa(t){return!!t.providerType}var Pl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Pl||{});var J$=Object.values(Pl);var tV=["rows","queries","automations"],rV=["queries","automations"];var ne;(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})(ne||(ne={}));var Ul;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Ul||(Ul={}));var F=ne.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),br=t=>{switch(typeof t){case"undefined":return F.undefined;case"string":return F.string;case"number":return isNaN(t)?F.nan:F.number;case"boolean":return F.boolean;case"function":return F.function;case"bigint":return F.bigint;case"symbol":return F.symbol;case"object":return Array.isArray(t)?F.array:t===null?F.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?F.promise:typeof Map<"u"&&t instanceof Map?F.map:typeof Set<"u"&&t instanceof Set?F.set:typeof Date<"u"&&t instanceof Date?F.date:F.object;default:return F.unknown}},x=ne.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"]),WI=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,ne.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===F.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ne.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${ne.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ne.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${ne.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}"`:ne.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,ne.assertNever(t)}return{message:r}},$h=Ii;function QI(t){$h=t}function Wa(){return $h}var Qa=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 L(t,e){let r=Wa(),n=Qa({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 K;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 K;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}}},K=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Ml=t=>t.status==="aborted",Fl=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function ja(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 Vh(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,ft=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}},Bh=(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 br(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:br(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:br(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:br(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Bh(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:br(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ds(i)?i:Promise.resolve(i));return Bh(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:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return Vt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.create(this,this._def)}promise(){return vr.create(this,this._def)}or(e){return Sn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Cs({typeName:H.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new bn({...Z(this._def),innerType:this,catchValue:r,typeName:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return vs.create(this,e)}readonly(){return Dn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},HI=/^c[^\s-]{8,}$/i,YI=/^[0-9a-z]+$/,KI=/^[0-9A-HJKMNP-TV-Z]{26}$/,JI=/^[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,zI=/^[a-z0-9_-]{21}$/i,ZI=/^[-+]?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)?)??$/,XI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,eO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ll,tO=/^(?:(?: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])$/,rO=/^(([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})))$/,nO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,qh="((\\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])))",iO=new RegExp(`^${qh}$`);function Wh(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 sO(t){return new RegExp(`^${Wh(t)}$`)}function Qh(t){let e=`${qh}T${Wh(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 oO(t,e){return!!((e==="v4"||!e)&&tO.test(t)||(e==="v6"||!e)&&rO.test(t))}var Dr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==F.string){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.string,received:s.parsedType}),K}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),L(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),L(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?L(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&L(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")XI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ll||(Ll=new RegExp(eO,"u")),Ll.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")JI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")zI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")HI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")YI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")KI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(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),L(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),L(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),L(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),L(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),L(i,{code:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Qh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?iO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?sO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?ZI.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?oO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?nO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):ne.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}};Dr.create=t=>{var e;return new Dr({checks:[],typeName:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function aO(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 hn=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)!==F.number){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.number,received:s.parsedType}),K}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?ne.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),L(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),L(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),L(n,{code:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?aO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),L(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),L(n,{code:x.not_finite,message:s.message}),i.dirty()):ne.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"&&ne.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)}};hn.create=t=>new hn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var gn=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)!==F.bigint){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.bigint,received:s.parsedType}),K}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),L(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),L(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),L(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ne.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}};gn.create=t=>{var e;return new gn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var yn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==F.boolean){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.boolean,received:n.parsedType}),K}return $e(e.data)}};yn.create=t=>new yn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var En=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==F.date){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_type,expected:F.date,received:s.parsedType}),K}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return L(s,{code:x.invalid_date}),K}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),L(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),L(i,{code:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ne.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}};En.create=t=>new En({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==F.symbol){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.symbol,received:n.parsedType}),K}return $e(e.data)}};Oi.create=t=>new Oi({typeName:H.ZodSymbol,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==F.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.undefined,received:n.parsedType}),K}return $e(e.data)}};Tn.create=t=>new Tn({typeName:H.ZodUndefined,...Z(t)});var An=class extends X{_parse(e){if(this._getType(e)!==F.null){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.null,received:n.parsedType}),K}return $e(e.data)}};An.create=t=>new An({typeName:H.ZodNull,...Z(t)});var Cr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};Cr.create=t=>new Cr({typeName:H.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:H.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return L(r,{code:x.invalid_type,expected:F.never,received:r.parsedType}),K}};Ot.create=t=>new Ot({typeName:H.ZodNever,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==F.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.void,received:n.parsedType}),K}return $e(e.data)}};xi.create=t=>new xi({typeName:H.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!==F.array)return L(r,{code:x.invalid_type,expected:F.array,received:r.parsedType}),K;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(L(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&&(L(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&&(L(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 ft(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(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:H.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]=pt.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 pt?pt.create(Si(t.unwrap())):t instanceof Vt?Vt.create(Si(t.unwrap())):t instanceof $t?$t.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=ne.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==F.object){let c=this._getOrReturnCtx(e);return L(c,{code:x.invalid_type,expected:F.object,received:c.parsedType}),K}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],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ft(i,d,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&&(L(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 d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new ft(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,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:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return ne.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 ne.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 ne.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 ne.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof pt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return jh(ne.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:H.ZodObject,...Z(e)});var Sn=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 L(r,{code:x.invalid_union,unionErrors:o}),K}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 L(r,{code:x.invalid_union,unionErrors:a}),K}}get options(){return this._def.options}};Sn.create=(t,e)=>new Sn({options:t,typeName:H.ZodUnion,...Z(e)});var zt=t=>t instanceof In?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof On?[t.value]:t instanceof xn?t.options:t instanceof Rn?ne.objectValues(t.enum):t instanceof wn?zt(t._def.innerType):t instanceof Tn?[void 0]:t instanceof An?[null]:t instanceof pt?[void 0,...zt(t.unwrap())]:t instanceof Vt?[null,...zt(t.unwrap())]:t instanceof Cs||t instanceof Dn?zt(t.unwrap()):t instanceof bn?zt(t._def.innerType):[],Ha=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.object)return L(r,{code:x.invalid_type,expected:F.object,received:r.parsedType}),K;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}):(L(r,{code:x.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),K)}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:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function kl(t,e){let r=br(t),n=br(e);if(t===e)return{valid:!0,data:t};if(r===F.object&&n===F.object){let i=ne.objectKeys(e),s=ne.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=kl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===F.array&&n===F.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=kl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===F.date&&n===F.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Ml(s)||Ml(o))return K;let a=kl(s.value,o.value);return a.valid?((Fl(s)||Fl(o))&&r.dirty(),{status:r.value,value:a.data}):(L(n,{code:x.invalid_intersection_types}),K)};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}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:H.ZodIntersection,...Z(r)});var $t=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.array)return L(n,{code:x.invalid_type,expected:F.array,received:n.parsedType}),K;if(n.data.length<this._def.items.length)return L(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),K;!this._def.rest&&n.data.length>this._def.items.length&&(L(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 ft(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})}};$t.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $t({items:t,typeName:H.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!==F.object)return L(n,{code:x.invalid_type,expected:F.object,received:n.parsedType}),K;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new ft(n,a,n.path,a)),value:o._parse(new ft(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:H.ZodRecord,...Z(n)}):new t({keyType:Dr.create(),valueType:e,typeName:H.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!==F.map)return L(n,{code:x.invalid_type,expected:F.map,received:n.parsedType}),K;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new ft(n,a,n.path,[c,"key"])),value:s._parse(new ft(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 K;(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 K;(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:H.ZodMap,...Z(r)});var wi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.set)return L(n,{code:x.invalid_type,expected:F.set,received:n.parsedType}),K;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(L(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&&(L(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 K;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 ft(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:H.ZodSet,...Z(e)});var Ka=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.function)return L(r,{code:x.invalid_type,expected:F.function,received:r.parsedType}),K;function n(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),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 vr){let a=this;return $e(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),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),d=a._def.returns.safeParse(l,s);if(!d.success)throw new ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:$t.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||$t.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName:H.ZodFunction,...Z(n)})}},In=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})}};In.create=(t,e)=>new In({getter:t,typeName:H.ZodLazy,...Z(e)});var On=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return L(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),K}return{status:"valid",value:e.data}}get value(){return this._def.value}};On.create=(t,e)=>new On({value:t,typeName:H.ZodLiteral,...Z(e)});function jh(t,e){return new xn({values:t,typeName:H.ZodEnum,...Z(e)})}var xn=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 L(r,{expected:ne.joinValues(n),received:r.parsedType,code:x.invalid_type}),K}if(ja(this,Rs,"f")||Vh(this,Rs,new Set(this._def.values),"f"),!ja(this,Rs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{received:r.data,code:x.invalid_enum_value,options:n}),K}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;xn.create=jh;var Rn=class extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){let r=ne.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==F.string&&n.parsedType!==F.number){let i=ne.objectValues(r);return L(n,{expected:ne.joinValues(i),received:n.parsedType,code:x.invalid_type}),K}if(ja(this,ws,"f")||Vh(this,ws,new Set(ne.getValidEnumValues(this._def.values)),"f"),!ja(this,ws,"f").has(e.data)){let i=ne.objectValues(r);return L(n,{received:n.data,code:x.invalid_enum_value,options:i}),K}return $e(e.data)}get enum(){return this._def.values}};ws=new WeakMap;Rn.create=(t,e)=>new Rn({values:t,typeName:H.ZodNativeEnum,...Z(e)});var vr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.promise&&r.common.async===!1)return L(r,{code:x.invalid_type,expected:F.promise,received:r.parsedType}),K;let n=r.parsedType===F.promise?r.data:Promise.resolve(r.data);return $e(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};vr.create=(t,e)=>new vr({type:t,typeName:H.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.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=>{L(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 K;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?K:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return K;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?K: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"?K:(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"?K:(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);ne.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:H.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var pt=class extends X{_parse(e){return this._getType(e)===F.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Vt=class extends X{_parse(e){return this._getType(e)===F.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Vt.create=(t,e)=>new Vt({innerType:t,typeName:H.ZodNullable,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===F.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var bn=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}};bn.create=(t,e)=>new bn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var bi=class extends X{_parse(e){if(this._getType(e)!==F.nan){let n=this._getOrReturnCtx(e);return L(n,{code:x.invalid_type,expected:F.nan,received:n.parsedType}),K}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:H.ZodNaN,...Z(t)});var uO=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"?K: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"?K: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:H.ZodPipeline})}},Dn=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}};Dn.create=(t,e)=>new Dn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Hh(t,e={},r){return t?Cr.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})}}):Cr.create()}var cO={object:je.lazycreate},H;(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"})(H||(H={}));var lO=(t,e={message:`Input not instance of ${t.name}`})=>Hh(r=>r instanceof t,e),Yh=Dr.create,Kh=hn.create,dO=bi.create,pO=gn.create,Jh=yn.create,fO=En.create,mO=Oi.create,hO=Tn.create,gO=An.create,yO=Cr.create,EO=Zt.create,TO=Ot.create,AO=xi.create,SO=Xt.create,_O=je.create,IO=je.strictCreate,OO=Sn.create,xO=Ha.create,RO=_n.create,wO=$t.create,bO=Ya.create,DO=Ri.create,CO=wi.create,vO=Ka.create,NO=In.create,PO=On.create,LO=xn.create,UO=Rn.create,MO=vr.create,Gh=Ze.create,FO=pt.create,kO=Vt.create,BO=Ze.createWithPreprocess,GO=vs.create,$O=()=>Yh().optional(),VO=()=>Kh().optional(),qO=()=>Jh().optional(),WO={string:t=>Dr.create({...t,coerce:!0}),number:t=>hn.create({...t,coerce:!0}),boolean:t=>yn.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>En.create({...t,coerce:!0})},QO=K,re=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:QI,getErrorMap:Wa,makeIssue:Qa,EMPTY_PATH:jI,addIssueToContext:L,ParseStatus:ke,INVALID:K,DIRTY:_i,OK:$e,isAborted:Ml,isDirty:Fl,isValid:bs,isAsync:Ds,get util(){return ne},get objectUtil(){return Ul},ZodParsedType:F,getParsedType:br,ZodType:X,datetimeRegex:Qh,ZodString:Dr,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:yn,ZodDate:En,ZodSymbol:Oi,ZodUndefined:Tn,ZodNull:An,ZodAny:Cr,ZodUnknown:Zt,ZodNever:Ot,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:Sn,ZodDiscriminatedUnion:Ha,ZodIntersection:_n,ZodTuple:$t,ZodRecord:Ya,ZodMap:Ri,ZodSet:wi,ZodFunction:Ka,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:vr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:Vt,ZodDefault:wn,ZodCatch:bn,ZodNaN:bi,BRAND:uO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:Dn,custom:Hh,Schema:X,ZodSchema:X,late:cO,get ZodFirstPartyTypeKind(){return H},coerce:WO,any:yO,array:SO,bigint:pO,boolean:Jh,date:fO,discriminatedUnion:xO,effect:Gh,enum:LO,function:vO,instanceof:lO,intersection:RO,lazy:NO,literal:PO,map:DO,nan:dO,nativeEnum:UO,never:TO,null:gO,nullable:kO,number:Kh,object:_O,oboolean:qO,onumber:VO,optional:FO,ostring:$O,pipeline:GO,preprocess:BO,promise:MO,record:bO,set:CO,strictObject:IO,string:Yh,symbol:mO,transformer:Gh,tuple:wO,undefined:hO,union:OO,unknown:EO,void:AO,NEVER:QO,ZodIssueCode:x,quotelessJson:WI,ZodError:ze});var Cn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Cn||{}),Ja=(r=>(r.STRING="string",r.NUMBER="number",r))(Ja||{});var eu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),zh=re.record(eu,re.string()),za=re.record(eu,re.any()),Za=re.record(eu,re.union([re.any().array(),re.string()])),Zh=re.lazy(()=>re.object({conditions:re.array(re.object(Xh))})),Xa=re.union([re.string(),re.number()]),Xh={string:zh.optional(),fuzzy:zh.optional(),range:re.record(eu,re.union([re.object({high:Xa,low:Xa}),re.object({high:Xa}),re.object({low:Xa})])).optional(),equal:za.optional(),notEqual:za.optional(),empty:za.optional(),notEmpty:za.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:Zh.optional(),$or:Zh.optional()},zV=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Ai).optional(),...Xh}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(Cn).optional(),sortType:re.nativeEnum(Ja).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Dp={};P(Dp,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>_p,Config:()=>bp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Op,DEFAULT_JOBS_TABLE_ID:()=>Ip,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DocumentType:()=>ye,GlobalRole:()=>wp,Header:()=>Xe,InternalTable:()=>wr,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>DT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Wu,ViewName:()=>Gr});var hW={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 TW={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 xW="darkest",RW="light",YO=[{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"}},eg={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 kr={};P(kr,{ColumnSplitter:()=>ap,NoEmptyFilterStrings:()=>ST,buildQuery:()=>_T,cleanupQuery:()=>lp,fixupFilterArrays:()=>pp,getKeyNumbering:()=>dp,getValidOperatorsForType:()=>AC,hasFilters:()=>up,limit:()=>OT,recurseLogicalOperators:()=>cp,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>IC,sort:()=>IT,splitFiltersArray:()=>ru});var Qi=W(tg());var Ci={};P(Ci,{filterValueToLabel:()=>ex,hasSchema:()=>tx,isSupportedUserSearch:()=>ng,parallelForeach:()=>XO,processSearchFilters:()=>$l,toMap:()=>nx,trimOtherProps:()=>rx,unreachable:()=>ZO});var rg=W(require("lodash")),zO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function ZO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function XO(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function ex(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function tx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function rx(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function ng(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(ka(s)){for(let c of t[s].conditions)if(!ng(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 $l(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=rg.default.pick(i,zO);return s.field=tu(s.field),s})}]}}function nx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Ht={};P(Ht,{cancelableTimeout:()=>ig,cron:()=>tp,deepGet:()=>Vl,duplicateName:()=>gC,getSequentialName:()=>yC,getUserColor:()=>sx,getUserInitials:()=>ix,getUserLabel:()=>ox,isGoogleSheets:()=>ux,isSQL:()=>cx,lists:()=>op,retry:()=>lx,roles:()=>sp,schema:()=>Ao,views:()=>ip,wait:()=>ql,withTimeout:()=>ax});var Vl=(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},ix=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"},sx=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%)`},ox=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function ig(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function ax(t,e){let[r,n]=ig(t),i=await Promise.race([e(),r]);return n(),i}function ux(t){return t==="GOOGLE_SHEETS"}function cx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function ql(t){return new Promise(e=>setTimeout(e,t))}async function lx(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 ql(s);try{return await t()}catch(o){n=o}}throw n}var tp={};P(tp,{getNextExecutionDates:()=>tC,validate:()=>rC});var gT=W(qt()),yT=W(mT()),hT="(Input cron: ",XD={"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 eC(t){let e=[];for(let r of t){r.includes(hT)&&(r=r.split(hT)[0].trim());for(let[n,i]of Object.entries(XD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function tC(t,e=4){let r=yT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function rC(t){let e=(0,gT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:eC(e.getError())}}var Ao={};P(Ao,{decodeNonAscii:()=>rp,encodeNonAscii:()=>sC,isDeprecatedSingleUserColumn:()=>nC,isNumeric:()=>oC,isRequired:()=>iC});function nC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function iC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function sC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function rp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function oC(t){return t.type==="number"||t.type==="bigint"}var ip={};P(ip,{basicFields:()=>dC,calculationFields:()=>lC,hasCalculationFields:()=>cC,isBasicViewField:()=>aC,isCalculationField:()=>So,isCalculationView:()=>uC,isV2:()=>pC,isVisible:()=>ET});var np=require("lodash");function So(t){return"calculationType"in t}function aC(t){return!So(t)}function uC(t){return t.type==="calculation"}function cC(t){return Object.values(t.schema||{}).some(So)}function lC(t){return(0,np.pickBy)(t.schema||{},So)}function ET(t){return t.visible!==!1}function dC(t,e){let{visible:r=!0}=e||{};return(0,np.pickBy)(t.schema||{},n=>!So(n)&&(!r||ET(n)))}function pC(t){return t.version===2}var sp={};P(sp,{checkForRoleInheritanceLoops:()=>mC});function fC(t){return`role${D}${t}`}function mC(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=fC(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 op={};P(op,{punctuateList:()=>hC});function hC(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 gC=(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}`},yC=(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 d=parseInt(l[1]);d>a&&(a=d)}),a===0?o:`${e}${i}${a+1}`};var Kn=require("lodash");var EC=/{{([^{].*?)}}/g,AT=Object.values(Ti),TC=[...Object.values(xr),...Object.values(Jt),...Object.values(fn)],AC=(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},ST=[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 cp(t,e){for(let r of AT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var lp=t=>{for(let e of ST)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===""||SC(s))&&delete t[e][i]}return t=cp(t,lp),t};function SC(t){return Array.isArray(t)&&t.length===0}var tu=t=>dp(t).key,dp=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}},ap=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}=dp(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=rp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function _C(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(EC)||[]).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(Ba(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(Ba(r)){let c=eg[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(Nh(r)||Ph(r)||Ba(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 ru(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 _T(t){if(!t)return{};if(Array.isArray(t)&&(t=$l(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=TT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=_T(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=ru(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=TT(n.logicalOperator)),{[a]:{conditions:o.map(_C).filter(u=>u)}}})},e}function TT(t){return t==="all"?"$and":"$or"}function pp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Kn.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 cp(t,pp),t}function IC(t,e){let r=Mu(t,e.query);e.sort&&(r=IT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=OT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=lp(e),e=pp(e),!up(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=ka(T)?B:Vl(B,tu(b)),ln=_(de,k);if(e.allOr&&ln)return!0;if(!e.allOr&&!ln)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,Kn.isPlainObject)(_.low)&&(0,Kn.isEmpty)(_.low)&&(_.low=void 0),(0,Kn.isPlainObject)(_.high)&&(0,Kn.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,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),f=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:f("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(f("every"))(T,_)),y=r("containsAny",f("some")),S=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Mu([T],B).length)return!1;return!0}),I=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Mu([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:S,$or:I},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(T)??!1);return up(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function IT(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 OT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var up=t=>{if(!t)return!1;let e=r=>{for(let n of AT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of TC){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={};P(ot,{applications:()=>mp,automations:()=>hp,screens:()=>Ap,users:()=>Tp});var mp={};P(mp,{getDevAppID:()=>OC,getProdAppID:()=>Fu});var fp=Rr("app"),_o=Rr("app_dev");function OC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(fp);e.shift();let r=e.join(fp);return`${_o}${r}`}function Fu(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`${fp}${r}`}var hp={};P(hp,{isAppAction:()=>wC,isRowAction:()=>xC,isWebhookAction:()=>RC});function xC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function RC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function wC(t){return t.definition.trigger?.stepId==="APP"}var Tp={};P(Tp,{canCreateApps:()=>bC,containsUserID:()=>LC,getGlobalUserID:()=>PC,getUserAppGroups:()=>UC,getUserGroups:()=>Ep,hasAdminPermissions:()=>yp,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>xT,hasBuilderPermissions:()=>vC,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>DC,isAdminOrGlobalBuilder:()=>CC,isBuilder:()=>gp,isCreator:()=>NC,isGlobalBuilder:()=>ku,userAppAccessList:()=>MC});var Br=W(require("lodash/fp"));function gp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Fu(e))):!1}function ku(t){return gp(t)&&!Gu(t)||Bu(t)}function bC(t){return ku(t)||$u(t)}function Bu(t){return t?yp(t):!1}function DC(t,e){return gp(t,e)||Bu(t)}function CC(t){return ku(t)||Bu(t)}function Gu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function xT(t){return t?Br.flow(Br.get("roles"),Br.values,Br.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function vC(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function yp(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function NC(t){return t?ku(t)||yp(t)||$u(t)||Gu(t)||xT(t):!1}function PC(t){if(typeof t!="string")return t;let e=`ro${D}ta_users${D}`;return t.startsWith(e)?t.split(e)[1]:t}function LC(t){return typeof t!="string"?!1:t.includes(`us${D}`)}function Ep(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function UC(t,e,r){let n=Fu(t);return Ep(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function MC(t,e){let n=Ep(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ap={};P(Ap,{findInSettings:()=>FC});function FC(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 Mj={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},Fj={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},kj={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 jj={name:"Bash Scripting",tagline:"Execute a bash command",icon:"JourneyEvent",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 Kj={name:"Branch",icon:"Branch3",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 Zj={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",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 tH={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",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 iH={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 aH={description:"Delete a row from your database",icon:"TableRowRemoveCenter",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 lH={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 fH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"Data",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 gH={name:"API Request",tagline:"Execute a REST request",icon:"GlobeGrid",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 TH={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 _H={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",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 KC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},xH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",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(Cl),pretty:Object.values(KC)},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 bH={name:"Looping",icon:"Reuse",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 vH={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 LH={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(vl)},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 RT=(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))(RT||{}),FH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",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(RT)}},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 wT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(wT||{}),GH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",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(wT),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 rv={ascending:"Ascending",descending:"Descending"},qH={description:"Query rows from the database",icon:"Search",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(Cn),pretty:Object.values(rv)},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 jH={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"Email",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 KH={name:"Backend log",tagline:"Console log a value in the backend",icon:"Monitoring",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 ZH={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 tY={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",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 iY={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",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 aY={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 lY={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 fY={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 gY={name:"Translate",tagline:"Translate text to a different language",icon:"GlobeGrid",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 bT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(bT||{}),TY={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(bT)}},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 _Y={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(Dl),pretty:Object.values(Fh)},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 gv={name:"App Action",event:"app:trigger",icon:"Apps",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 Ev={name:"Cron Trigger",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 Av={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",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 _v={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",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 Ov={name:"Row Updated",event:"row:update",icon:"Refresh",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 Rv={name:"Webhook",event:"web:trigger",icon:"Send",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 bv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",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 Vu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Vu||{}),Gr=(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",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))(Gr||{}),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"}},yt=Rr("app"),qu=Rr("app_dev"),Et=qu,Sp="internal",_p="budibase",ar="_design/sqlite",Ip="ta_bb_jobs",Op="ta_bb_inventory",xp="ta_bb_expenses",Rp="ta_bb_employee";var Wu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Wu||{}),Jn=(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))(Jn||{}),wp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(wp||{}),bp=(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))(bp||{}),DT=new Date(-2147483647e3),Qu=new Date(2147483647e3),Ae="default";var Ia={};P(Ia,{CacheKey:()=>Ce,TTL:()=>ii,app:()=>jo,bustCache:()=>ts,destroy:()=>Vo,docWritethrough:()=>Mm,generic:()=>qo,get:()=>si,invite:()=>rm,keys:()=>uc,passwordReset:()=>Lm,store:()=>lr,user:()=>sn,withCache:()=>jr,withCacheWithDynamicTTL:()=>nA,writethrough:()=>Pm});var qo={};P(qo,{CacheKey:()=>Ce,TTL:()=>ii,bustCache:()=>ts,destroy:()=>Vo,get:()=>si,keys:()=>uc,store:()=>lr,withCache:()=>jr,withCacheWithDynamicTTL:()=>nA});var Se={};P(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>vo,doInAppContext:()=>yN,doInAppMigrationContext:()=>TN,doInAutomationContext:()=>pN,doInContext:()=>Kp,doInEnvironmentContext:()=>SN,doInFeatureFlagOverrideContext:()=>rf,doInIPContext:()=>Zp,doInIdentityContext:()=>Oo,doInLicenseContext:()=>mN,doInScimContext:()=>_N,doInSelfHostTenantUsingCloud:()=>fN,doInTenant:()=>qe,ensureSnippetContext:()=>XT,getAppDB:()=>Xi,getAppId:()=>Le,getAuditLogDBName:()=>JT,getAuditLogsDB:()=>ON,getAutomationId:()=>Jp,getCurrentContext:()=>Zn,getDevAppDB:()=>RN,getEnvironmentVariables:()=>IN,getFeatureFlagOverrides:()=>tf,getFeatureFlags:()=>Xp,getGlobalDB:()=>oe,getGlobalDBName:()=>cr,getIP:()=>zp,getIdentity:()=>ur,getLicense:()=>hN,getPlatformURL:()=>Yp,getProdAppDB:()=>xN,getProdAppId:()=>AN,getScimDBName:()=>uN,getSelfHostCloudDB:()=>gN,getTableForView:()=>wN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>Q,identity:()=>Io,isMultiTenant:()=>qr,isScim:()=>Lt,isSelfHostUsingCloud:()=>zT,isTenancyEnabled:()=>lN,isTenantIdSet:()=>cN,setFeatureFlags:()=>ef,setTableForView:()=>bN});var Io={};P(Io,{doInAccountContext:()=>Nv,doInIdentityContext:()=>vp,doInUserContext:()=>Np,getAccountUserId:()=>CT,getIdentity:()=>Cp});function Cp(){return ur()}function vp(t,e){return Oo(t,e)}function Np(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return vp(n,r)}function Nv(t,e){let r=CT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return vp(i,e)}function CT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Yu=require("fs");var PT=require("lodash"),Pp=require("crypto"),xo=require("path"),Pv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,xo.resolve)((0,xo.join)(__dirname,"..","..","..")),vT=!1;!vT&&Hu()&&!Lp()&&(require("dotenv").config({path:(0,xo.join)(Pv,".env")}),vT=!0);function Lp(){return LT()}function LT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Hu(){return process.env.NODE_ENV!=="production"}function Lv(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"},NT=!!parseInt(process.env.SELF_HOSTED||"");function Uv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Mv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Fv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Yu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Yu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Hu()&&!Lp())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 kv(){return vt.SERVICE_TYPE==="worker"}function Bv(){return vt.SERVICE_TYPE==="apps"}function Gv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}function $v(){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:Lp,isJest:LT,isDev:Hu,isWorker:kv,isApps:Bv,isQA:Gv,isProd:()=>!Hu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Pp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Pp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Uv(),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",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:NT,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:$v(),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:Mv(),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:NT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Fv(),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:Lv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,PT.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 UT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var MT=["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 FT=require("async_hooks"),we=class t{static{this.storage=new FT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Up="No app provided";function $r(t){if(!t)throw Up;return t.startsWith(Et)}function Vv(t){if(!t)throw Up;return t.startsWith(yt)&&!$r(t)}function wo(t){if(!t)throw Up;return $r(t.appId)}function Ku(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var qv=Ku;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 Wv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=Mp(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:Mp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Mp=(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 d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var YT=W(require("@budibase/nano"));var kT=W(require("node-fetch"));function Ju(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function BT(t,e="GET",r){let{url:n,cookie:i}=Nt(),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,kT.default)(Ju(encodeURI(t)),i)}async function zu(t,e="GET",r){let n=await BT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var zn=W(require("pouchdb"));var GT,$T=!1,Fp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),zn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");zn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");zn.default.plugin(i.plugin),zn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");zn.default.plugin(i)}return zn.default.defaults(n)};function Zu(t){GT=Fp(t),$T=!0}var jv=()=>{if(!$T)throw new Error("init has not been called")};function Tt(t,e){jv();let r=new GT(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 VT=require("uuid");function ge(){return(0,VT.v4)().replace(/-/g,"")}var xe=W(require("dd-trace")),Ki=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.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 xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.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 xe.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 xe.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 xe.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 xe.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 xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.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 xe.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 xe.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 xe.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 xe.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 xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.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 xe.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 xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Qp={};P(Qp,{breakExternalTableId:()=>Gp,breakRowIdField:()=>sN,buildExternalTableId:()=>Xv,convertRowId:()=>iN,encodeTableId:()=>eN,encodeViewId:()=>tN,extractDate:()=>Vp,generateRowIdField:()=>rN,getNativeSql:()=>Ji,isExternalTable:()=>Bp,isExternalTableID:()=>Xu,isInternalTableID:()=>Zv,isRowId:()=>nN,isValidFilter:()=>tc,isValidISODateString:()=>ec,isValidISODateStringWithoutTimezone:()=>$p,isValidTime:()=>qp,sqlLog:()=>Co,validateManyToMany:()=>Wp});var kp=`${D}${D}`,WT=/^\[.*]$/g,Hv=encodeURIComponent(" "),Yv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Kv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Jv=/(\d{4}-\d{2}-\d{2})/,zv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Xu(t){return t.startsWith("datasource"+D)}function Zv(t){return!Xu(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 Bp(t){return t?.sourceId&&t.sourceId.includes("datasource"+D)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&Xu(t._id))}function Xv(t,e){return`${t}${kp}${encodeURIComponent(e)}`}function eN(t){return Xu(t)?encodeURIComponent(t):t}function tN(t){return encodeURIComponent(t)}function Gp(t){let e=t.split(kp),r=e.shift(),n=e.join(kp);if(n.includes(Hv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function rN(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 nN(t){return Array.isArray(t)||typeof t=="string"&&t.match(WT)!=null}function iN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(WT)!=null?t.substring(1,t.length-1):t}function sN(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 ec(t){let e=t.trim();if(!Yv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function $p(t){let e=t.trim();if(!Kv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Vp(t){let e=t.match(Jv);if(e)return e[0]}function tc(t){return t!=null&&t!==""}function qp(t){return zv.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 oN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Wp(t){if(oN(t))return t}var QT="Database does not exist.";function jT(t){return(0,YT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Vr=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 aN(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 Ki(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=jT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=jT(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 Vr(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===QT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Vr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Vr(`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(Lh(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 Vr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=ge()),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 allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===QT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ju(`${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 Vr("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}/${ar}`;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(ar)){let e=await this.get(ar);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 Vr(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 Ki(new zi(t,e))}async function ut(t,e,r){let n=Ve(t,r);return await e(n)}async function jp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await zu(e)}async function Hp(t,e){let r=await zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var KT=null;function cr(t){return t||(t=Q()),vo(t)}function JT(t){return t||(t=Q()),t===Ae?Te.AUDIT_LOGS.name:`${t}${D}${Te.AUDIT_LOGS.name}`}function uN(t){return t||(t=Q()),t===Ae?Te.SCIM_LOGS.name:`${t}${D}${Te.SCIM_LOGS.name}`}function vo(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${D}${Te.GLOBAL.name}`}function Yp(){return h.PLATFORM_URL}function qr(){return!!h.MULTI_TENANCY}function cN(){return!!we.get()?.tenantId}function lN(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!qr())return Ae;let e=t.split(D),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function dN(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){EN();let r=dN(t);return we.run(r,e)}async function pN(t){return await XT(),await Pt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Kp(t,e){let r=Zi(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 fN(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function mN(t,e){return Pt({license:t},e)}function hN(){return we.get()?.license}function zT(){return!!we.get()?.isSelfHostUsingCloud}function gN(){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 yN(t,e){return ZT(t,e)}async function ZT(t,e,r){if(!t)throw new Error("appId is required");let n=Zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(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),Pt(r,e)}function EN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function TN(t,e){return ZT(t,e,{isMigrating:!0})}function ur(){try{return we.get()?.identity}catch{}}function Q(){if(!qr())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Jp(){return we.get()?.automationId}function Le(){let e=we.get()?.appId;return!e&&h.isTest()&&KT?KT:e}function zp(){return we.get()?.ip}var AN=()=>{let t=Le();if(!t)throw new Error("Could not get appId");return at(t)};function SN(t,e){if(!t)throw new Error("Must supply environment variables.");return Pt({environmentVariables:t},e)}function _N(t){return Pt({isScim:!0},t)}function Zp(t,e){return Pt({ip:t},e)}async function XT(){let t=Zn();if(!t||t.snippets)return;let e,r=Xi();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function IN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function oe(){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 ON(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(JT())}function Xi(t){let e=Le();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(zT())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function xN(t){let e=Le();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function RN(t){let e=Le();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Ku(e),t)}function Lt(){return!!we.get()?.isScim}function Zn(){try{return we.get()}catch{return}}function Xp(t){let e=Zn();if(e)return e.featureFlagCache?.[t]}function ef(t,e){let r=Zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function tf(){return Zn()?.featureFlagOverrides||{}}async function rf(t,e){return await Pt({featureFlagOverrides:t},e)}function wN(t){let e=Zn();if(e)return e.viewToTableCache?.[t]}function bN(t,e){let r=Zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Qr={};P(Qr,{getAppClient:()=>ac,getCacheClient:()=>cf,getDocWritethroughClient:()=>PN,getInviteClient:()=>ti,getLockClient:()=>df,getPasswordResetClient:()=>$o,getSessionClient:()=>Wr,getSocketClient:()=>NN,getUserClient:()=>Go,getWritethroughClient:()=>lf,init:()=>Ut,shutdown:()=>rA});var oc=W(require("ioredis"));var ic={};P(ic,{Databases:()=>nf,SEPARATOR:()=>es,SelectableDatabase:()=>rc,getRedisClusterOptions:()=>sf,getRedisConnectionDetails:()=>nc,getRedisOptions:()=>Xn,removeDbPrefix:()=>of});var es="-",nf=(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))(nf||{}),rc=(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))(rc||{});function nc(){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 sf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Xn(),tls:{}}}}function Xn(){let{host:t,password:e,port:r}=nc();return{connectTimeout:3e4,port:r,host:t,password:e}}function of(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var sc=require("dd-trace"),tA=require("lodash"),eA;if(h.MOCK_REDIS)try{eA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function DN(t=0){return await sc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new eA(Xn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=nc();r=new oc.Cluster([{host:n,port:i}],sf())}else r=new oc.default(Xn());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 CN(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:of(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function vN(t){return t.isCluster}var af=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await sc.tracer.trace("RedisWrapper.init",async n=>{let i=await DN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return sc.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;vN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await CN(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,tA.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=sf;var vo,No,Po,Uo,ei,Lo,Mo,ko,Fo,of;async function Lt(){vo=await We.init("users"),No=await We.init("session"),Po=await We.init("appMetadata"),Uo=await We.init("data_cache"),Lo=await We.init("locks"),ei=await We.init("writeThrough"),ko=await We.init("invitation"),Fo=await We.init("pwReset"),Mo=await We.init("socket_io",1),of=await We.init("docWriteThrough")}async function ZT(){vo&&await vo.finish(),No&&await No.finish(),Po&&await Po.finish(),Uo&&await Uo.finish(),ei&&await ei.finish(),Lo&&await Lo.finish(),ko&&await ko.finish(),Fo&&await Fo.finish(),Mo&&await Mo.finish(),of&&await of.finish()}process.on("exit",async()=>{await ZT()});async function Bo(){return vo||await Lt(),vo}async function Wr(){return No||await Lt(),No}async function oc(){return Po||await Lt(),Po}async function af(){return Uo||await Lt(),Uo}async function uf(){return ei||await Lt(),ei}async function cf(){return Lo||await Lt(),Lo}async function TN(){return Mo||await Lt(),Mo}async function ti(){return ko||await Lt(),ko}async function Go(){return Fo||await Lt(),Fo}async function AN(){return ei||await Lt(),ei}function Kt(t){let e=Q();return`${t}:${e}`}var ri=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await af()}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 ni=new ri,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}`},ii=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ii||{}),ac=(...t)=>ni.keys(...t),si=(...t)=>ni.get(...t),lr=(...t)=>ni.store(...t),$o=(...t)=>ni.delete(...t),jr=(...t)=>ni.withCache(...t),XT=(...t)=>ni.withCacheWithDynamicTTL(...t),ts=(...t)=>ni.bustCache(...t);var sn={};N(sn,{getUser:()=>Oa,getUsers:()=>O0,invalidateUser:()=>xa});var Wo={};N(Wo,{addTenantToUrl:()=>SN,getTenantDB:()=>lf,getTenantIDFromCtx:()=>qo,isUserInAppTenant:()=>_N});function lf(t){return Ve(cr(t))}function SN(t){let e=Q();if(qr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var _N=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=Q(),(Zi(t)||Ae)===r},IN=Object.values(Os),qo=(t,e)=>{if(!qr())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=IN),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(jp()).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 Zo={};N(Zo,{getPlatformDB:()=>ct,tenants:()=>Uf,users:()=>Mt});var Mt={};N(Mt,{addSsoUser:()=>tA,addUser:()=>DN,getUserDoc:()=>eA,lookupTenantId:()=>ON,removeUser:()=>CN,updateUserDoc:()=>xN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function ON(t){return h.MULTI_TENANCY?(await eA(t)).tenantId:Ae}async function eA(t){return ct().get(t)}async function xN(t){await ct().put(t)}function RN(t,e){return{_id:t,tenantId:e}}function wN(t,e,r){return{_id:e,userId:t,tenantId:r}}function bN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function df(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 tA(t,e,r,n){return df(t,()=>bN(t,e,r,n))}async function DN(t,e,r,n){let i=[df(e,()=>RN(e,t)),df(r,()=>wN(e,r,t))];n&&i.push(tA(n,r,e,t)),await Promise.all(i)}async function CN(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 Uf={};N(Uf,{addTenant:()=>fP,exists:()=>lP,getTenantIds:()=>cP,removeTenant:()=>mP,tenacyLockOptions:()=>Pf});var ci={};N(ci,{AUTO_EXTEND_POLLING_MS:()=>HA,doWithLock:()=>as,newRedlock:()=>ui});var jA=W(require("redlock"));var ss={};N(ss,{Duration:()=>be,DurationType:()=>vf,clearCookie:()=>Yr,compare:()=>mf,getAppIdFromCtx:()=>tP,getCookie:()=>mr,hasCircularStructure:()=>nP,hash:()=>ff,isAudited:()=>Df,isClient:()=>rP,isPublicApiRequest:()=>eP,isServingApp:()=>zN,isServingBuilder:()=>ZN,isServingBuilderPreview:()=>XN,isValidInternalAPIKey:()=>zo,newid:()=>he,openJwt:()=>fc,resolveAppUrl:()=>qA,setCookie:()=>WA,time:()=>sP,timeout:()=>bf,urlHasProtocol:()=>iP,validEmail:()=>Cf});var pf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),vN=h.SALT_ROUNDS||10;async function ff(t){let e=await pf.genSalt(vN);return pf.hash(t,e)}async function mf(t,e){return pf.compare(t,e)}var Kr={};N(Kr,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>Ap,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Ip,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Sp,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>Kv,DeprecatedViews:()=>Hi,DocumentType:()=>ge,InternalTable:()=>wr,QueryBuilder:()=>fr,Replication:()=>UA,SEPARATOR:()=>b,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Tp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Be,ViewName:()=>Gr,baseGlobalDBName:()=>Co,checkErrorCode:()=>FA,closePouchDB:()=>bo,createApiKeyView:()=>DA,createNewUserEmailView:()=>wA,createPlatformAccountEmailView:()=>vA,createPlatformUserView:()=>NA,createUserAppView:()=>bA,createView:()=>ns,dbExists:()=>VN,directCouchAllDbs:()=>Wp,directCouchCall:()=>LT,directCouchFind:()=>Qp,directCouchQuery:()=>Ju,directCouchUrlCall:()=>wo,doWithDB:()=>ut,extractAppUUID:()=>Nv,fullSearch:()=>jN,generateAgentChatID:()=>fA,generateAppID:()=>nA,generateAppUserID:()=>cc,generateDevInfoID:()=>lA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>pA,generatePluginID:()=>dA,generateRoleID:()=>yf,generateRowID:()=>gf,generateTableID:()=>iA,generateTemplateID:()=>cA,generateUserMetadataID:()=>aA,generateWorkspaceAppID:()=>mA,generateWorkspaceID:()=>sA,getAllApps:()=>Ho,getAllDbs:()=>RA,getAppsByIDs:()=>FN,getCouchInfo:()=>Nt,getDB:()=>Ve,getDevAppID:()=>vv,getDevAppIDs:()=>GN,getDevelopmentAppID:()=>Ku,getDocParams:()=>Hr,getGlobalDBName:()=>cr,getGlobalIDFromUserMetadataID:()=>uA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>OA,getPluginParams:()=>IA,getPouch:()=>Lp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>BN,getQueryIndex:()=>hA,getRoleParams:()=>dc,getRowParams:()=>Ef,getStartEndKeyURL:()=>jo,getTemplateParams:()=>_A,getUrlInfo:()=>Up,getUserMetadataParams:()=>SA,getUsersByAppParams:()=>lc,getWorkspaceAppParams:()=>xA,getWorkspaceParams:()=>AA,init:()=>zu,isDatasourceId:()=>EA,isDevApp:()=>Ro,isDevAppID:()=>$r,isDocumentConflictError:()=>KN,isExternalTableId:()=>Tf,isGlobalUserID:()=>oA,isProdAppID:()=>Cv,isQueryId:()=>TA,isSameAppID:()=>$N,isTableId:()=>gA,isViewId:()=>yA,paginatedSearch:()=>QN,pagination:()=>Sf,prefixRoleID:()=>dr,queryGlobalView:()=>pr,queryGlobalViewRaw:()=>Of,queryPlatformView:()=>Yo,queryView:()=>If,queryViewRaw:()=>Ko,removeKeyNumbering:()=>Jo,searchIndexes:()=>Rf});var Qo={};N(Qo,{AppState:()=>hf,getAppMetadata:()=>uc,invalidateAppMetadata:()=>LN});var hf=(e=>(e.INVALID="invalid",e))(hf||{}),rA=3600,NN=60;async function PN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function UN(t){return!t||t.state==="invalid"}async function uc(t){let e=await oc(),r=await e.get(t);if(!r){let n=rA;try{r=await PN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=NN;else throw i}if(UN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function LN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await oc();await r.delete(t),e&&await r.store(t,e,rA)}var Af={};N(Af,{generateAgentChatID:()=>fA,generateAppID:()=>nA,generateAppUserID:()=>cc,generateDevInfoID:()=>lA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>pA,generatePluginID:()=>dA,generateRoleID:()=>yf,generateRowID:()=>gf,generateTableID:()=>iA,generateTemplateID:()=>cA,generateUserMetadataID:()=>aA,generateWorkspaceAppID:()=>mA,generateWorkspaceID:()=>sA,getDocParams:()=>Hr,getGlobalIDFromUserMetadataID:()=>uA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>OA,getPluginParams:()=>IA,getQueryIndex:()=>hA,getRoleParams:()=>dc,getRowParams:()=>Ef,getStartEndKeyURL:()=>jo,getTemplateParams:()=>_A,getUserMetadataParams:()=>SA,getUsersByAppParams:()=>lc,getWorkspaceAppParams:()=>xA,getWorkspaceParams:()=>AA,isDatasourceId:()=>EA,isExternalTableId:()=>Tf,isGlobalUserID:()=>oA,isQueryId:()=>TA,isTableId:()=>gA,isViewId:()=>yA,prefixRoleID:()=>dr});var nA=t=>{let e=yt;return t&&(e+=`${t}${b}`),`${e}${he()}`};function iA(){return`ta${b}${he()}`}function gf(t,e){return e=e||he(),`ro${b}${t}${b}${e}`}function sA(){return`workspace${b}${he()}`}function rs(t){return`us${b}${t||he()}`}var MN=new RegExp(`^us${b}.+`);function oA(t){return MN.test(t)}function aA(t){return gf("ta_users",t)}function uA(t){let e=`ro${b}ta_users${b}`;return!t||!t.includes(e)?t:t.split(e)[1]}function cA(t){return`template${b}${t}${b}${he()}`}function cc(t,e){return`${t}${b}${e}`}function yf(t){let e=`role${b}`;return t.startsWith(e)?t:`${e}${t}`}function dr(t){return yf(t)}var lA=t=>`devinfo${b}${t}`,dA=t=>`plg${b}${t}`,pA=t=>`oauth2log${b}${t}`,fA=()=>`agentchat${b}${he()}`,mA=()=>`workspace_app${b}${he()}`;var kN=new RegExp("^datasource_plus_(.+)__(.+)$");function Hr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${b}${e}`,endkey:`${t}${b}${e}${Be}`}}function Ef(t,e,r={}){if(t==null)return Hr("ro",null,r);let n=e??`${t}${b}`;return Hr("ro",n,r)}function hA(t){return`database/${t}`}var Tf=t=>{let e=t.match(kN);return!!t&&e!==null},gA=t=>!!t&&(t.startsWith(`ta${b}`)||Tf(t));function yA(t){return!!t&&t.startsWith(`view${b}`)}function EA(t){return!!t&&t.startsWith(`datasource${b}`)}function TA(t){return!!t&&t.startsWith(`query${b}`)}function AA(t="",e={}){return{...e,startkey:`workspace${b}${t}`,endkey:`workspace${b}${t}${Be}`}}function oi(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${b}${t}`,endkey:`us${b}${t}${Be}`}}function SA(t,e={}){return Ef("ta_users",t,e)}function lc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Be}`}}function _A(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${b}${t}${b}`,{...r,startkey:n,endkey:`${n}${Be}`}}function dc(t,e={}){return Hr("role",t,e)}function jo(t,e){let r=e?`${b}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Be}"`}var IA=(t,e={})=>Hr("plg",t,e),OA=(t,e={})=>Hr("oauth2",t,e),xA=(t,e={})=>Hr("workspace_app",t,e);async function RA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Wp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Ae?await n():(await n(jo("app",i)),await n(jo("app_dev",i)),r.push(cr(i))),r}async function Ho({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await RA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(b);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Ae&&d||l===i}return!1});if(r){let u=o.filter(l=>$r(l)),c=o.filter(l=>!$r(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>uc(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:Ro(l)?"development":"published"})):c.filter(l=>t?Ro(l):!Ro(l))}}async function FN(t){return(await Promise.allSettled(t.map(r=>uc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function BN(){return(await Ho({idsOnly:!0})).filter(e=>!$r(e))}async function GN(){return(await Ho({idsOnly:!0})).filter(e=>$r(e))}function $N(t,e){return t==null||e==null?!1:at(t)===at(e)}async function VN(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function Sf(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 _f="_design/database";function qN(){return{_id:_f,views:{}}}async function WN(t,e){if(Hi[e])try{let r=await t.get(_f);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(_f)}catch{n=qN()}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 wA=async()=>{let t=ie(),e=`function(doc) {
10
- if (doc._id.startsWith("us${b}")) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},We=af;var No,Po,Lo,Uo,ei,Mo,Fo,ko,Bo,uf;async function Ut(){No=await We.init("users"),Po=await We.init("session"),Lo=await We.init("appMetadata"),Uo=await We.init("data_cache"),Mo=await We.init("locks"),ei=await We.init("writeThrough"),ko=await We.init("invitation"),Bo=await We.init("pwReset"),Fo=await We.init("socket_io",1),uf=await We.init("docWriteThrough")}async function rA(){No&&await No.finish(),Po&&await Po.finish(),Lo&&await Lo.finish(),Uo&&await Uo.finish(),ei&&await ei.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),Fo&&await Fo.finish(),uf&&await uf.finish()}process.on("exit",async()=>{await rA()});async function Go(){return No||await Ut(),No}async function Wr(){return Po||await Ut(),Po}async function ac(){return Lo||await Ut(),Lo}async function cf(){return Uo||await Ut(),Uo}async function lf(){return ei||await Ut(),ei}async function df(){return Mo||await Ut(),Mo}async function NN(){return Fo||await Ut(),Fo}async function ti(){return ko||await Ut(),ko}async function $o(){return Bo||await Ut(),Bo}async function PN(){return ei||await Ut(),ei}function Yt(t){let e=Q();return`${t}:${e}`}var ri=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await cf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?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 ni=new ri,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}`},ii=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ii||{}),uc=(...t)=>ni.keys(...t),si=(...t)=>ni.get(...t),lr=(...t)=>ni.store(...t),Vo=(...t)=>ni.delete(...t),jr=(...t)=>ni.withCache(...t),nA=(...t)=>ni.withCacheWithDynamicTTL(...t),ts=(...t)=>ni.bustCache(...t);var sn={};P(sn,{getUser:()=>xa,getUsers:()=>F0,invalidateUser:()=>Ra});var Qo={};P(Qo,{addTenantToUrl:()=>LN,getTenantDB:()=>pf,getTenantIDFromCtx:()=>Wo,isUserInAppTenant:()=>UN});function pf(t){return Ve(cr(t))}function LN(t){let e=Q();if(qr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var UN=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=Q(),(Zi(t)||Ae)===r},MN=Object.values(Os),Wo=(t,e)=>{if(!qr())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=MN),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(Yp()).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={};P(Xo,{getPlatformDB:()=>ct,tenants:()=>Mf,users:()=>Mt});var Mt={};P(Mt,{addSsoUser:()=>sA,addUser:()=>VN,getUserDoc:()=>iA,lookupTenantId:()=>FN,removeUser:()=>qN,updateUserDoc:()=>kN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function FN(t){return h.MULTI_TENANCY?(await iA(t)).tenantId:Ae}async function iA(t){return ct().get(t)}async function kN(t){await ct().put(t)}function BN(t,e){return{_id:t,tenantId:e}}function GN(t,e,r){return{_id:e,userId:t,tenantId:r}}function $N(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function ff(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 sA(t,e,r,n){return ff(t,()=>$N(t,e,r,n))}async function VN(t,e,r,n){let i=[ff(e,()=>BN(e,t)),ff(r,()=>GN(e,r,t))];n&&i.push(sA(n,r,e,t)),await Promise.all(i)}async function qN(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 Mf={};P(Mf,{addTenant:()=>RP,exists:()=>IP,getTenantIds:()=>_P,removeTenant:()=>wP,tenacyLockOptions:()=>Uf});var ci={};P(ci,{AUTO_EXTEND_POLLING_MS:()=>zA,doWithLock:()=>as,newRedlock:()=>ui});var JA=W(require("redlock"));var ss={};P(ss,{Duration:()=>be,DurationType:()=>Pf,clearCookie:()=>Kr,compare:()=>gf,getAppIdFromCtx:()=>mP,getCookie:()=>mr,hasCircularStructure:()=>gP,hash:()=>hf,isAudited:()=>vf,isClient:()=>hP,isPublicApiRequest:()=>fP,isServingApp:()=>lP,isServingBuilder:()=>dP,isServingBuilderPreview:()=>pP,isValidInternalAPIKey:()=>Zo,newid:()=>ge,openJwt:()=>mc,resolveAppUrl:()=>HA,setCookie:()=>YA,time:()=>EP,timeout:()=>Cf,urlHasProtocol:()=>yP,validEmail:()=>Nf});var mf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),WN=h.SALT_ROUNDS||10;async function hf(t){let e=await mf.genSalt(WN);return mf.hash(t,e)}async function gf(t,e){return mf.compare(t,e)}var Yr={};P(Yr,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>_p,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Op,DEFAULT_JOBS_TABLE_ID:()=>Ip,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>aN,DeprecatedViews:()=>Hi,DocumentType:()=>ye,InternalTable:()=>wr,QueryBuilder:()=>fr,Replication:()=>kA,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>Gr,baseGlobalDBName:()=>vo,checkErrorCode:()=>VA,closePouchDB:()=>Do,createApiKeyView:()=>PA,createNewUserEmailView:()=>vA,createPlatformAccountEmailView:()=>UA,createPlatformUserView:()=>MA,createUserAppView:()=>NA,createView:()=>ns,dbExists:()=>tP,directCouchAllDbs:()=>jp,directCouchCall:()=>BT,directCouchFind:()=>Hp,directCouchQuery:()=>zu,directCouchUrlCall:()=>bo,doWithDB:()=>ut,extractAppUUID:()=>Wv,fullSearch:()=>sP,generateAgentChatID:()=>yA,generateAppID:()=>aA,generateAppUserID:()=>lc,generateDevInfoID:()=>mA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>gA,generatePluginID:()=>hA,generateRoleID:()=>Tf,generateRowID:()=>Ef,generateTableID:()=>uA,generateTemplateID:()=>fA,generateUserMetadataID:()=>dA,generateWorkspaceAppID:()=>EA,generateWorkspaceID:()=>cA,getAllApps:()=>Yo,getAllDbs:()=>CA,getAppsByIDs:()=>zN,getCouchInfo:()=>Nt,getDB:()=>Ve,getDevAppID:()=>qv,getDevAppIDs:()=>XN,getDevelopmentAppID:()=>Ku,getDocParams:()=>Hr,getGlobalDBName:()=>cr,getGlobalIDFromUserMetadataID:()=>pA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>bA,getPluginParams:()=>wA,getPouch:()=>Fp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>ZN,getQueryIndex:()=>TA,getRoleParams:()=>pc,getRowParams:()=>Af,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>RA,getUrlInfo:()=>Mp,getUserMetadataParams:()=>xA,getUsersByAppParams:()=>dc,getWorkspaceAppParams:()=>DA,getWorkspaceParams:()=>OA,init:()=>Zu,isDatasourceId:()=>_A,isDevApp:()=>wo,isDevAppID:()=>$r,isDocumentConflictError:()=>aP,isExternalTableId:()=>Sf,isGlobalUserID:()=>lA,isProdAppID:()=>Vv,isQueryId:()=>IA,isSameAppID:()=>eP,isTableId:()=>AA,isViewId:()=>SA,paginatedSearch:()=>iP,pagination:()=>If,prefixRoleID:()=>dr,queryGlobalView:()=>pr,queryGlobalViewRaw:()=>Rf,queryPlatformView:()=>Jo,queryView:()=>xf,queryViewRaw:()=>Ko,removeKeyNumbering:()=>zo,searchIndexes:()=>bf});var jo={};P(jo,{AppState:()=>yf,getAppMetadata:()=>cc,invalidateAppMetadata:()=>YN});var yf=(e=>(e.INVALID="invalid",e))(yf||{}),oA=3600,QN=60;async function jN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function HN(t){return!t||t.state==="invalid"}async function cc(t){let e=await ac(),r=await e.get(t);if(!r){let n=oA;try{r=await jN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=QN;else throw i}if(HN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function YN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await ac();await r.delete(t),e&&await r.store(t,e,oA)}var _f={};P(_f,{generateAgentChatID:()=>yA,generateAppID:()=>aA,generateAppUserID:()=>lc,generateDevInfoID:()=>mA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>gA,generatePluginID:()=>hA,generateRoleID:()=>Tf,generateRowID:()=>Ef,generateTableID:()=>uA,generateTemplateID:()=>fA,generateUserMetadataID:()=>dA,generateWorkspaceAppID:()=>EA,generateWorkspaceID:()=>cA,getDocParams:()=>Hr,getGlobalIDFromUserMetadataID:()=>pA,getGlobalUserParams:()=>oi,getOAuth2ConfigParams:()=>bA,getPluginParams:()=>wA,getQueryIndex:()=>TA,getRoleParams:()=>pc,getRowParams:()=>Af,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>RA,getUserMetadataParams:()=>xA,getUsersByAppParams:()=>dc,getWorkspaceAppParams:()=>DA,getWorkspaceParams:()=>OA,isDatasourceId:()=>_A,isExternalTableId:()=>Sf,isGlobalUserID:()=>lA,isQueryId:()=>IA,isTableId:()=>AA,isViewId:()=>SA,prefixRoleID:()=>dr});var aA=t=>{let e=yt;return t&&(e+=`${t}${D}`),`${e}${ge()}`};function uA(){return`ta${D}${ge()}`}function Ef(t,e){return e=e||ge(),`ro${D}${t}${D}${e}`}function cA(){return`workspace${D}${ge()}`}function rs(t){return`us${D}${t||ge()}`}var KN=new RegExp(`^us${D}.+`);function lA(t){return KN.test(t)}function dA(t){return Ef("ta_users",t)}function pA(t){let e=`ro${D}ta_users${D}`;return!t||!t.includes(e)?t:t.split(e)[1]}function fA(t){return`template${D}${t}${D}${ge()}`}function lc(t,e){return`${t}${D}${e}`}function Tf(t){let e=`role${D}`;return t.startsWith(e)?t:`${e}${t}`}function dr(t){return Tf(t)}var mA=t=>`devinfo${D}${t}`,hA=t=>`plg${D}${t}`,gA=t=>`oauth2log${D}${t}`,yA=()=>`agentchat${D}${ge()}`,EA=()=>`workspace_app${D}${ge()}`;var JN=new RegExp("^datasource_plus_(.+)__(.+)$");function Hr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${D}${e}`,endkey:`${t}${D}${e}${Ge}`}}function Af(t,e,r={}){if(t==null)return Hr("ro",null,r);let n=e??`${t}${D}`;return Hr("ro",n,r)}function TA(t){return`database/${t}`}var Sf=t=>{let e=t.match(JN);return!!t&&e!==null},AA=t=>!!t&&(t.startsWith(`ta${D}`)||Sf(t));function SA(t){return!!t&&t.startsWith(`view${D}`)}function _A(t){return!!t&&t.startsWith(`datasource${D}`)}function IA(t){return!!t&&t.startsWith(`query${D}`)}function OA(t="",e={}){return{...e,startkey:`workspace${D}${t}`,endkey:`workspace${D}${t}${Ge}`}}function oi(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${D}${t}`,endkey:`us${D}${t}${Ge}`}}function xA(t,e={}){return Af("ta_users",t,e)}function dc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function RA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${D}${t}${D}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function pc(t,e={}){return Hr("role",t,e)}function Ho(t,e){let r=e?`${D}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var wA=(t,e={})=>Hr("plg",t,e),bA=(t,e={})=>Hr("oauth2",t,e),DA=(t,e={})=>Hr("workspace_app",t,e);async function CA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await jp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Ae?await n():(await n(Ho("app",i)),await n(Ho("app_dev",i)),r.push(cr(i))),r}async function Yo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await CA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(D);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Ae&&d||l===i}return!1});if(r){let u=o.filter(l=>$r(l)),c=o.filter(l=>!$r(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>cc(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 zN(t){return(await Promise.allSettled(t.map(r=>cc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function ZN(){return(await Yo({idsOnly:!0})).filter(e=>!$r(e))}async function XN(){return(await Yo({idsOnly:!0})).filter(e=>$r(e))}function eP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function tP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function If(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 Of="_design/database";function rP(){return{_id:Of,views:{}}}async function nP(t,e){if(Hi[e])try{let r=await t.get(Of);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(Of)}catch{n=rP()}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 vA=async()=>{let t=oe(),e=`function(doc) {
10
+ if (doc._id.startsWith("us${D}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await ns(t,e,"by_email2")},bA=async()=>{let t=ie(),e=`function(doc) {
14
- if (doc._id.startsWith("us${b}") && doc.roles) {
13
+ }`;await ns(t,e,"by_email2")},NA=async()=>{let t=oe(),e=`function(doc) {
14
+ if (doc._id.startsWith("us${D}") && doc.roles) {
15
15
  for (let prodAppId of Object.keys(doc.roles)) {
16
- let emitted = prodAppId + "${b}" + doc._id
16
+ let emitted = prodAppId + "${D}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await ns(t,e,"by_app")},DA=async()=>{let t=ie(),e=`function(doc) {
20
+ }`;await ns(t,e,"by_app")},PA=async()=>{let t=oe(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await ns(t,e,"by_api_key")};async function Ko(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 WN(r,t),await n(),Ko(t,e,r,n,i);if(s.status===409)return Ko(t,e,r,n,i);throw s}}var If=async(t,e,r,n,i)=>{let a=(await Ko(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 CA(t,e){try{await ut(Te.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var vA=async()=>{let t=`function(doc) {
25
- if (doc._id.startsWith("acc_metadata${b}")) {
24
+ }`;await ns(t,e,"by_api_key")};async function Ko(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 nP(r,t),await n(),Ko(t,e,r,n,i);if(s.status===409)return Ko(t,e,r,n,i);throw s}}var xf=async(t,e,r,n,i)=>{let a=(await Ko(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 LA(t,e){try{await ut(Te.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var UA=async()=>{let t=`function(doc) {
25
+ if (doc._id.startsWith("acc_metadata${D}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await CA(t,"account_by_email")},NA=async()=>{await CA(`function(doc) {
28
+ }`;await LA(t,"account_by_email")},MA=async()=>{await LA(`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")},Yo=async(t,e)=>{let r={account_by_email:vA,platform_users_lowercase_2:NA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return If(t,e,n,i,{arrayResponse:!0})})},PA={by_email2:wA,by_api_key:DA,by_app:bA},pr=async(t,e,r,n)=>{r||(r=ie());let i=PA[t];return If(t,e,r,i,n)};async function Of(t,e,r){let n=ie(),i=PA[t];return Ko(t,e,n,i,r)}var xf=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([bo(this.source),bo(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")||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()}},UA=xf;var MA=W(require("node-fetch"));var Jo=Fr.removeKeyNumbering;function ai(t){return t==null||t===""}var fr=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=Jo(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=(f,g)=>ai(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(ai(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)y+=` ${E} ${e.preprocess(g[_],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(ai(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`${f}:(${E})`};function p(f,g,E){let y="";for(let[_,S]of Object.entries(f)){_=Jo(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let M=g(_,S);if(M!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=M,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(ai(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`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>ai(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({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 LA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await LA(n,i,r);throw s}}};async function LA(t,e,r){let n=await(0,MA.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 kA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=fr.maxLimit;n.limit&&s.length>n.limit-fr.maxLimit&&(o=n.limit-s.length);let a=new fr(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<fr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await kA(t,e,r,c)}async function QN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,fr.maxLimit);let s=new fr(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 jN(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 kA(t,e,r,n)}}var Rf={};N(Rf,{createUserIndex:()=>HN});async function HN(){let t=ie(),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 FA(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 KN(t){return FA(t,409)}var pc=W(require("jsonwebtoken")),wf="app"+b,GA="/app/",$A="/app/preview",YN="/builder",VA=`${YN}/app/`,JN="/api/public/v";function is(t){return t&&t.startsWith(wf)?t:void 0}async function qA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=qo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Ho({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function zN(t){return t.path.startsWith(`/${wf}`)?!0:t.path.startsWith(GA)}function ZN(t){return t.path.startsWith(VA)}function XN(t){return t.path.startsWith($A)}function eP(t){return t.path.startsWith(JN)}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=BA(t.path);!r&&n&&(r=is(n)),!r&&t.query?.appId&&(r=is(t.query?.appId));let i=t.path.startsWith($A),s=t.path.startsWith(GA)&&!i;!r&&s&&(r=is(await qA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(VA)){let a=BA(t.request.headers.referer);r=is(a)}return r}function BA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(wf))}function fc(t){if(t)try{return pc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return pc.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 mr(t,e){let r=t.cookies.get(e);if(r)return fc(r)}function WA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=pc.default.sign(e,h.JWT_SECRET));let i={expires:Wu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Yr(t,e){WA(t,null,e)}function rP(t){return t.headers["x-budibase-type"]==="client"}function bf(t){return new Promise(e=>setTimeout(e,t))}function Df(t){return!!Dh[t]}function nP(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 iP(t){return!!t.match(/^.+:\/\/.+$/)}function Cf(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 vf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(vf||{}),mc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/mc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*mc[e]/mc[r]}static from(e,r){return new t(r*mc[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 sP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function oP(t,e){if(t==="custom")return ui(e);switch(t){case"try_once":return ui(os.TRY_ONCE);case"try_twice":return ui(os.TRY_TWICE);case"default":return ui(os.DEFAULT);case"delay_500":return ui(os.DELAY_500);case"auto_extend":return ui(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 ui(t={}){let e={...os.DEFAULT,...t},n=(await cf()).client;return new jA.default([n],e)}function aP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var HA=be.fromSeconds(10).toMs();async function as(t,e){let r=await oP(t.type,t.customOptions),n,i;try{let s=aP(t),o=t.type==="auto_extend"?HA: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 Nf=Te.PLATFORM_INFO.docs.tenants,Pf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function cP(){return(await hc()).tenantIds}async function hc(){let t=ct(),e;try{e=await t.get(Nf)}catch(r){if(r.status===404)e=await pP();else throw r}return e}async function lP(t){return(await hc()).tenantIds.indexOf(t)!==-1}function dP(){return{_id:Nf,tenantIds:[]}}async function pP(){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(Nf);throw r}return e}async function fP(t){let e=ct();await as(Pf,async()=>{let r=await hc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function mP(t){try{await as(Pf,async()=>{let e=ct(),r=await hc();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:()=>en,getAccountByTenantId:()=>ls,getStatus:()=>HP});var RS=W(require("node-fetch"));var Ic={};N(Ic,{correlation:()=>Xo,logAlert:()=>ia,logAlertWithInfo:()=>jP,logWarn:()=>cs,logger:()=>_c,system:()=>Yf});var Xo={};N(Xo,{getId:()=>Lf,setHeader:()=>hP});var KA=require("correlation-id"),hP=t=>{let e=KA.getId();e&&(t["x-budibase-correlation-id"]=e)};function Lf(){return KA.getId()}var Sc=W(require("pino")),OS=W(require("pino-pretty"));var Jf=W(require("dd-trace")),xS=require("dd-trace/ext");var Yf={};N(Yf,{getLogReadStream:()=>GP,getSingleFileMaxSizeInfo:()=>IS,localFileDestination:()=>Kf});var na=W(require("fs")),Hf=W(require("path")),TS=W(require("rotating-file-stream"));var jf={};N(jf,{ObjectStore:()=>kt,ObjectStoreBuckets:()=>yP,SIGNED_FILE_PREFIX:()=>Vf,bucketTTLConfig:()=>gc,budibaseTempDir:()=>li,clientLibraryCDNUrl:()=>PP,clientLibraryPath:()=>lS,clientLibraryUrl:()=>UP,createBucketIfNotExists:()=>ra,deleteFile:()=>RP,deleteFiles:()=>wP,deleteFolder:()=>aS,downloadTarball:()=>DP,downloadTarballDirect:()=>bP,enrichPWAImages:()=>LP,enrichPluginURLs:()=>kP,extractBucketAndPath:()=>Mf,getAppFileUrl:()=>dS,getGlobalFileS3Key:()=>pS,getGlobalFileUrl:()=>MP,getObjectMetadata:()=>CP,getPluginIconKey:()=>hS,getPluginJSKey:()=>mS,getPluginS3Dir:()=>yS,getPresignedUrl:()=>Zr,getReadStream:()=>yc,listAllObjects:()=>oS,processAutomationAttachment:()=>TP,processObjectStoreAttachment:()=>XA,retrieve:()=>sS,retrieveDirectory:()=>xP,retrieveToTmp:()=>OP,sanitizeBucket:()=>Ye,sanitizeKey:()=>Le,streamUpload:()=>iS,upload:()=>IP,uploadDirectory:()=>qf});var Tc=require("@aws-sdk/client-s3"),kf=require("@aws-sdk/lib-storage"),eS=require("@aws-sdk/s3-request-presigner"),ta=W(require("stream")),Ff=W(require("node-fetch")),Bf=W(require("tar-fs")),Gf=W(require("zlib")),tS=require("util"),zr=require("path"),hr=W(require("fs"));var ea=W(require("path")),YA=require("os"),JA=W(require("fs"));var zA=W(require("stream")),yP={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},ZA=(0,ea.join)((0,YA.tmpdir)(),".budibase");try{JA.default.mkdirSync(ZA)}catch(t){if(t.code!=="EEXIST")throw t}function li(){return ZA}var gc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function EP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ea.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:zA.default.Readable.fromWeb(e.body)}}async function XA(t){let e=Mf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await yc(r,n),s=ea.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function TP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await EP(t):await XA(t)}var $f=require("uuid");var rS=W(require("fs/promises")),AP=require("sanitize-s3-objectkey"),nS=(0,tS.promisify)(ta.default.pipeline),SP={bucketCreationPromises:{}},Vf="/files/signed",Jr={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"},_P=[Jr.html,Jr.css,Jr.js,Jr.json];function Le(t){return AP(Ye(t)).replace(/\\/g,"/")}function Ye(t){return t.replace(new RegExp(Et,"g"),yt)}function kt(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 Tc.S3(e)}async function ra(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=SP.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 IP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await rS.default.open(r)).createReadStream():s,c=kt(),l=await ra(c,t);if(o&&l.created){let g=gc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Jr[a.toLowerCase()]:Jr.txt),p={Bucket:Ye(t),Key:Le(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new kf.Upload({client:c,params:p}).done()}async function iS({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=kt(),u=await ra(a,t);if(s&&u.created){let E=gc(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?Jr[o.toLowerCase()]:Jr.txt);let l=Ye(t),d=Le(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new kf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function sS(t,e){let r=kt(),n={Bucket:Ye(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(_P.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ta.default.Readable.fromWeb(s)}}async function oS(t,e){let r=kt(),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 Zr(t,e,r=3600){let n=kt({presigning:!0}),i={Bucket:Ye(t),Key:Le(e)},s=await(0,eS.getSignedUrl)(n,new Tc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Vf}${a}${u}`}else return s}async function OP(t,e){t=Ye(t),e=Le(e);let r=await sS(t,e),n=(0,zr.join)(li(),(0,$f.v4)());return r instanceof ta.default.Readable?r.pipe(hr.default.createWriteStream(n)):hr.default.writeFileSync(n,r),n}async function xP(t,e){let r=(0,zr.join)(li(),(0,$f.v4)());hr.default.mkdirSync(r);let n=await oS(t,e),i=await Promise.all(n.map(a=>yc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,zr.join)(r,...d);l.length>1&&!hr.default.existsSync(m)&&hr.default.mkdirSync(m,{recursive:!0});let p=hr.default.createWriteStream((0,zr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",()=>f()),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function RP(t,e){let r=kt();await ra(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function wP(t,e){let r=kt();await ra(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function aS(t,e){t=Ye(t),e=Le(e);let r=kt(),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 aS(t,e)}async function qf(t,e,r){t=Ye(t);let n=[],i=hr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Le((0,zr.join)(r,s.name)),a=(0,zr.join)(e,s.name);s.isDirectory()?n.push(qf(t,a,o)):n.push(iS({bucket:t,filename:o,stream:hr.default.createReadStream(a)}))}return await Promise.all(n),i}async function bP(t,e,r={}){e=Le(e);let n=await(0,Ff.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await nS(n.body,Gf.default.createUnzip(),Bf.default.extract(e))}async function DP(t,e,r){e=Ye(e),r=Le(r);let n=await(0,Ff.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,zr.join)(li(),r);return await nS(n.body,Gf.default.createUnzip(),Bf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await qf(e,i,r),i}async function yc(t,e){t=Ye(t),e=Le(e);let r=kt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ta.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function CP(t,e){t=Ye(t),e=Le(e);let r=kt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Mf(t){let e=t.split("?")[0],r=new RegExp(`^${Vf}/(?<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 uS=W(require("aws-cloudfront-sign")),Ac;function vP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ac||(Ac=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ac)}var NP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:vP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=Wf(t);return uS.getSignedUrl(e,NP())},Wf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var cS=W(require("querystring"));function lS(t){return`${Le(t)}/budibase-client.js`}async function PP(t,e){let r=lS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Wf(r)):await Zr(h.APPS_BUCKET_NAME,r)}function UP(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${cS.default.encode(n)}`}async function dS(t){return h.CLOUDFRONT_CDN?us(t):await Zr(h.APPS_BUCKET_NAME,t)}async function LP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await dS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var MP=async(t,e,r)=>{let n=pS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await Zr(h.GLOBAL_BUCKET_NAME,n)},pS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function kP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await FP(e),n=await BP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function FP(t){let e=mS(t);return fS(e)}async function BP(t){let e=hS(t);if(e)return fS(e)}async function fS(t){return h.CLOUDFRONT_CDN?us(t):await Zr(h.PLUGIN_BUCKET_NAME,t)}function mS(t){return gS(t,"plugin.min.js")}function hS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return gS(t,e)}function gS(t,e){return`${yS(t.name)}/${e}`}function yS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var AS="budibase.log",SS="budibase-logs-history.txt",_S=Hf.default.join(li(),"systemlogs");function ES(t){return Hf.default.join(_S,t)}function IS(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 Kf(){let t=IS(h.ROLLING_LOG_MAX_SIZE);return TS.createStream(AS,{size:t?.size,path:_S,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:SS,initialRotation:!1})}function GP(){let t=[],e=ES(SS);if(na.default.existsSync(e)){let i=na.default.readFileSync(e,"utf-8").split(`
37
- `);for(let s of i.filter(o=>o))t.push(na.default.readFileSync(s))}return t.push(na.default.readFileSync(ES(AS))),Buffer.concat(t)}function $P(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function VP(t){return t instanceof Error}function qP(t){return typeof t=="string"}var Xr;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,OS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Kf(),level:t}),Xr=r.length?(0,Sc.default)(e,Sc.default.multistream(r)):(0,Sc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{qP(E)&&(d=`${d} ${E}`.trimStart()),$P(E)&&l.push(E),VP(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Lf()};let f=Jf.default.scope().active();f&&Jf.default.inject(f.context(),xS.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let _=0;_<l.length;_++){let S=l[_],M=S._logKey;M?(delete S._logKey,g[M]=S):(E[y]=S,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Xr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Xr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Xr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Xr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Xr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Xr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=Kp()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var _c=Xr;var WP=["AccountError"];function QP(t){return t&&t.suppressAlert}function ia(t,e){e&&WP.includes(e.name)&&QP(e)||console.error(`bb-alert: ${t}`,e)}function jP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,ia(t,n)}function cs(t,e){console.warn(`bb-warn: ${t}`,e)}var sa=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";Xo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,RS.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 zf=new sa(h.ACCOUNT_PORTAL_URL),Zf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,en=async t=>{if(Zf)return;let e={email:t},r=await zf.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(Zf)return;let e={tenantId:t},r=await zf.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]},HP=async()=>{if(Zf)return;let t=await zf.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:()=>A0,bulkGetGlobalUsersById:()=>Kc,bulkUpdateGlobalUsers:()=>Sa,cleanseUserObject:()=>wm,creatorsInList:()=>pi,doesUserExist:()=>h0,getAccountHolderFromUsers:()=>Pc,getAllUserIds:()=>f0,getAllUsers:()=>m0,getById:()=>hi,getCreatorCount:()=>E0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>CS,getExistingTenantUsers:()=>DS,getFirstPlatformUser:()=>oa,getGlobalUserByAppPage:()=>__,getGlobalUserByEmail:()=>Bt,getPlatformUsers:()=>Oc,getUserCount:()=>y0,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>PS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>NS,isBuilder:()=>ms,isCreatorAsync:()=>aa,isCreatorSync:()=>vc,isGlobalBuilder:()=>vS,paginatedUsers:()=>O_,removeAppBuilder:()=>S0,removePortalUserPermissions:()=>T0,searchExistingEmails:()=>tm,searchGlobalUsersByApp:()=>Yc,searchGlobalUsersByAppAccess:()=>Rm,searchGlobalUsersByEmail:()=>I_,validateUniqueUser:()=>Nc});var rm={};N(rm,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Pc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>PS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>NS,isBuilder:()=>ms,isCreatorAsync:()=>aa,isCreatorSync:()=>vc,isGlobalBuilder:()=>vS,validateUniqueUser:()=>Nc});var em={};N(em,{createCode:()=>YP,deleteCode:()=>zP,getCode:()=>JP,getExistingInvites:()=>Xf,getInviteCodes:()=>bS,updateCode:()=>KP});var wS=be.fromDays(7).toSeconds();async function KP(t,e){await(await ti()).store(t,e,wS)}async function YP(t,e){let r=he();return await(await ti()).store(r,{email:t,info:e},wS),r}async function JP(t){let r=await(await ti()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function zP(t){await(await ti()).delete(t)}async function bS(){let r=(await(await ti()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function Xf(t){return(await bS()).filter(e=>t.includes(e.email))}async function tm(t){let e=[],r=await DS(t);e.push(...r.map(o=>o.email));let n=await CS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await Xf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Oc(t){return await Yo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function oa(t){return(await Oc(t))[0]??null}async function DS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await pr("by_email2",r,void 0,n)}async function CS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Yo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Yo("account_by_email",r)}var Cc={};N(Cc,{BadRequestError:()=>Rc,BudibaseError:()=>ps,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>bc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>xc,UsageLimitError:()=>wc,getPublicError:()=>Dc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Dc=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)}},xc=class extends lt{constructor(e){super(e,404)}},Rc=class extends lt{constructor(e){super(e,400)}},wc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},bc=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")}},gr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ot.users.isBuilder,tn=ot.users.isAdmin,vS=ot.users.isGlobalBuilder,NS=ot.users.isAdminOrBuilder,rn=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,PS=ot.users.hasAppBuilderPermissions;async function pi(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>vc(i,e))}async function aa(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),vc(t,e)}function vc(t,e){let r=ot.users.isCreator(t);return!r&&t?XP(t,e):r}function XP(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 Nc(t,e){if(h.MULTI_TENANCY){let r=await oa(t);if(r!=null&&r.tenantId!==e)throw new gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await en(t);if(r&&r.verified&&r.tenantId!==e)throw new gr(t)}}async function Pc(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:()=>JS,ai:()=>t_,analytics:()=>Lc,app:()=>zS,auditLog:()=>g_,auth:()=>Qc,automation:()=>ZS,backfill:()=>d_,backfillCache:()=>qc,backup:()=>m_,datasource:()=>XS,email:()=>e_,environmentVariable:()=>h_,group:()=>p_,identification:()=>Ft,initAsyncEvents:()=>XM,installation:()=>ha,layout:()=>n_,license:()=>r_,org:()=>i_,plugin:()=>f_,processors:()=>cm,publishEvent:()=>A,query:()=>s_,role:()=>Aa,rowAction:()=>y_,rows:()=>a_,screen:()=>o_,serve:()=>c_,shutdown:()=>e0,table:()=>u_,user:()=>Je,view:()=>l_});var cm={};N(cm,{analyticsProcessor:()=>QS,init:()=>TU,processors:()=>Tr});var Lc={};N(Lc,{enabled:()=>Uc});var Uc=async()=>Mc();var FS=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 LS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},MS=async t=>{if(!eU(t))return!1;let e=await rU(t);if(e){let r=new Date(e.timestamp);switch(LS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await US(t,{timestamp:Date.now()}),!1):!0}}else return await US(t,{timestamp:Date.now()}),!1},kS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return tU(t)&&(e=e+":"+Ue()),e},rU=async t=>{let e=kS(t);return await si(e)},US=async(t,e)=>{let r=kS(t),n=LS[t],i;switch(n){case"calendarDay":i=86400}await lr(r,e,i)};var iU=["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"],ua=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new FS.PostHog(e)}async processEvent(e,r,n,i){if(iU.includes(e)||await MS(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)}shutdown(){this.posthog.shutdown()}};var BS=ua;var sU=["installation:version:upgraded","installation:version:downgraded"],oU=["installation","tenant"],ca=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new BS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!sU.includes(e)&&!await Uc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!oU.includes(e.type)&&!await Uc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var nm=h.SELF_HOSTED&&!h.isDev(),la=class{async processEvent(e,r,n){nm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){nm||console.log("[audit] identified",e)}async identifyGroup(e){nm||console.log("[audit] group identified",e)}shutdown(){}};var um={};N(um,{BudibaseQueue:()=>Er,InMemoryQueue:()=>kc,JobQueue:()=>hs,shutdown:()=>gU});var GS=W(require("events"));function aU(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 kc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new GS.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 Ht.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:he(),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=>aU(e))}async whenCurrentJobsFinished(){do await bf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},$S=kc;var om=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 VS(t,e,r){lU(t,e),r&&uU(t,r)}function uU(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 cU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function lU(t,e){let r=cU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Hp(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 Fc={};N(Fc,{cleanup:()=>dU,clear:()=>sm,set:()=>im});var da=[];function im(t,e){let r=setInterval(t,e);return da.push(r),r}function sm(t){let e=da.indexOf(t);e!==-1&&da.splice(e,1),clearInterval(t)}function dU(){for(let t of da)clearInterval(t);da=[]}var yr=W(require("dd-trace")),pa=W(require("object-sizeof")),pU=be.fromMinutes(5).toMs(),fU=be.fromSeconds(30).toMs(),am=be.fromSeconds(60).toMs(),fa=[],Bc;async function qS(){for(let t of fa)await t.clean(am,"completed"),await t.clean(am,"failed")}async function mU(t,e,r){let n=performance.now();try{let i=await e();return yr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw yr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;yr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),yr.default.dogstatsd.increment(t,1,r)}}function WS(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 hU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,pa.default)(t.data),...WS(t.opts||{})}}var Er=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:Xn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:pU,lockRenewTime:fU}};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 om.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new $S(this.jobQueue,r):n=new om.default(this.jobQueue,r),VS(n,this.jobQueue,this.opts.removeStalledCb),fa.push(n),!Bc&&!h.isTest()&&(Bc=im(qS,am),qS().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 yr.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,...hU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),yr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,pa.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 yr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,pa.default)(e),...WS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},yr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,pa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return mU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function gU(){if(Bc&&sm(Bc),fa.length){for(let t of fa)await t.close();fa=[]}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 Er("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&&Df(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:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var ma=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)}shutdown(){for(let e of this.processors)e.shutdown&&e.shutdown()}};var QS=new ca,yU=new la,EU=new gs;function TU(t){return gs.init(t)}var Tr=new ma([QS,yU,EU]);var Gc={};N(Gc,{checkInstallVersion:()=>_U,getInstall:()=>ga,getInstallFromDB:()=>dm});var lm=W(require("semver"));var ga=async()=>jr(Ce.INSTALLATION,86400,dm,{useTenancy:!1});async function AU(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:he(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return dm();throw r}}var dm=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 AU(t);else throw r}return e}),SU=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await ga();r.version=t,await e.put(r),await ts(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},_U=async()=>{let t=await ga(),e=t.version,r=h.VERSION;try{if(e!==r){let n=lm.default.gt(r,e),i=lm.default.lt(r,e);await SU(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ha.upgraded(e,r):i&&await ha.downgraded(e,r)}),await Ft.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?ia(`Invalid version "${r}" - is it semver?`):ia("Failed to retrieve version",n)}};var IU=async()=>{let t=bp(),e=Ta(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=ya();return{id:jS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await $c(Q()),s=ya();return{id:jS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await $c(Q()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=ya(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},OU=async(t,e)=>{let r=t,n="installation",i=ya(),s=h.VERSION,o=Ta(),a={id:r,type:n,hosting:i,version:s,environment:o};await pm(a,e),await Ea({...a,id:`$${n}_${r}`},e)},xU=async(t,e,r)=>{let n=await $c(t),i="tenant",s=await fi(),o=Ta(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await pm(a,r),await Ea({...a,id:`$${i}_${n}`},r)},RU=async(t,e,r)=>{let n=t._id,i=await $c(t.tenantId),s="user",o=At(t),a=rn(t),u;Va(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,m=await fi(),p=e?e.hosting:ya(),f=Ta();await Ea({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},wU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=$a(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=Ta();if(Ga(t)){let d=await Bt(t.email);d?._id&&(e=d._id)}await Ea({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ea=async(t,e)=>{await Tr.identify(t,e)},pm=async(t,e)=>{await Tr.identifyGroup(t,e)},Ta=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,ya=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>bU()?"account-portal":(await ga()).installId,$c=async t=>h.SELF_HOSTED?HS(t):t,HS=async t=>qe(t,()=>jr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Vc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${he()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),bU=()=>h.SERVICE==="account-portal",jS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ft={getCurrentIdentity:IU,identifyInstallationGroup:OU,identifyTenantGroup:xU,identifyUser:RU,identifyAccount:wU,identify:Ea,identifyGroup:pm,getInstallationId:fi,getUniqueTenantId:HS};var qc={};N(qc,{end:()=>CU,isAlreadySent:()=>hm,isBackfillingEvent:()=>mm,recordEvent:()=>fm,start:()=>DU});var DU=async t=>NU({eventWhitelist:t}),fm=async(t,e)=>{let r=gm(t,e);await lr(r,e,void 0,{useTenancy:!1})},CU=async()=>{await PU(),await UU()},vU=async()=>si(Ce.BACKFILL_METADATA),NU=async t=>lr(Ce.BACKFILL_METADATA,t),PU=async()=>{await $o(Ce.BACKFILL_METADATA)},UU=async()=>{let t=gm(),e=await ac(t);for(let r of e)await $o(r,{useTenancy:!1})},mm=async t=>{let r=(await vU())?.eventWhitelist;return!!(r&&r.includes(t))},hm=async(t,e)=>{let r=gm(t,e);return!!await si(r,{useTenancy:!1})},LU={"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}`},gm=(t,e)=>{let r,n=Q();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=LU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Ar;function Wc(){Ar=new Er("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function KS(){Ar&&await Ar.close()}async function YS(t){Ar||Wc();let{event:e,identity:r}=t;bh.indexOf(e)!==-1&&r.tenantId&&await Ar.add(t)}var A=async(t,e,r,n)=>{let i=n||await Ft.getCurrentIdentity();if(!(n?!1:await mm(t))){await YS({event:t,identity:i,properties:e,timestamp:r}),await Tr.processEvent(t,i,e,r);return}await hm(t,e)||(await Tr.processEvent(t,i,e,r),await fm(t,e))};async function MU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function kU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function FU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var JS={created:MU,deleted:kU,verified:FU};var BU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function GU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function $U(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function VU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function qU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function WU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function QU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function jU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function HU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function KU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function YU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function JU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var zS={created:BU,updated:GU,deleted:$U,published:VU,unpublished:qU,fileImported:WU,duplicated:QU,templateImported:jU,versionUpdated:HU,versionReverted:KU,reverted:YU,exported:JU};async function zU(t,e){let n={userId:(await Ft.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function ZU(t){let r={userId:(await Ft.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function XU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function eL(t){let e={type:t};await A("auth:sso:updated",e)}async function tL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function rL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Qc={login:zU,logout:ZU,SSOCreated:XU,SSOUpdated:eL,SSOActivated:tL,SSODeactivated:rL};async function nL(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 iL(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 sL(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 oL(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 aL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function uL(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 ZS={created:nL,triggerUpdated:iL,deleted:sL,tested:oL,run:aL,stepCreated:uL,stepDeleted:cL};function ym(t){return!Object.values(Ma).includes(t.source)}async function lL(t,e){let r={datasourceId:t._id,source:t.source,custom:ym(t)};await A("datasource:created",r,e)}async function dL(t){let e={datasourceId:t._id,source:t.source,custom:ym(t)};await A("datasource:updated",e)}async function pL(t){let e={datasourceId:t._id,source:t.source,custom:ym(t)};await A("datasource:deleted",e)}var XS={created:lL,updated:dL,deleted:pL};async function fL(t){let e={};await A("email:smtp:created",e,t)}async function mL(){let t={};await A("email:smtp:updated",t)}var e_={SMTPCreated:fL,SMTPUpdated:mL};async function hL(t){let e={};await A("ai:config:created",e,t)}async function gL(){let t={};await A("ai:config:updated",t)}var t_={AIConfigCreated:hL,AIConfigUpdated:gL};async function yL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function EL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function TL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function AL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function SL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function _L(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function IL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var r_={planChanged:yL,activated:EL,checkoutOpened:TL,checkoutSuccess:AL,portalOpened:SL,paymentFailed:_L,paymentRecovered:IL};async function OL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function xL(t){let e={layoutId:t};await A("layout:deleted",e)}var n_={created:OL,deleted:xL};async function RL(t){let e={};await A("org:info:name:updated",e,t)}async function wL(t){let e={};await A("org:info:logo:updated",e,t)}async function bL(t){let e={};await A("org:platformurl:updated",e,t)}async function DL(){let t={};await A("analytics:opt:out",t)}async function CL(){let t={};await A("analytics:opt:out",t)}var i_={nameUpdated:RL,logoUpdated:wL,platformURLUpdated:bL,analyticsOptOut:DL,analyticsOptIn:CL};var vL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},NL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},PL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},UL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},LL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},ML=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},s_={created:vL,updated:NL,deleted:PL,imported:UL,run:LL,previewed:ML};async function kL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function FL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function BL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function GL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function $L(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Aa={created:kL,updated:FL,deleted:BL,assigned:GL,unassigned:$L};async function VL(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 qL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var o_={created:VL,deleted:qL};var WL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},QL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},a_={created:WL,imported:QL};async function jL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function HL(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 KL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function YL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function JL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var u_={created:jL,updated:HL,deleted:KL,exported:YL,imported:JL};async function zL(t){let e={timezone:t};await A("served:builder",e)}async function ZL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function XL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var c_={servedBuilder:zL,servedApp:ZL,servedAppPreview:XL};async function eM(t,e){let r={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:created",r,e)}async function tM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:updated",e)}async function rM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:deleted",e)}async function nM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function iM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function sM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function oM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function aM(t){let e={audited:{email:t}};await A("user:invited",e)}async function uM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function cM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function lM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function dM(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 fM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:eM,updated:tM,deleted:rM,permissionAdminAssigned:nM,permissionAdminRemoved:iM,permissionBuilderAssigned:sM,permissionBuilderRemoved:oM,invited:aM,inviteAccepted:uM,passwordForceReset:cM,passwordUpdated:lM,passwordResetRequested:dM,passwordReset:pM,dataCollaboration:fM};async function mM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function hM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function gM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function yM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function EM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function TM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function AM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function SM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function _M(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function IM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function OM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var l_={created:mM,updated:hM,deleted:gM,exported:yM,filterCreated:EM,filterUpdated:TM,filterDeleted:AM,calculationCreated:SM,calculationUpdated:_M,calculationDeleted:IM,viewJoinCreated:OM};async function xM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function RM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function wM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function bM(){let t={};await A("installation:firstStartup",t)}var ha={versionChecked:xM,upgraded:RM,downgraded:wM,firstStartup:bM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function DM(t){Ts||await A("app:backfill:succeeded",t)}async function CM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function vM(t){Ts||await A("tenant:backfill:succeeded",t)}async function NM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function PM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function UM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var d_={appSucceeded:DM,appFailed:CM,tenantSucceeded:vM,tenantFailed:NM,installationSucceeded:PM,installationFailed:UM};async function LM(t,e){let r={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:created",r,e)}async function MM(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:updated",e)}async function kM(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:deleted",e)}async function FM(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:user_added",r)}async function BM(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function GM(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function $M(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var p_={created:LM,updated:MM,deleted:kM,usersAdded:FM,usersDeleted:BM,createdOnboarding:GM,permissionsEdited:$M};async function VM(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function qM(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 WM(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 f_={init:VM,imported:qM,deleted:WM};async function QM(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function jM(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var m_={appBackupRestored:QM,appBackupTriggered:jM};async function HM(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function KM(t){let e={name:t};await A("environment_variable:deleted",e)}async function YM(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var h_={created:HM,deleted:KM,upgradePanelOpened:YM};async function JM(t){let e={filters:t};await A("audit_log:filtered",e)}async function zM(t){let e={filters:t};await A("audit_log:downloaded",e)}var g_={filtered:JM,downloaded:zM};async function ZM(t,e){await A("row_action:created",t,e)}var y_={created:ZM};function XM(){}var e0=()=>{Tr.shutdown(),console.log("Events shutdown")};var Em=async t=>{await Je.deleted(t),At(t)&&await Je.permissionBuilderRemoved(t),rn(t)&&await Je.permissionAdminRemoved(t)},t0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Aa.assigned(t,i)},r0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Aa.unassigned(t,i)},n0=async(t,e)=>{let r=t.roles,n=e?.roles;await t0(t,r,n),await r0(t,r,n)},Tm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await Ft.identifyUser(t,n),e?(await Je.updated(t),s0(t,e)&&await Je.permissionBuilderRemoved(t),a0(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),i0(t,e)&&await Je.permissionBuilderAssigned(t),o0(t,e)&&await Je.permissionAdminAssigned(t),await n0(t,e)},i0=(t,e)=>E_(t,e,At),s0=(t,e)=>T_(t,e,At),o0=(t,e)=>E_(t,e,rn),a0=(t,e)=>T_(t,e,rn),E_=(t,e,r)=>!(!r(t)||e&&r(e)),T_=(t,e,r)=>!(r(t)||!e||!r(e));var Hc={};N(Hc,{createASession:()=>c0,endSession:()=>l0,getSession:()=>Sm,getSessionsForUser:()=>jc,invalidateSessions:()=>mi,updateSessionTTL:()=>Am});var A_=require("uuid");var S_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function jc(t){return t?(await(await Wr()).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 jc(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 Wr(),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){await mi(t,{reason:"creation"});let r=await Wr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,A_.v4)(),s=As(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,S_),o}async function Am(t){let e=await Wr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,S_)}async function l0(t,e){await(await Wr()).delete(As(t,e))}async function Sm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Wr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var xm={};N(xm,{PASSWORD_MAX_LENGTH:()=>Im,PASSWORD_MIN_LENGTH:()=>_m,validatePassword:()=>Om});var _m=+(h.PASSWORD_MIN_LENGTH||12),Im=+(h.PASSWORD_MAX_LENGTH||512);function Om(t){return!t||t.length<_m?{valid:!1,error:`Password invalid. Minimum ${_m} characters.`}:t.length>Im?{valid:!1,error:`Password invalid. Maximum ${Im} characters.`}:{valid:!0}}var d0=async t=>{let e=t._id;await Mt.removeUser(t),await Em(t),await sn.invalidateUser(e),await mi(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&&tn(e)?!1:await t.features.isSSOEnforced()||Va(e)?!0:(r||(r=await ls(Q())),!!(r&&r.email===e.email&&$a(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 d=Om(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await ff(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 ie().allDocs(oi(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Yc(e,{})).length}}static async getUsersByAppAccess(e){return await Rm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Bt(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await Kc(e)}static async bulkUpdate(e){return await Sa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ie(),{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(m){if(m.status!==404)throw m}if(!c&&s&&(c=await Bt(s),c&&c._id!==o))throw new gr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[m,p]=await pi([c,e]);d=m!==p?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Nc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=wm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Tm(m,c),c&&m.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,m._id,m.email,m.ssoId),await sn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await tm(a),c=[];for(let d of e){if(s.find(m=>m.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await aa(d)&&o.push(d)}let l=await ls(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await Sa(d);for(let p of d)await Mt.addUser(n,p._id,p.email),await Tm(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Pc(e);i&&(e=e.filter(p=>p.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(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await Sa(a),l=(await pi(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await oa(p._id)).ssoId;g&&(await Oc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await d0(p)}await ct().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await en(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 aa(n)?1:0;await t.quotas.removeUsers(1,s),await Em(n),await sn.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 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 Ia(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Kc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ia(n)),n}async function f0(){let t=ie(),e=`us${b}`;return(await t.allDocs({startkey:e,endkey:`${e}${Be}`})).rows.map(n=>n.id)}async function m0(){let t=ie(),e=`us${b}`;return(await t.allDocs({startkey:e,endkey:`${e}${Be}`,include_docs:!0})).rows.map(n=>n.doc)}async function Sa(t){return await ie().bulkDocs(t)}async function hi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Ia(n)),n}async function Bt(t,e){if(t==null)throw"Must supply an email address to view";let r=await pr("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=Ia(n)),n}async function h0(t){try{let e=await Bt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Yc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=lc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await pr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Ia(s)),s}async function Rm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Qp(cr(),i)).rows}function __(t,e){if(e)return cc(at(t),e._id)}async function I_(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 pr("by_email2",{...e,startkey:i,endkey:`${n}${Be}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Ia(o)),o}var g0=8;async function O_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??g0,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 Yc(r,a),l=d=>__(r,d)):e?.string?.email?(u=await I_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Kc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(oi(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Fr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(oi(null,a))).rows.map(m=>m.doc),Sf(u,s,{paginate:!0,property:c,getKey:l})}async function y0(){return(await Of("by_email2",{limit:0,include_docs:!1})).total_rows}async function E0(){let t=0;async function e(r){let n=await O_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function T0(t){return delete t.admin,delete t.builder,t}function wm(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 A0(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 S0(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 x_=3600;async function _0(t,e){let n=await lf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await en(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function I0(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 en(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Oa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=_0),!e)try{e=Q()}catch{e=await Mt.lookupTenantId(t)}let i=await Bo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,x_)),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 O0(t){let e=await Bo(),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 I0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,x_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function xa(t){await(await Bo()).delete(t)}var vm={};N(vm,{Writethrough:()=>Dm});var R_=1e4,bm=null;async function Jc(){if(!bm){let t=await uf();bm=new ri(t)}return bm}function Ra(t,e){return t.name+e}function Cm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function x0(t,e,r=R_){let n=await Jc(),i=e._id,s;i&&(s=await n.get(Ra(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 d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.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=Cm(a,o?null:s?.lastWrite),a._id&&await n.store(Ra(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function R0(t,e){let r=await Jc(),n=Ra(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Cm(s),await r.store(n,i)}return i.doc}async function w0(t,e){let r=await Jc(),n=Ra(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Cm(s),await r.store(n,i)}return i.doc}async function b0(t,e,r){let n=await Jc();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(Ra(t,i))}finally{await t.remove(i,r)}}var Dm=class{constructor(e,r=R_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return x0(this.db,e,r)}async get(e){return R0(this.db,e)}async tryGet(e){return w0(this.db,e)}async remove(e,r){return b0(this.db,e,r)}};var Nm={};N(Nm,{createCode:()=>C0,getCode:()=>v0,invalidateCode:()=>N0});var D0=be.fromHours(1).toSeconds();async function C0(t,e){let r=he();return await(await Go()).store(r,{userId:t,info:e},D0),r}async function v0(t){let r=await(await Go()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function N0(t){await(await Go()).delete(t)}var Um={};N(Um,{DocWritethrough:()=>Pm,DocWritethroughProcessor:()=>wa,getProcessor:()=>U0,init:()=>w_});var P0=100,zc,wa=class t{static get queue(){return t._queue||(t._queue=new Er("docWritethroughQueue",{jobOptions:{attempts:P0}})),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)}},Pm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await wa.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function w_(){return zc=new wa().init(),zc}function U0(){return zc||w_()}function Zc(t){return`config${b}${t}`}async function Gt(t){let e=ie();try{return await e.get(Zc(t))}catch(r){if(r.status===404)return;throw r}}async function L0(t){return t._id||(t._id=Zc(t.type)),ie().put(t)}async function Vc(){let t=await Gt("settings");return t||(t={_id:Zc("settings"),type:"settings",config:{}}),t.config.platformUrl=await ba({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Mc({config:t.config}),t}async function km(){return(await Vc()).config}async function ba(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Gt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Mc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await jr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Gt("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 M0(){return await Gt("google")}async function Xc(){return(await M0())?.config}async function Fm(){if(!h.SELF_HOSTED)return Lm();let t=await Xc();return(!t||!t.activated)&&(t=Lm()),t}function Lm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function k0(){return Gt("logos_oidc")}async function F0(){return Gt("oidc")}async function B0(){let t=(await F0())?.config;return t?.configs&&t.configs[0]}async function Bm(t){let e=(await Gt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function b_(){return Gt("smtp")}async function G0(t){let e=await b_();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 $0(){return(await Gt("scim"))?.config}async function V0(){return Gt("ai")}var Ym={};N(Ym,{AccessController:()=>Vm,BUILTIN_ROLE_IDS:()=>qm,Role:()=>on,RoleHierarchyTraversal:()=>el,RoleIDVersion:()=>Wm,builtinRoleToNumber:()=>Da,checkForRoleResourceArray:()=>N_,externalRole:()=>K0,findRole:()=>Ca,getAllRoleIds:()=>Z0,getAllRoles:()=>Km,getBuiltinRole:()=>C_,getBuiltinRoles:()=>jm,getDBRoleID:()=>P_,getExternalRoleID:()=>an,getExternalRoleIDs:()=>U_,getRole:()=>Y0,getUserRoleHierarchy:()=>Hm,getUserRoleIdHierarchy:()=>v_,isBuiltin:()=>gi,lowerBuiltinRoleID:()=>H0,prefixRoleIDNoBuiltin:()=>$m,roleIDsAreEqual:()=>_t,roleToNumber:()=>j0,saveRoles:()=>J0,validInherits:()=>Q0});var Gm=W(require("semver"));var tl=W(require("lodash/fp/cloneDeep"));var D_=require("lodash");var qm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...qm,BUILDER:"BUILDER"},Wm={UUID:void 0,NAME:"name"};function W0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var on=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Wm.NAME}addInheritance(e){return e&&typeof e=="string"?e=$m(e):e&&Array.isArray(e)&&(e=e.map($m)),this.inherits=e,this}},el=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=Ca(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!W0(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ca(o.inherits,n,r),o&&i.push(o),Ht.roles.checkForRoleInheritanceLoops(i))break}}return(0,D_.uniqBy)(i,s=>s._id)}},Qm={ADMIN:new on(fe.ADMIN,fe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(fe.POWER),POWER:new on(fe.POWER,fe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(fe.BASIC),BASIC:new on(fe.BASIC,fe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(fe.PUBLIC),PUBLIC:new on(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new on(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function jm(){return(0,tl.default)(Qm)}function gi(t){return Object.values(qm).includes(t)}function $m(t){return gi(t)?t:dr(t)}function C_(t){let e=Object.values(Qm).find(r=>t.includes(r._id));if(e)return(0,tl.default)(e)}function Q0(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 Da(t){let e=jm(),r=Object.values(e).length+1;if(_t(t,fe.ADMIN)||_t(t,fe.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 j0(t){if(gi(t))return Da(t);let e=await Hm(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 Da(n.inherits)+1;return 0};return Math.max(...e.map(r))}function H0(t,e){return t?e&&Da(t)>Da(e)?e:t:e}function _t(t,e){return dr(t)===dr(e)}function K0(t){let e;return t._id&&(e=an(t._id)),{...t,_id:e,inherits:U_(t.inherits,t.version)}}function Ca(t,e,r){let n=C_(t);n||(t=dr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!gi(t)&&r?.defaultPublic?(0,tl.default)(Qm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=an(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function Y0(t,e){let r=Xi(),n=[];if(!gi(t)){let i=await r.tryGet(P_(t));i&&n.push(i)}return Ca(t,n,e)}async function J0(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:dr(r._id)})))}async function z0(t,e){let r=await Km();if(_t(t,fe.ADMIN))return r;let n=Ca(t,r,e),i=[];return n&&(i=new el(r,e).walk(n)),i}async function v_(t){return(await Hm(t)).map(r=>r._id)}async function Hm(t,e){return z0(t,e)}function N_(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 Z0(t){return(await Km(t)).map(r=>r._id)}async function Km(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(dc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=an(a._id,a.version)));let i=jm(),s=[];!r||await X0(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.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=an(a._id,u.version),n.push({...a,...u,name:a.name,_id:an(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=N_(o.permissions,a);return n}}async function X0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Gm.default.valid(r)?!0:!Gm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Vm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,fe.BUILDER)||_t(r,e)||_t(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await v_(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 P_(t){return t?.startsWith("role")?t:dr(t)}function an(t,e){if(t.startsWith(`role${b}`)&&(gi(t)||e===Wm.NAME)){let r=t.split(b);return r.shift(),r.join(b)}return t}function U_(t,e){return t&&(typeof t=="string"?an(t,e):t.map(r=>an(r,e)))}var Jm={};N(Jm,{BUILDER:()=>ik,BUILTIN_PERMISSIONS:()=>rl,CREATOR:()=>sk,GLOBAL_BUILDER:()=>ok,PermissionImpl:()=>me,PermissionLevel:()=>xs,PermissionType:()=>Ba,doesHaveBasePermission:()=>rk,getAllowedLevels:()=>F_,getBuiltinPermissionByID:()=>tk,getBuiltinPermissions:()=>ek,isPermissionLevelHigherThanRead:()=>nk,levelToNumber:()=>k_});var L_=W(require("lodash/flatten")),M_=W(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function k_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function F_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var rl={PUBLIC:{_id:"public",name:"Public",permissions:[new me("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new me("query","read"),new me("table","read"),new me("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new me("query","write"),new me("table","write"),new me("automation","execute"),new me("legacy_view","read"),new me("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new me("table","write"),new me("user","read"),new me("automation","execute"),new me("webhook","read"),new me("legacy_view","read"),new me("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new me("table","admin"),new me("user","admin"),new me("automation","admin"),new me("webhook","read"),new me("query","admin"),new me("legacy_view","read"),new me("app","read")]}};function ek(){return(0,M_.default)(rl)}function tk(t){return Object.values(rl).find(r=>r._id===t)}function rk(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(rl),s=(0,L_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&F_(o.level).indexOf(e)!==-1)return!0;return!1}function nk(t){return k_(t)>1}var ik="builder",sk="creator",ok="globalBuilder";var Xm={};N(Xm,{FlagSet:()=>il,all:()=>lk,flags:()=>zm,getEnvFlags:()=>V_,init:()=>ak,isEnabled:()=>ck,parseEnvFlags:()=>ol,shutdown:()=>uk,testutils:()=>Zm});var sl=W(require("crypto"));var B_=require("posthog-node"),G_=W(require("dd-trace"));var $_=require("lodash");var nl;function ak(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),nl=new B_.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 uk(){nl?.shutdown()}function ol(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 V_(){return ol(h.TENANT_FEATURE_FLAGS||"")}var il=class{constructor(e){this.flagSchema=e;this.setId=sl.randomUUID()}defaults(){return(0,$_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await G_.default.trace("features.fetch",async e=>{let r=zp(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:d,key:m,value:p}of V_())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,p===!1&&o.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=p,n[`flags.${m}.source`]="environment"}let a=ur(),u=a?._id;if(!u){let d=Yp();d&&(u=sl.createHash("sha512").update(d).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,nl&&u){n.readFromPostHog=!0;let d={tenantId:c},m=await nl.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[p,f]of Object.entries(m))if(this.isFlagName(p)){if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${f}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=f,n[`flags.${p}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${p}": ${f}`,g)}}}let l=Xp();for(let[d,m]of Object.entries(l))this.isFlagName(d)&&typeof m=="boolean"&&(i[d]=m,n[`flags.${d}.source`]="override");Zp(this.setId,i);for(let[d,m]of Object.entries(i))n[`flags.${d}.value`]=m;return e?.addTags(n),i})}},zm=new il(Ph);async function ck(t){return await zm.isEnabled(t)}async function lk(){return await zm.fetch()}var Zm={};N(Zm,{setFeatureFlags:()=>q_,withFeatureFlags:()=>fk});function dk(){let t={};for(let{tenantId:e,key:r,value:n}of ol(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function pk(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 q_(t,e){let r=dk();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=pk(r);return xo({TENANT_FEATURE_FLAGS:n})}function fk(t,e,r){let n=q_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var dh={};N(dh,{adminOnly:()=>yl,auditLog:()=>fl,authError:()=>Me,buildAuthMiddleware:()=>tF,buildCsrfMiddleware:()=>nF,buildTenancyMiddleware:()=>rF,builderOnly:()=>Tl,builderOrAdmin:()=>El,google:()=>Sr,internalApi:()=>hl,joiValidator:()=>Na,oidc:()=>_r,passport:()=>iF,platformLogout:()=>cF,refreshOAuthToken:()=>aF,ssoCallbackUrl:()=>un,updateUserOAuth:()=>uF});var lh={};N(lh,{adminOnly:()=>yl,auditLog:()=>fl,authError:()=>Me,authenticated:()=>pl,builderOnly:()=>Tl,builderOrAdmin:()=>El,correlation:()=>nI,csp:()=>cI,csrf:()=>gl,datasource:()=>Xk,errorHandling:()=>sI,featureFlagCookie:()=>lI,google:()=>Sr,internalApi:()=>hl,ip:()=>pI,joiValidator:()=>Na,local:()=>Ss,oidc:()=>_r,pino:()=>tI,querystringToBody:()=>oI,ssoCallbackUrl:()=>un,tenancy:()=>ml});var Ss={};N(Ss,{authenticate:()=>gk,options:()=>hk});function Me(t,e,r){return t(r,null,{message:e})}async function un(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await km(),n="/api/global/auth";return qr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var eh="Invalid credentials",mk="This account has expired. Please reset your password",hk={passReqToCallback:!0};async function gk(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Bt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,eh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,eh)):i.password?await mf(r,i.password)?(delete i.password,n(null,i)):Me(n,eh):(console.info(`user=${e} has no password set`,i),Me(n,mk))}var Sr={};N(Sr,{buildVerifyFn:()=>j_,getCallbackUrl:()=>Tk,strategyFactory:()=>th});var va=t=>Promise.resolve(t);async function al(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 hi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Bt(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:Q()});let o=await yk(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 yk(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 Ek=require("passport-google-oauth").OAuth2Strategy;function j_(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 al(s,!0,i,t)}}async function th(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=j_(r);return new Ek({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function Tk(t){return un("google",t)}var _r={};N(_r,{buildVerifyFn:()=>K_,fetchStrategyConfig:()=>Ik,getCallbackUrl:()=>Ok,strategyFactory:()=>_k});var H_=W(require("node-fetch"));var Ak=require("@techpass/passport-openidconnect").Strategy;function K_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:Sk(n,i),oauth2:{accessToken:s,refreshToken:o}};return al(l,!1,c,t)}}function Sk(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Cf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function _k(t,e){try{let r=K_(e),n=new Ak(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function Ik(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,H_.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 Ok(){return un("oidc")}var rh={};N(rh,{postAuth:()=>wk,preAuth:()=>Rk});var xk=require("passport-google-oauth").OAuth2Strategy;async function Y_(){let t=await Fm();if(!t)throw new Error("No google configuration found");return t}async function Rk(t,e,r){let n=await Y_(),s=`${await ba({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await th(n,s,va);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 wk(t,e,r){let n=await Y_(),s=`${await ba({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=mr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new xk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Yr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=he();await lr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var bk=/\/:(.*?)(\/.*)?$/g,yi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(bk);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 uh={};N(uh,{SecretOption:()=>Z_,decrypt:()=>ah,decryptFile:()=>Uk,encrypt:()=>vk,encryptFile:()=>Nk,getSecret:()=>oh});var Ir=W(require("crypto")),cn=W(require("fs")),ih=W(require("zlib"));var nh=require("path"),ul="aes-256-ctr",z_="-",Dk=1e4,Ck=32,cl=16,sh=16,Z_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(Z_||{});function oh(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 ll(t,e){return Ir.default.pbkdf2Sync(t,e,Dk,Ck,"sha512")}function vk(t,e="api"){let r=Ir.default.randomBytes(cl),n=ll(oh(e),r),i=Ir.default.createCipheriv(ul,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${z_}${a}`}function ah(t,e="api"){let[r,n]=t.split(z_),i=Buffer.from(r,"hex"),s=ll(oh(e),i),o=Ir.default.createDecipheriv(ul,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function Nk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,nh.join)(t,e);if(cn.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=cn.default.createReadStream(i),o=cn.default.createWriteStream((0,nh.join)(t,n)),a=Ir.default.randomBytes(cl),u=Ir.default.randomBytes(sh),c=ll(r,a),l=Ir.default.createCipheriv(ul,c,u);return o.write(a),o.write(u),s.pipe(ih.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function Pk(t){let e=cn.default.createReadStream(t),r=await J_(e,cl),n=await J_(e,sh);return e.close(),{salt:r,iv:n}}async function Uk(t,e,r){if(cn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await Pk(t),s=cn.default.createReadStream(t,{start:cl+sh}),o=cn.default.createWriteStream(e),a=ll(r,n),u=Ir.default.createDecipheriv(ul,a,i),c=ih.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),d(m)}),u.on("error",m=>{o.close(),d(m)}),c.on("error",m=>{o.close(),d(m)}),o.on("error",m=>{o.close(),d(m)})})}function J_(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 eI=W(require("dd-trace")),Lk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function Mk(){return new Date(Date.now()-Lk).toISOString()}function X_(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 kk(t,e){if(zo(t))return{valid:!0,user:void 0};let n=ah(t).split(b)[0];return qe(n,async()=>{let i;try{let s=ie();i=await pr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Oa({userId:i,tenantId:n,populateUser:e})};throw new fs})}function dl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function pl(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=dl(n,"x-budibase-api-version");Ei(n,r)&&(s=!0);try{let u=dl(n,"x-budibase-token"),c=mr(n,"budibase:auth")||fc(u),l=dl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=dl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,_=c.userId,S;try{S=await Sm(_,y),e&&e.populateUser?p=await Oa({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Oa({userId:_,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<Mk()&&await Am(S),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),Yr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await kk(l,y);_&&(m=!0,g="api_key",p=S,f=!S)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&eI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),X_(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Cp(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Yr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return X_(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Fk=async(t,e)=>e(),fl=Fk;function ml(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 hl=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 Bk=["GET","HEAD","OPTIONS"],Gk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function gl(t={noCsrfPatterns:[]}){let e=yi(t.noCsrfPatterns);return async(r,n)=>{if(Ei(r,e)||Bk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!Gk.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 yl=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin user only endpoint."),e());var El=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!tn(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var Tl=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At: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 $k=require("koa-pino-logger"),Vk=require("correlation-id");function qk(){return{logger:_c,genReqId:Vk.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 Wk(){return h.HTTP_LOGGING?$k(qk()):(t,e)=>e()}var Qk=Wk(),tI=Qk;var rI=require("uuid"),jk=require("correlation-id"),Hk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,rI.v4)()),jk.withId(r,()=>e())},nI=Hk;function iI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of NT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Kk(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:Dc(r)};if(iI(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 sI=Kk;function oI(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 uI=W(require("crypto"));var aI={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:","'self'"]},Yk=/^[A-Za-z0-9-*:/.]+$/,Jk=async(t,e)=>{let r=uI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...aI};if(n["script-src"]=[...aI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Qo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
- `).filter(c=>Yk.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()},cI=Jk;var lI=async(t,e)=>{let n=mr(t,"budibase:featureflags")?.flags||{};await ef(n,async()=>{await e()})};var Na={};N(Na,{body:()=>zk,params:()=>Zk});var ch=W(require("joi"));function dI(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:ch.default.any().optional(),updatedAt:ch.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 zk(t,e){return dI(t,"body",e)}function Zk(t,e){return dI(t,"params",e)}var pI=async(t,e)=>t.ip?await Jp(t.ip,()=>e()):e();var Xk={google:rh};var fI=require("koa-passport"),eF=require("passport-local").Strategy,Al=require("passport-oauth2-refresh"),tF=pl,rF=ml,nF=gl,iF=fI;fI.use(new eF(Ss.options,Ss.authenticate));async function sF(t,e){let r=await _r.getCallbackUrl(),n,i;try{if(n=await _r.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await _r.strategyFactory(n,va)}catch{throw new Error("Could not refresh OAuth Token")}return Al.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Al.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function oF(t,e){let r=await Sr.getCallbackUrl(t),n;try{n=await Sr.strategyFactory(t,r,va)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Al.use(n),new Promise(i=>{Al.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function aF(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Bm(r);return n?sF(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Xc();return n?oF(n,t):{err:{data:"Google configuration not found"}}}}}async function uF(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await xa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function cF(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=mr(e,"budibase:auth"),s=await jc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Yr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await Qc.logout(e.user?.email),await xa(r)}var fh={};N(fh,{validate:()=>mF});var C=W(require("joi")),lF=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function ph(t,e){let{error:r}=t.validate(e);if(r)throw r}function dF(t){let e=C.default.object({type:C.default.string().allow("component").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),settings:C.default.array().items(C.default.object().unknown(!0)).required()}).unknown(!0)});ph(e,t)}function pF(t){let e=C.default.object({type:C.default.string().allow(...Object.values(xl)).required(),required:C.default.boolean().required(),default:C.default.any(),display:C.default.string()}),r=C.default.object({type:C.default.string().allow(...Object.values(Ol)),readable:C.default.boolean(),fields:C.default.object().pattern(C.default.string(),e)}).required(),n=C.default.object({type:C.default.string().allow("datasource").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({docs:C.default.string(),plus:C.default.boolean().optional(),isSQL:C.default.boolean().optional(),auth:C.default.object({type:C.default.string().required()}).optional(),features:C.default.object(Object.fromEntries(Object.values(Rl).map(i=>[i,C.default.boolean().optional()]))).optional(),relationships:C.default.boolean().optional(),description:C.default.string().required(),friendlyName:C.default.string().required(),type:C.default.string().allow(...lF),datasource:C.default.object().pattern(C.default.string(),e).required(),query:C.default.object().pattern(C.default.string(),r).unknown(!0).required(),extra:C.default.object().pattern(C.default.string(),C.default.object({type:C.default.string().required(),displayName:C.default.string().required(),required:C.default.boolean(),data:C.default.object()}))})});ph(n,t)}function fF(t){let e=C.default.object().pattern(C.default.string(),{type:C.default.string().allow(...Object.values(oe)).required(),customType:C.default.string().allow(...Object.values(ye)),title:C.default.string(),description:C.default.string(),enum:C.default.array().items(C.default.string()),pretty:C.default.array().items(C.default.string())}),r=C.default.object({properties:e,required:C.default.array().items(C.default.string())}).concat(e).required(),n=C.default.object({type:C.default.string().allow("automation").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),tagline:C.default.string().required(),icon:C.default.string().required(),description:C.default.string().required(),type:C.default.string().allow("ACTION","LOGIC").required(),stepId:C.default.string().disallow(...Uh).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});ph(n,t)}function mF(t){switch(t?.type){case"component":dF(t);break;case"datasource":pF(t);break;case"automation":fF(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var mh={};N(mh,{Client:()=>We,clients:()=>Qr,locks:()=>ci,utils:()=>nc});var hh={};N(hh,{isBlacklisted:()=>gF,refreshBlacklist:()=>yI});var mI=W(require("dns")),_l=W(require("net"));var hI=require("util"),Sl,hF=(0,hI.promisify)(mI.default.lookup);async function gI(t){return _l.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await hF(t,{all:!0})).map(r=>r.address)}async function yI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(_l.default.isIP(i))r.push(i);else{let s=await gI(i);r=r.concat(s)}}Sl=r}async function gF(t){if(Sl||await yI(),Sl?.length===0)return!1;let e;return _l.default.isIP(t)?e=[t]:e=await gI(t),!!Sl?.find(r=>e.includes(r))}var yh={};N(yh,{init:()=>EF});var yF={"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 EI(t,e){let r=yF[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Pa=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=EI(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 KS()}};var TI,gh;function EF(t){Ar||Wc(),gh||(gh=new Pa(t)),TI||(TI=Ar.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await gh.processEvent(r,n,i)}))}var Rh={};N(Rh,{COUNT_FIELD_NAME:()=>Oh,Sql:()=>bI,SqlTable:()=>Il,designDoc:()=>xh,utils:()=>qp});var II=require("knex");var TF=require("knex");function Eh(t){return["link","formula","ai"].indexOf(t)!==-1}function AI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,p]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=p.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":p.timeOnly?t.time(m):t.datetime(m,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Ht.schema.isDeprecatedSingleUserColumn(p)?t.text(m):t.json(m);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Fp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let _=y.primary[0],S=y.schema[_].externalType;S?t.specificType(p.foreignKey,S):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${_}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(m);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:Ci.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Eh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!Eh(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||Eh(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function SF(t,e,r){return t.createTable(e.name,n=>{AI(n,e,r)})}function _F(t,e,r,n,i){return t.alterTable(e.name,s=>{AI(s,e,r,n,i)})}function IF(t,e){return t.dropTable(e.name)}var Th=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,TF.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=SF(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=_F(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=IF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},Il=Th;var OI=require("lodash"),Oh="__bb_total";function SI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Ah(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function OF(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 xI(t){return Array.isArray(t)?t.map(e=>xI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function _I(t){return t.sourceType==="internal"||t.sourceId===Cl}function xF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function RI(t,e='"'){return`${e}${xF(t,e)}${e}`}function Sh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=RI(t[r],e));return`[${t.join(",")}]`}function wI(t){return Lh.includes(t.type)&&!Ht.schema.isDeprecatedSingleUserColumn(t)}var RF={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},_h=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Fr.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()&&wI(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(!$p(e))return null}else if(r.dateOnly){let n=Gp(e);return n?new Date(n):null}else{if(Bp(e))return null;if(Xu(e))return new Date(e.trim())}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,OI.cloneDeep)(e);for(let r of Object.values(xr)){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(fn)){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=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),_=Vp(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let M=a?.[_.through]||d.through,T=this.tableNameWithSchema(_.through,{alias:M,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${_.toPrimary}`,"=",`${M}.${_.to}`)}).where(`${M}.${_.from}`,"=",this.rawQuotedIdentifier(`${c}.${_.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,_)),e=e.where(I=>{I.whereExists(i(S,y)),r&&I.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${M}.${_.from}`)}))})}else{let M=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(M,"=",this.rawQuotedIdentifier(T)),e=e.where(I=>{I.whereExists(i(S,y.clone())),r&&I.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(f){return s?.[f]||f}function l(f,g,E,y){let _=(S,M,T)=>{let[I,...x]=M.split("."),w=x.join("."),B=c(I);return S.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let S in f){let M=f[S],T=Jo(S),I=T.includes("."),x=n?.relationship&&I,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let B=c(u);e=y(e,w.id.map(le=>B?`${B}.${le}`:le),w.values)}else if(I)x&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,RF[g],T,(B,le)=>_(le,B,M)));else{let B=c(u);e=E(e,B?`${B}.${T}`:T,M)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,_,S)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(Sh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(Sh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,_,S)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(RI(Sh(S)))])):l(f,"contains",(y,_,S)=>(S.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let I of S){f===r?.containsAny?T=T.or:T=T.and;let x=typeof I=="string"?`"${I.toLowerCase()}"`:I;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${x}%`)}}),f===r?.notContains&&(M=M.or.whereNull(this.rawQuotedIdentifier(_))),M))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),_=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let S of _)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,_)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let _=ec(E.low),S=ec(E.high),M=this.getFieldSchema(g),T=g,I=E.high,x=E.low;return this.client==="sqlite3"&&M?.type==="datetime"&&M.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),x!=null&&(x=x.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&M?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[E.high]),x=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),_&&S?f.whereBetween(T,[x,I]):_?f.where(T,">=",x):S?f.where(T,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",E)).or.whereNull(_)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!kp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Rr(r.documentType)}%`),e}isSqs(){return _I(this.table)}getTableName(e){e||(e=this.table);let r=e.name;_I(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 ${Oh}`)}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 d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,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 d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let _=c[m];if(!_)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,M=a?.[r]||r,T=p&&a?.[p]||p,I=this.tableNameWithSchema(m,{alias:S,schema:u}),x=[..._?.primary||[],_?.primaryDisplay].filter(V=>V),w=OF(l.filter(V=>V.split(".")[0]===S),x);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map(V=>this.buildJsonField(_,V));if(!B.length)continue;let le=B.map(V=>{let se=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${se}??`,[V[0],V[1]]).toString()}).join(","),ln=`${S}.${y||f}`,$=s.from(I).orderBy(ln),F=p&&y&&E,v=F?`${T}.${g}`:`${S}.${f}`,q=F?`${M}.${E}`:`${M}.${g}`;if(F){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(v),"=",this.rawQuotedIdentifier(q));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Ah()),s.select(V).from({[S]:$})),K;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),K=L(this.knex.raw(`json_group_array(json_object(${le}))`));break;case"pg":K=L(this.knex.raw(`json_agg(json_build_object(${le}))`));break;case"mariadb":K=$.select(s.raw(`json_arrayagg(json_object(${le}) LIMIT ${Ah()})`));break;case"mysql2":case"oracledb":K=L(this.knex.raw(`json_arrayagg(json_object(${le}))`));break;case"mssql":{let V=s.select("*").from({[M]:$.select(B.map(se=>s.ref(se[1]).as(se[0]))).limit(Ah())});K=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${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 p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}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 d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,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())}},Ih=class extends Il{constructor(r,n=SI()){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=xI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,II.knex)(s),a,u=new _h(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:SI()}});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 d=[];for(let m of a)d.push(await n(m,o));return d}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 d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,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===Cl){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(!wI(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){Do(this.getSqlClient(),r,n)}},bI=Ih;var xh={};N(xh,{base:()=>wF});function wF(t){return{_id:ar,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var bF={...Wo,...Se},DF=(t={})=>{zu(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,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")},Jo=async(t,e)=>{let r={account_by_email:UA,platform_users_lowercase_2:MA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return xf(t,e,n,i,{arrayResponse:!0})})},FA={by_email2:vA,by_api_key:PA,by_app:NA},pr=async(t,e,r,n)=>{r||(r=oe());let i=FA[t];return xf(t,e,r,i,n)};async function Rf(t,e,r){let n=oe(),i=FA[t];return Ko(t,e,n,i,r)}var wf=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([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")||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()}},kA=wf;var GA=W(require("node-fetch"));var zo=kr.removeKeyNumbering;function ai(t){return t==null||t===""}var fr=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=(f,g)=>ai(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(ai(g))return null;if(!Array.isArray(g))return`${f}:${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`${f}:(${y})`},c=(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(ai(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`${f}:(${E})`};function p(f,g,E){let y="";for(let[S,I]of Object.entries(f)){S=zo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,I);if(R!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=R,(typeof I!="string"&&I!=null||typeof I=="string"&&I!==o&&I!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>ai(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(ai(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`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>ai(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({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 BA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await BA(n,i,r);throw s}}};async function BA(t,e,r){let n=await(0,GA.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 $A(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=fr.maxLimit;n.limit&&s.length>n.limit-fr.maxLimit&&(o=n.limit-s.length);let a=new fr(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<fr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await $A(t,e,r,c)}async function iP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,fr.maxLimit);let s=new fr(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 sP(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 $A(t,e,r,n)}}var bf={};P(bf,{createUserIndex:()=>oP});async function oP(){let t=oe(),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 VA(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 aP(t){return VA(t,409)}var fc=W(require("jsonwebtoken")),Df="app"+D,WA="/app/",QA="/app/preview",uP="/builder",jA=`${uP}/app/`,cP="/api/public/v";function is(t){return t&&t.startsWith(Df)?t:void 0}async function HA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Wo(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 lP(t){return t.path.startsWith(`/${Df}`)?!0:t.path.startsWith(WA)}function dP(t){return t.path.startsWith(jA)}function pP(t){return t.path.startsWith(QA)}function fP(t){return t.path.startsWith(cP)}async function mP(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(QA),s=t.path.startsWith(WA)&&!i;!r&&s&&(r=is(await HA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(jA)){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(Df))}function mc(t){if(t)try{return fc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return fc.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 mr(t,e){let r=t.cookies.get(e);if(r)return mc(r)}function YA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=fc.default.sign(e,h.JWT_SECRET));let i={expires:Qu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Kr(t,e){YA(t,null,e)}function hP(t){return t.headers["x-budibase-type"]==="client"}function Cf(t){return new Promise(e=>setTimeout(e,t))}function vf(t){return!!vh[t]}function gP(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 yP(t){return!!t.match(/^.+:\/\/.+$/)}function Nf(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 Pf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Pf||{}),hc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/hc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*hc[e]/hc[r]}static from(e,r){return new t(r*hc[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 EP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function TP(t,e){if(t==="custom")return ui(e);switch(t){case"try_once":return ui(os.TRY_ONCE);case"try_twice":return ui(os.TRY_TWICE);case"default":return ui(os.DEFAULT);case"delay_500":return ui(os.DELAY_500);case"auto_extend":return ui(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 ui(t={}){let e={...os.DEFAULT,...t},n=(await df()).client;return new JA.default([n],e)}function AP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var zA=be.fromSeconds(10).toMs();async function as(t,e){let r=await TP(t.type,t.customOptions),n,i;try{let s=AP(t),o=t.type==="auto_extend"?zA: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 Lf=Te.PLATFORM_INFO.docs.tenants,Uf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function _P(){return(await gc()).tenantIds}async function gc(){let t=ct(),e;try{e=await t.get(Lf)}catch(r){if(r.status===404)e=await xP();else throw r}return e}async function IP(t){return(await gc()).tenantIds.indexOf(t)!==-1}function OP(){return{_id:Lf,tenantIds:[]}}async function xP(){let t=ct(),e=OP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Lf);throw r}return e}async function RP(t){let e=ct();await as(Uf,async()=>{let r=await gc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function wP(t){try{await as(Uf,async()=>{let e=ct(),r=await gc();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={};P(di,{getAccount:()=>en,getAccountByTenantId:()=>ls,getStatus:()=>oL});var CS=W(require("node-fetch"));var Oc={};P(Oc,{correlation:()=>ea,logAlert:()=>sa,logAlertWithInfo:()=>sL,logWarn:()=>cs,logger:()=>Ic,system:()=>zf});var ea={};P(ea,{getId:()=>Ff,setHeader:()=>bP});var ZA=require("correlation-id"),bP=t=>{let e=ZA.getId();e&&(t["x-budibase-correlation-id"]=e)};function Ff(){return ZA.getId()}var _c=W(require("pino")),bS=W(require("pino-pretty"));var Zf=W(require("dd-trace")),DS=require("dd-trace/ext");var zf={};P(zf,{getLogReadStream:()=>XP,getSingleFileMaxSizeInfo:()=>wS,localFileDestination:()=>Jf});var ia=W(require("fs")),Kf=W(require("path")),IS=W(require("rotating-file-stream"));var Yf={};P(Yf,{ObjectStore:()=>Ft,ObjectStoreBuckets:()=>CP,SIGNED_FILE_PREFIX:()=>Wf,bucketTTLConfig:()=>yc,budibaseTempDir:()=>li,clientLibraryCDNUrl:()=>jP,clientLibraryPath:()=>mS,clientLibraryUrl:()=>HP,createBucketIfNotExists:()=>na,deleteFile:()=>BP,deleteFiles:()=>GP,deleteFolder:()=>dS,downloadTarball:()=>VP,downloadTarballDirect:()=>$P,enrichPWAImages:()=>YP,enrichPluginURLs:()=>JP,extractBucketAndPath:()=>kf,getAppFileUrl:()=>hS,getGlobalFileS3Key:()=>gS,getGlobalFileUrl:()=>KP,getObjectMetadata:()=>qP,getPluginIconKey:()=>TS,getPluginJSKey:()=>ES,getPluginS3Dir:()=>SS,getPresignedUrl:()=>Zr,getReadStream:()=>Ec,listAllObjects:()=>lS,processAutomationAttachment:()=>NP,processObjectStoreAttachment:()=>nS,retrieve:()=>cS,retrieveDirectory:()=>kP,retrieveToTmp:()=>FP,sanitizeBucket:()=>Ke,sanitizeKey:()=>Ue,streamUpload:()=>uS,upload:()=>MP,uploadDirectory:()=>Qf});var Ac=require("@aws-sdk/client-s3"),Bf=require("@aws-sdk/lib-storage"),iS=require("@aws-sdk/s3-request-presigner"),ra=W(require("stream")),Gf=W(require("node-fetch")),$f=W(require("tar-fs")),Vf=W(require("zlib")),sS=require("util"),zr=require("path"),hr=W(require("fs"));var ta=W(require("path")),XA=require("os"),eS=W(require("fs"));var tS=W(require("stream")),CP={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},rS=(0,ta.join)((0,XA.tmpdir)(),".budibase");try{eS.default.mkdirSync(rS)}catch(t){if(t.code!=="EEXIST")throw t}function li(){return rS}var yc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function vP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=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:tS.default.Readable.fromWeb(e.body)}}async function nS(t){let e=kf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ec(r,n),s=ta.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function NP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await vP(t):await nS(t)}var qf=require("uuid");var oS=W(require("fs/promises")),PP=require("sanitize-s3-objectkey"),aS=(0,sS.promisify)(ra.default.pipeline),LP={bucketCreationPromises:{}},Wf="/files/signed",Jr={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"},UP=[Jr.html,Jr.css,Jr.js,Jr.json];function Ue(t){return PP(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(Et,"g"),yt)}function Ft(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new Ac.S3(e)}async function na(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=LP.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 MP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await oS.default.open(r)).createReadStream():s,c=Ft(),l=await na(c,t);if(o&&l.created){let g=yc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Jr[a.toLowerCase()]:Jr.txt),p={Bucket:Ke(t),Key:Ue(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new Bf.Upload({client:c,params:p}).done()}async function uS({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 na(a,t);if(s&&u.created){let E=yc(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?Jr[o.toLowerCase()]:Jr.txt);let l=Ke(t),d=Ue(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Bf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function cS(t,e){let r=Ft(),n={Bucket:Ke(t),Key:Ue(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(UP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ra.default.Readable.fromWeb(s)}}async function lS(t,e){let r=Ft(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Ue(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Zr(t,e,r=3600){let n=Ft({presigning:!0}),i={Bucket:Ke(t),Key:Ue(e)},s=await(0,iS.getSignedUrl)(n,new Ac.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Wf}${a}${u}`}else return s}async function FP(t,e){t=Ke(t),e=Ue(e);let r=await cS(t,e),n=(0,zr.join)(li(),(0,qf.v4)());return r instanceof ra.default.Readable?r.pipe(hr.default.createWriteStream(n)):hr.default.writeFileSync(n,r),n}async function kP(t,e){let r=(0,zr.join)(li(),(0,qf.v4)());hr.default.mkdirSync(r);let n=await lS(t,e),i=await Promise.all(n.map(a=>Ec(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,zr.join)(r,...d);l.length>1&&!hr.default.existsSync(m)&&hr.default.mkdirSync(m,{recursive:!0});let p=hr.default.createWriteStream((0,zr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",()=>f()),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function BP(t,e){let r=Ft();await na(r,t);let n={Bucket:t,Key:Ue(e)};return r.deleteObject(n)}async function GP(t,e){let r=Ft();await na(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ue(i)}))}};return r.deleteObjects(n)}async function dS(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return dS(t,e)}async function Qf(t,e,r){t=Ke(t);let n=[],i=hr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ue((0,zr.join)(r,s.name)),a=(0,zr.join)(e,s.name);s.isDirectory()?n.push(Qf(t,a,o)):n.push(uS({bucket:t,filename:o,stream:hr.default.createReadStream(a)}))}return await Promise.all(n),i}async function $P(t,e,r={}){e=Ue(e);let n=await(0,Gf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await aS(n.body,Vf.default.createUnzip(),$f.default.extract(e))}async function VP(t,e,r){e=Ke(e),r=Ue(r);let n=await(0,Gf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,zr.join)(li(),r);return await aS(n.body,Vf.default.createUnzip(),$f.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Qf(e,i,r),i}async function Ec(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ra.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function qP(t,e){t=Ke(t),e=Ue(e);let r=Ft(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function kf(t){let e=t.split("?")[0],r=new RegExp(`^${Wf}/(?<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 pS=W(require("aws-cloudfront-sign")),Sc;function WP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Sc||(Sc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Sc)}var QP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:WP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=jf(t);return pS.getSignedUrl(e,QP())},jf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var fS=W(require("querystring"));function mS(t){return`${Ue(t)}/budibase-client.js`}async function jP(t,e){let r=mS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),jf(r)):await Zr(h.APPS_BUCKET_NAME,r)}function HP(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${fS.default.encode(n)}`}async function hS(t){return h.CLOUDFRONT_CDN?us(t):await Zr(h.APPS_BUCKET_NAME,t)}async function YP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await hS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var KP=async(t,e,r)=>{let n=gS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await Zr(h.GLOBAL_BUCKET_NAME,n)},gS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function JP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await zP(e),n=await ZP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function zP(t){let e=ES(t);return yS(e)}async function ZP(t){let e=TS(t);if(e)return yS(e)}async function yS(t){return h.CLOUDFRONT_CDN?us(t):await Zr(h.PLUGIN_BUCKET_NAME,t)}function ES(t){return AS(t,"plugin.min.js")}function TS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return AS(t,e)}function AS(t,e){return`${SS(t.name)}/${e}`}function SS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var OS="budibase.log",xS="budibase-logs-history.txt",RS=Kf.default.join(li(),"systemlogs");function _S(t){return Kf.default.join(RS,t)}function wS(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 Jf(){let t=wS(h.ROLLING_LOG_MAX_SIZE);return IS.createStream(OS,{size:t?.size,path:RS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:xS,initialRotation:!1})}function XP(){let t=[],e=_S(xS);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(_S(OS))),Buffer.concat(t)}function eL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function tL(t){return t instanceof Error}function rL(t){return typeof t=="string"}var Xr;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,bS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Jf(),level:t}),Xr=r.length?(0,_c.default)(e,_c.default.multistream(r)):(0,_c.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{rL(E)&&(d=`${d} ${E}`.trimStart()),eL(E)&&l.push(E),tL(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Ff()};let f=Zf.default.scope().active();f&&Zf.default.inject(f.context(),DS.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let I=l[S],R=I._logKey;R?(delete I._logKey,g[R]=I):(E[y]=I,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Xr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Xr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Xr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Xr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Xr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Xr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Le()}catch{}return u},o=()=>{let u;try{u=Jp()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var Ic=Xr;var nL=["AccountError"];function iL(t){return t&&t.suppressAlert}function sa(t,e){e&&nL.includes(e.name)&&iL(e)||console.error(`bb-alert: ${t}`,e)}function sL(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,CS.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 Xf=new oa(h.ACCOUNT_PORTAL_URL),em=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,en=async t=>{if(em)return;let e={email:t},r=await Xf.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(em)return;let e={tenantId:t},r=await Xf.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]},oL=async()=>{if(em)return;let t=await Xf.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={};P(Es,{UserDB:()=>Kt,addAppBuilder:()=>P0,bulkGetGlobalUsersById:()=>Kc,bulkUpdateGlobalUsers:()=>_a,cleanseUserObject:()=>Dm,creatorsInList:()=>pi,doesUserExist:()=>b0,getAccountHolderFromUsers:()=>Lc,getAllUserIds:()=>R0,getAllUsers:()=>w0,getById:()=>hi,getCreatorCount:()=>v0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>LS,getExistingTenantUsers:()=>PS,getFirstPlatformUser:()=>aa,getGlobalUserByAppPage:()=>R_,getGlobalUserByEmail:()=>Bt,getPlatformUsers:()=>xc,getUserCount:()=>C0,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>FS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>MS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Nc,isGlobalBuilder:()=>US,paginatedUsers:()=>b_,removeAppBuilder:()=>L0,removePortalUserPermissions:()=>N0,searchExistingEmails:()=>nm,searchGlobalUsersByApp:()=>Jc,searchGlobalUsersByAppAccess:()=>bm,searchGlobalUsersByEmail:()=>w_,validateUniqueUser:()=>Pc});var im={};P(im,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Lc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>FS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>MS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Nc,isGlobalBuilder:()=>US,validateUniqueUser:()=>Pc});var rm={};P(rm,{createCode:()=>uL,deleteCode:()=>lL,getCode:()=>cL,getExistingInvites:()=>tm,getInviteCodes:()=>NS,updateCode:()=>aL});var vS=be.fromDays(7).toSeconds();async function aL(t,e){await(await ti()).store(t,e,vS)}async function uL(t,e){let r=ge();return await(await ti()).store(r,{email:t,info:e},vS),r}async function cL(t){let r=await(await ti()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function lL(t){await(await ti()).delete(t)}async function NS(){let r=(await(await ti()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function tm(t){return(await NS()).filter(e=>t.includes(e.email))}async function nm(t){let e=[],r=await PS(t);e.push(...r.map(o=>o.email));let n=await LS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await tm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function xc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function aa(t){return(await xc(t))[0]??null}async function PS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await pr("by_email2",r,void 0,n)}async function LS(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 vc={};P(vc,{BadRequestError:()=>wc,BudibaseError:()=>ps,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Dc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Rc,UsageLimitError:()=>bc,getPublicError:()=>Cc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Cc=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)}},Rc=class extends lt{constructor(e){super(e,404)}},wc=class extends lt{constructor(e){super(e,400)}},bc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Dc=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")}},gr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ot.users.isBuilder,tn=ot.users.isAdmin,US=ot.users.isGlobalBuilder,MS=ot.users.isAdminOrBuilder,rn=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,FS=ot.users.hasAppBuilderPermissions;async function pi(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await oe().getMultiple(r,{allowMissing:!0}),t.map(i=>Nc(i,e))}async function ua(t){let e=[];return t.userGroups&&(e=await oe().getMultiple(t.userGroups)),Nc(t,e)}function Nc(t,e){let r=ot.users.isCreator(t);return!r&&t?pL(t,e):r}function pL(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 Pc(t,e){if(h.MULTI_TENANCY){let r=await aa(t);if(r!=null&&r.tenantId!==e)throw new gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await en(t);if(r&&r.verified&&r.tenantId!==e)throw new gr(t)}}async function Lc(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={};P(ys,{account:()=>e_,ai:()=>s_,analytics:()=>Mc,app:()=>t_,auditLog:()=>A_,auth:()=>jc,automation:()=>r_,backfill:()=>h_,backfillCache:()=>Wc,backup:()=>E_,datasource:()=>n_,email:()=>i_,environmentVariable:()=>T_,group:()=>g_,identification:()=>kt,initAsyncEvents:()=>p0,installation:()=>ga,layout:()=>a_,license:()=>o_,org:()=>u_,plugin:()=>y_,processors:()=>dm,publishEvent:()=>A,query:()=>c_,role:()=>Sa,rowAction:()=>S_,rows:()=>d_,screen:()=>l_,serve:()=>f_,shutdown:()=>f0,table:()=>p_,user:()=>Je,view:()=>m_});var dm={};P(dm,{analyticsProcessor:()=>KS,init:()=>NL,processors:()=>Tr});var Mc={};P(Mc,{enabled:()=>Uc});var Uc=async()=>Fc();var VS=require("posthog-node");var fL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",mL=t=>t==="served:app:preview"||t==="served:app";var BS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},GS=async t=>{if(!fL(t))return!1;let e=await hL(t);if(e){let r=new Date(e.timestamp);switch(BS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await kS(t,{timestamp:Date.now()}),!1):!0}}else return await kS(t,{timestamp:Date.now()}),!1},$S=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return mL(t)&&(e=e+":"+Le()),e},hL=async t=>{let e=$S(t);return await si(e)},kS=async(t,e)=>{let r=$S(t),n=BS[t],i;switch(n){case"calendarDay":i=86400}await lr(r,e,i)};var yL=["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 VS.PostHog(e)}async processEvent(e,r,n,i){if(yL.includes(e)||await GS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Le();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var qS=ca;var EL=["installation:version:upgraded","installation:version:downgraded"],TL=["installation","tenant"],la=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new qS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!EL.includes(e)&&!await Uc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!TL.includes(e.type)&&!await Uc()||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 sm=h.SELF_HOSTED&&!h.isDev(),da=class{async processEvent(e,r,n){sm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){sm||console.log("[audit] identified",e)}async identifyGroup(e){sm||console.log("[audit] group identified",e)}async shutdown(){}};var lm={};P(lm,{BudibaseQueue:()=>Er,InMemoryQueue:()=>kc,JobQueue:()=>hs,shutdown:()=>DL});var WS=W(require("events"));function AL(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 kc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new WS.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 Ht.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:ge(),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=>AL(e))}async whenCurrentJobsFinished(){do await Cf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},QS=kc;var um=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 jS(t,e,r){IL(t,e),r&&SL(t,r)}function SL(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 _L={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function IL(t,e){let r=_L[e];function n(i,s){let o=i.data.event?.appId;if(o)return Kp(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 Bc={};P(Bc,{cleanup:()=>OL,clear:()=>am,set:()=>om});var pa=[];function om(t,e){let r=setInterval(t,e);return pa.push(r),r}function am(t){let e=pa.indexOf(t);e!==-1&&pa.splice(e,1),clearInterval(t)}function OL(){for(let t of pa)clearInterval(t);pa=[]}var yr=W(require("dd-trace")),fa=W(require("object-sizeof")),xL=be.fromMinutes(5).toMs(),RL=be.fromSeconds(30).toMs(),cm=be.fromSeconds(60).toMs(),ma=[],Gc;async function HS(){for(let t of ma)await t.clean(cm,"completed"),await t.clean(cm,"failed")}async function wL(t,e,r){let n=performance.now();try{let i=await e();return yr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw yr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;yr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),yr.default.dogstatsd.increment(t,1,r)}}function YS(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}function bL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,fa.default)(t.data),...YS(t.opts||{})}}var Er=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:Xn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:xL,lockRenewTime:RL}};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 um.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new QS(this.jobQueue,r):n=new um.default(this.jobQueue,r),jS(n,this.jobQueue,this.opts.removeStalledCb),ma.push(n),!Gc&&!h.isTest()&&(Gc=om(HS,cm),HS().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 yr.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,...bL(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),yr.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 yr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,fa.default)(e),...YS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},yr.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 wL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function DL(){if(Gc&&am(Gc),ma.length){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 Er("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&&vf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Le(),hostInfo:r.hostInfo},tenantId:Q()})}}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 KS=new la,CL=new da,vL=new gs;function NL(t){return gs.init(t)}var Tr=new ha([KS,CL,vL]);var $c={};P($c,{checkInstallVersion:()=>UL,getInstall:()=>ya,getInstallFromDB:()=>fm});var pm=W(require("semver"));var ya=async()=>jr(Ce.INSTALLATION,86400,fm,{useTenancy:!1});async function PL(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:ge(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return fm();throw r}}var fm=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 PL(t);else throw r}return e}),LL=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},UL=async()=>{let t=await ya(),e=t.version,r=h.VERSION;try{if(e!==r){let n=pm.default.gt(r,e),i=pm.default.lt(r,e);await LL(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ga.upgraded(e,r):i&&await ga.downgraded(e,r)}),await kt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?sa(`Invalid version "${r}" - is it semver?`):sa("Failed to retrieve version",n)}};var ML=async()=>{let t=Cp(),e=Aa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=Ea();return{id:JS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await Vc(Q()),s=Ea();return{id:JS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Vc(Q()),s=await fi(),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:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},FL=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 mm(a,e),await Ta({...a,id:`$${n}_${r}`},e)},kL=async(t,e,r)=>{let n=await Vc(t),i="tenant",s=await fi(),o=Aa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await mm(a,r),await Ta({...a,id:`$${i}_${n}`},r)},BL=async(t,e,r)=>{let n=t._id,i=await Vc(t.tenantId),s="user",o=At(t),a=rn(t),u;qa(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,m=await fi(),p=e?e.hosting:Ea(),f=Aa();await Ta({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},GL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=Aa();if($a(t)){let d=await Bt(t.email);d?._id&&(e=d._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 Tr.identify(t,e)},mm=async(t,e)=>{await Tr.identifyGroup(t,e)},Aa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ea=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>$L()?"account-portal":(await ya()).installId,Vc=async t=>h.SELF_HOSTED?zS(t):t,zS=async t=>qe(t,()=>jr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=oe(),r=await qc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${ge()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),$L=()=>h.SERVICE==="account-portal",JS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,kt={getCurrentIdentity:ML,identifyInstallationGroup:FL,identifyTenantGroup:kL,identifyUser:BL,identifyAccount:GL,identify:Ta,identifyGroup:mm,getInstallationId:fi,getUniqueTenantId:zS};var Wc={};P(Wc,{end:()=>qL,isAlreadySent:()=>ym,isBackfillingEvent:()=>gm,recordEvent:()=>hm,start:()=>VL});var VL=async t=>QL({eventWhitelist:t}),hm=async(t,e)=>{let r=Em(t,e);await lr(r,e,void 0,{useTenancy:!1})},qL=async()=>{await jL(),await HL()},WL=async()=>si(Ce.BACKFILL_METADATA),QL=async t=>lr(Ce.BACKFILL_METADATA,t),jL=async()=>{await Vo(Ce.BACKFILL_METADATA)},HL=async()=>{let t=Em(),e=await uc(t);for(let r of e)await Vo(r,{useTenancy:!1})},gm=async t=>{let r=(await WL())?.eventWhitelist;return!!(r&&r.includes(t))},ym=async(t,e)=>{let r=Em(t,e);return!!await si(r,{useTenancy:!1})},YL={"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}`},Em=(t,e)=>{let r,n=Q();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=YL[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Ar;function Qc(){Ar=new Er("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function ZS(){Ar&&await Ar.close()}async function XS(t){Ar||Qc();let{event:e,identity:r}=t;Ch.indexOf(e)!==-1&&r.tenantId&&await Ar.add(t)}var A=async(t,e,r,n)=>{let i=n||await kt.getCurrentIdentity();if(!(n?!1:await gm(t))){await XS({event:t,identity:i,properties:e,timestamp:r}),await Tr.processEvent(t,i,e,r);return}await ym(t,e)||(await Tr.processEvent(t,i,e,r),await hm(t,e))};async function KL(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function JL(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function zL(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var e_={created:KL,deleted:JL,verified:zL};var ZL=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function XL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function eU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function tU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function rU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function nU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function iU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function sU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function oU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function aU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function uU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function cU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var t_={created:ZL,updated:XL,deleted:eU,published:tU,unpublished:rU,fileImported:nU,duplicated:iU,templateImported:sU,versionUpdated:oU,versionReverted:aU,reverted:uU,exported:cU};async function lU(t,e){let n={userId:(await kt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function dU(t){let r={userId:(await kt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function pU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function fU(t){let e={type:t};await A("auth:sso:updated",e)}async function mU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function hU(t){let e={type:t};await A("auth:sso:deactivated",e)}var jc={login:lU,logout:dU,SSOCreated:pU,SSOUpdated:fU,SSOActivated:mU,SSODeactivated:hU};async function gU(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 yU(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 EU(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 TU(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 AU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function SU(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 _U(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 r_={created:gU,triggerUpdated:yU,deleted:EU,tested:TU,run:AU,stepCreated:SU,stepDeleted:_U};function Tm(t){return!Object.values(Fa).includes(t.source)}async function IU(t,e){let r={datasourceId:t._id,source:t.source,custom:Tm(t)};await A("datasource:created",r,e)}async function OU(t){let e={datasourceId:t._id,source:t.source,custom:Tm(t)};await A("datasource:updated",e)}async function xU(t){let e={datasourceId:t._id,source:t.source,custom:Tm(t)};await A("datasource:deleted",e)}var n_={created:IU,updated:OU,deleted:xU};async function RU(t){let e={};await A("email:smtp:created",e,t)}async function wU(){let t={};await A("email:smtp:updated",t)}var i_={SMTPCreated:RU,SMTPUpdated:wU};async function bU(t){let e={};await A("ai:config:created",e,t)}async function DU(){let t={};await A("ai:config:updated",t)}var s_={AIConfigCreated:bU,AIConfigUpdated:DU};async function CU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function vU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function NU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function PU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function LU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function UU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function MU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var o_={planChanged:CU,activated:vU,checkoutOpened:NU,checkoutSuccess:PU,portalOpened:LU,paymentFailed:UU,paymentRecovered:MU};async function FU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function kU(t){let e={layoutId:t};await A("layout:deleted",e)}var a_={created:FU,deleted:kU};async function BU(t){let e={};await A("org:info:name:updated",e,t)}async function GU(t){let e={};await A("org:info:logo:updated",e,t)}async function $U(t){let e={};await A("org:platformurl:updated",e,t)}async function VU(){let t={};await A("analytics:opt:out",t)}async function qU(){let t={};await A("analytics:opt:out",t)}var u_={nameUpdated:BU,logoUpdated:GU,platformURLUpdated:$U,analyticsOptOut:VU,analyticsOptIn:qU};var WU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},QU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},jU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},HU=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},YU=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},KU=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},c_={created:WU,updated:QU,deleted:jU,imported:HU,run:YU,previewed:KU};async function JU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function zU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function ZU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function XU(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function eM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Sa={created:JU,updated:zU,deleted:ZU,assigned:XU,unassigned:eM};async function tM(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 rM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var l_={created:tM,deleted:rM};var nM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},iM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},d_={created:nM,imported:iM};async function sM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function oM(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 aM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function uM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function cM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var p_={created:sM,updated:oM,deleted:aM,exported:uM,imported:cM};async function lM(t){let e={timezone:t};await A("served:builder",e)}async function dM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function pM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var f_={servedBuilder:lM,servedApp:dM,servedAppPreview:pM};async function fM(t,e){let r={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:created",r,e)}async function mM(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:updated",e)}async function hM(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:deleted",e)}async function gM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function yM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function EM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function TM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function AM(t){let e={audited:{email:t}};await A("user:invited",e)}async function SM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function _M(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function IM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function OM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function xM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function RM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:fM,updated:mM,deleted:hM,permissionAdminAssigned:gM,permissionAdminRemoved:yM,permissionBuilderAssigned:EM,permissionBuilderRemoved:TM,invited:AM,inviteAccepted:SM,passwordForceReset:_M,passwordUpdated:IM,passwordResetRequested:OM,passwordReset:xM,dataCollaboration:RM};async function wM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function bM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function DM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function CM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function vM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function NM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function PM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function LM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function UM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function MM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function FM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var m_={created:wM,updated:bM,deleted:DM,exported:CM,filterCreated:vM,filterUpdated:NM,filterDeleted:PM,calculationCreated:LM,calculationUpdated:UM,calculationDeleted:MM,viewJoinCreated:FM};async function kM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function BM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function GM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function $M(){let t={};await A("installation:firstStartup",t)}var ga={versionChecked:kM,upgraded:BM,downgraded:GM,firstStartup:$M};var Ts=!h.SELF_HOSTED&&!h.isDev();async function VM(t){Ts||await A("app:backfill:succeeded",t)}async function qM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function WM(t){Ts||await A("tenant:backfill:succeeded",t)}async function QM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function jM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function HM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var h_={appSucceeded:VM,appFailed:qM,tenantSucceeded:WM,tenantFailed:QM,installationSucceeded:jM,installationFailed:HM};async function YM(t,e){let r={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function KM(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:updated",e)}async function JM(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function zM(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function ZM(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function XM(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function e0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var g_={created:YM,updated:KM,deleted:JM,usersAdded:zM,usersDeleted:ZM,createdOnboarding:XM,permissionsEdited:e0};async function t0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function r0(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 n0(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 y_={init:t0,imported:r0,deleted:n0};async function i0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function s0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var E_={appBackupRestored:i0,appBackupTriggered:s0};async function o0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function a0(t){let e={name:t};await A("environment_variable:deleted",e)}async function u0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var T_={created:o0,deleted:a0,upgradePanelOpened:u0};async function c0(t){let e={filters:t};await A("audit_log:filtered",e)}async function l0(t){let e={filters:t};await A("audit_log:downloaded",e)}var A_={filtered:c0,downloaded:l0};async function d0(t,e){await A("row_action:created",t,e)}var S_={created:d0};function p0(){}var f0=async()=>{await Tr.shutdown(),console.log("Events shutdown")};var Am=async t=>{await Je.deleted(t),At(t)&&await Je.permissionBuilderRemoved(t),rn(t)&&await Je.permissionAdminRemoved(t)},m0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Sa.assigned(t,i)},h0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Sa.unassigned(t,i)},g0=async(t,e)=>{let r=t.roles,n=e?.roles;await m0(t,r,n),await h0(t,r,n)},Sm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await kt.identifyUser(t,n),e?(await Je.updated(t),E0(t,e)&&await Je.permissionBuilderRemoved(t),A0(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),y0(t,e)&&await Je.permissionBuilderAssigned(t),T0(t,e)&&await Je.permissionAdminAssigned(t),await g0(t,e)},y0=(t,e)=>__(t,e,At),E0=(t,e)=>I_(t,e,At),T0=(t,e)=>__(t,e,rn),A0=(t,e)=>I_(t,e,rn),__=(t,e,r)=>!(!r(t)||e&&r(e)),I_=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};P(Yc,{createASession:()=>_0,endSession:()=>I0,getSession:()=>Im,getSessionsForUser:()=>Hc,invalidateSessions:()=>mi,updateSessionTTL:()=>_m});var O_=require("uuid");var x_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function Hc(t){return t?(await(await Wr()).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 Hc(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 Wr(),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 _0(t,e){await mi(t,{reason:"creation"});let r=await Wr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,O_.v4)(),s=As(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,x_),o}async function _m(t){let e=await Wr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,x_)}async function I0(t,e){await(await Wr()).delete(As(t,e))}async function Im(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Wr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var wm={};P(wm,{PASSWORD_MAX_LENGTH:()=>xm,PASSWORD_MIN_LENGTH:()=>Om,validatePassword:()=>Rm});var Om=+(h.PASSWORD_MIN_LENGTH||12),xm=+(h.PASSWORD_MAX_LENGTH||512);function Rm(t){return!t||t.length<Om?{valid:!1,error:`Password invalid. Minimum ${Om} characters.`}:t.length>xm?{valid:!1,error:`Password invalid. Maximum ${xm} characters.`}:{valid:!0}}var O0=async t=>{let e=t._id;await Mt.removeUser(t),await Am(t),await sn.invalidateUser(e),await mi(e,{reason:"bulk-deletion"})},Kt=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&&tn(e)?!1:await t.features.isSSOEnforced()||qa(e)?!0:(r||(r=await ls(Q())),!!(r&&r.email===e.email&&Va(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 d=Rm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await hf(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 oe().allDocs(oi(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Jc(e,{})).length}}static async getUsersByAppAccess(e){return await bm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Bt(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await Kc(e)}static async bulkUpdate(e){return await _a(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=oe(),{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(m){if(m.status!==404)throw m}if(!c&&s&&(c=await Bt(s),c&&c._id!==o))throw new gr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[m,p]=await pi([c,e]);d=m!==p?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Pc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Dm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Sm(m,c),c&&m.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,m._id,m.email,m.ssoId),await sn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await nm(a),c=[];for(let d of e){if(s.find(m=>m.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await ua(d)&&o.push(d)}let l=await ls(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await _a(d);for(let p of d)await Mt.addUser(n,p._id,p.email),await Sm(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=oe(),n={successful:[],unsuccessful:[]},i=await Lc(e);i&&(e=e.filter(p=>p.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(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await _a(a),l=(await pi(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await aa(p._id)).ssoId;g&&(await xc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await O0(p)}await ct().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=oe(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await en(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 ua(n)?1:0;await t.quotas.removeUsers(1,s),await Am(n),await sn.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 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 Oa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Kc(t,e){let n=(await oe().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Oa(n)),n}async function R0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function w0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`,include_docs:!0})).rows.map(n=>n.doc)}async function _a(t){return await oe().bulkDocs(t)}async function hi(t,e){let n=await oe().get(t);return e?.cleanup&&(n=Oa(n)),n}async function Bt(t,e){if(t==null)throw"Must supply an email address to view";let r=await pr("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=Oa(n)),n}async function b0(t){try{let e=await Bt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Jc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=dc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await pr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Oa(s)),s}async function bm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Hp(cr(),i)).rows}function R_(t,e){if(e)return lc(at(t),e._id)}async function w_(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 pr("by_email2",{...e,startkey:i,endkey:`${n}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Oa(o)),o}var D0=8;async function b_({bookmark:t,query:e,appId:r,limit:n}={}){let i=oe(),s=n??D0,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 Jc(r,a),l=d=>R_(r,d)):e?.string?.email?(u=await w_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Kc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(oi(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=kr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(oi(null,a))).rows.map(m=>m.doc),If(u,s,{paginate:!0,property:c,getKey:l})}async function C0(){return(await Rf("by_email2",{limit:0,include_docs:!1})).total_rows}async function v0(){let t=0;async function e(r){let n=await b_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function N0(t){return delete t.admin,delete t.builder,t}function Dm(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 P0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Kt.save(t,{hashPassword:!1})}async function L0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Kt.save(t,{hashPassword:!1})}var D_=3600;async function U0(t,e){let n=await pf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await en(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function M0(t){let e=await Kt.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 en(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function xa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=U0),!e)try{e=Q()}catch{e=await Mt.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,D_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Kt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function F0(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 M0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,D_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ra(t){await(await Go()).delete(t)}var Pm={};P(Pm,{Writethrough:()=>vm});var C_=1e4,Cm=null;async function zc(){if(!Cm){let t=await lf();Cm=new ri(t)}return Cm}function wa(t,e){return t.name+e}function Nm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function k0(t,e,r=C_){let n=await zc(),i=e._id,s;i&&(s=await n.get(wa(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 d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.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=Nm(a,o?null:s?.lastWrite),a._id&&await n.store(wa(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function B0(t,e){let r=await zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Nm(s),await r.store(n,i)}return i.doc}async function G0(t,e){let r=await zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Nm(s),await r.store(n,i)}return i.doc}async function $0(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(wa(t,i))}finally{await t.remove(i,r)}}var vm=class{constructor(e,r=C_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return k0(this.db,e,r)}async get(e){return B0(this.db,e)}async tryGet(e){return G0(this.db,e)}async remove(e,r){return $0(this.db,e,r)}};var Lm={};P(Lm,{createCode:()=>q0,getCode:()=>W0,invalidateCode:()=>Q0});var V0=be.fromHours(1).toSeconds();async function q0(t,e){let r=ge();return await(await $o()).store(r,{userId:t,info:e},V0),r}async function W0(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 Q0(t){await(await $o()).delete(t)}var Mm={};P(Mm,{DocWritethrough:()=>Um,DocWritethroughProcessor:()=>ba,getProcessor:()=>H0,init:()=>v_});var j0=100,Zc,ba=class t{static get queue(){return t._queue||(t._queue=new Er("docWritethroughQueue",{jobOptions:{attempts:j0}})),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)}},Um=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await ba.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function v_(){return Zc=new ba().init(),Zc}function H0(){return Zc||v_()}function Xc(t){return`config${D}${t}`}async function Gt(t){let e=oe();try{return await e.get(Xc(t))}catch(r){if(r.status===404)return;throw r}}async function Y0(t){return t._id||(t._id=Xc(t.type)),oe().put(t)}async function qc(){let t=await Gt("settings");return t||(t={_id:Xc("settings"),type:"settings",config:{}}),t.config.platformUrl=await Da({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Fc({config:t.config}),t}async function Bm(){return(await qc()).config}async function Da(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Gt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Fc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await jr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Gt("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 K0(){return await Gt("google")}async function el(){return(await K0())?.config}async function Gm(){if(!h.SELF_HOSTED)return Fm();let t=await el();return(!t||!t.activated)&&(t=Fm()),t}function Fm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function J0(){return Gt("logos_oidc")}async function z0(){return Gt("oidc")}async function Z0(){let t=(await z0())?.config;return t?.configs&&t.configs[0]}async function $m(t){let e=(await Gt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function N_(){return Gt("smtp")}async function X0(t){let e=await N_();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 eF(){return(await Gt("scim"))?.config}async function tF(){return Gt("ai")}var zm={};P(zm,{AccessController:()=>Wm,BUILTIN_ROLE_IDS:()=>Qm,Role:()=>on,RoleHierarchyTraversal:()=>tl,RoleIDVersion:()=>jm,builtinRoleToNumber:()=>Ca,checkForRoleResourceArray:()=>M_,externalRole:()=>aF,findRole:()=>va,getAllRoleIds:()=>dF,getAllRoles:()=>Jm,getBuiltinRole:()=>L_,getBuiltinRoles:()=>Ym,getDBRoleID:()=>F_,getExternalRoleID:()=>an,getExternalRoleIDs:()=>k_,getRole:()=>uF,getUserRoleHierarchy:()=>Km,getUserRoleIdHierarchy:()=>U_,isBuiltin:()=>gi,lowerBuiltinRoleID:()=>oF,prefixRoleIDNoBuiltin:()=>qm,roleIDsAreEqual:()=>_t,roleToNumber:()=>sF,saveRoles:()=>cF,validInherits:()=>iF});var Vm=W(require("semver"));var rl=W(require("lodash/fp/cloneDeep"));var P_=require("lodash");var Qm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},me={...Qm,BUILDER:"BUILDER"},jm={UUID:void 0,NAME:"name"};function nF(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var on=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=jm.NAME}addInheritance(e){return e&&typeof e=="string"?e=qm(e):e&&Array.isArray(e)&&(e=e.map(qm)),this.inherits=e,this}},tl=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=va(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!nF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=va(o.inherits,n,r),o&&i.push(o),Ht.roles.checkForRoleInheritanceLoops(i))break}}return(0,P_.uniqBy)(i,s=>s._id)}},Hm={ADMIN:new on(me.ADMIN,me.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(me.POWER),POWER:new on(me.POWER,me.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(me.BASIC),BASIC:new on(me.BASIC,me.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(me.PUBLIC),PUBLIC:new on(me.PUBLIC,me.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new on(me.BUILDER,me.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Ym(){return(0,rl.default)(Hm)}function gi(t){return Object.values(Qm).includes(t)}function qm(t){return gi(t)?t:dr(t)}function L_(t){let e=Object.values(Hm).find(r=>t.includes(r._id));if(e)return(0,rl.default)(e)}function iF(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 Ca(t){let e=Ym(),r=Object.values(e).length+1;if(_t(t,me.ADMIN)||_t(t,me.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 sF(t){if(gi(t))return Ca(t);let e=await Km(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 Ca(n.inherits)+1;return 0};return Math.max(...e.map(r))}function oF(t,e){return t?e&&Ca(t)>Ca(e)?e:t:e}function _t(t,e){return dr(t)===dr(e)}function aF(t){let e;return t._id&&(e=an(t._id)),{...t,_id:e,inherits:k_(t.inherits,t.version)}}function va(t,e,r){let n=L_(t);n||(t=dr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!gi(t)&&r?.defaultPublic?(0,rl.default)(Hm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=an(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function uF(t,e){let r=Xi(),n=[];if(!gi(t)){let i=await r.tryGet(F_(t));i&&n.push(i)}return va(t,n,e)}async function cF(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:dr(r._id)})))}async function lF(t,e){let r=await Jm();if(_t(t,me.ADMIN))return r;let n=va(t,r,e),i=[];return n&&(i=new tl(r,e).walk(n)),i}async function U_(t){return(await Km(t)).map(r=>r._id)}async function Km(t,e){return lF(t,e)}function M_(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 dF(t){return(await Jm(t)).map(r=>r._id)}async function Jm(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(pc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=an(a._id,a.version)));let i=Ym(),s=[];!r||await pF(r)?s=[me.ADMIN,me.POWER,me.BASIC,me.PUBLIC]:s=[me.ADMIN,me.BASIC,me.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=an(a._id,u.version),n.push({...a,...u,name:a.name,_id:an(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=M_(o.permissions,a);return n}}async function pF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Vm.default.valid(r)?!0:!Vm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Wm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,me.BUILDER)||_t(r,e)||_t(r,me.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await U_(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 F_(t){return t?.startsWith("role")?t:dr(t)}function an(t,e){if(t.startsWith(`role${D}`)&&(gi(t)||e===jm.NAME)){let r=t.split(D);return r.shift(),r.join(D)}return t}function k_(t,e){return t&&(typeof t=="string"?an(t,e):t.map(r=>an(r,e)))}var Zm={};P(Zm,{BUILDER:()=>yF,BUILTIN_PERMISSIONS:()=>nl,CREATOR:()=>EF,GLOBAL_BUILDER:()=>TF,PermissionImpl:()=>he,PermissionLevel:()=>xs,PermissionType:()=>Ga,doesHaveBasePermission:()=>hF,getAllowedLevels:()=>V_,getBuiltinPermissionByID:()=>mF,getBuiltinPermissions:()=>fF,isPermissionLevelHigherThanRead:()=>gF,levelToNumber:()=>$_});var B_=W(require("lodash/flatten")),G_=W(require("lodash/fp/cloneDeep")),he=class{constructor(e,r){this.type=e,this.level=r}};function $_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function V_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var nl={PUBLIC:{_id:"public",name:"Public",permissions:[new he("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new he("query","read"),new he("table","read"),new he("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new he("query","write"),new he("table","write"),new he("automation","execute"),new he("legacy_view","read"),new he("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new he("table","write"),new he("user","read"),new he("automation","execute"),new he("webhook","read"),new he("legacy_view","read"),new he("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new he("table","admin"),new he("user","admin"),new he("automation","admin"),new he("webhook","read"),new he("query","admin"),new he("legacy_view","read"),new he("app","read")]}};function fF(){return(0,G_.default)(nl)}function mF(t){return Object.values(nl).find(r=>r._id===t)}function hF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(nl),s=(0,B_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&V_(o.level).indexOf(e)!==-1)return!0;return!1}function gF(t){return $_(t)>1}var yF="builder",EF="creator",TF="globalBuilder";var th={};P(th,{FlagSet:()=>sl,all:()=>IF,flags:()=>Xm,getEnvFlags:()=>j_,init:()=>AF,isEnabled:()=>_F,parseEnvFlags:()=>al,shutdown:()=>SF,testutils:()=>eh});var ol=W(require("crypto"));var q_=require("posthog-node"),W_=W(require("dd-trace"));var Q_=require("lodash");var il;function AF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),il=new q_.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 SF(){il?.shutdown()}function al(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 al(h.TENANT_FEATURE_FLAGS||"")}var sl=class{constructor(e){this.flagSchema=e;this.setId=ol.randomUUID()}defaults(){return(0,Q_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await W_.default.trace("features.fetch",async e=>{let r=Xp(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:d,key:m,value:p}of j_())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,p===!1&&o.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=p,n[`flags.${m}.source`]="environment"}let a=ur(),u=a?._id;if(!u){let d=zp();d&&(u=ol.createHash("sha512").update(d).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,il&&u){n.readFromPostHog=!0;let d={tenantId:c},m=await il.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[p,f]of Object.entries(m))if(this.isFlagName(p)){if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${f}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=f,n[`flags.${p}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${p}": ${f}`,g)}}}let l=tf();for(let[d,m]of Object.entries(l))this.isFlagName(d)&&typeof m=="boolean"&&(i[d]=m,n[`flags.${d}.source`]="override");ef(this.setId,i);for(let[d,m]of Object.entries(i))n[`flags.${d}.value`]=m;return e?.addTags(n),i})}},Xm=new sl(Uh);async function _F(t){return await Xm.isEnabled(t)}async function IF(){return await Xm.fetch()}var eh={};P(eh,{setFeatureFlags:()=>H_,withFeatureFlags:()=>RF});function OF(){let t={};for(let{tenantId:e,key:r,value:n}of al(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function xF(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 H_(t,e){let r=OF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=xF(r);return Ro({TENANT_FEATURE_FLAGS:n})}function RF(t,e,r){let n=H_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var fh={};P(fh,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,buildAuthMiddleware:()=>mk,buildCsrfMiddleware:()=>gk,buildTenancyMiddleware:()=>hk,builderOnly:()=>Al,builderOrAdmin:()=>Tl,google:()=>Sr,internalApi:()=>gl,joiValidator:()=>Pa,oidc:()=>_r,passport:()=>yk,platformLogout:()=>_k,refreshOAuthToken:()=>Ak,ssoCallbackUrl:()=>un,updateUserOAuth:()=>Sk});var ph={};P(ph,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,authenticated:()=>fl,builderOnly:()=>Al,builderOrAdmin:()=>Tl,correlation:()=>aI,csp:()=>fI,csrf:()=>yl,datasource:()=>pk,errorHandling:()=>cI,featureFlagCookie:()=>mI,google:()=>Sr,internalApi:()=>gl,ip:()=>gI,joiValidator:()=>Pa,local:()=>Ss,oidc:()=>_r,pino:()=>sI,querystringToBody:()=>lI,ssoCallbackUrl:()=>un,tenancy:()=>hl});var Ss={};P(Ss,{authenticate:()=>DF,options:()=>bF});function Me(t,e,r){return t(r,null,{message:e})}async function un(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Bm(),n="/api/global/auth";return qr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var rh="Invalid credentials",wF="This account has expired. Please reset your password",bF={passReqToCallback:!0};async function DF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Bt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,rh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,rh)):i.password?await gf(r,i.password)?(delete i.password,n(null,i)):Me(n,rh):(console.info(`user=${e} has no password set`,i),Me(n,wF))}var Sr={};P(Sr,{buildVerifyFn:()=>J_,getCallbackUrl:()=>NF,strategyFactory:()=>nh});var Na=t=>Promise.resolve(t);async function ul(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 hi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Bt(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:Q()});let o=await CF(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 CF(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 vF=require("passport-google-oauth").OAuth2Strategy;function J_(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 ul(s,!0,i,t)}}async function nh(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=J_(r);return new vF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function NF(t){return un("google",t)}var _r={};P(_r,{buildVerifyFn:()=>Z_,fetchStrategyConfig:()=>MF,getCallbackUrl:()=>FF,strategyFactory:()=>UF});var z_=W(require("node-fetch"));var PF=require("@techpass/passport-openidconnect").Strategy;function Z_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:LF(n,i),oauth2:{accessToken:s,refreshToken:o}};return ul(l,!1,c,t)}}function LF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Nf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function UF(t,e){try{let r=Z_(e),n=new PF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function MF(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,z_.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 FF(){return un("oidc")}var ih={};P(ih,{postAuth:()=>GF,preAuth:()=>BF});var kF=require("passport-google-oauth").OAuth2Strategy;async function X_(){let t=await Gm();if(!t)throw new Error("No google configuration found");return t}async function BF(t,e,r){let n=await X_(),s=`${await Da({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await nh(n,s,Na);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 GF(t,e,r){let n=await X_(),s=`${await Da({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=mr(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)=>{Kr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=ge();await lr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var $F=/\/:(.*?)(\/.*)?$/g,yi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match($F);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 lh={};P(lh,{SecretOption:()=>rI,decrypt:()=>ch,decryptFile:()=>HF,encrypt:()=>WF,encryptFile:()=>QF,getSecret:()=>uh});var Ir=W(require("crypto")),cn=W(require("fs")),oh=W(require("zlib"));var sh=require("path"),cl="aes-256-ctr",tI="-",VF=1e4,qF=32,ll=16,ah=16,rI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(rI||{});function uh(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 dl(t,e){return Ir.default.pbkdf2Sync(t,e,VF,qF,"sha512")}function WF(t,e="api"){let r=Ir.default.randomBytes(ll),n=dl(uh(e),r),i=Ir.default.createCipheriv(cl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${tI}${a}`}function ch(t,e="api"){let[r,n]=t.split(tI),i=Buffer.from(r,"hex"),s=dl(uh(e),i),o=Ir.default.createDecipheriv(cl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function QF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,sh.join)(t,e);if(cn.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=cn.default.createReadStream(i),o=cn.default.createWriteStream((0,sh.join)(t,n)),a=Ir.default.randomBytes(ll),u=Ir.default.randomBytes(ah),c=dl(r,a),l=Ir.default.createCipheriv(cl,c,u);return o.write(a),o.write(u),s.pipe(oh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function jF(t){let e=cn.default.createReadStream(t),r=await eI(e,ll),n=await eI(e,ah);return e.close(),{salt:r,iv:n}}async function HF(t,e,r){if(cn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await jF(t),s=cn.default.createReadStream(t,{start:ll+ah}),o=cn.default.createWriteStream(e),a=dl(r,n),u=Ir.default.createDecipheriv(cl,a,i),c=oh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),d(m)}),u.on("error",m=>{o.close(),d(m)}),c.on("error",m=>{o.close(),d(m)}),o.on("error",m=>{o.close(),d(m)})})}function eI(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 iI=W(require("dd-trace")),YF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function KF(){return new Date(Date.now()-YF).toISOString()}function nI(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 JF(t,e){if(Zo(t))return{valid:!0,user:void 0};let n=ch(t).split(D)[0];return qe(n,async()=>{let i;try{let s=oe();i=await pr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await xa({userId:i,tenantId:n,populateUser:e})};throw new fs})}function pl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function fl(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=pl(n,"x-budibase-api-version");Ei(n,r)&&(s=!0);try{let u=pl(n,"x-budibase-token"),c=mr(n,"budibase:auth")||mc(u),l=pl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=pl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,I;try{I=await Im(S,y),e&&e.populateUser?p=await xa({userId:S,tenantId:I.tenantId,email:I.email,populateUser:e.populateUser(n)}):p=await xa({userId:S,tenantId:I.tenantId,email:I.email}),p.csrfToken=I.csrfToken,g="cookie",I?.lastAccessedAt<KF()&&await _m(I),m=!0}catch(R){m=!1,console.error(`Auth Error: ${R.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:I}=await JF(l,y);S&&(m=!0,g="api_key",p=I,f=!I)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&iI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),nI(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Np(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Kr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return nI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var zF=async(t,e)=>e(),ml=zF;function hl(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=Wo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var gl=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 ZF=["GET","HEAD","OPTIONS"],XF=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function yl(t={noCsrfPatterns:[]}){let e=yi(t.noCsrfPatterns);return async(r,n)=>{if(Ei(r,e)||ZF.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!XF.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 El=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Tl=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?At:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!tn(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var Al=async(t,e)=>{let r=Le(),n=h.isWorker()||!r?At: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 ek=require("koa-pino-logger"),tk=require("correlation-id");function rk(){return{logger:Ic,genReqId:tk.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 nk(){return h.HTTP_LOGGING?ek(rk()):(t,e)=>e()}var ik=nk(),sI=ik;var oI=require("uuid"),sk=require("correlation-id"),ok=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,oI.v4)()),sk.withId(r,()=>e())},aI=ok;function uI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of MT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function ak(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:Cc(r)};if(uI(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 cI=ak;function lI(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 pI=W(require("crypto"));var dI={"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'"]},uk=/^[A-Za-z0-9-*:/.]+$/,ck=async(t,e)=>{let r=pI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...dI};if(n["script-src"]=[...dI["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=>uk.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()},fI=ck;var mI=async(t,e)=>{let n=mr(t,"budibase:featureflags")?.flags||{};await rf(n,async()=>{await e()})};var Pa={};P(Pa,{body:()=>lk,params:()=>dk});var dh=W(require("joi"));function hI(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:dh.default.any().optional(),updatedAt:dh.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 lk(t,e){return hI(t,"body",e)}function dk(t,e){return hI(t,"params",e)}var gI=async(t,e)=>t.ip?await Zp(t.ip,()=>e()):e();var pk={google:ih};var yI=require("koa-passport"),fk=require("passport-local").Strategy,Sl=require("passport-oauth2-refresh"),mk=fl,hk=hl,gk=yl,yk=yI;yI.use(new fk(Ss.options,Ss.authenticate));async function Ek(t,e){let r=await _r.getCallbackUrl(),n,i;try{if(n=await _r.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await _r.strategyFactory(n,Na)}catch{throw new Error("Could not refresh OAuth Token")}return Sl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Sl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Tk(t,e){let r=await Sr.getCallbackUrl(t),n;try{n=await Sr.strategyFactory(t,r,Na)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Sl.use(n),new Promise(i=>{Sl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Ak(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await $m(r);return n?Ek(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await el();return n?Tk(n,t):{err:{data:"Google configuration not found"}}}}}async function Sk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=oe(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Ra(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function _k(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=mr(e,"budibase:auth"),s=await Hc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await jc.logout(e.user?.email),await Ra(r)}var hh={};P(hh,{validate:()=>wk});var v=W(require("joi")),Ik=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function mh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Ok(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});mh(e,t)}function xk(t){let e=v.default.object({type:v.default.string().allow(...Object.values(Rl)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values(xl)),readable:v.default.boolean(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(wl).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...Ik),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});mh(n,t)}function Rk(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(ee)).required(),customType:v.default.string().allow(...Object.values(pe)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...Mh).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});mh(n,t)}function wk(t){switch(t?.type){case"component":Ok(t);break;case"datasource":xk(t);break;case"automation":Rk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var gh={};P(gh,{Client:()=>We,clients:()=>Qr,locks:()=>ci,utils:()=>ic});var yh={};P(yh,{isBlacklisted:()=>Dk,refreshBlacklist:()=>SI});var EI=W(require("dns")),Il=W(require("net"));var TI=require("util"),_l,bk=(0,TI.promisify)(EI.default.lookup);async function AI(t){return Il.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await bk(t,{all:!0})).map(r=>r.address)}async function SI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Il.default.isIP(i))r.push(i);else{let s=await AI(i);r=r.concat(s)}}_l=r}async function Dk(t){if(_l||await SI(),_l?.length===0)return!1;let e;return Il.default.isIP(t)?e=[t]:e=await AI(t),!!_l?.find(r=>e.includes(r))}var Th={};P(Th,{init:()=>vk});var Ck={"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 _I(t,e){let r=Ck[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=_I(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 ZS()}};var II,Eh;function vk(t){Ar||Qc(),Eh||(Eh=new La(t)),II||(II=Ar.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Eh.processEvent(r,n,i)}))}var bh={};P(bh,{COUNT_FIELD_NAME:()=>Rh,Sql:()=>NI,SqlTable:()=>Ol,designDoc:()=>wh,utils:()=>Qp});var wI=require("knex");var Nk=require("knex");function Ah(t){return["link","formula","ai"].indexOf(t)!==-1}function OI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,p]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=p.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":p.timeOnly?t.time(m):t.datetime(m,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Ht.schema.isDeprecatedSingleUserColumn(p)?t.text(m):t.json(m);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Gp(p.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],I=y.schema[S].externalType;I?t.specificType(p.foreignKey,I):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(m);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:Ci.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Ah(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!Ah(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||Ah(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Lk(t,e,r){return t.createTable(e.name,n=>{OI(n,e,r)})}function Uk(t,e,r,n,i){return t.alterTable(e.name,s=>{OI(s,e,r,n,i)})}function Mk(t,e){return t.dropTable(e.name)}var Sh=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,Nk.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=Lk(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=Uk(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=Mk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},Ol=Sh;var bI=require("lodash"),Rh="__bb_total";function xI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function _h(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Fk(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 DI(t){return Array.isArray(t)?t.map(e=>DI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function RI(t){return t.sourceType==="internal"||t.sourceId===Nl}function kk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function CI(t,e='"'){return`${e}${kk(t,e)}${e}`}function Ih(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=CI(t[r],e));return`[${t.join(",")}]`}function vI(t){return kh.includes(t.type)&&!Ht.schema.isDeprecatedSingleUserColumn(t)}var Bk={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},Oh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new kr.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()&&vI(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(!qp(e))return null}else if(r.dateOnly){let n=Vp(e);return n?new Date(n):null}else return r.ignoreTimezones?ec(e)?new Date(e.trim()):$p(e)?new Date(e.trim()+"Z"):null:ec(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,bI.cloneDeep)(e);for(let r of Object.values(xr)){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(fn)){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=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),S=Wp(d),I;if(f?I=n:I=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),S){let R=a?.[S.through]||d.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${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(I,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(R,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(I,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(f){return s?.[f]||f}function l(f,g,E,y){let S=(I,R,T)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return I.andWhere(de=>E(de,k?`${k}.${b}`:b,T))};for(let I in f){let R=f[I],T=zo(I),_=T.includes("."),B=n?.relationship&&_,b;if(I==="_complexIdOperator"&&(b=f[I])&&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,Bk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,S,I)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ih(I,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ih(I))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,S,I)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(CI(Ih(I)))])):l(f,"contains",(y,S,I)=>(I.length===0||(y=y.where(R=>(f===r?.notContains&&(R=R.not),R=R.where(T=>{for(let _ of I){f===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}%`)}}),f===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let I of S)I!=null?f=f.or.whereLike(g,`${I.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,S)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,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=tc(E.low),I=tc(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&&(f=f.or),S&&I?f.whereBetween(T,[B,_]):S?f.where(T,">=",B):I?f.where(T,"<=",_):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(I=>I.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(I=>I.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!Bp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Rr(r.documentType)}%`),e}isSqs(){return RI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;RI(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 ${Rh}`)}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 d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,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 d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let S=c[m];if(!S)throw new Error(`related table "${m}" not found in datasource`);let I=a?.[m]||m,R=a?.[r]||r,T=p&&a?.[p]||p,_=this.tableNameWithSchema(m,{alias:I,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=Fk(l.filter(V=>V.split(".")[0]===I),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 ae=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ae}??`,[V[0],V[1]]).toString()}).join(","),ln=`${I}.${y||f}`,$=s.from(_).orderBy(ln),O=p&&y&&E,N=O?`${T}.${g}`:`${I}.${f}`,q=O?`${R}.${E}`:`${R}.${g}`;if(O){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${I}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(q));let M=V=>($=$.select(b.map(ae=>this.rawQuotedIdentifier(ae))).limit(_h()),s.select(V).from({[I]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),Y=M(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":Y=M(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${_h()})`));break;case"mysql2":case"oracledb":Y=M(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ae=>s.ref(ae[1]).as(ae[0]))).limit(_h())});Y=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(I)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.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,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${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 p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}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 d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,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())}},xh=class extends Ol{constructor(r,n=xI()){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=DI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,wI.knex)(s),a,u=new Oh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:xI()}});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 d=[];for(let m of a)d.push(await n(m,o));return d}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 d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,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===Nl){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(!vI(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)}},NI=xh;var wh={};P(wh,{base:()=>Gk});function Gk(t){return{_id:ar,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var $k={...Qo,...Se},Vk=(t={})=>{Zu(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,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