@budibase/backend-core 3.7.5 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- "use strict";var wO=Object.create;var Ga=Object.defineProperty;var bO=Object.getOwnPropertyDescriptor;var DO=Object.getOwnPropertyNames;var CO=Object.getPrototypeOf,vO=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)Ga(t,r,{get:e[r],enumerable:!0})},Ch=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of DO(e))!vO.call(t,i)&&i!==r&&Ga(t,i,{get:()=>e[i],enumerable:!(n=bO(e,i))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?wO(CO(t)):{},Ch(e||!t||!t.__esModule?Ga(r,"default",{value:t,enumerable:!0}):r,t)),NO=t=>Ch(Ga({},"__esModule",{value:!0}),t);var tg=H((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 F=["th","st","nd","rd"],C=$%100;return"["+$+(F[(C-20)%10]||F[C]||F[0])+"]"}},y=function($,F,C){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(C)+$},S={s:y,z:function($){var F=-$.utcOffset(),C=Math.abs(F),q=Math.floor(C/60),L=C%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(L,2,"0")},m:function $(F,C){if(F.date()<C.date())return-$(C,F);var q=12*(C.year()-F.year())+(C.month()-F.month()),L=F.clone().add(q,c),K=C-L<0,V=F.clone().add(q+(K?-1:1),c);return+(-(q+(C-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}},_="en",M={};M[_]=E;var T="$isDayjsObject",O=function($){return $ instanceof le||!(!$||!$[T])},x=function $(F,C,q){var L;if(!F)return _;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),C&&(M[K]=C,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&&(_=L),L||!q&&_},w=function($,F){if(O($))return $.clone();var C=typeof F=="object"?F:{};return C.date=$,C.args=arguments,new le(C)},B=S;B.l=x,B.i=O,B.w=function($,F){return w($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var le=function(){function $(C){this.$L=x(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(C){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,Ie=(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,Ie)):new Date(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Ie)}}return new Date(L)}(C),this.init()},F.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(C,q){var L=w(C);return this.startOf(q)<=L&&L<=this.endOf(q)},F.isAfter=function(C,q){return w(C)<this.startOf(q)},F.isBefore=function(C,q){return this.endOf(q)<w(C)},F.$g=function(C,q,L){return B.u(C)?this[q]:this.set(L,C)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(C,q){var L=this,K=!!B.u(q)||q,V=B.p(C),se=function(ln,We){var Sr=B.w(L.$u?Date.UTC(L.$y,We,ln):new Date(L.$y,We,ln),L);return K?Sr:Sr.endOf(a)},Ie=function(ln,We){return B.w(L.toDate()[ln].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(We)),L)},Ce=this.$W,W=this.$M,dt=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case d:return K?se(1,0):se(31,11);case c:return K?se(1,W):se(0,W+1);case u:var cn=this.$locale().weekStart||0,xs=(Ce<cn?Ce+7:Ce)-cn;return se(K?dt-xs:dt+(6-xs),W);case a:case m:return Ie(Ei+"Hours",0);case o:return Ie(Ei+"Minutes",1);case s:return Ie(Ei+"Seconds",2);case i:return Ie(Ei+"Milliseconds",3);default:return this.clone()}},F.endOf=function(C){return this.startOf(C,!1)},F.$set=function(C,q){var L,K=B.p(C),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],Ie=K===a?this.$D+(q-this.$W):q;if(K===c||K===d){var Ce=this.clone().set(m,1);Ce.$d[se](Ie),Ce.init(),this.$d=Ce.set(m,Math.min(this.$D,Ce.daysInMonth())).$d}else se&&this.$d[se](Ie);return this.init(),this},F.set=function(C,q){return this.clone().$set(C,q)},F.get=function(C){return this[B.p(C)]()},F.add=function(C,q){var L,K=this;C=Number(C);var V=B.p(q),se=function(W){var dt=w(K);return B.w(dt.date(dt.date()+Math.round(W*C)),K)};if(V===c)return this.set(c,this.$M+C);if(V===d)return this.set(d,this.$y+C);if(V===a)return se(1);if(V===u)return se(7);var Ie=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,Ce=this.$d.getTime()+C*Ie;return B.w(Ce,this)},F.subtract=function(C,q){return this.add(-1*C,q)},F.format=function(C){var q=this,L=this.$locale();if(!this.isValid())return L.invalidDate||p;var K=C||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Ie=this.$m,Ce=this.$M,W=L.weekdays,dt=L.months,Ei=L.meridiem,cn=function(We,Sr,Rs,Ba){return We&&(We[Sr]||We(q,K))||Rs[Sr].slice(0,Ba)},xs=function(We){return B.s(se%12||12,We,"0")},ln=Ei||function(We,Sr,Rs){var Ba=We<12?"AM":"PM";return Rs?Ba.toLowerCase():Ba};return K.replace(g,function(We,Sr){return Sr||function(Rs){switch(Rs){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return Ce+1;case"MM":return B.s(Ce+1,2,"0");case"MMM":return cn(L.monthsShort,Ce,dt,3);case"MMMM":return cn(dt,Ce);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return cn(L.weekdaysMin,q.$W,W,2);case"ddd":return cn(L.weekdaysShort,q.$W,W,3);case"dddd":return W[q.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return xs(1);case"hh":return xs(2);case"a":return ln(se,Ie,!0);case"A":return ln(se,Ie,!1);case"m":return String(Ie);case"mm":return B.s(Ie,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}(We)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(C,q,L){var K,V=this,se=B.p(q),Ie=w(C),Ce=(Ie.utcOffset()-this.utcOffset())*e,W=this-Ie,dt=function(){return B.m(V,Ie)};switch(se){case d:K=dt()/12;break;case c:K=dt();break;case l:K=dt()/3;break;case u:K=(W-Ce)/6048e5;break;case a:K=(W-Ce)/864e5;break;case o:K=W/r;break;case s:K=W/e;break;case i:K=W/t;break;default:K=W}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(C,q){if(!C)return this.$L;var L=this.clone(),K=x(C,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()},$}(),un=le.prototype;return w.prototype=un,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){un[$[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=O,w.unix=function($){return w(1e3*$)},w.en=M[_],w.Ls=M,w.p={},w})});var xt=H(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.Err=je.Valid=je.err=je.valid=void 0;var nx=t=>new ou(t);je.valid=nx;var ix=t=>new au(t);je.err=ix;var ou=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,je.valid)(e(this.value))}mapErr(e){return(0,je.valid)(this.value)}};je.Valid=ou;var au=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,je.err)(this.error)}mapErr(e){return(0,je.err)(e(this.error))}};je.Err=au});var Rt=H(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0})});var Cr=H(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Vt();var re=xt();Rt();var sx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],ox=["sun","mon","tue","wed","thu","fri","sat"],ax=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ls=(t,e,r)=>{if(e==="months"&&r.useAliases&&sx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&ox.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)},ux=(t,e,r)=>{if(t==="*")return ax(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):Ls(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):Ls(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."):Ls(n,e,r)}return Ls(t,e,r)},og=(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):Ls(t,e,r),cx=(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 ux(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,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)")},lx=(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=cx(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)},dx=(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(lx(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)};Wl.default=dx});var ag=H(Ms=>{"use strict";var px=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Vt();var fx=xt(),mx=px(Cr());Rt();var hx=(t,e)=>{if(!t.seconds)return(0,fx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,mx.default)(r,"seconds",e)};Ms.default=hx});var ug=H(ks=>{"use strict";var gx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var yx=xt(),Ex=gx(Cr());Rt();var Tx=(t,e)=>{if(!t.minutes)return(0,yx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Ex.default)(r,"minutes",e)};ks.default=Tx});var cg=H(Fs=>{"use strict";var Ax=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var _x=xt(),Sx=Ax(Cr());Rt();var Ox=(t,e)=>{if(!t.hours)return(0,_x.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Sx.default)(r,"hours",e)};Fs.default=Ox});var lg=H(Gs=>{"use strict";var Ix=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=xt(),xx=Ix(Cr());Rt();var Rx=(t,e)=>{if(!t.daysOfMonth)return(0,Bs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&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.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Bs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Bs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,xx.default)(r,"daysOfMonth",e)};Gs.default=Rx});var dg=H($s=>{"use strict";var wx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var bx=xt(),Dx=wx(Cr());Rt();var Cx=(t,e)=>{if(!t.months)return(0,bx.err)(["months field is undefined."]);let{months:r}=t;return(0,Dx.default)(r,"months",e)};$s.default=Cx});var pg=H(qs=>{"use strict";var vx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});Vt();var Vs=xt(),Nx=vx(Cr());Rt();var Px=(t,e)=>{if(!t.daysOfWeek)return(0,Vs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Vs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Vs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Nx.default)(r,"daysOfWeek",e)};qs.default=Px});var fg=H(Ws=>{"use strict";var Ux=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});Vt();var Lx=xt(),Mx=Ux(Cr());Rt();var kx=(t,e)=>{if(!t.years)return(0,Lx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Mx.default)(r,"years",e)};Ws.default=kx});var yg=H((EW,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 Qs=H(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=Wx;var Fx=Object.prototype.toString,Bx=Error.prototype.toString,Gx=RegExp.prototype.toString,$x=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Vx=/^Symbol\((.*)\)(.*)$/;function qx(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 qx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return $x.call(t).replace(Vx,"Symbol($1)");let n=Fx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Bx.call(t)+"]":n==="RegExp"?Gx.call(t):null}function Wx(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 Xt=H(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.default=ve.array=ve.object=ve.boolean=ve.date=ve.number=ve.string=ve.mixed=void 0;var Tg=Qx(Qs());function Qx(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"};ve.mixed=Ag;var _g={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"};ve.string=_g;var Sg={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"};ve.number=Sg;var Og={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};ve.date=Og;var Ig={isValue:"${path} field must be ${value}"};ve.boolean=Ig;var xg={noUnknown:"${path} field has unspecified keys: ${unknown}"};ve.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"};ve.array=Rg;var jx=Object.assign(Object.create(null),{mixed:Ag,string:_g,number:Sg,date:Og,object:xg,array:Rg,boolean:Ig});ve.default=jx});var vi=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var Hx=t=>t&&t.__isYupSchema__;uu.default=Hx});var bg=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.default=void 0;var Yx=wg(require("lodash/has")),Kx=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,Yx.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,Kx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Jx=Yl;cu.default=Jx});var Jl=H(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=zx;function zx(t){return t==null?[]:[].concat(t)}});var Dn=H(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var Zx=Dg(Qs()),Xx=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 eR=/\$\{\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(eR,(i,s)=>(0,Zx.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,Xx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};lu.default=Zl});var du=H(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=nR;var Xl=tR(Dn());function tR(t){return t&&t.__esModule?t:{default:t}}var rR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function nR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=rR(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 js=H((RW,Ug)=>{"use strict";function Cn(t){this._maxSize=t,this.clear()}Cn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Cn.prototype.get=function(t){return this._values[t]};Cn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var iR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Pg=/^\d+$/,sR=/^\d/,oR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,aR=/^\s*(['"]?)(.*?)(\1)\s*$/,nd=512,Cg=new Cn(nd),vg=new Cn(nd),Ng=new Cn(nd);Ug.exports={Cache:Cn,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){uR(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(aR,"$2")}))}function rd(t){return t.match(iR)||[""]}function uR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(dR(i)&&(i='"'+i+'"'),a=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 cR(t){return t.match(sR)&&!t.match(Pg)}function lR(t){return oR.test(t)}function dR(t){return!id(t)&&(cR(t)||lR(t))}});var vn=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=fR;Ys.default=void 0;var pR=js(),pu={context:"$",value:"."};function fR(t,e){return new Hs(t,e)}var Hs=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===pu.context,this.isValue=this.key[0]===pu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?pu.context:this.isValue?pu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,pR.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}};Ys.default=Hs;Hs.prototype.__isYupRef=!0});var Lg=H(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=yR;var mR=sd(require("lodash/mapValues")),fu=sd(Dn()),hR=sd(vn());function sd(t){return t&&t.__esModule?t:{default:t}}function mu(){return mu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},mu.apply(this,arguments)}function gR(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 yR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=gR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(O){return hR.default.isRef(O)?O.getValue(i,g,E):O}function S(O={}){let x=(0,mR.default)(mu({value:i,originalValue:u,label:o,path:O.path||s},p,O.params),y),w=new fu.default(fu.default.formatError(O.message||f,x),i,x.path,O.type||d);return w.params=x,w}let _=mu({path:s,parent:g,type:d,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(_,i,_)).then(O=>{fu.default.isError(O)?n(O):O?n(null,O):n(S())})}catch(O){n(O)}return}let M;try{var T;if(M=m.call(_,i,_),typeof((T=M)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(O){n(O);return}fu.default.isError(M)?n(M):M?n(null,M):n(S())}return e.OPTIONS=t,e}});var ad=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=Mg;Ks.default=void 0;var ER=js(),TR=t=>t.substr(0,t.length-1).substr(1);function Mg(t,e,r,n=r){let i,s,o;return e?((0,ER.forEach)(e,(a,u,c)=>{let l=u?TR(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 AR=(t,e,r,n)=>Mg(t,e,r,n).schema,_R=AR;Ks.default=_R});var Fg=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var kg=SR(vn());function SR(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){kg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){kg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};hu.default=ud});var tr=H(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.default=void 0;var Bg=er(yg()),Ni=Xt(),OR=er(bg()),Gg=er(du()),gu=er(Lg()),$g=er(Qs()),IR=er(vn()),xR=ad(),RR=er(Jl()),Vg=er(Dn()),qg=er(Fg());function er(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}".
1
+ "use strict";var wI=Object.create;var Ga=Object.defineProperty;var bI=Object.getOwnPropertyDescriptor;var DI=Object.getOwnPropertyNames;var CI=Object.getPrototypeOf,vI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)Ga(t,r,{get:e[r],enumerable:!0})},Ch=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of DI(e))!vI.call(t,i)&&i!==r&&Ga(t,i,{get:()=>e[i],enumerable:!(n=bI(e,i))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?wI(CI(t)):{},Ch(e||!t||!t.__esModule?Ga(r,"default",{value:t,enumerable:!0}):r,t)),NI=t=>Ch(Ga({},"__esModule",{value:!0}),t);var tg=H((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 F=["th","st","nd","rd"],C=$%100;return"["+$+(F[(C-20)%10]||F[C]||F[0])+"]"}},y=function($,F,C){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(C)+$},_={s:y,z:function($){var F=-$.utcOffset(),C=Math.abs(F),q=Math.floor(C/60),L=C%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(L,2,"0")},m:function $(F,C){if(F.date()<C.date())return-$(C,F);var q=12*(C.year()-F.year())+(C.month()-F.month()),L=F.clone().add(q,c),K=C-L<0,V=F.clone().add(q+(K?-1:1),c);return+(-(q+(C-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,C,q){var L;if(!F)return S;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),C&&(M[K]=C,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 C=typeof F=="object"?F:{};return C.date=$,C.args=arguments,new le(C)},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 $(C){this.$L=x(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(C){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)}(C),this.init()},F.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(C,q){var L=w(C);return this.startOf(q)<=L&&L<=this.endOf(q)},F.isAfter=function(C,q){return w(C)<this.startOf(q)},F.isBefore=function(C,q){return this.endOf(q)<w(C)},F.$g=function(C,q,L){return B.u(C)?this[q]:this.set(L,C)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(C,q){var L=this,K=!!B.u(q)||q,V=B.p(C),se=function(ln,We){var _r=B.w(L.$u?Date.UTC(L.$y,We,ln):new Date(L.$y,We,ln),L);return K?_r:_r.endOf(a)},Oe=function(ln,We){return B.w(L.toDate()[ln].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(We)),L)},Ce=this.$W,W=this.$M,dt=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case d:return K?se(1,0):se(31,11);case c:return K?se(1,W):se(0,W+1);case u:var cn=this.$locale().weekStart||0,xs=(Ce<cn?Ce+7:Ce)-cn;return se(K?dt-xs:dt+(6-xs),W);case a:case m:return Oe(Ei+"Hours",0);case o:return Oe(Ei+"Minutes",1);case s:return Oe(Ei+"Seconds",2);case i:return Oe(Ei+"Milliseconds",3);default:return this.clone()}},F.endOf=function(C){return this.startOf(C,!1)},F.$set=function(C,q){var L,K=B.p(C),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 Ce=this.clone().set(m,1);Ce.$d[se](Oe),Ce.init(),this.$d=Ce.set(m,Math.min(this.$D,Ce.daysInMonth())).$d}else se&&this.$d[se](Oe);return this.init(),this},F.set=function(C,q){return this.clone().$set(C,q)},F.get=function(C){return this[B.p(C)]()},F.add=function(C,q){var L,K=this;C=Number(C);var V=B.p(q),se=function(W){var dt=w(K);return B.w(dt.date(dt.date()+Math.round(W*C)),K)};if(V===c)return this.set(c,this.$M+C);if(V===d)return this.set(d,this.$y+C);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,Ce=this.$d.getTime()+C*Oe;return B.w(Ce,this)},F.subtract=function(C,q){return this.add(-1*C,q)},F.format=function(C){var q=this,L=this.$locale();if(!this.isValid())return L.invalidDate||p;var K=C||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Oe=this.$m,Ce=this.$M,W=L.weekdays,dt=L.months,Ei=L.meridiem,cn=function(We,_r,Rs,Ba){return We&&(We[_r]||We(q,K))||Rs[_r].slice(0,Ba)},xs=function(We){return B.s(se%12||12,We,"0")},ln=Ei||function(We,_r,Rs){var Ba=We<12?"AM":"PM";return Rs?Ba.toLowerCase():Ba};return K.replace(g,function(We,_r){return _r||function(Rs){switch(Rs){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return Ce+1;case"MM":return B.s(Ce+1,2,"0");case"MMM":return cn(L.monthsShort,Ce,dt,3);case"MMMM":return cn(dt,Ce);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return cn(L.weekdaysMin,q.$W,W,2);case"ddd":return cn(L.weekdaysShort,q.$W,W,3);case"dddd":return W[q.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return xs(1);case"hh":return xs(2);case"a":return ln(se,Oe,!0);case"A":return ln(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}(We)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(C,q,L){var K,V=this,se=B.p(q),Oe=w(C),Ce=(Oe.utcOffset()-this.utcOffset())*e,W=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=(W-Ce)/6048e5;break;case a:K=(W-Ce)/864e5;break;case o:K=W/r;break;case s:K=W/e;break;case i:K=W/t;break;default:K=W}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(C,q){if(!C)return this.$L;var L=this.clone(),K=x(C,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()},$}(),un=le.prototype;return w.prototype=un,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){un[$[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=H(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.Err=je.Valid=je.err=je.valid=void 0;var nx=t=>new ou(t);je.valid=nx;var ix=t=>new au(t);je.err=ix;var ou=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,je.valid)(e(this.value))}mapErr(e){return(0,je.valid)(this.value)}};je.Valid=ou;var au=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,je.err)(this.error)}mapErr(e){return(0,je.err)(e(this.error))}};je.Err=au});var Rt=H(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0})});var Cr=H(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Vt();var re=xt();Rt();var sx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],ox=["sun","mon","tue","wed","thu","fri","sat"],ax=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ls=(t,e,r)=>{if(e==="months"&&r.useAliases&&sx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&ox.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)},ux=(t,e,r)=>{if(t==="*")return ax(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):Ls(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):Ls(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."):Ls(n,e,r)}return Ls(t,e,r)},og=(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):Ls(t,e,r),cx=(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 ux(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,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)")},lx=(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=cx(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)},dx=(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(lx(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)};Wl.default=dx});var ag=H(Ms=>{"use strict";var px=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Vt();var fx=xt(),mx=px(Cr());Rt();var hx=(t,e)=>{if(!t.seconds)return(0,fx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,mx.default)(r,"seconds",e)};Ms.default=hx});var ug=H(ks=>{"use strict";var gx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var yx=xt(),Ex=gx(Cr());Rt();var Tx=(t,e)=>{if(!t.minutes)return(0,yx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Ex.default)(r,"minutes",e)};ks.default=Tx});var cg=H(Fs=>{"use strict";var Ax=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Sx=xt(),_x=Ax(Cr());Rt();var Ix=(t,e)=>{if(!t.hours)return(0,Sx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,_x.default)(r,"hours",e)};Fs.default=Ix});var lg=H(Gs=>{"use strict";var Ox=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=xt(),xx=Ox(Cr());Rt();var Rx=(t,e)=>{if(!t.daysOfMonth)return(0,Bs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&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.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Bs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Bs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,xx.default)(r,"daysOfMonth",e)};Gs.default=Rx});var dg=H($s=>{"use strict";var wx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var bx=xt(),Dx=wx(Cr());Rt();var Cx=(t,e)=>{if(!t.months)return(0,bx.err)(["months field is undefined."]);let{months:r}=t;return(0,Dx.default)(r,"months",e)};$s.default=Cx});var pg=H(qs=>{"use strict";var vx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});Vt();var Vs=xt(),Nx=vx(Cr());Rt();var Px=(t,e)=>{if(!t.daysOfWeek)return(0,Vs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Vs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Vs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Nx.default)(r,"daysOfWeek",e)};qs.default=Px});var fg=H(Ws=>{"use strict";var Ux=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});Vt();var Lx=xt(),Mx=Ux(Cr());Rt();var kx=(t,e)=>{if(!t.years)return(0,Lx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Mx.default)(r,"years",e)};Ws.default=kx});var yg=H((AW,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 Qs=H(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=Wx;var Fx=Object.prototype.toString,Bx=Error.prototype.toString,Gx=RegExp.prototype.toString,$x=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Vx=/^Symbol\((.*)\)(.*)$/;function qx(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 qx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return $x.call(t).replace(Vx,"Symbol($1)");let n=Fx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Bx.call(t)+"]":n==="RegExp"?Gx.call(t):null}function Wx(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 Xt=H(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.default=ve.array=ve.object=ve.boolean=ve.date=ve.number=ve.string=ve.mixed=void 0;var Tg=Qx(Qs());function Qx(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"};ve.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"};ve.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"};ve.number=_g;var Ig={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};ve.date=Ig;var Og={isValue:"${path} field must be ${value}"};ve.boolean=Og;var xg={noUnknown:"${path} field has unspecified keys: ${unknown}"};ve.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"};ve.array=Rg;var jx=Object.assign(Object.create(null),{mixed:Ag,string:Sg,number:_g,date:Ig,object:xg,array:Rg,boolean:Og});ve.default=jx});var vi=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var Hx=t=>t&&t.__isYupSchema__;uu.default=Hx});var bg=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.default=void 0;var Yx=wg(require("lodash/has")),Kx=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,Yx.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,Kx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Jx=Yl;cu.default=Jx});var Jl=H(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=zx;function zx(t){return t==null?[]:[].concat(t)}});var Dn=H(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var Zx=Dg(Qs()),Xx=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 eR=/\$\{\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(eR,(i,s)=>(0,Zx.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,Xx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};lu.default=Zl});var du=H(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=nR;var Xl=tR(Dn());function tR(t){return t&&t.__esModule?t:{default:t}}var rR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function nR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=rR(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 js=H((bW,Ug)=>{"use strict";function Cn(t){this._maxSize=t,this.clear()}Cn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Cn.prototype.get=function(t){return this._values[t]};Cn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var iR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Pg=/^\d+$/,sR=/^\d/,oR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,aR=/^\s*(['"]?)(.*?)(\1)\s*$/,nd=512,Cg=new Cn(nd),vg=new Cn(nd),Ng=new Cn(nd);Ug.exports={Cache:Cn,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){uR(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(aR,"$2")}))}function rd(t){return t.match(iR)||[""]}function uR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(dR(i)&&(i='"'+i+'"'),a=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 cR(t){return t.match(sR)&&!t.match(Pg)}function lR(t){return oR.test(t)}function dR(t){return!id(t)&&(cR(t)||lR(t))}});var vn=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=fR;Ys.default=void 0;var pR=js(),pu={context:"$",value:"."};function fR(t,e){return new Hs(t,e)}var Hs=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===pu.context,this.isValue=this.key[0]===pu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?pu.context:this.isValue?pu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,pR.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}};Ys.default=Hs;Hs.prototype.__isYupRef=!0});var Lg=H(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=yR;var mR=sd(require("lodash/mapValues")),fu=sd(Dn()),hR=sd(vn());function sd(t){return t&&t.__esModule?t:{default:t}}function mu(){return mu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},mu.apply(this,arguments)}function gR(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 yR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=gR(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 hR.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let x=(0,mR.default)(mu({value:i,originalValue:u,label:o,path:I.path||s},p,I.params),y),w=new fu.default(fu.default.formatError(I.message||f,x),i,x.path,I.type||d);return w.params=x,w}let S=mu({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=>{fu.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}fu.default.isError(M)?n(M):M?n(null,M):n(_())}return e.OPTIONS=t,e}});var ad=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=Mg;Ks.default=void 0;var ER=js(),TR=t=>t.substr(0,t.length-1).substr(1);function Mg(t,e,r,n=r){let i,s,o;return e?((0,ER.forEach)(e,(a,u,c)=>{let l=u?TR(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 AR=(t,e,r,n)=>Mg(t,e,r,n).schema,SR=AR;Ks.default=SR});var Fg=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var kg=_R(vn());function _R(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){kg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){kg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};hu.default=ud});var tr=H(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.default=void 0;var Bg=er(yg()),Ni=Xt(),IR=er(bg()),Gg=er(du()),gu=er(Lg()),$g=er(Qs()),OR=er(vn()),xR=ad(),RR=er(Jl()),Vg=er(Dn()),qg=er(Fg());function er(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,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,gu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,RR.default)(e).map(s=>new IR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new OR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,gu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,gu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,gu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};yu.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,xR.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=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Wg;Js.default=void 0;var wR=bR(tr());function bR(t){return t&&t.__esModule?t:{default:t}}var cd=wR.default,DR=cd;Js.default=DR;function Wg(){return new cd}Wg.prototype=cd.prototype});var Pi=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var CR=t=>t==null;Eu.default=CR});var Jg=H(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=Kg;Zs.default=void 0;var vR=Yg(tr()),jg=Xt(),Hg=Yg(Pi());function Yg(t){return t&&t.__esModule?t:{default:t}}function Kg(){return new zs}var zs=class extends vR.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}})}};Zs.default=zs;Kg.prototype=zs.prototype});var Xg=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=Zg;eo.default=void 0;var qt=Xt(),rr=zg(Pi()),NR=zg(tr());function zg(t){return t&&t.__esModule?t:{default:t}}var PR=/^((([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,UR=/^((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,LR=/^(?:[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,MR=t=>(0,rr.default)(t)||t===t.trim(),kR={}.toString();function Zg(){return new Xs}var Xs=class extends NR.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===kR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,rr.default)(n)||n.length===this.resolve(e)}})}min(e,r=qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,rr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,rr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||qt.string.matches,params:{regex:e},test:o=>(0,rr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(PR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(UR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(LR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:MR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,rr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,rr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toUpperCase()})}};eo.default=Xs;Zg.prototype=Xs.prototype});var ry=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ty;ro.default=void 0;var Nn=Xt(),Pn=ey(Pi()),FR=ey(tr());function ey(t){return t&&t.__esModule?t:{default:t}}var BR=t=>t!=+t;function ty(){return new to}var to=class extends FR.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"&&!BR(e)}min(e,r=Nn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Pn.default)(n)||n>=this.resolve(e)}})}max(e,r=Nn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Pn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Nn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Pn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Nn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Pn.default)(n)||n>this.resolve(e)}})}positive(e=Nn.number.positive){return this.moreThan(0,e)}negative(e=Nn.number.negative){return this.lessThan(0,e)}integer(e=Nn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Pn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Pn.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Pn.default)(i)?i:Math[e](i))}};ro.default=to;ty.prototype=to.prototype});var ny=H(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=$R;var GR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function $R(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=GR.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=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=pd;no.default=void 0;var VR=Tu(ny()),iy=Xt(),sy=Tu(Pi()),qR=Tu(vn()),WR=Tu(tr());function Tu(t){return t&&t.__esModule?t:{default:t}}var dd=new Date(""),QR=t=>Object.prototype.toString.call(t)==="[object Date]";function pd(){return new Ui}var Ui=class extends WR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,VR.default)(e),isNaN(e)?dd:new Date(e))})})}_typeCheck(e){return QR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(qR.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)}})}};no.default=Ui;Ui.INVALID_DATE=dd;pd.prototype=Ui.prototype;pd.INVALID_DATE=dd});var uy=H((BW,fd)=>{"use strict";fd.exports=function(t){return ay(jR(t),t)};fd.exports.array=ay;function ay(t,e){var r=t.length,n=new Array(r),i={},s=r,o=HR(e),a=YR(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 HR(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 YR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var cy=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.default=ew;var KR=Au(require("lodash/has")),JR=Au(uy()),zR=js(),ZR=Au(vn()),XR=Au(vi());function Au(t){return t&&t.__esModule?t:{default:t}}function ew(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,zR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,KR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),ZR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,XR.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return JR.default.array(n,r).reverse()}});var dy=H(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=tw;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 tw(t){return(e,r)=>ly(t,e)-ly(t,r)}});var Ey=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=yy;so.default=void 0;var py=Wt(require("lodash/has")),fy=Wt(require("lodash/snakeCase")),rw=Wt(require("lodash/camelCase")),nw=Wt(require("lodash/mapKeys")),iw=Wt(require("lodash/mapValues")),sw=js(),my=Xt(),ow=Wt(cy()),gy=Wt(dy()),aw=Wt(du()),uw=Wt(Dn()),gd=Wt(tr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Li(){return Li=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Li.apply(this,arguments)}var hy=t=>Object.prototype.toString.call(t)==="[object Object]";function cw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var lw=(0,gy.default)([]),io=class extends gd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=lw,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=Li({},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(!uw.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],Li({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,aw.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 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,ow.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,sw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,py.default)(s,e)&&(o=Li({},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=cw(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,nw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(rw.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,iw.default)(this.fields,r=>r.describe()),e}};so.default=io;function yy(t){return new io(t)}yy.prototype=io.prototype});var Ay=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Ty;ao.default=void 0;var yd=Mi(Pi()),dw=Mi(vi()),pw=Mi(Qs()),Ed=Xt(),fw=Mi(du()),mw=Mi(Dn()),hw=Mi(tr());function Mi(t){return t&&t.__esModule?t:{default:t}}function _u(){return _u=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},_u.apply(this,arguments)}function Ty(t){return new oo(t)}var oo=class extends hw.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,_u({},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(!mw.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}]`,_=_u({},r,{path:S,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,_,T)}(0,fw.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,dw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,pw.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)}};ao.default=oo;Ty.prototype=oo.prototype});var _y=H(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=Ew;uo.default=void 0;var gw=yw(vi());function yw(t){return t&&t.__esModule?t:{default:t}}function Ew(t){return new Su(t)}var Su=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,gw.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)}},Tw=Su;uo.default=Tw});var Sy=H(Td=>{"use strict";Object.defineProperty(Td,"__esModule",{value:!0});Td.default=Sw;var Aw=_w(Xt());function _w(t){return t&&t.__esModule?t:{default:t}}function Sw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Aw.default[e][r]=t[e][r]})})}});var _d=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Dw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return Ad.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return Ow.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return Iw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return xw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return Rw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return ww.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return bw.default}});var Oy=Un(Qg()),Ad=Un(Jg()),Iy=Un(Xg()),xy=Un(ry()),Ry=Un(oy()),wy=Un(Ey()),by=Un(Ay()),Ow=vn(),Iw=_y(),xw=co(Dn()),Rw=co(ad()),Dy=co(vi()),ww=co(Sy()),bw=co(tr());function co(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 Un(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 Dw(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=H(Od=>{"use strict";Object.defineProperty(Od,"__esModule",{value:!0});var Sd=Id();Od.default=()=>{(0,Sd.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,Sd.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,Sd.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 Id=H(Ne=>{"use strict";var Cw=Ne&&Ne.__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]}),vw=Ne&&Ne.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Nw=Ne&&Ne.__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)&&Cw(e,t,r);return vw(e,t),e},Pw=Ne&&Ne.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.validateOptions=Ne.registerOptionPreset=Ne.getOptionPresets=Ne.getOptionPreset=void 0;var R=Nw(_d());_d();var lo=xt(),Uw=Pw(vy());Rt();var Ln={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Ny=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(),Lw=t=>Ln[t]?(0,lo.valid)(Ln[t]):(0,lo.err)(`Option preset '${t}' not found.`);Ne.getOptionPreset=Lw;var Mw=()=>Ln;Ne.getOptionPresets=Mw;var kw=(t,e)=>{Ln[t]=Ny.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Ne.registerOptionPreset=kw;var Fw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,S,_,M;try{(0,Uw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Ln[t.preset])return(0,lo.err)([`Option preset ${t.preset} does not exist.`]);T=Ln[t.preset]}else T=t.preset;else T=Ln.default;let O=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:(_=T.years.lowerLimit)!==null&&_!==void 0?_: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:Ny.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(O,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,lo.valid)(w)}catch(T){return(0,lo.err)(T.errors)}};Ne.validateOptions=Fw});var Vt=H((po,Rd)=>{"use strict";var kn=po&&po.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(po,"__esModule",{value:!0});var Mn=xt(),Bw=kn(ag()),Gw=kn(ug()),$w=kn(cg()),Vw=kn(lg()),qw=kn(dg()),Ww=kn(pg()),Qw=kn(fg()),jw=Id();Rt();var Hw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Mn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Mn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Mn.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,Mn.valid)(n)},xd=(t,e={})=>{let r=(0,jw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Hw(t,n);if(i.isError())return(0,Mn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Bw.default)(s,n)),o.push((0,Gw.default)(s,n)),o.push((0,$w.default)(s,n)),o.push((0,Vw.default)(s,n)),o.push((0,qw.default)(s,n)),o.push((0,Ww.default)(s,n)),n.useYears&&o.push((0,Qw.default)(s,n)),o.every(u=>u.isValid()))return(0,Mn.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Mn.err)(a)};po.default=xd;Rd.exports=xd;Rd.exports.default=xd});var rT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var ir=class extends Error{},Ld=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Md=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},kd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends ir{},Du=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},He=class extends ir{},Qt=class extends ir{constructor(){super("Zone is an abstract class")}},b="numeric",Ct="short",nt="long",Cu={year:b,month:b,day:b},iE={year:b,month:Ct,day:b},Yw={year:b,month:Ct,day:b,weekday:Ct},sE={year:b,month:nt,day:b},oE={year:b,month:nt,day:b,weekday:nt},aE={hour:b,minute:b},uE={hour:b,minute:b,second:b},cE={hour:b,minute:b,second:b,timeZoneName:Ct},lE={hour:b,minute:b,second:b,timeZoneName:nt},dE={hour:b,minute:b,hourCycle:"h23"},pE={hour:b,minute:b,second:b,hourCycle:"h23"},fE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ct},mE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:nt},hE={year:b,month:b,day:b,hour:b,minute:b},gE={year:b,month:b,day:b,hour:b,minute:b,second:b},yE={year:b,month:Ct,day:b,hour:b,minute:b},EE={year:b,month:Ct,day:b,hour:b,minute:b,second:b},Kw={year:b,month:Ct,day:b,weekday:Ct,hour:b,minute:b},TE={year:b,month:nt,day:b,hour:b,minute:b,timeZoneName:Ct},AE={year:b,month:nt,day:b,hour:b,minute:b,second:b,timeZoneName:Ct},_E={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,timeZoneName:nt},SE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,second:b,timeZoneName:nt},Ur=class{get type(){throw new Qt}get name(){throw new Qt}get ianaName(){return this.name}get isUniversal(){throw new Qt}offsetName(e,r){throw new Qt}formatOffset(e,r){throw new Qt}offset(e){throw new Qt}equals(e){throw new Qt}get isValid(){throw new Qt}},wd=null,To=class t extends Ur{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 IE(e,r,n)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},wu={};function Jw(t){return wu[t]||(wu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),wu[t]}var zw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Zw(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 Xw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=zw[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Ou={},sr=class t extends Ur{static create(e){return Ou[e]||(Ou[e]=new t(e)),Ou[e]}static resetCache(){Ou={},wu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return IE(e,r,n,this.name)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=Jw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Xw(n,r):Zw(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 eb(t,e={}){let r=JSON.stringify([t,e]),n=Py[r];return n||(n=new Intl.ListFormat(t,e),Py[r]=n),n}var Fd={};function Bd(t,e={}){let r=JSON.stringify([t,e]),n=Fd[r];return n||(n=new Intl.DateTimeFormat(t,e),Fd[r]=n),n}var Gd={};function tb(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 rb(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 go=null;function nb(){return go||(go=new Intl.DateTimeFormat().resolvedOptions().locale,go)}function ib(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 sb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function ob(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function ab(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function Iu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function ub(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=tb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):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&&sr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.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&&OE()&&(this.rtf=rb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Ib(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=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||ye.defaultLocale,o=s||(i?"en-US":nb()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){go=null,Fd={},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]=ib(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=sb(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=ub(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Iu(this,e,n,wE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=ob(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Iu(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]=ab(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Iu(this,void 0,e,()=>vE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Iu(this,e,r,NE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.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 eb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},bd=null,it=class t extends Ur{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(Mu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Eo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Eo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Eo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},vu=class extends Ur{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Pr(t,e){if(ne(t)||t===null)return e;if(t instanceof Ur)return t;if(cb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?To.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||sr.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new vu(t)}var Uy=()=>Date.now(),Ly="system",My=null,ky=null,Fy=null,By=60,Gy,ye=class{static get now(){return Uy}static set now(e){Uy=e}static set defaultZone(e){Ly=e}static get defaultZone(){return Pr(Ly,To.instance)}static get defaultLocale(){return My}static set defaultLocale(e){My=e}static get defaultNumberingSystem(){return ky}static set defaultNumberingSystem(e){ky=e}static get defaultOutputCalendar(){return Fy}static set defaultOutputCalendar(e){Fy=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(){Ae.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Lu(t){return typeof t=="number"&&t%1===0}function cb(t){return typeof t=="string"}function lb(t){return Object.prototype.toString.call(t)==="[object Date]"}function OE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function db(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 pb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return Lu(t)&&t>=e&&t<=r}function fb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Nr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Fn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Hd(t){if(!(ne(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 Ao(t){return t%4===0&&(t%100!==0||t%400===0)}function yo(t){return Ao(t)?366:365}function Nu(t,e){let r=fb(e-1,12)+1,n=t+(e-r)/12;return r===2?Ao(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 Pu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Qd(t){return t>99?t:t>ye.twoDigitCutoffYear?1900+t:2e3+t}function IE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Mu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function xE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new He(`Invalid unit value ${t}`);return e}function Uu(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 Eo(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 ku(t){return pb(t,["hour","minute","second","millisecond"])}var mb=["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"],hb=["J","F","M","A","M","J","J","A","S","O","N","D"];function wE(t){switch(t){case"narrow":return[...hb];case"short":return[...RE];case"long":return[...mb];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"],gb=["M","T","W","T","F","S","S"];function CE(t){switch(t){case"narrow":return[...gb];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"],yb=["Before Christ","Anno Domini"],Eb=["BC","AD"],Tb=["B","A"];function NE(t){switch(t){case"narrow":return[...Tb];case"short":return[...Eb];case"long":return[...yb];default:return null}}function Ab(t){return vE[t.hour<12?0:1]}function _b(t,e){return CE(e)[t.weekday-1]}function Sb(t,e){return wE(e)[t.month-1]}function Ob(t,e){return NE(e)[t.year<0?0:1]}function Ib(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 xb={D:Cu,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:_E,F:gE,FF:EE,FFF:AE,FFFF:SE},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 xb[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?Ab(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?Sb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?_b(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?Ob(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 UE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Nr(e[r+i]);return[n,null,r+i]}}var LE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Rb=`(?:${LE.source}?(?:\\[(${PE.source})\\])?)?`,Jd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,ME=RegExp(`${Jd.source}${Rb}`),zd=RegExp(`(?:T${ME.source})?`),wb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,bb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Db=/(\d{4})-?(\d{3})/,Cb=UE("weekYear","weekNumber","weekDay"),vb=UE("year","ordinal"),Nb=/(\d{4})-(\d\d)-(\d\d)/,kE=RegExp(`${Jd.source} ?(?:${LE.source}|(${PE.source}))?`),Pb=RegExp(`(?: ${kE.source})?`);function Bi(t,e,r){let n=t[e];return ne(n)?r:Nr(n)}function Ub(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 _o(t,e){let r=!t[e]&&!t[e+1],n=Mu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function So(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Lb=RegExp(`^T?${Jd.source}$`),Mb=/^-?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 kb(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(Fn(r)),months:m(Fn(n)),weeks:m(Fn(i)),days:m(Fn(s)),hours:m(Fn(o)),minutes:m(Fn(a)),seconds:m(Fn(u),u==="-0"),milliseconds:m(Hd(c),d)}]}var Fb={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(Nr(e)):Nr(e),month:RE.indexOf(r)+1,day:Nr(n),hour:Nr(i),minute:Nr(s)};return o&&(a.second=Nr(o)),t&&(a.weekday=t.length>3?bE.indexOf(t)+1:DE.indexOf(t)+1),a}var Bb=/^(?:(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 Gb(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=Fb[u]:c?p=0:p=Mu(l,d),[m,new it(p)]}function $b(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Vb=/^(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$/,qb=/^(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$/,Wb=/^(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 Qb(t){let[,e,r,n,i,s,o,a]=t;return[Zd(e,a,r,n,i,s,o),it.utcInstance]}var jb=$i(wb,zd),Hb=$i(bb,zd),Yb=$i(Db,zd),Kb=$i(ME),FE=Vi(Ub,Wi,_o,So),Jb=Vi(Cb,Wi,_o,So),zb=Vi(vb,Wi,_o,So),Zb=Vi(Wi,_o,So);function Xb(t){return qi(t,[jb,FE],[Hb,Jb],[Yb,zb],[Kb,Zb])}function eD(t){return qi($b(t),[Bb,Gb])}function tD(t){return qi(t,[Vb,qy],[qb,qy],[Wb,Qb])}function rD(t){return qi(t,[Mb,kb])}var nD=Vi(Wi);function iD(t){return qi(t,[Lb,nD])}var sD=$i(Nb,Pb),oD=$i(kE),aD=Vi(Wi,_o,So);function uD(t){return qi(t,[sD,FE],[oD,aD])}var cD="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}},lD={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,ki=146097/4800,dD={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},...BE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],pD=Bn.slice(0).reverse();function vr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new be(n)}function fD(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?fD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function mD(t,e){pD.reduce((r,n)=>ne(e[n])?r:(r&&GE(t,e,r,e,n),n),null)}function hD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var be=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?dD:lD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.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 He(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Uu(e,t.normalizeUnit),loc:Ae.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new He(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=rD(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]=iD(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 He("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Du(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?tt.create(this.loc,n).formatDurationFromString(this,e):cD}toHuman(e={}){let r=Bn.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+=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 Bn)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return vr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=xE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Uu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return mD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=hD(this.normalize().shiftToAll().toObject());return vr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Bn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;Vn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)Bn.indexOf(c)>Bn.indexOf(o)&&GE(this.matrix,i,c,r,o)}else Vn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return vr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return vr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Bn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Fi="Invalid Interval";function gD(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 He("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Md(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ho(e),i=ho(r),s=gD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=be.fromDurationLike(r),i=ho(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=be.fromDurationLike(r),i=ho(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=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=be.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=be.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(ho).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=be.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=Cu,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):be.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},$n=class{static hasDST(e=ye.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return sr.isValidZone(e)}static normalizeZone(e){return Pr(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.create(r,null,"gregory").eras(e)}static features(){return{relative:OE()}}};function Wy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(be.fromMillis(n).as("days"))}function yD(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 ED(t,e,r,n){let[i,s,o,a]=yD(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=be.fromObject(s,n);return c.length>0?be.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]},TD=Xd.hanidec.replace(/[\[|\]]/g,"").split("");function AD(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+=TD.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 _D="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(AD(r))}}var SD=String.fromCharCode(160),$E=`[ ${SD}]`,VE=new RegExp($E,"g");function OD(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(OD).join("|")),deser:([r])=>t.findIndex(n=>jy(r)===jy(n))+e}}function Hy(t,e){return{regex:t,deser:([,r,n])=>Mu(r,n),groups:e}}function Dd(t){return{regex:t,deser:([e])=>e}}function ID(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function xD(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(ID(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 Dd(l);case"uu":return Dd(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 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:_D};return g.token=t,g}var RD={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 wD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=RD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function bD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function DD(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 CD(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=sr.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=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 vD(){return Cd||(Cd=_e.fromMillis(1555555555555)),Cd}function ND(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=>ND(r,e)))}function WE(t,e,r){let n=qE(tt.parseFormat(r),t),i=n.map(o=>xD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=bD(i),u=RegExp(o,"i"),[c,l]=DD(e,u,a),[d,m,p]=l?CD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new Gn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function PD(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(vD()).map(i=>wD(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+(Ao(t)?HE:jE)[e-1]}function JE(t,e){let r=Ao(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=Pu(a)):o>Pu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...ku(t)}}function Yy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=YE(e,1,4),s=yo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=yo(a)):o>s?(a=e+1,o-=yo(e)):a=e;let{month:u,day:c}=JE(a,o);return{year:a,month:u,day:c,...ku(t)}}function vd(t){let{year:e,month:r,day:n}=t,i=KE(e,r,n);return{year:e,ordinal:i,...ku(t)}}function Ky(t){let{year:e,ordinal:r}=t,{month:n,day:i}=JE(e,r);return{year:e,month:n,day:i,...ku(t)}}function UD(t){let e=Lu(t.weekYear),r=nr(t.weekNumber,1,Pu(t.weekYear)),n=nr(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function LD(t){let e=Lu(t.year),r=nr(t.ordinal,1,yo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function zE(t){let e=Lu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,Nu(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=nr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=nr(r,0,59),a=nr(n,0,59),u=nr(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 xu(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 fo(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...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 bu(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,Nu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=be.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 mo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ru(t,e,r=!0){return t.isValid?tt.create(Ae.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Ud(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},MD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},kD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},tT=["year","month","day","hour","minute","second","millisecond"],FD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],BD=["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 Du(t);return e}function tE(t,e){let r=Pr(e.zone,ye.defaultZone),n=Ae.fromObject(e),i=ye.now(),s,o;if(ne(t.year))s=i;else{for(let c of tT)ne(t[c])&&(t[c]=eT[c]);let a=zE(t)||ZE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=bu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function rE(t,e,r){let n=ne(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 _e=class t{constructor(e){let r=e.zone||ye.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:xu(r));this.ts=ne(e.ts)?ye.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||Ae.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=lb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Pr(r.zone,ye.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(xu(i))}static fromMillis(e,r={}){if(Vn(e))return e<-Jy||e>Jy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Pr(r.zone,ye.defaultZone),loc:Ae.fromObject(r)});throw new He(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Vn(e))return new t({ts:e*1e3,zone:Pr(r.zone,ye.defaultZone),loc:Ae.fromObject(r)});throw new He("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Pr(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(xu(n));let i=ye.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Uu(e,eE),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Ae.fromObject(r);if((l||a)&&d)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Gn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=zy(i,s);p?(f=FD,g=MD,E=jd(E)):a?(f=BD,g=kD,E=vd(E)):(f=tT,g=eT);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 S=p?UD(o):a?LD(o):zE(o),_=S||ZE(o);if(_)return t.invalid(_);let M=p?Yy(o):a?Ky(o):o,[T,O]=bu(M,s,n),x=new t({ts:T,zone:n,o:O,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]=Xb(e);return mo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=eD(e);return mo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=tD(e);return mo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new He("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=PD(o,e,r);return l?t.invalid(l):mo(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]=uD(e);return mo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new He("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Ld(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=QE(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return qE(tt.parseFormat(e),Ae.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?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return Ao(this.year)}get daysInMonth(){return Nu(this.year,this.month)}get daysInYear(){return this.isValid?yo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Pu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(ye.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Pr(e,ye.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=bu(o,s,e)}return fo(this,{ts:i,zone:e})}else return t.invalid(xu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return fo(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Uu(e,eE),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 Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Gn("Can't mix ordinal dates with month/day");let c;n?c=Yy({...jd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Nu(c.year,c.month),c.day))):c=Ky({...vd(this.c),...r});let[l,d]=bu(c,this.o,this.zone);return fo(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e);return fo(this,Zy(this,r))}minus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e).negate();return fo(this,Zy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=be.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=Cu,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=Ud(this,o);return a+="T",a+=Xy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Ud(this,e==="extended"):null}toISOWeekDate(){return Ru(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Xy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ru(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ru(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Ud(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ru(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():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 be.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=db(r).map(be.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=ED(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 He("min requires all arguments be DateTimes");return $y(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new He("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=Ae.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 Cu}static get DATE_MED(){return iE}static get DATE_MED_WITH_WEEKDAY(){return Yw}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 Kw}static get DATETIME_FULL(){return TE}static get DATETIME_FULL_WITH_SECONDS(){return AE}static get DATETIME_HUGE(){return _E}static get DATETIME_HUGE_WITH_SECONDS(){return SE}};function ho(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&Vn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new He(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var GD="3.2.1";st.DateTime=_e;st.Duration=be;st.FixedOffsetZone=it;st.IANAZone=sr;st.Info=$n;st.Interval=qn;st.InvalidZone=vu;st.Settings=ye;st.SystemZone=To;st.VERSION=GD;st.Zone=Ur});var iT=H((JW,nT)=>{"use strict";var Wn=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=Wn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Wn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Wn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Wn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Wn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}nT.exports=z});var aT=H((zW,oT)=>{"use strict";function Qn(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(Qn(e.start)),t.push(Qn(e.end))):t.push(e)),r&&t.push(r)}function $D(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(ep(e,r,Qn(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(Qn(r.start)),r=Qn(r.end),sT(r,i)):(ep(e,r),r=Qn(i)):r=Qn(i)}return ep(e,r),e}oT.exports=$D});var cT=H((ZW,uT)=>{"use strict";var VD=aT();function qD(t,e,r){var n=VD(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=qD});var pT=H((XW,dT)=>{"use strict";var jn=iT(),WD=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 jn(e.currentDate,this._tz),this._startDate=e.startDate?new jn(e.startDate,this._tz):null,this._endDate=e.endDate?new jn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(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 _=0,M=S.length;_<M;_++)if(S[_]>=y)return S[_]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var _=y.getDate()%7?1:0,M=y.getDate()-y.getDate()%7,T=Math.floor(M/7)+_;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new jn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(S){if(!i([S]))return!1;var _=Number.parseInt(S[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===_&&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 jn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new jn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(WD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new jn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,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(_){var M=_.split("#");if(M.length>1){var T=+M[M.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(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 _}}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=H((eQ,fT)=>{"use strict";var Fu=pT();function Lr(){}Lr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Fu.parse(e)};if(r.length>6)return{interval:Fu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Lr.parseExpression=function(e,r){return Fu.parse(e,r)};Lr.fieldsToExpression=function(e,r){return Fu.fieldsToExpression(e,r)};Lr.parseString=function(e){for(var r=e.split(`
5
- `),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Lr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Lr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Lr.parseString(i.toString()))})};fT.exports=Lr});var AF={};v(AF,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Sp,BadRequestError:()=>bc,BudibaseError:()=>hs,Config:()=>bp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Ip,DEFAULT_JOBS_TABLE_ID:()=>Op,DEFAULT_TENANT_ID:()=>Ee,DeprecatedViews:()=>Hi,DocumentType:()=>he,Duration:()=>we,DurationType:()=>Zf,EmailUnavailableError:()=>mr,ErrorCode:()=>vc,FeatureDisabledError:()=>Cc,GlobalRole:()=>wp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>xr,InvalidAPIKeyError:()=>gs,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>bT,NotFoundError:()=>wc,RedisClient:()=>Ve,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Se,UNICODE_MAX:()=>Fe,UsageLimitError:()=>Dc,UserStatus:()=>Hu,ViewName:()=>Fr,accounts:()=>li,auth:()=>mh,blacklist:()=>Eh,cache:()=>Ca,configs:()=>nn,constants:()=>Dp,context:()=>Te,db:()=>qr,docIds:()=>df,docUpdates:()=>Ah,encryption:()=>dh,env:()=>h,errors:()=>Pc,events:()=>As,features:()=>rh,getPublicError:()=>Nc,init:()=>TF,installation:()=>Wc,locks:()=>ci,logging:()=>Ac,middleware:()=>fh,objectStore:()=>wf,permissions:()=>Xm,platform:()=>la,plugins:()=>gh,queue:()=>Am,redis:()=>yh,roles:()=>hm,security:()=>km,sessions:()=>zc,setEnv:()=>bo,sql:()=>Dh,tenancy:()=>EF,timers:()=>Ho,userUtils:()=>gm,users:()=>_s,utils:()=>ls,withEnv:()=>UT});module.exports=NO(AF);var nn={};v(nn,{analyticsEnabled:()=>$c,generateConfigID:()=>Km,getAIConfig:()=>WM,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Hm,getGoogleConfig:()=>rl,getGoogleDatasourceConfig:()=>zm,getOIDCConfig:()=>$M,getOIDCConfigById:()=>Zm,getOIDCLogosDoc:()=>BM,getPlatformUrl:()=>La,getSCIMConfig:()=>qM,getSMTPConfig:()=>VM,getSMTPConfigDoc:()=>US,getSettingsConfig:()=>Jm,getSettingsConfigDoc:()=>jc,save:()=>kM});var PO=["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"],vh=[...PO],Nh={"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||{}),$a=(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))($a||{});var wl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(wl||{});var UO=Q(require("lodash")),Or=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Or||{}),Kt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Kt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function Va(t){return Object.values(Ti).includes(t)}function Ph(t){return Object.values(Or).includes(t)}function Uh(t){return Object.values(Kt).includes(t)}function bl(t){return Object.values(dn).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 ws=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(ws||{});var Mh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,OAUTH2_CONFIG:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var _B={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var bs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(bs||{});var qa=(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))(qa||{});var Wa=t=>t.hosting==="cloud";var Qa=t=>t.authType==="sso";var N="_",Fe="\uFFF0",Ir=t=>`${t}${N}`,he=(W=>(W.USER="us",W.GROUP="gr",W.WORKSPACE="workspace",W.CONFIG="config",W.TEMPLATE="template",W.APP="app",W.DEV="dev",W.APP_DEV="app_dev",W.APP_METADATA="app_metadata",W.ROLE="role",W.MIGRATIONS="migrations",W.DEV_INFO="devinfo",W.AUTOMATION_LOG="log_au",W.ACCOUNT_METADATA="acc_metadata",W.PLUGIN="plg",W.DATASOURCE="datasource",W.DATASOURCE_PLUS="datasource_plus",W.APP_BACKUP="backup",W.TABLE="ta",W.ROW="ro",W.AUTOMATION="au",W.LINK="li",W.WEBHOOK="wh",W.INSTANCE="inst",W.LAYOUT="layout",W.SCREEN="screen",W.QUERY="query",W.DEPLOYMENTS="deployments",W.METADATA="metadata",W.MEM_VIEW="view",W.USER_FLAG="flag",W.AUTOMATION_METADATA="meta_au",W.AUDIT_LOG="al",W.APP_MIGRATION_METADATA="_design/migrations",W.SCIM_LOG="scimlog",W.ROW_ACTIONS="ra",W.OAUTH2_CONFIG="oauth2",W.OAUTH2_CONFIG_LOG="oauth2log",W))(he||{}),uG=Object.values(he).sort((t,e)=>e.length-t.length);var xr=(e=>(e.USER_METADATA="ta_users",e))(xr||{}),Dl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Dl||{}),cG=Object.values(Dl).sort((t,e)=>e.length-t.length);var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),ge=(_=>(_.TABLE="table",_.ROW="row",_.ROWS="rows",_.WIDE="wide",_.QUERY="query",_.QUERY_PARAMS="queryParams",_.QUERY_LIMIT="queryLimit",_.LOOP_OPTION="loopOption",_.ITEM="item",_.CODE="code",_.FILTERS="filters",_.COLUMN="column",_.TRIGGER_SCHEMA="triggerSchema",_.CRON="cron",_.WEBHOOK_URL="webhookUrl",_.AUTOMATION="automation",_.AUTOMATION_FIELDS="automationFields",_.MULTI_ATTACHMENTS="multi_attachments",_.TRIGGER_FILTER="trigger_filter",_))(ge||{}),Ot=(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))(Ot||{});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||{}),kh=[...Object.values(de),...Object.values(Ot)];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 Fh=["attachment_single","attachment","signature_single","bb_reference","json","array"];var Nl="bb_internal";function ja(t){return!!t.providerType}var Pl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Pl||{});var _$=Object.values(Pl);var R$=["rows","queries","automations"],w$=["queries","automations"];var fn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(fn||{}),Ha=(r=>(r.STRING="string",r.NUMBER="number",r))(Ha||{});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 Ll;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Ll||(Ll={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Rr=t=>{switch(typeof t){case"undefined":return 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}},I=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"]),kO=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 Oi=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===k.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.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 I.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 I.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 I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},$h=Oi;function FO(t){$h=t}function Ya(){return $h}var Ka=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}},BO=[];function P(t,e){let r=Ya(),n=Ka({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Oi?void 0:Oi].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),Si=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),Ml=t=>t.status==="aborted",kl=t=>t.status==="dirty",vs=t=>t.status==="valid",Ns=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 Ds,Cs,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(vs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Rr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ns(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return 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:Rr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ns(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:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Ze({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return $t.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return Dr.create(this,this._def)}or(e){return An.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:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ps({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Us.create(this,e)}readonly(){return bn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},GO=/^c[^\s-]{8,}$/i,$O=/^[0-9a-z]+$/,VO=/^[0-9A-HJKMNP-TV-Z]{26}$/,qO=/^[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,WO=/^[a-z0-9_-]{21}$/i,QO=/^[-+]?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)?)??$/,jO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,HO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ul,YO=/^(?:(?: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])$/,KO=/^(([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})))$/,JO=/^([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])))",zO=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 ZO(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 XO(t,e){return!!((e==="v4"||!e)&&YO.test(t)||(e==="v6"||!e)&&KO.test(t))}var wr=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:I.invalid_type,expected:k.string,received:s.parsedType}),J}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.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:I.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:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")jO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ul||(Ul=new RegExp(HO,"u")),Ul.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")qO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")WO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")GO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")$O.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")VO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:I.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:I.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:I.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:I.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:I.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:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Qh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?zO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?ZO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?QO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?XO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?JO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:I.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:I.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};wr.create=t=>{var e;return new wr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function eI(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 mn=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:I.invalid_type,expected:k.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:I.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:I.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:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?eI(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.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:I.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)}};mn.create=t=>new mn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var hn=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:I.invalid_type,expected:k.bigint,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.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:I.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:I.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}};hn.create=t=>{var e;return new hn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var gn=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:I.invalid_type,expected:k.boolean,received:n.parsedType}),J}return Be(e.data)}};gn.create=t=>new gn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var yn=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:I.invalid_type,expected:k.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_date}),J}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.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:I.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}};yn.create=t=>new yn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var Ii=class extends X{_parse(e){if(this._getType(e)!==k.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.symbol,received:n.parsedType}),J}return Be(e.data)}};Ii.create=t=>new Ii({typeName:Y.ZodSymbol,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.undefined,received:n.parsedType}),J}return Be(e.data)}};En.create=t=>new En({typeName:Y.ZodUndefined,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==k.null){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.null,received:n.parsedType}),J}return Be(e.data)}};Tn.create=t=>new Tn({typeName:Y.ZodNull,...Z(t)});var br=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Be(e.data)}};br.create=t=>new br({typeName:Y.ZodAny,...Z(t)});var zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Be(e.data)}};zt.create=t=>new zt({typeName:Y.ZodUnknown,...Z(t)});var It=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:I.invalid_type,expected:k.never,received:r.parsedType}),J}};It.create=t=>new It({typeName:Y.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:I.invalid_type,expected:k.void,received:n.parsedType}),J}return Be(e.data)}};xi.create=t=>new xi({typeName:Y.ZodVoid,...Z(t)});var Zt=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:I.invalid_type,expected:k.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?I.too_big:I.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:I.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:I.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)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function _i(t){if(t instanceof Qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(_i(n))}return new Qe({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:_i(t.element)}):t instanceof pt?pt.create(_i(t.unwrap())):t instanceof $t?$t.create(_i(t.unwrap())):t instanceof Gt?Gt.create(t.items.map(e=>_i(e))):t}var Qe=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:I.invalid_type,expected:k.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof It&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],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 It){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:I.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:Y.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 _i(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 jh(te.objectKeys(this.shape))}};Qe.create=(t,e)=>new Qe({shape:()=>t,unknownKeys:"strip",catchall:It.create(),typeName:Y.ZodObject,...Z(e)});Qe.strictCreate=(t,e)=>new Qe({shape:()=>t,unknownKeys:"strict",catchall:It.create(),typeName:Y.ZodObject,...Z(e)});Qe.lazycreate=(t,e)=>new Qe({shape:t,unknownKeys:"strip",catchall:It.create(),typeName:Y.ZodObject,...Z(e)});var An=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:I.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return P(r,{code:I.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};An.create=(t,e)=>new An({options:t,typeName:Y.ZodUnion,...Z(e)});var Jt=t=>t instanceof Sn?Jt(t.schema):t instanceof Ze?Jt(t.innerType()):t instanceof On?[t.value]:t instanceof In?t.options:t instanceof xn?te.objectValues(t.enum):t instanceof Rn?Jt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof pt?[void 0,...Jt(t.unwrap())]:t instanceof $t?[null,...Jt(t.unwrap())]:t instanceof Ps||t instanceof bn?Jt(t.unwrap()):t instanceof wn?Jt(t._def.innerType):[],za=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.object)return P(r,{code:I.invalid_type,expected:k.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Jt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Fl(t,e){let r=Rr(t),n=Rr(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=Fl(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=Fl(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(Ml(s)||Ml(o))return J;let a=Fl(s.value,o.value);return a.valid?((kl(s)||kl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:I.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Gt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.array)return P(n,{code:I.invalid_type,expected:k.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:I.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})}};Gt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Gt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Za=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.object)return P(n,{code:I.invalid_type,expected:k.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new 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:Y.ZodRecord,...Z(n)}):new t({keyType:wr.create(),valueType:e,typeName:Y.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:I.invalid_type,expected:k.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new 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 J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:Y.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:I.invalid_type,expected:k.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:I.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:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new 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:Y.ZodSet,...Z(e)});var Xa=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:I.invalid_type,expected:k.function,received:r.parsedType}),J;function n(a,u){return Ka({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ya(),Oi].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Ka({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ya(),Oi].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Dr){let a=this;return Be(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 Be(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:Gt.create(e).rest(zt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Gt.create([]).rest(zt.create()),returns:r||zt.create(),typeName:Y.ZodFunction,...Z(n)})}},Sn=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Sn.create=(t,e)=>new Sn({getter:t,typeName:Y.ZodLazy,...Z(e)});var On=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};On.create=(t,e)=>new On({value:t,typeName:Y.ZodLiteral,...Z(e)});function jh(t,e){return new In({values:t,typeName:Y.ZodEnum,...Z(e)})}var In=class t extends X{constructor(){super(...arguments),Ds.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:I.invalid_type}),J}if(Ja(this,Ds,"f")||Vh(this,Ds,new Set(this._def.values),"f"),!Ja(this,Ds,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:I.invalid_enum_value,options:n}),J}return Be(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})}};Ds=new WeakMap;In.create=jh;var xn=class extends X{constructor(){super(...arguments),Cs.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:I.invalid_type}),J}if(Ja(this,Cs,"f")||Vh(this,Cs,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ja(this,Cs,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:I.invalid_enum_value,options:i}),J}return Be(e.data)}get enum(){return this._def.values}};Cs=new WeakMap;xn.create=(t,e)=>new xn({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var Dr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:I.invalid_type,expected:k.promise,received:r.parsedType}),J;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Be(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Dr.create=(t,e)=>new Dr({type:t,typeName:Y.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?Si(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?Si(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vs(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=>vs(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:Y.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var pt=class extends X{_parse(e){return this._getType(e)===k.undefined?Be(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var $t=class extends X{_parse(e){return this._getType(e)===k.null?Be(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$t.create=(t,e)=>new $t({innerType:t,typeName:Y.ZodNullable,...Z(e)});var Rn=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}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var wn=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 Ns(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}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.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:I.invalid_type,expected:k.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:Y.ZodNaN,...Z(t)});var tI=Symbol("zod_brand"),Ps=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}},Us=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),Si(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},bn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Ns(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Hh(t,e={},r){return t?br.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):br.create()}var rI={object:Qe.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var nI=(t,e={message:`Input not instance of ${t.name}`})=>Hh(r=>r instanceof t,e),Yh=wr.create,Kh=mn.create,iI=bi.create,sI=hn.create,Jh=gn.create,oI=yn.create,aI=Ii.create,uI=En.create,cI=Tn.create,lI=br.create,dI=zt.create,pI=It.create,fI=xi.create,mI=Zt.create,hI=Qe.create,gI=Qe.strictCreate,yI=An.create,EI=za.create,TI=_n.create,AI=Gt.create,_I=Za.create,SI=Ri.create,OI=wi.create,II=Xa.create,xI=Sn.create,RI=On.create,wI=In.create,bI=xn.create,DI=Dr.create,Gh=Ze.create,CI=pt.create,vI=$t.create,NI=Ze.createWithPreprocess,PI=Us.create,UI=()=>Yh().optional(),LI=()=>Kh().optional(),MI=()=>Jh().optional(),kI={string:t=>wr.create({...t,coerce:!0}),number:t=>mn.create({...t,coerce:!0}),boolean:t=>gn.create({...t,coerce:!0}),bigint:t=>hn.create({...t,coerce:!0}),date:t=>yn.create({...t,coerce:!0})},FI=J,ee=Object.freeze({__proto__:null,defaultErrorMap:Oi,setErrorMap:FO,getErrorMap:Ya,makeIssue:Ka,EMPTY_PATH:BO,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:Si,OK:Be,isAborted:Ml,isDirty:kl,isValid:vs,isAsync:Ns,get util(){return te},get objectUtil(){return Ll},ZodParsedType:k,getParsedType:Rr,ZodType:X,datetimeRegex:Qh,ZodString:wr,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Ii,ZodUndefined:En,ZodNull:Tn,ZodAny:br,ZodUnknown:zt,ZodNever:It,ZodVoid:xi,ZodArray:Zt,ZodObject:Qe,ZodUnion:An,ZodDiscriminatedUnion:za,ZodIntersection:_n,ZodTuple:Gt,ZodRecord:Za,ZodMap:Ri,ZodSet:wi,ZodFunction:Xa,ZodLazy:Sn,ZodLiteral:On,ZodEnum:In,ZodNativeEnum:xn,ZodPromise:Dr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:wn,ZodNaN:bi,BRAND:tI,ZodBranded:Ps,ZodPipeline:Us,ZodReadonly:bn,custom:Hh,Schema:X,ZodSchema:X,late:rI,get ZodFirstPartyTypeKind(){return Y},coerce:kI,any:lI,array:mI,bigint:sI,boolean:Jh,date:oI,discriminatedUnion:EI,effect:Gh,enum:wI,function:II,instanceof:nI,intersection:TI,lazy:xI,literal:RI,map:SI,nan:iI,nativeEnum:bI,never:pI,null:cI,nullable:vI,number:Kh,object:hI,oboolean:MI,onumber:LI,optional:CI,ostring:UI,pipeline:PI,preprocess:NI,promise:DI,record:_I,set:OI,strictObject:gI,string:Yh,symbol:aI,transformer:Gh,tuple:AI,undefined:uI,union:yI,unknown:dI,void:fI,NEVER:FI,ZodIssueCode:I,quotelessJson:kO,ZodError:ze});var nu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),zh=ee.record(nu,ee.string()),eu=ee.record(nu,ee.any()),tu=ee.record(nu,ee.union([ee.any().array(),ee.string()])),Zh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Xh))})),ru=ee.union([ee.string(),ee.number()]),Xh={string:zh.optional(),fuzzy:zh.optional(),range:ee.record(nu,ee.union([ee.object({high:ru,low:ru}),ee.object({high:ru}),ee.object({low:ru})])).optional(),equal:eu.optional(),notEqual:eu.optional(),empty:eu.optional(),notEmpty:eu.optional(),oneOf:tu.optional(),contains:tu.optional(),notContains:tu.optional(),containsAny:tu.optional(),$and:Zh.optional(),$or:Zh.optional()},TV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ai).optional(),...Xh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(fn).optional(),sortType:ee.nativeEnum(Ha).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Dp={};v(Dp,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Sp,Config:()=>bp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Ip,DEFAULT_JOBS_TABLE_ID:()=>Op,DEFAULT_TENANT_ID:()=>Ee,DeprecatedViews:()=>Hi,DocumentType:()=>he,GlobalRole:()=>wp,Header:()=>Xe,InternalTable:()=>xr,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>bT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Se,UNICODE_MAX:()=>Fe,UserStatus:()=>Hu,ViewName:()=>Fr});var Cq={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 Uq={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 Gq="darkest",$q="light",$I=[{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 Mr={};v(Mr,{ColumnSplitter:()=>ap,NoEmptyFilterStrings:()=>_T,buildQuery:()=>ST,cleanupQuery:()=>lp,fixupFilterArrays:()=>pp,getKeyNumbering:()=>dp,getValidOperatorsForType:()=>lC,hasFilters:()=>up,limit:()=>IT,recurseLogicalOperators:()=>cp,removeKeyNumbering:()=>iu,runQuery:()=>Bu,search:()=>fC,sort:()=>OT,splitFiltersArray:()=>su});var Qi=Q(tg());var Ci={};v(Ci,{filterValueToLabel:()=>HI,hasSchema:()=>YI,isSupportedUserSearch:()=>ng,parallelForeach:()=>jI,processSearchFilters:()=>$l,trimOtherProps:()=>KI,unreachable:()=>QI});var rg=Q(require("lodash")),WI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function QI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function jI(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 HI(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function YI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function KI(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(Va(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}=su(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=rg.default.pick(i,WI);return s.field=iu(s.field),s})}]}}var jt={};v(jt,{cancelableTimeout:()=>ig,cron:()=>tp,deepGet:()=>Vl,getUserColor:()=>zI,getUserInitials:()=>JI,getUserLabel:()=>ZI,isGoogleSheets:()=>ex,isSQL:()=>tx,lists:()=>op,retry:()=>rx,roles:()=>sp,schema:()=>Oo,views:()=>ip,wait:()=>ql,withTimeout:()=>XI});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},JI=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"},zI=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%)`},ZI=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 XI(t,e){let[r,n]=ig(t),i=await Promise.race([e(),r]);return n(),i}function ex(t){return t==="GOOGLE_SHEETS"}function tx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function ql(t){return new Promise(e=>setTimeout(e,t))}async function rx(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={};v(tp,{getNextExecutionDates:()=>HD,validate:()=>YD});var gT=Q(Vt()),yT=Q(mT()),hT="(Input cron: ",QD={"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(hT)&&(r=r.split(hT)[0].trim());for(let[n,i]of Object.entries(QD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function HD(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 YD(t){let e=(0,gT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:jD(e.getError())}}var Oo={};v(Oo,{decodeNonAscii:()=>rp,encodeNonAscii:()=>zD,isDeprecatedSingleUserColumn:()=>KD,isNumeric:()=>ZD,isRequired:()=>JD});function KD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function JD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function zD(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 ZD(t){return t.type==="number"||t.type==="bigint"}var ip={};v(ip,{basicFields:()=>nC,calculationFields:()=>rC,hasCalculationFields:()=>tC,isBasicViewField:()=>XD,isCalculationField:()=>Io,isCalculationView:()=>eC,isV2:()=>iC,isVisible:()=>ET});var np=require("lodash");function Io(t){return"calculationType"in t}function XD(t){return!Io(t)}function eC(t){return t.type==="calculation"}function tC(t){return Object.values(t.schema||{}).some(Io)}function rC(t){return(0,np.pickBy)(t.schema||{},Io)}function ET(t){return t.visible!==!1}function nC(t,e){let{visible:r=!0}=e||{};return(0,np.pickBy)(t.schema||{},n=>!Io(n)&&(!r||ET(n)))}function iC(t){return t.version===2}var sp={};v(sp,{checkForRoleInheritanceLoops:()=>oC});function sC(t){return`role${N}${t}`}function oC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=sC(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={};v(op,{punctuateList:()=>aC});function aC(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 Hn=require("lodash");var uC=/{{([^{].*?)}}/g,AT=Object.values(Ti),cC=[...Object.values(Or),...Object.values(Kt),...Object.values(dn)],lC=(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"||Oo.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},_T=[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 _T)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===""||dC(s))&&delete t[e][i]}return t=cp(t,lp),t};function dC(t){return Array.isArray(t)&&t.length===0}var iu=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 pC(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(uC)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;o=new Date(o).toISOString()}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(bl(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(Ph(r)||Uh(r)||bl(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function su(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function ST(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=ST(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=su(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=TT(n.logicalOperator)),{[a]:{conditions:o.map(pC).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(Kt)){let r=t[e];if(!(r==null||!(0,Hn.isPlainObject)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return cp(t,pp),t}function fC(t,e){let r=Bu(t,e.query);e.sort&&(r=OT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=IT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Bu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=lp(e),e=pp(e),!up(e)&&e.onEmptyFilter==="none")return[];let r=(T,O)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Va(T)?x:Vl(x,iu(w)),un=O(le,B);if(e.allOr&&un)return!0;if(!e.allOr&&!un)return!1}return!e.allOr},n=r("string",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().startsWith(O.toLowerCase())),i=r("fuzzy",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().includes(O.toLowerCase())),s=r("range",(T,O)=>{if(T==null||T===""||((0,Hn.isPlainObject)(O.low)&&(0,Hn.isEmpty)(O.low)&&(O.low=void 0),(0,Hn.isPlainObject)(O.high)&&(0,Hn.isEmpty)(O.high)&&(O.high=void 0),O.low==null&&O.high==null))return!1;let x=+T;if(!isNaN(x)){let B=+O.low,le=+O.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)(O.low||"0000-00-00T00:00:00.000Z"),le=(0,Qi.default)(O.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 O.low!=null&&O.high!=null?T>=O.low&&T<=O.high:O.low!=null?T>=O.low:O.high!=null?T<=O.high:!1}),o=(T,O)=>{if(Array.isArray(T)){for(let w of T)if(o(w,O))return!0;return!1}if(T&&typeof T=="object"&&typeof O=="string")return T._id===O;if(T===O)return!0;if(T==null&&O!=null||T!=null&&O==null)return!1;let x=(0,Qi.default)(T);if(x.isValid()){let w=(0,Qi.default)(O);if(w.isValid())return x.isSame(w)}return!1},a=T=>(...O)=>!T(...O),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,O)=>(typeof O=="string"&&(O=O.split(",")),typeof T=="number"&&(O=O.map(x=>parseFloat(x))),Array.isArray(O)?O.some(x=>o(T,x)):!1)),f=T=>(O,x)=>!Array.isArray(O)||(typeof x=="string"&&(x=x.split(","),typeof O[0]=="number"&&(x=x.map(w=>parseFloat(w)))),!Array.isArray(x))?!1:x.length===0?!0:x[T](w=>o(O,w)),g=r("contains",(T,O)=>Array.isArray(O)&&O.length===0?!0:f("every")(T,O)),E=r("notContains",(T,O)=>Array.isArray(O)&&O.length===0?!0:a(f("every"))(T,O)),y=r("containsAny",f("some")),S=r("$and",(T,O)=>{if(!O.length)return!1;for(let x of O)if(!Bu([T],x).length)return!1;return!0}),_=r("$or",(T,O)=>{if(!O.length)return!1;for(let x of O)if(Bu([T],{...x,allOr:!0}).length)return!0;return!1}),M=T=>{let O={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:_},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>O[w]?.(T)??!1);return up(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function OT(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 IT(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 cC){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={};v(ot,{applications:()=>mp,automations:()=>hp,screens:()=>Ap,users:()=>Tp});var mp={};v(mp,{getDevAppID:()=>mC,getProdAppID:()=>Gu});var fp=Ir("app"),xo=Ir("app_dev");function mC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(xo))return t;let e=t.split(fp);e.shift();let r=e.join(fp);return`${xo}${r}`}function Gu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(xo))return t;let e=t.split(xo);e.shift();let r=e.join(xo);return`${fp}${r}`}var hp={};v(hp,{isAppAction:()=>yC,isRowAction:()=>hC,isWebhookAction:()=>gC});function hC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function gC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function yC(t){return t.definition.trigger?.stepId==="APP"}var Tp={};v(Tp,{canCreateApps:()=>EC,containsUserID:()=>IC,getGlobalUserID:()=>OC,getUserAppGroups:()=>xC,getUserGroups:()=>Ep,hasAdminPermissions:()=>yp,hasAppBuilderPermissions:()=>qu,hasAppCreatorPermissions:()=>xT,hasBuilderPermissions:()=>_C,hasCreatorPermissions:()=>Wu,isAdmin:()=>Vu,isAdminOrBuilder:()=>TC,isAdminOrGlobalBuilder:()=>AC,isBuilder:()=>gp,isCreator:()=>SC,isGlobalBuilder:()=>$u,userAppAccessList:()=>RC});var kr=Q(require("lodash/fp"));function gp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Gu(e))):!1}function $u(t){return gp(t)&&!qu(t)||Vu(t)}function EC(t){return $u(t)||Wu(t)}function Vu(t){return t?yp(t):!1}function TC(t,e){return gp(t,e)||Vu(t)}function AC(t){return $u(t)||Vu(t)}function qu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function xT(t){return t?kr.flow(kr.get("roles"),kr.values,kr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function _C(t){return t?t.builder?.global||qu(t)||Wu(t):!1}function yp(t){return t?!!t.admin?.global:!1}function Wu(t){return t?!!t.builder?.creator:!1}function SC(t){return t?$u(t)||yp(t)||Wu(t)||qu(t)||xT(t):!1}function OC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function IC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function Ep(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function xC(t,e,r){let n=Gu(t);return Ep(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function RC(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={};v(Ap,{findInSettings:()=>wC});function wC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var JQ={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},zQ={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},ZQ={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 oj={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 cj={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 pj={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 hj={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 Ej={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 _j={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 Ij={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 wj={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 Cj={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 Pj={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!0,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 FC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},Mj={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(FC)},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 Bj={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 Vj={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 Qj={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||{}),Yj={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(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||{}),zj={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 QC={ascending:"Ascending",descending:"Descending"},eH={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(fn),pretty:Object.values(QC)},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 nH={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:"string",title:"HTML Contents"},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 oH={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 cH={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 pH={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:"automatioFields",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 hH={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 EH={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 ev={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 rv={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 iv={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 ov={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 uv={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 lv={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 pv={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 Qu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Qu||{}),Fr=(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))(Fr||{}),Hi={by_email2:["by_email"]},Se={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"}},yt=Ir("app"),ju=Ir("app_dev"),Et=ju,_p="internal",Sp="budibase",or="_design/sqlite",Op="ta_bb_jobs",Ip="ta_bb_inventory",xp="ta_bb_expenses",Rp="ta_bb_employee";var Hu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Hu||{}),Yi=(s=>(s.Auth="budibase:auth",s.Init="budibase:init",s.ACCOUNT_RETURN_URL="budibase:account:returnurl",s.DatasourceAuth="budibase:datasourceauth",s.OIDC_CONFIG="budibase:oidc:config",s))(Yi||{}),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||{}),bT=new Date(-2147483647e3),Yu=new Date(2147483647e3),Ee="default";var Ca={};v(Ca,{CacheKey:()=>De,TTL:()=>si,app:()=>of,bustCache:()=>us,destroy:()=>sa,docWritethrough:()=>jm,generic:()=>oa,get:()=>oi,invite:()=>sm,keys:()=>_c,passwordReset:()=>Wm,store:()=>fr,user:()=>sn,withCache:()=>Jr,withCacheWithDynamicTTL:()=>f_,writethrough:()=>qm});var oa={};v(oa,{CacheKey:()=>De,TTL:()=>si,bustCache:()=>us,destroy:()=>sa,get:()=>oi,keys:()=>_c,store:()=>fr,withCache:()=>Jr,withCacheWithDynamicTTL:()=>f_});var Te={};v(Te,{DEFAULT_TENANT_ID:()=>Ee,baseGlobalDBName:()=>Po,doInAppContext:()=>Hv,doInAppMigrationContext:()=>Kv,doInAutomationContext:()=>jv,doInContext:()=>Yp,doInEnvironmentContext:()=>zv,doInIPContext:()=>zp,doInIdentityContext:()=>wo,doInScimContext:()=>Zv,doInTenant:()=>$e,ensureSnippetContext:()=>zT,getAppDB:()=>es,getAppId:()=>Ue,getAuditLogDBName:()=>KT,getAuditLogsDB:()=>eN,getAutomationId:()=>Kp,getCurrentContext:()=>ts,getDevAppDB:()=>rN,getEnvironmentVariables:()=>Xv,getFeatureFlags:()=>Zp,getGlobalDB:()=>ie,getGlobalDBName:()=>ur,getIP:()=>Jp,getIdentity:()=>ar,getPlatformURL:()=>Hp,getProdAppDB:()=>tN,getProdAppId:()=>Jv,getScimDBName:()=>Vv,getTableForView:()=>nN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>$r,isScim:()=>Pt,isTenancyEnabled:()=>Wv,isTenantIdSet:()=>qv,setFeatureFlags:()=>Xp,setTableForView:()=>iN});var Ro={};v(Ro,{doInAccountContext:()=>gv,doInIdentityContext:()=>vp,doInUserContext:()=>Np,getAccountUserId:()=>DT,getIdentity:()=>Cp});function Cp(){return ar()}function vp(t,e){return wo(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 gv(t,e){let r=DT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return vp(i,e)}function DT(t){let e;return Wa(t)?e=t.budibaseUserId:e=t.accountId,e}var zu=require("fs");var NT=require("lodash"),Pp=require("crypto");function Up(){return PT()}function PT(){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 yv(t){if(t)return parseInt(t)}var CT=!1;!CT&&Ju()&&!Up()&&(require("dotenv").config(),CT=!0);var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},vT=!!parseInt(process.env.SELF_HOSTED||"");function Ev(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Tv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Av(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,zu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,zu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Ju()&&!Up())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 _v(){return vt.SERVICE_TYPE==="worker"}function Sv(){return vt.SERVICE_TYPE==="apps"}function Ov(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Up,isJest:PT,isDev:Ju,isWorker:_v,isApps:Sv,isQA:Ov,isProd:()=>!Ju(),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:Ev(),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:vT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Ki.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Ki.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Ki.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Ki.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Ki.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Ki.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE: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:Tv(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:vT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Av(),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:yv(process.env.BSON_BUFFER_SIZE)};function bo(t){let e=(0,NT.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=bo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var LT=["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 MT=require("async_hooks"),Pe=class t{static{this.storage=new MT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Lp="No app provided";function Br(t){if(!t)throw Lp;return t.startsWith(Et)}function Iv(t){if(!t)throw Lp;return t.startsWith(yt)&&!Br(t)}function Do(t){if(!t)throw Lp;return Br(t.appId)}function Zu(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var xv=Zu;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 Rv(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 HT=Q(require("@budibase/nano"));var kT=Q(require("node-fetch"));function Xu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function FT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await Co({url:s,cookie:i,method:e,body:r})}async function Co({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)(Xu(encodeURI(t)),i)}async function ec(t,e="GET",r){let n=await FT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=Q(require("pouchdb"));var BT,GT=!1,kp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function tc(t){BT=kp(t),GT=!0}var bv=()=>{if(!GT)throw new Error("init has not been called")};function Tt(t,e){bv();let r=new BT(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 vo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var $T=require("uuid");function Oe(){return(0,$T.v4)().replace(/-/g,"")}var xe=Q(require("dd-trace")),Ji=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 Wp={};v(Wp,{breakExternalTableId:()=>Gp,breakRowIdField:()=>Bv,buildExternalTableId:()=>Pv,convertRowId:()=>Fv,encodeTableId:()=>Uv,encodeViewId:()=>Lv,generateRowIdField:()=>Mv,getNativeSql:()=>zi,isExternalTable:()=>Bp,isExternalTableID:()=>rc,isInternalTableID:()=>Nv,isInvalidISODateString:()=>$p,isRowId:()=>kv,isValidFilter:()=>ic,isValidISODateString:()=>nc,isValidTime:()=>Vp,sqlLog:()=>No,validateManyToMany:()=>qp});var Fp=`${N}${N}`,qT=/^\[.*]$/g,Dv=encodeURIComponent(" "),Cv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,vv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function rc(t){return t.startsWith("datasource"+N)}function Nv(t){return!rc(t)}function zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function Bp(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&rc(t._id))}function Pv(t,e){return`${t}${Fp}${encodeURIComponent(e)}`}function Uv(t){return rc(t)?encodeURIComponent(t):t}function Lv(t){return encodeURIComponent(t)}function Gp(t){let e=t.split(Fp),r=e.shift(),n=e.join(Fp);if(n.includes(Dv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Mv(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 kv(t){return Array.isArray(t)||typeof t=="string"&&t.match(qT)!=null}function Fv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(qT)!=null?t.substring(1,t.length-1):t}function Bv(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function nc(t){let e=t.trim();if(!Cv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function $p(t){return!nc(t)}function ic(t){return t!=null&&t!==""}function Vp(t){return vv.test(t)}function No(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 Gv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function qp(t){if(Gv(t))return t}var WT="Database does not exist.";function QT(t){return(0,HT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Gr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function $v(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zi(t,r,e);return new Ji(n)}var Zi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=QT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=QT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Co({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Gr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===WT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Gr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Gr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(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 Gr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),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===WT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Xu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Co(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Gr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${or}`;return No("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(or)){let e=await this.get(or);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Gr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function Ye(t,e){return new Ji(new Zi(t,e))}async function ut(t,e,r){let n=Ye(t,r);return await e(n)}async function Qp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await ec(e)}async function jp(t,e){let r=await ec(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var YT=null;function ur(t){return t||(t=j()),Po(t)}function KT(t){return t||(t=j()),t===Ee?Se.AUDIT_LOGS.name:`${t}${N}${Se.AUDIT_LOGS.name}`}function Vv(t){return t||(t=j()),t===Ee?Se.SCIM_LOGS.name:`${t}${N}${Se.SCIM_LOGS.name}`}function Po(t){return!t||t===Ee?Se.GLOBAL.name:`${t}${N}${Se.GLOBAL.name}`}function Hp(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function qv(){return!!Pe.get()?.tenantId}function Wv(){return h.MULTI_TENANCY}function Xi(t){if(!t)return;if(!$r())return Ee;let e=t.split(N),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Qv(t){let e;try{e=Pe.get()}catch{e={}}return e={...e,...t},e}async function Vr(t,e){Yv();let r=Qv(t);return Pe.run(r,e)}async function jv(t){return await zT(),await Vr({tenantId:Xi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Yp(t,e){let r=Xi(t);return Vr({tenantId:r,appId:t},e)}async function $e(t,e){return h.MULTI_TENANCY||(t=t||Ee),Vr(t?{tenantId:t}:{},e)}async function Hv(t,e){return JT(t,e)}async function JT(t,e,r){if(!t)throw new Error("appId is required");let n=Xi(t),i={appId:t,...r};return n&&(i.tenantId=n),Vr(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Vr(r,e)}function Yv(){if(Pe.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function Kv(t,e){return JT(t,e,{isMigrating:!0})}function ar(){try{return Pe.get()?.identity}catch{}}function j(){if(!$r())return Ee;let e=Pe.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Kp(){return Pe.get()?.automationId}function Ue(){let e=Pe.get()?.appId;return!e&&h.isTest()&&YT?YT:e}function Jp(){return Pe.get()?.ip}var Jv=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function zv(t,e){if(!t)throw new Error("Must supply environment variables.");return Vr({environmentVariables:t},e)}function Zv(t){return Vr({isScim:!0},t)}function zp(t,e){return Vr({ip:t},e)}async function zT(t=!h.isTest()){let e=ts();if(!e||e.snippets)return;let r,n=es();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function Xv(){let t=Pe.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=Pe.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ye(Po(t?.tenantId))}function eN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ye(KT())}function es(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ye(e,t)}function tN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ye(at(e),t)}function rN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ye(Zu(e),t)}function Pt(){return!!Pe.get()?.isScim}function ts(){try{return Pe.get()}catch{return}}function Zp(t){let e=ts();if(e)return e.featureFlagCache?.[t]}function Xp(t,e){let r=ts();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function nN(t){let e=ts();if(e)return e.viewToTableCache?.[t]}function iN(t,e){let r=ts();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Kr={};v(Kr,{getAppClient:()=>pc,getCacheClient:()=>Gf,getDocWritethroughClient:()=>aP,getInviteClient:()=>ri,getLockClient:()=>Vf,getPasswordResetClient:()=>ia,getSessionClient:()=>Yr,getSocketClient:()=>oP,getUserClient:()=>na,getWritethroughClient:()=>$f,init:()=>Lt,shutdown:()=>p_});var l_=Q(require("ioredis"));var ac={};v(ac,{Databases:()=>ef,SEPARATOR:()=>rs,SelectableDatabase:()=>sc,addDbPrefix:()=>Ke,getRedisConnectionDetails:()=>oc,getRedisOptions:()=>ns,removeDbPrefix:()=>tf});var sN=2e3,ZT=1e4,rs="-",ef=(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))(ef||{}),sc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(sc||{});function oc(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function ns(){let{host:t,password:e,port:r}=oc(),n={connectTimeout:ZT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:ZT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:sN,dnsLookup:(s,o)=>o(null,s)}),i}function Ke(t,e){return e.includes(t)?e:`${t}${rs}${e}`}function tf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var Ac={};v(Ac,{correlation:()=>Uo,logAlert:()=>Xn,logAlertWithInfo:()=>eP,logWarn:()=>as,logger:()=>Tc,system:()=>Cf});var Uo={};v(Uo,{getId:()=>rf,setHeader:()=>oN});var XT=require("correlation-id"),oN=t=>{let e=XT.getId();e&&(t["x-budibase-correlation-id"]=e)};function rf(){return XT.getId()}var Ec=Q(require("pino")),u_=Q(require("pino-pretty"));var vf=Q(require("dd-trace")),c_=require("dd-trace/ext");var Cf={};v(Cf,{getLogReadStream:()=>YN,getSingleFileMaxSizeInfo:()=>a_,localFileDestination:()=>Df});var qo=Q(require("fs")),bf=Q(require("path")),n_=Q(require("rotating-file-stream"));var wf={};v(wf,{ObjectStore:()=>Ut,ObjectStoreBuckets:()=>uN,SIGNED_FILE_PREFIX:()=>Of,bucketTTLConfig:()=>uc,budibaseTempDir:()=>Kn,clientLibraryCDNUrl:()=>$N,clientLibraryPath:()=>KA,clientLibraryUrl:()=>VN,createBucketIfNotExists:()=>Vo,deleteFile:()=>UN,deleteFiles:()=>LN,deleteFolder:()=>jA,downloadTarball:()=>kN,downloadTarballDirect:()=>MN,enrichPluginURLs:()=>QN,extractBucketAndPath:()=>nf,getAppFileUrl:()=>qN,getGlobalFileS3Key:()=>JA,getGlobalFileUrl:()=>WN,getObjectMetadata:()=>FN,getPluginIconKey:()=>XA,getPluginJSKey:()=>ZA,getPluginS3Dir:()=>t_,getPresignedUrl:()=>jr,getReadStream:()=>cc,listAllObjects:()=>QA,processAutomationAttachment:()=>lN,processObjectStoreAttachment:()=>iA,retrieve:()=>WA,retrieveDirectory:()=>PN,retrieveToTmp:()=>NN,sanitizeBucket:()=>Je,sanitizeKey:()=>Le,streamUpload:()=>qA,upload:()=>vN,uploadDirectory:()=>If});var gc=require("@aws-sdk/client-s3"),Ef=require("@aws-sdk/lib-storage"),BA=require("@aws-sdk/s3-request-presigner"),$o=Q(require("stream")),Tf=Q(require("node-fetch")),Af=Q(require("tar-fs")),_f=Q(require("zlib")),GA=require("util"),Qr=require("path"),pr=Q(require("fs"));var Lo=Q(require("path")),eA=require("os"),tA=Q(require("fs"));var rA=Q(require("stream")),uN={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},nA=(0,Lo.join)((0,eA.tmpdir)(),".budibase");try{tA.default.mkdirSync(nA)}catch(t){if(t.code!=="EEXIST")throw t}function Kn(){return nA}var uc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function cN(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Lo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:rA.default.Readable.fromWeb(e.body)}}async function iA(t){let e=nf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await cc(r,n),s=Lo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function lN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await cN(t):await iA(t)}var Sf=require("uuid");var qr={};v(qr,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Sp,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Rp,DEFAULT_EXPENSES_TABLE_ID:()=>xp,DEFAULT_INVENTORY_TABLE_ID:()=>Ip,DEFAULT_JOBS_TABLE_ID:()=>Op,DatabaseImpl:()=>Zi,DatabaseWithConnection:()=>$v,DeprecatedViews:()=>Hi,DocumentType:()=>he,InternalTable:()=>xr,QueryBuilder:()=>dr,Replication:()=>UA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Se,UNICODE_MAX:()=>Fe,ViewName:()=>Fr,baseGlobalDBName:()=>Po,checkErrorCode:()=>FA,closePouchDB:()=>vo,createApiKeyView:()=>DA,createNewUserEmailView:()=>wA,createPlatformAccountEmailView:()=>vA,createPlatformUserView:()=>NA,createUserAppView:()=>bA,createView:()=>ss,dbExists:()=>_N,directCouchAllDbs:()=>Qp,directCouchCall:()=>FT,directCouchFind:()=>jp,directCouchQuery:()=>ec,directCouchUrlCall:()=>Co,doWithDB:()=>ut,extractAppUUID:()=>Rv,fullSearch:()=>xN,generateAppID:()=>oA,generateAppUserID:()=>fc,generateDevInfoID:()=>fA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>hA,generatePluginID:()=>mA,generateRoleID:()=>uf,generateRowID:()=>af,generateTableID:()=>aA,generateTemplateID:()=>pA,generateUserMetadataID:()=>lA,generateWorkspaceID:()=>uA,getAllApps:()=>ko,getAllDbs:()=>RA,getAppsByIDs:()=>yN,getCouchInfo:()=>Nt,getDB:()=>Ye,getDevAppID:()=>xv,getDevAppIDs:()=>TN,getDevelopmentAppID:()=>Zu,getDocParams:()=>Jn,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>dA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>xA,getPluginParams:()=>IA,getPouch:()=>kp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>EN,getQueryIndex:()=>gA,getRoleParams:()=>hc,getRowParams:()=>cf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>OA,getUrlInfo:()=>Mp,getUserMetadataParams:()=>SA,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>_A,init:()=>tc,isDatasourceId:()=>TA,isDevApp:()=>Do,isDevAppID:()=>Br,isDocumentConflictError:()=>wN,isExternalTableId:()=>lf,isGlobalUserID:()=>cA,isProdAppID:()=>Iv,isQueryId:()=>AA,isSameAppID:()=>AN,isTableId:()=>yA,isViewId:()=>EA,paginatedSearch:()=>IN,pagination:()=>pf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>hf,queryPlatformView:()=>Bo,queryView:()=>mf,queryViewRaw:()=>Fo,removeKeyNumbering:()=>Go,searchIndexes:()=>yf});var of={};v(of,{AppState:()=>sf,getAppMetadata:()=>dc,invalidateAppMetadata:()=>mN});var sf=(e=>(e.INVALID="invalid",e))(sf||{}),sA=3600,dN=60;async function pN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function fN(t){return!t||t.state==="invalid"}async function dc(t){let e=await pc(),r=await e.get(t);if(!r){let n=sA;try{r=await pN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=dN;else throw i}if(fN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function mN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await pc();await r.delete(t),e&&await r.store(t,e,sA)}var df={};v(df,{generateAppID:()=>oA,generateAppUserID:()=>fc,generateDevInfoID:()=>fA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>hA,generatePluginID:()=>mA,generateRoleID:()=>uf,generateRowID:()=>af,generateTableID:()=>aA,generateTemplateID:()=>pA,generateUserMetadataID:()=>lA,generateWorkspaceID:()=>uA,getDocParams:()=>Jn,getGlobalIDFromUserMetadataID:()=>dA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>xA,getPluginParams:()=>IA,getQueryIndex:()=>gA,getRoleParams:()=>hc,getRowParams:()=>cf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>OA,getUserMetadataParams:()=>SA,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>_A,isDatasourceId:()=>TA,isExternalTableId:()=>lf,isGlobalUserID:()=>cA,isQueryId:()=>AA,isTableId:()=>yA,isViewId:()=>EA,prefixRoleID:()=>cr});var oA=t=>{let e=yt;return t&&(e+=`${t}${N}`),`${e}${Oe()}`};function aA(){return`ta${N}${Oe()}`}function af(t,e){return e=e||Oe(),`ro${N}${t}${N}${e}`}function uA(){return`workspace${N}${Oe()}`}function is(t){return`us${N}${t||Oe()}`}var hN=new RegExp(`^us${N}.+`);function cA(t){return hN.test(t)}function lA(t){return af("ta_users",t)}function dA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function pA(t){return`template${N}${t}${N}${Oe()}`}function fc(t,e){return`${t}${N}${e}`}function uf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return uf(t)}var fA=t=>`devinfo${N}${t}`,mA=t=>`plg${N}${t}`,hA=t=>`oauth2log${N}${t}`;var gN=new RegExp("^datasource_plus_(.+)__(.+)$");function Jn(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${Fe}`}}function cf(t,e,r={}){if(t==null)return Jn("ro",null,r);let n=e??`${t}${N}`;return Jn("ro",n,r)}function gA(t){return`database/${t}`}var lf=t=>{let e=t.match(gN);return!!t&&e!==null},yA=t=>!!t&&(t.startsWith(`ta${N}`)||lf(t));function EA(t){return!!t&&t.startsWith(`view${N}`)}function TA(t){return!!t&&t.startsWith(`datasource${N}`)}function AA(t){return!!t&&t.startsWith(`query${N}`)}function _A(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${Fe}`}}function zn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${Fe}`}}function SA(t,e={}){return cf("ta_users",t,e)}function mc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Fe}`}}function OA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${Fe}`}}function hc(t,e={}){return Jn("role",t,e)}function Mo(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Fe}"`}var IA=(t,e={})=>Jn("plg",t,e),xA=(t,e={})=>Jn("oauth2",t,e);async function RA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Qp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Ee?await n():(await n(Mo("app",i)),await n(Mo("app_dev",i)),r.push(ur(i))),r}async function ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Ee);let o=(await RA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(N);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Ee&&d||l===i}return!1});if(r){let u=o.filter(l=>Br(l)),c=o.filter(l=>!Br(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>dc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:Do(l)?"development":"published"})):c.filter(l=>t?Do(l):!Do(l))}}async function yN(t){return(await Promise.allSettled(t.map(r=>dc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function EN(){return(await ko({idsOnly:!0})).filter(e=>!Br(e))}async function TN(){return(await ko({idsOnly:!0})).filter(e=>Br(e))}function AN(t,e){return t==null||e==null?!1:at(t)===at(e)}async function _N(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function pf(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 ff="_design/database";function SN(){return{_id:ff,views:{}}}async function ON(t,e){if(Hi[e])try{let r=await t.get(ff);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(ff)}catch{n=SN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ss(t,e,r);throw s}}var wA=async()=>{let t=ie(),e=`function(doc) {
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,gu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,RR.default)(e).map(s=>new OR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new IR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,gu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,gu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,gu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};yu.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,xR.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=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Wg;Js.default=void 0;var wR=bR(tr());function bR(t){return t&&t.__esModule?t:{default:t}}var cd=wR.default,DR=cd;Js.default=DR;function Wg(){return new cd}Wg.prototype=cd.prototype});var Pi=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var CR=t=>t==null;Eu.default=CR});var Jg=H(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=Kg;Zs.default=void 0;var vR=Yg(tr()),jg=Xt(),Hg=Yg(Pi());function Yg(t){return t&&t.__esModule?t:{default:t}}function Kg(){return new zs}var zs=class extends vR.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}})}};Zs.default=zs;Kg.prototype=zs.prototype});var Xg=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=Zg;eo.default=void 0;var qt=Xt(),rr=zg(Pi()),NR=zg(tr());function zg(t){return t&&t.__esModule?t:{default:t}}var PR=/^((([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,UR=/^((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,LR=/^(?:[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,MR=t=>(0,rr.default)(t)||t===t.trim(),kR={}.toString();function Zg(){return new Xs}var Xs=class extends NR.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===kR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,rr.default)(n)||n.length===this.resolve(e)}})}min(e,r=qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,rr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,rr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||qt.string.matches,params:{regex:e},test:o=>(0,rr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(PR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(UR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(LR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:MR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,rr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,rr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toUpperCase()})}};eo.default=Xs;Zg.prototype=Xs.prototype});var ry=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ty;ro.default=void 0;var Nn=Xt(),Pn=ey(Pi()),FR=ey(tr());function ey(t){return t&&t.__esModule?t:{default:t}}var BR=t=>t!=+t;function ty(){return new to}var to=class extends FR.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"&&!BR(e)}min(e,r=Nn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Pn.default)(n)||n>=this.resolve(e)}})}max(e,r=Nn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Pn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Nn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Pn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Nn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Pn.default)(n)||n>this.resolve(e)}})}positive(e=Nn.number.positive){return this.moreThan(0,e)}negative(e=Nn.number.negative){return this.lessThan(0,e)}integer(e=Nn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Pn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Pn.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Pn.default)(i)?i:Math[e](i))}};ro.default=to;ty.prototype=to.prototype});var ny=H(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=$R;var GR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function $R(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=GR.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=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=pd;no.default=void 0;var VR=Tu(ny()),iy=Xt(),sy=Tu(Pi()),qR=Tu(vn()),WR=Tu(tr());function Tu(t){return t&&t.__esModule?t:{default:t}}var dd=new Date(""),QR=t=>Object.prototype.toString.call(t)==="[object Date]";function pd(){return new Ui}var Ui=class extends WR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,VR.default)(e),isNaN(e)?dd:new Date(e))})})}_typeCheck(e){return QR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(qR.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)}})}};no.default=Ui;Ui.INVALID_DATE=dd;pd.prototype=Ui.prototype;pd.INVALID_DATE=dd});var uy=H(($W,fd)=>{"use strict";fd.exports=function(t){return ay(jR(t),t)};fd.exports.array=ay;function ay(t,e){var r=t.length,n=new Array(r),i={},s=r,o=HR(e),a=YR(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 HR(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 YR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var cy=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.default=ew;var KR=Au(require("lodash/has")),JR=Au(uy()),zR=js(),ZR=Au(vn()),XR=Au(vi());function Au(t){return t&&t.__esModule?t:{default:t}}function ew(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,zR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,KR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),ZR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,XR.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return JR.default.array(n,r).reverse()}});var dy=H(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=tw;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 tw(t){return(e,r)=>ly(t,e)-ly(t,r)}});var Ey=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=yy;so.default=void 0;var py=Wt(require("lodash/has")),fy=Wt(require("lodash/snakeCase")),rw=Wt(require("lodash/camelCase")),nw=Wt(require("lodash/mapKeys")),iw=Wt(require("lodash/mapValues")),sw=js(),my=Xt(),ow=Wt(cy()),gy=Wt(dy()),aw=Wt(du()),uw=Wt(Dn()),gd=Wt(tr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Li(){return Li=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Li.apply(this,arguments)}var hy=t=>Object.prototype.toString.call(t)==="[object Object]";function cw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var lw=(0,gy.default)([]),io=class extends gd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=lw,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=Li({},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(!uw.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],Li({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,aw.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 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,ow.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,sw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,py.default)(s,e)&&(o=Li({},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=cw(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,nw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(rw.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,iw.default)(this.fields,r=>r.describe()),e}};so.default=io;function yy(t){return new io(t)}yy.prototype=io.prototype});var Ay=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Ty;ao.default=void 0;var yd=Mi(Pi()),dw=Mi(vi()),pw=Mi(Qs()),Ed=Xt(),fw=Mi(du()),mw=Mi(Dn()),hw=Mi(tr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Su(){return Su=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Su.apply(this,arguments)}function Ty(t){return new oo(t)}var oo=class extends hw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Su({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,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(!mw.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=Su({},r,{path:_,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,S,T)}(0,fw.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,dw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,pw.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)}};ao.default=oo;Ty.prototype=oo.prototype});var Sy=H(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=Ew;uo.default=void 0;var gw=yw(vi());function yw(t){return t&&t.__esModule?t:{default:t}}function Ew(t){return new _u(t)}var _u=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,gw.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)}},Tw=_u;uo.default=Tw});var _y=H(Td=>{"use strict";Object.defineProperty(Td,"__esModule",{value:!0});Td.default=_w;var Aw=Sw(Xt());function Sw(t){return t&&t.__esModule?t:{default:t}}function _w(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Aw.default[e][r]=t[e][r]})})}});var Sd=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Dw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return Ad.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return Ad.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return Iw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return Ow.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return xw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return Rw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return ww.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return bw.default}});var Iy=Un(Qg()),Ad=Un(Jg()),Oy=Un(Xg()),xy=Un(ry()),Ry=Un(oy()),wy=Un(Ey()),by=Un(Ay()),Iw=vn(),Ow=Sy(),xw=co(Dn()),Rw=co(ad()),Dy=co(vi()),ww=co(_y()),bw=co(tr());function co(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 Un(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 Dw(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=H(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=H(Ne=>{"use strict";var Cw=Ne&&Ne.__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]}),vw=Ne&&Ne.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Nw=Ne&&Ne.__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)&&Cw(e,t,r);return vw(e,t),e},Pw=Ne&&Ne.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.validateOptions=Ne.registerOptionPreset=Ne.getOptionPresets=Ne.getOptionPreset=void 0;var R=Nw(Sd());Sd();var lo=xt(),Uw=Pw(vy());Rt();var Ln={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Ny=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(),Lw=t=>Ln[t]?(0,lo.valid)(Ln[t]):(0,lo.err)(`Option preset '${t}' not found.`);Ne.getOptionPreset=Lw;var Mw=()=>Ln;Ne.getOptionPresets=Mw;var kw=(t,e)=>{Ln[t]=Ny.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Ne.registerOptionPreset=kw;var Fw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,_,S,M;try{(0,Uw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Ln[t.preset])return(0,lo.err)([`Option preset ${t.preset} does not exist.`]);T=Ln[t.preset]}else T=t.preset;else T=Ln.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:Ny.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,lo.valid)(w)}catch(T){return(0,lo.err)(T.errors)}};Ne.validateOptions=Fw});var Vt=H((po,Rd)=>{"use strict";var kn=po&&po.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(po,"__esModule",{value:!0});var Mn=xt(),Bw=kn(ag()),Gw=kn(ug()),$w=kn(cg()),Vw=kn(lg()),qw=kn(dg()),Ww=kn(pg()),Qw=kn(fg()),jw=Od();Rt();var Hw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Mn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Mn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Mn.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,Mn.valid)(n)},xd=(t,e={})=>{let r=(0,jw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Hw(t,n);if(i.isError())return(0,Mn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Bw.default)(s,n)),o.push((0,Gw.default)(s,n)),o.push((0,$w.default)(s,n)),o.push((0,Vw.default)(s,n)),o.push((0,qw.default)(s,n)),o.push((0,Ww.default)(s,n)),n.useYears&&o.push((0,Qw.default)(s,n)),o.every(u=>u.isValid()))return(0,Mn.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Mn.err)(a)};po.default=xd;Rd.exports=xd;Rd.exports.default=xd});var rT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var ir=class extends Error{},Ld=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Md=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},kd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends ir{},Du=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},He=class extends ir{},Qt=class extends ir{constructor(){super("Zone is an abstract class")}},b="numeric",Ct="short",nt="long",Cu={year:b,month:b,day:b},iE={year:b,month:Ct,day:b},Yw={year:b,month:Ct,day:b,weekday:Ct},sE={year:b,month:nt,day:b},oE={year:b,month:nt,day:b,weekday:nt},aE={hour:b,minute:b},uE={hour:b,minute:b,second:b},cE={hour:b,minute:b,second:b,timeZoneName:Ct},lE={hour:b,minute:b,second:b,timeZoneName:nt},dE={hour:b,minute:b,hourCycle:"h23"},pE={hour:b,minute:b,second:b,hourCycle:"h23"},fE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ct},mE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:nt},hE={year:b,month:b,day:b,hour:b,minute:b},gE={year:b,month:b,day:b,hour:b,minute:b,second:b},yE={year:b,month:Ct,day:b,hour:b,minute:b},EE={year:b,month:Ct,day:b,hour:b,minute:b,second:b},Kw={year:b,month:Ct,day:b,weekday:Ct,hour:b,minute:b},TE={year:b,month:nt,day:b,hour:b,minute:b,timeZoneName:Ct},AE={year:b,month:nt,day:b,hour:b,minute:b,second:b,timeZoneName:Ct},SE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,timeZoneName:nt},_E={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,second:b,timeZoneName:nt},Ur=class{get type(){throw new Qt}get name(){throw new Qt}get ianaName(){return this.name}get isUniversal(){throw new Qt}offsetName(e,r){throw new Qt}formatOffset(e,r){throw new Qt}offset(e){throw new Qt}equals(e){throw new Qt}get isValid(){throw new Qt}},wd=null,To=class t extends Ur{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 Eo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},wu={};function Jw(t){return wu[t]||(wu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),wu[t]}var zw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Zw(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 Xw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=zw[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Iu={},sr=class t extends Ur{static create(e){return Iu[e]||(Iu[e]=new t(e)),Iu[e]}static resetCache(){Iu={},wu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return OE(e,r,n,this.name)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=Jw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Xw(n,r):Zw(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 eb(t,e={}){let r=JSON.stringify([t,e]),n=Py[r];return n||(n=new Intl.ListFormat(t,e),Py[r]=n),n}var Fd={};function Bd(t,e={}){let r=JSON.stringify([t,e]),n=Fd[r];return n||(n=new Intl.DateTimeFormat(t,e),Fd[r]=n),n}var Gd={};function tb(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 rb(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 go=null;function nb(){return go||(go=new Intl.DateTimeFormat().resolvedOptions().locale,go)}function ib(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 sb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function ob(t){let e=[];for(let r=1;r<=12;r++){let n=Se.utc(2016,r,1);e.push(t(n))}return e}function ab(t){let e=[];for(let r=1;r<=7;r++){let n=Se.utc(2016,11,13+r);e.push(t(n))}return e}function Ou(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function ub(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=tb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):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&&sr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Se.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=rb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Ob(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=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||ye.defaultLocale,o=s||(i?"en-US":nb()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){go=null,Fd={},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]=ib(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=sb(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=ub(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Ou(this,e,n,wE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=ob(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Ou(this,e,n,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]=ab(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Ou(this,void 0,e,()=>vE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Se.utc(2016,11,13,9),Se.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Ou(this,e,r,NE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Se.utc(-40,1,1),Se.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 eb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},bd=null,it=class t extends Ur{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(Mu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Eo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Eo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Eo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},vu=class extends Ur{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Pr(t,e){if(ne(t)||t===null)return e;if(t instanceof Ur)return t;if(cb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?To.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||sr.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new vu(t)}var Uy=()=>Date.now(),Ly="system",My=null,ky=null,Fy=null,By=60,Gy,ye=class{static get now(){return Uy}static set now(e){Uy=e}static set defaultZone(e){Ly=e}static get defaultZone(){return Pr(Ly,To.instance)}static get defaultLocale(){return My}static set defaultLocale(e){My=e}static get defaultNumberingSystem(){return ky}static set defaultNumberingSystem(e){ky=e}static get defaultOutputCalendar(){return Fy}static set defaultOutputCalendar(e){Fy=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(){Ae.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Lu(t){return typeof t=="number"&&t%1===0}function cb(t){return typeof t=="string"}function lb(t){return Object.prototype.toString.call(t)==="[object Date]"}function IE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function db(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 pb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return Lu(t)&&t>=e&&t<=r}function fb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Nr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Fn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Hd(t){if(!(ne(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 Ao(t){return t%4===0&&(t%100!==0||t%400===0)}function yo(t){return Ao(t)?366:365}function Nu(t,e){let r=fb(e-1,12)+1,n=t+(e-r)/12;return r===2?Ao(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 Pu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Qd(t){return t>99?t:t>ye.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 Mu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function xE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new He(`Invalid unit value ${t}`);return e}function Uu(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 Eo(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 ku(t){return pb(t,["hour","minute","second","millisecond"])}var mb=["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"],hb=["J","F","M","A","M","J","J","A","S","O","N","D"];function wE(t){switch(t){case"narrow":return[...hb];case"short":return[...RE];case"long":return[...mb];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"],gb=["M","T","W","T","F","S","S"];function CE(t){switch(t){case"narrow":return[...gb];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"],yb=["Before Christ","Anno Domini"],Eb=["BC","AD"],Tb=["B","A"];function NE(t){switch(t){case"narrow":return[...Tb];case"short":return[...Eb];case"long":return[...yb];default:return null}}function Ab(t){return vE[t.hour<12?0:1]}function Sb(t,e){return CE(e)[t.weekday-1]}function _b(t,e){return wE(e)[t.month-1]}function Ib(t,e){return NE(e)[t.year<0?0:1]}function Ob(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 xb={D:Cu,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 xb[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?Ab(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?_b(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?Sb(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?Ib(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 UE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Nr(e[r+i]);return[n,null,r+i]}}var LE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Rb=`(?:${LE.source}?(?:\\[(${PE.source})\\])?)?`,Jd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,ME=RegExp(`${Jd.source}${Rb}`),zd=RegExp(`(?:T${ME.source})?`),wb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,bb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Db=/(\d{4})-?(\d{3})/,Cb=UE("weekYear","weekNumber","weekDay"),vb=UE("year","ordinal"),Nb=/(\d{4})-(\d\d)-(\d\d)/,kE=RegExp(`${Jd.source} ?(?:${LE.source}|(${PE.source}))?`),Pb=RegExp(`(?: ${kE.source})?`);function Bi(t,e,r){let n=t[e];return ne(n)?r:Nr(n)}function Ub(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 So(t,e){let r=!t[e]&&!t[e+1],n=Mu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Lb=RegExp(`^T?${Jd.source}$`),Mb=/^-?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 kb(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(Fn(r)),months:m(Fn(n)),weeks:m(Fn(i)),days:m(Fn(s)),hours:m(Fn(o)),minutes:m(Fn(a)),seconds:m(Fn(u),u==="-0"),milliseconds:m(Hd(c),d)}]}var Fb={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(Nr(e)):Nr(e),month:RE.indexOf(r)+1,day:Nr(n),hour:Nr(i),minute:Nr(s)};return o&&(a.second=Nr(o)),t&&(a.weekday=t.length>3?bE.indexOf(t)+1:DE.indexOf(t)+1),a}var Bb=/^(?:(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 Gb(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=Fb[u]:c?p=0:p=Mu(l,d),[m,new it(p)]}function $b(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Vb=/^(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$/,qb=/^(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$/,Wb=/^(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 Qb(t){let[,e,r,n,i,s,o,a]=t;return[Zd(e,a,r,n,i,s,o),it.utcInstance]}var jb=$i(wb,zd),Hb=$i(bb,zd),Yb=$i(Db,zd),Kb=$i(ME),FE=Vi(Ub,Wi,So,_o),Jb=Vi(Cb,Wi,So,_o),zb=Vi(vb,Wi,So,_o),Zb=Vi(Wi,So,_o);function Xb(t){return qi(t,[jb,FE],[Hb,Jb],[Yb,zb],[Kb,Zb])}function eD(t){return qi($b(t),[Bb,Gb])}function tD(t){return qi(t,[Vb,qy],[qb,qy],[Wb,Qb])}function rD(t){return qi(t,[Mb,kb])}var nD=Vi(Wi);function iD(t){return qi(t,[Lb,nD])}var sD=$i(Nb,Pb),oD=$i(kE),aD=Vi(Wi,So,_o);function uD(t){return qi(t,[sD,FE],[oD,aD])}var cD="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}},lD={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,ki=146097/4800,dD={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},...BE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],pD=Bn.slice(0).reverse();function vr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new be(n)}function fD(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?fD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function mD(t,e){pD.reduce((r,n)=>ne(e[n])?r:(r&&GE(t,e,r,e,n),n),null)}function hD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var be=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?dD:lD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.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 He(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Uu(e,t.normalizeUnit),loc:Ae.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new He(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=rD(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]=iD(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 He("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Du(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?tt.create(this.loc,n).formatDurationFromString(this,e):cD}toHuman(e={}){let r=Bn.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+=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 Bn)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return vr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=xE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Uu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return mD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=hD(this.normalize().shiftToAll().toObject());return vr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Bn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;Vn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)Bn.indexOf(c)>Bn.indexOf(o)&&GE(this.matrix,i,c,r,o)}else Vn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return vr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return vr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Bn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Fi="Invalid Interval";function gD(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 He("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Md(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ho(e),i=ho(r),s=gD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=be.fromDurationLike(r),i=ho(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=be.fromDurationLike(r),i=ho(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=Se.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Se.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=be.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=be.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(ho).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=be.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=Cu,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):be.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},$n=class{static hasDST(e=ye.defaultZone){let r=Se.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return sr.isValidZone(e)}static normalizeZone(e){return Pr(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.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(be.fromMillis(n).as("days"))}function yD(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 ED(t,e,r,n){let[i,s,o,a]=yD(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=be.fromObject(s,n);return c.length>0?be.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]},TD=Xd.hanidec.replace(/[\[|\]]/g,"").split("");function AD(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+=TD.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 SD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(AD(r))}}var _D=String.fromCharCode(160),$E=`[ ${_D}]`,VE=new RegExp($E,"g");function ID(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(ID).join("|")),deser:([r])=>t.findIndex(n=>jy(r)===jy(n))+e}}function Hy(t,e){return{regex:t,deser:([,r,n])=>Mu(r,n),groups:e}}function Dd(t){return{regex:t,deser:([e])=>e}}function OD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function xD(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(OD(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 Dd(l);case"uu":return Dd(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 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:SD};return g.token=t,g}var RD={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 wD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=RD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function bD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function DD(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 CD(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=sr.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=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 vD(){return Cd||(Cd=Se.fromMillis(1555555555555)),Cd}function ND(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=>ND(r,e)))}function WE(t,e,r){let n=qE(tt.parseFormat(r),t),i=n.map(o=>xD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=bD(i),u=RegExp(o,"i"),[c,l]=DD(e,u,a),[d,m,p]=l?CD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new Gn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function PD(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(vD()).map(i=>wD(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+(Ao(t)?HE:jE)[e-1]}function JE(t,e){let r=Ao(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=Pu(a)):o>Pu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...ku(t)}}function Yy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=YE(e,1,4),s=yo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=yo(a)):o>s?(a=e+1,o-=yo(e)):a=e;let{month:u,day:c}=JE(a,o);return{year:a,month:u,day:c,...ku(t)}}function vd(t){let{year:e,month:r,day:n}=t,i=KE(e,r,n);return{year:e,ordinal:i,...ku(t)}}function Ky(t){let{year:e,ordinal:r}=t,{month:n,day:i}=JE(e,r);return{year:e,month:n,day:i,...ku(t)}}function UD(t){let e=Lu(t.weekYear),r=nr(t.weekNumber,1,Pu(t.weekYear)),n=nr(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function LD(t){let e=Lu(t.year),r=nr(t.ordinal,1,yo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function zE(t){let e=Lu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,Nu(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=nr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=nr(r,0,59),a=nr(n,0,59),u=nr(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 xu(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 fo(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Se({...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 bu(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,Nu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=be.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 mo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Se.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Se.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ru(t,e,r=!0){return t.isValid?tt.create(Ae.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Ud(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},MD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},kD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},tT=["year","month","day","hour","minute","second","millisecond"],FD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],BD=["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 Du(t);return e}function tE(t,e){let r=Pr(e.zone,ye.defaultZone),n=Ae.fromObject(e),i=ye.now(),s,o;if(ne(t.year))s=i;else{for(let c of tT)ne(t[c])&&(t[c]=eT[c]);let a=zE(t)||ZE(t);if(a)return Se.invalid(a);let u=r.offset(i);[s,o]=bu(t,u,r)}return new Se({ts:s,zone:r,loc:n,o})}function rE(t,e,r){let n=ne(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 Se=class t{constructor(e){let r=e.zone||ye.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:xu(r));this.ts=ne(e.ts)?ye.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||Ae.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=lb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Pr(r.zone,ye.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(xu(i))}static fromMillis(e,r={}){if(Vn(e))return e<-Jy||e>Jy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Pr(r.zone,ye.defaultZone),loc:Ae.fromObject(r)});throw new He(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Vn(e))return new t({ts:e*1e3,zone:Pr(r.zone,ye.defaultZone),loc:Ae.fromObject(r)});throw new He("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Pr(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(xu(n));let i=ye.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Uu(e,eE),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Ae.fromObject(r);if((l||a)&&d)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Gn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=zy(i,s);p?(f=FD,g=MD,E=jd(E)):a?(f=BD,g=kD,E=vd(E)):(f=tT,g=eT);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?UD(o):a?LD(o):zE(o),S=_||ZE(o);if(S)return t.invalid(S);let M=p?Yy(o):a?Ky(o):o,[T,I]=bu(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]=Xb(e);return mo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=eD(e);return mo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=tD(e);return mo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new He("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=PD(o,e,r);return l?t.invalid(l):mo(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]=uD(e);return mo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new He("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Ld(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=QE(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return qE(tt.parseFormat(e),Ae.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?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return Ao(this.year)}get daysInMonth(){return Nu(this.year,this.month)}get daysInYear(){return this.isValid?yo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Pu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(ye.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Pr(e,ye.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=bu(o,s,e)}return fo(this,{ts:i,zone:e})}else return t.invalid(xu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return fo(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Uu(e,eE),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 Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Gn("Can't mix ordinal dates with month/day");let c;n?c=Yy({...jd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Nu(c.year,c.month),c.day))):c=Ky({...vd(this.c),...r});let[l,d]=bu(c,this.o,this.zone);return fo(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e);return fo(this,Zy(this,r))}minus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e).negate();return fo(this,Zy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=be.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=Cu,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=Ud(this,o);return a+="T",a+=Xy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Ud(this,e==="extended"):null}toISOWeekDate(){return Ru(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Xy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ru(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ru(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Ud(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ru(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():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 be.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=db(r).map(be.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=ED(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 He("min requires all arguments be DateTimes");return $y(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new He("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=Ae.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 Cu}static get DATE_MED(){return iE}static get DATE_MED_WITH_WEEKDAY(){return Yw}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 Kw}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 ho(t){if(Se.isDateTime(t))return t;if(t&&t.valueOf&&Vn(t.valueOf()))return Se.fromJSDate(t);if(t&&typeof t=="object")return Se.fromObject(t);throw new He(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var GD="3.2.1";st.DateTime=Se;st.Duration=be;st.FixedOffsetZone=it;st.IANAZone=sr;st.Info=$n;st.Interval=qn;st.InvalidZone=vu;st.Settings=ye;st.SystemZone=To;st.VERSION=GD;st.Zone=Ur});var iT=H((ZW,nT)=>{"use strict";var Wn=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=Wn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Wn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Wn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Wn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Wn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}nT.exports=z});var aT=H((XW,oT)=>{"use strict";function Qn(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(Qn(e.start)),t.push(Qn(e.end))):t.push(e)),r&&t.push(r)}function $D(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(ep(e,r,Qn(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(Qn(r.start)),r=Qn(r.end),sT(r,i)):(ep(e,r),r=Qn(i)):r=Qn(i)}return ep(e,r),e}oT.exports=$D});var cT=H((eQ,uT)=>{"use strict";var VD=aT();function qD(t,e,r){var n=VD(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=qD});var pT=H((tQ,dT)=>{"use strict";var jn=iT(),WD=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 jn(e.currentDate,this._tz),this._startDate=e.startDate?new jn(e.startDate,this._tz):null,this._endDate=e.endDate?new jn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(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 jn(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<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 jn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new jn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(WD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new jn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,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||{})};dT.exports=U});var mT=H((rQ,fT)=>{"use strict";var Fu=pT();function Lr(){}Lr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Fu.parse(e)};if(r.length>6)return{interval:Fu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Lr.parseExpression=function(e,r){return Fu.parse(e,r)};Lr.fieldsToExpression=function(e,r){return Fu.fieldsToExpression(e,r)};Lr.parseString=function(e){for(var r=e.split(`
5
+ `),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Lr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Lr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Lr.parseString(i.toString()))})};fT.exports=Lr});var AF={};v(AF,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>_p,BadRequestError:()=>bc,BudibaseError:()=>hs,Config:()=>bp,Cookie:()=>Yi,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:()=>Ee,DeprecatedViews:()=>Hi,DocumentType:()=>he,Duration:()=>we,DurationType:()=>Zf,EmailUnavailableError:()=>mr,ErrorCode:()=>vc,FeatureDisabledError:()=>Cc,GlobalRole:()=>wp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>xr,InvalidAPIKeyError:()=>gs,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>bT,NotFoundError:()=>wc,RedisClient:()=>Ve,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>_e,UNICODE_MAX:()=>Fe,UsageLimitError:()=>Dc,UserStatus:()=>Hu,ViewName:()=>Fr,accounts:()=>li,auth:()=>mh,blacklist:()=>Eh,cache:()=>Ca,configs:()=>nn,constants:()=>Dp,context:()=>Te,db:()=>qr,docIds:()=>df,docUpdates:()=>Ah,encryption:()=>dh,env:()=>h,errors:()=>Pc,events:()=>As,features:()=>rh,getPublicError:()=>Nc,init:()=>TF,installation:()=>Wc,locks:()=>ci,logging:()=>Ac,middleware:()=>fh,objectStore:()=>wf,permissions:()=>Xm,platform:()=>la,plugins:()=>gh,queue:()=>Am,redis:()=>yh,roles:()=>hm,security:()=>km,sessions:()=>zc,setEnv:()=>bo,sql:()=>Dh,tenancy:()=>EF,timers:()=>Ho,userUtils:()=>gm,users:()=>Ss,utils:()=>ls,withEnv:()=>UT});module.exports=NI(AF);var nn={};v(nn,{analyticsEnabled:()=>$c,generateConfigID:()=>Km,getAIConfig:()=>WM,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Hm,getGoogleConfig:()=>rl,getGoogleDatasourceConfig:()=>zm,getOIDCConfig:()=>$M,getOIDCConfigById:()=>Zm,getOIDCLogosDoc:()=>BM,getPlatformUrl:()=>La,getSCIMConfig:()=>qM,getSMTPConfig:()=>VM,getSMTPConfigDoc:()=>U_,getSettingsConfig:()=>Jm,getSettingsConfigDoc:()=>jc,save:()=>kM});var PI=["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"],vh=[...PI],Nh={"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||{}),$a=(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))($a||{});var wl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(wl||{});var UI=Q(require("lodash")),Ir=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Ir||{}),Kt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Kt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function Va(t){return Object.values(Ti).includes(t)}function Ph(t){return Object.values(Ir).includes(t)}function Uh(t){return Object.values(Kt).includes(t)}function bl(t){return Object.values(dn).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 ws=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(ws||{});var Mh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var SB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var bs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(bs||{});var qa=(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))(qa||{});var Wa=t=>t.hosting==="cloud";var Qa=t=>t.authType==="sso";var N="_",Fe="\uFFF0",Or=t=>`${t}${N}`,he=(W=>(W.USER="us",W.GROUP="gr",W.WORKSPACE="workspace",W.CONFIG="config",W.TEMPLATE="template",W.APP="app",W.DEV="dev",W.APP_DEV="app_dev",W.APP_METADATA="app_metadata",W.ROLE="role",W.MIGRATIONS="migrations",W.DEV_INFO="devinfo",W.AUTOMATION_LOG="log_au",W.ACCOUNT_METADATA="acc_metadata",W.PLUGIN="plg",W.DATASOURCE="datasource",W.DATASOURCE_PLUS="datasource_plus",W.APP_BACKUP="backup",W.TABLE="ta",W.ROW="ro",W.AUTOMATION="au",W.LINK="li",W.WEBHOOK="wh",W.INSTANCE="inst",W.LAYOUT="layout",W.SCREEN="screen",W.QUERY="query",W.DEPLOYMENTS="deployments",W.METADATA="metadata",W.MEM_VIEW="view",W.USER_FLAG="flag",W.AUTOMATION_METADATA="meta_au",W.AUDIT_LOG="al",W.APP_MIGRATION_METADATA="_design/migrations",W.SCIM_LOG="scimlog",W.ROW_ACTIONS="ra",W.OAUTH2_CONFIG="oauth2",W.OAUTH2_CONFIG_LOG="oauth2log",W))(he||{}),uG=Object.values(he).sort((t,e)=>e.length-t.length);var xr=(e=>(e.USER_METADATA="ta_users",e))(xr||{}),Dl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Dl||{}),cG=Object.values(Dl).sort((t,e)=>e.length-t.length);var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),ge=(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))(ge||{}),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||{}),kh=[...Object.values(de),...Object.values(It)];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 Fh=["attachment_single","attachment","signature_single","bb_reference","json","array"];var Nl="bb_internal";function ja(t){return!!t.providerType}var Pl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Pl||{});var _$=Object.values(Pl);var w$=["rows","queries","automations"],b$=["queries","automations"];var fn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(fn||{}),Ha=(r=>(r.STRING="string",r.NUMBER="number",r))(Ha||{});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 Ll;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Ll||(Ll={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Rr=t=>{switch(typeof t){case"undefined":return 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"]),kI=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,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}},$h=Ii;function FI(t){$h=t}function Ya(){return $h}var Ka=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}},BI=[];function P(t,e){let r=Ya(),n=Ka({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),Ml=t=>t.status==="aborted",kl=t=>t.status==="dirty",vs=t=>t.status==="valid",Ns=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 Ds,Cs,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(vs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Rr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ns(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return 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:Rr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ns(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: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:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return $t.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return Dr.create(this,this._def)}or(e){return An.create([this,e],this._def)}and(e){return Sn.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ps({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Us.create(this,e)}readonly(){return bn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},GI=/^c[^\s-]{8,}$/i,$I=/^[0-9a-z]+$/,VI=/^[0-9A-HJKMNP-TV-Z]{26}$/,qI=/^[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,WI=/^[a-z0-9_-]{21}$/i,QI=/^[-+]?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)?)??$/,jI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,HI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ul,YI=/^(?:(?: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])$/,KI=/^(([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})))$/,JI=/^([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])))",zI=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 ZI(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 XI(t,e){return!!((e==="v4"||!e)&&YI.test(t)||(e==="v6"||!e)&&KI.test(t))}var wr=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}),J}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code: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")jI.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")Ul||(Ul=new RegExp(HI,"u")),Ul.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")qI.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")WI.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")GI.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")$I.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")VI.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"?Qh(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"?zI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?ZI(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"?QI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?XI(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"?JI.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}};wr.create=t=>{var e;return new wr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function eO(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 mn=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}),J}let n,i=new ke;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"?eO(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)}};mn.create=t=>new mn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var hn=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}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code: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}};hn.create=t=>{var e;return new hn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var gn=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}),J}return Be(e.data)}};gn.create=t=>new gn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var yn=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}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_date}),J}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code: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}};yn.create=t=>new yn({checks:[],coerce:t?.coerce||!1,typeName:Y.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}),J}return Be(e.data)}};Oi.create=t=>new Oi({typeName:Y.ZodSymbol,...Z(t)});var En=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}),J}return Be(e.data)}};En.create=t=>new En({typeName:Y.ZodUndefined,...Z(t)});var Tn=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}),J}return Be(e.data)}};Tn.create=t=>new Tn({typeName:Y.ZodNull,...Z(t)});var br=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Be(e.data)}};br.create=t=>new br({typeName:Y.ZodAny,...Z(t)});var zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Be(e.data)}};zt.create=t=>new zt({typeName:Y.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}),J}};Ot.create=t=>new Ot({typeName:Y.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}),J}return Be(e.data)}};xi.create=t=>new xi({typeName:Y.ZodVoid,...Z(t)});var Zt=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}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?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=>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)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Si(t){if(t instanceof Qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(Si(n))}return new Qe({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:Si(t.element)}):t instanceof pt?pt.create(Si(t.unwrap())):t instanceof $t?$t.create(Si(t.unwrap())):t instanceof Gt?Gt.create(t.items.map(e=>Si(e))):t}var Qe=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}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],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=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return 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 jh(te.objectKeys(this.shape))}};Qe.create=(t,e)=>new Qe({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});Qe.strictCreate=(t,e)=>new Qe({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});Qe.lazycreate=(t,e)=>new Qe({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var An=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}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return P(r,{code:O.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};An.create=(t,e)=>new An({options:t,typeName:Y.ZodUnion,...Z(e)});var Jt=t=>t instanceof _n?Jt(t.schema):t instanceof Ze?Jt(t.innerType()):t instanceof In?[t.value]:t instanceof On?t.options:t instanceof xn?te.objectValues(t.enum):t instanceof Rn?Jt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof pt?[void 0,...Jt(t.unwrap())]:t instanceof $t?[null,...Jt(t.unwrap())]:t instanceof Ps||t instanceof bn?Jt(t.unwrap()):t instanceof wn?Jt(t._def.innerType):[],za=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}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:O.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Jt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Fl(t,e){let r=Rr(t),n=Rr(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=Fl(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=Fl(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 Sn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Ml(s)||Ml(o))return J;let a=Fl(s.value,o.value);return a.valid?((kl(s)||kl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:O.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Sn.create=(t,e,r)=>new Sn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Gt=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}),J;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"}),J;!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=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Gt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Gt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Za=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.object)return P(n,{code:O.invalid_type,expected:k.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new 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:Y.ZodRecord,...Z(n)}):new t({keyType:wr.create(),valueType:e,typeName:Y.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}),J;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 J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:Y.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}),J;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 J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new 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:Y.ZodSet,...Z(e)});var Xa=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}),J;function n(a,u){return Ka({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ya(),Ii].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return Ka({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ya(),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 Dr){let a=this;return Be(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 Be(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:Gt.create(e).rest(zt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Gt.create([]).rest(zt.create()),returns:r||zt.create(),typeName:Y.ZodFunction,...Z(n)})}},_n=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})}};_n.create=(t,e)=>new _n({getter:t,typeName:Y.ZodLazy,...Z(e)});var In=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}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};In.create=(t,e)=>new In({value:t,typeName:Y.ZodLiteral,...Z(e)});function jh(t,e){return new On({values:t,typeName:Y.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),Ds.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}),J}if(Ja(this,Ds,"f")||Vh(this,Ds,new Set(this._def.values),"f"),!Ja(this,Ds,"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}),J}return Be(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})}};Ds=new WeakMap;On.create=jh;var xn=class extends X{constructor(){super(...arguments),Cs.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}),J}if(Ja(this,Cs,"f")||Vh(this,Cs,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ja(this,Cs,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:O.invalid_enum_value,options:i}),J}return Be(e.data)}get enum(){return this._def.values}};Cs=new WeakMap;xn.create=(t,e)=>new xn({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var Dr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:O.invalid_type,expected:k.promise,received:r.parsedType}),J;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Be(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Dr.create=(t,e)=>new Dr({type:t,typeName:Y.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?_i(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vs(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=>vs(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:Y.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var pt=class extends X{_parse(e){return this._getType(e)===k.undefined?Be(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var $t=class extends X{_parse(e){return this._getType(e)===k.null?Be(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$t.create=(t,e)=>new $t({innerType:t,typeName:Y.ZodNullable,...Z(e)});var Rn=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}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var wn=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 Ns(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}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.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}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:Y.ZodNaN,...Z(t)});var tO=Symbol("zod_brand"),Ps=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}},Us=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),_i(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},bn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Ns(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Hh(t,e={},r){return t?br.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):br.create()}var rO={object:Qe.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var nO=(t,e={message:`Input not instance of ${t.name}`})=>Hh(r=>r instanceof t,e),Yh=wr.create,Kh=mn.create,iO=bi.create,sO=hn.create,Jh=gn.create,oO=yn.create,aO=Oi.create,uO=En.create,cO=Tn.create,lO=br.create,dO=zt.create,pO=Ot.create,fO=xi.create,mO=Zt.create,hO=Qe.create,gO=Qe.strictCreate,yO=An.create,EO=za.create,TO=Sn.create,AO=Gt.create,SO=Za.create,_O=Ri.create,IO=wi.create,OO=Xa.create,xO=_n.create,RO=In.create,wO=On.create,bO=xn.create,DO=Dr.create,Gh=Ze.create,CO=pt.create,vO=$t.create,NO=Ze.createWithPreprocess,PO=Us.create,UO=()=>Yh().optional(),LO=()=>Kh().optional(),MO=()=>Jh().optional(),kO={string:t=>wr.create({...t,coerce:!0}),number:t=>mn.create({...t,coerce:!0}),boolean:t=>gn.create({...t,coerce:!0}),bigint:t=>hn.create({...t,coerce:!0}),date:t=>yn.create({...t,coerce:!0})},FO=J,ee=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:FI,getErrorMap:Ya,makeIssue:Ka,EMPTY_PATH:BI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:Be,isAborted:Ml,isDirty:kl,isValid:vs,isAsync:Ns,get util(){return te},get objectUtil(){return Ll},ZodParsedType:k,getParsedType:Rr,ZodType:X,datetimeRegex:Qh,ZodString:wr,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Oi,ZodUndefined:En,ZodNull:Tn,ZodAny:br,ZodUnknown:zt,ZodNever:Ot,ZodVoid:xi,ZodArray:Zt,ZodObject:Qe,ZodUnion:An,ZodDiscriminatedUnion:za,ZodIntersection:Sn,ZodTuple:Gt,ZodRecord:Za,ZodMap:Ri,ZodSet:wi,ZodFunction:Xa,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:Dr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:wn,ZodNaN:bi,BRAND:tO,ZodBranded:Ps,ZodPipeline:Us,ZodReadonly:bn,custom:Hh,Schema:X,ZodSchema:X,late:rO,get ZodFirstPartyTypeKind(){return Y},coerce:kO,any:lO,array:mO,bigint:sO,boolean:Jh,date:oO,discriminatedUnion:EO,effect:Gh,enum:wO,function:OO,instanceof:nO,intersection:TO,lazy:xO,literal:RO,map:_O,nan:iO,nativeEnum:bO,never:pO,null:cO,nullable:vO,number:Kh,object:hO,oboolean:MO,onumber:LO,optional:CO,ostring:UO,pipeline:PO,preprocess:NO,promise:DO,record:SO,set:IO,strictObject:gO,string:Yh,symbol:aO,transformer:Gh,tuple:AO,undefined:uO,union:yO,unknown:dO,void:fO,NEVER:FO,ZodIssueCode:O,quotelessJson:kI,ZodError:ze});var nu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),zh=ee.record(nu,ee.string()),eu=ee.record(nu,ee.any()),tu=ee.record(nu,ee.union([ee.any().array(),ee.string()])),Zh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Xh))})),ru=ee.union([ee.string(),ee.number()]),Xh={string:zh.optional(),fuzzy:zh.optional(),range:ee.record(nu,ee.union([ee.object({high:ru,low:ru}),ee.object({high:ru}),ee.object({low:ru})])).optional(),equal:eu.optional(),notEqual:eu.optional(),empty:eu.optional(),notEmpty:eu.optional(),oneOf:tu.optional(),contains:tu.optional(),notContains:tu.optional(),containsAny:tu.optional(),$and:Zh.optional(),$or:Zh.optional()},AV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ai).optional(),...Xh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(fn).optional(),sortType:ee.nativeEnum(Ha).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Dp={};v(Dp,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>_p,Config:()=>bp,Cookie:()=>Yi,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:()=>Ee,DeprecatedViews:()=>Hi,DocumentType:()=>he,GlobalRole:()=>wp,Header:()=>Xe,InternalTable:()=>xr,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>bT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>_e,UNICODE_MAX:()=>Fe,UserStatus:()=>Hu,ViewName:()=>Fr});var Nq={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 Mq={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 Vq="darkest",qq="light",$O=[{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 Mr={};v(Mr,{ColumnSplitter:()=>ap,NoEmptyFilterStrings:()=>ST,buildQuery:()=>_T,cleanupQuery:()=>lp,fixupFilterArrays:()=>pp,getKeyNumbering:()=>dp,getValidOperatorsForType:()=>lC,hasFilters:()=>up,limit:()=>OT,recurseLogicalOperators:()=>cp,removeKeyNumbering:()=>iu,runQuery:()=>Bu,search:()=>fC,sort:()=>IT,splitFiltersArray:()=>su});var Qi=Q(tg());var Ci={};v(Ci,{filterValueToLabel:()=>HO,hasSchema:()=>YO,isSupportedUserSearch:()=>ng,parallelForeach:()=>jO,processSearchFilters:()=>$l,trimOtherProps:()=>KO,unreachable:()=>QO});var rg=Q(require("lodash")),WO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function QO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function jO(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 HO(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function YO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function KO(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(Va(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}=su(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=rg.default.pick(i,WO);return s.field=iu(s.field),s})}]}}var jt={};v(jt,{cancelableTimeout:()=>ig,cron:()=>tp,deepGet:()=>Vl,getUserColor:()=>zO,getUserInitials:()=>JO,getUserLabel:()=>ZO,isGoogleSheets:()=>ex,isSQL:()=>tx,lists:()=>op,retry:()=>rx,roles:()=>sp,schema:()=>Io,views:()=>ip,wait:()=>ql,withTimeout:()=>XO});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},JO=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"},zO=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%)`},ZO=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 XO(t,e){let[r,n]=ig(t),i=await Promise.race([e(),r]);return n(),i}function ex(t){return t==="GOOGLE_SHEETS"}function tx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function ql(t){return new Promise(e=>setTimeout(e,t))}async function rx(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={};v(tp,{getNextExecutionDates:()=>HD,validate:()=>YD});var gT=Q(Vt()),yT=Q(mT()),hT="(Input cron: ",QD={"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(hT)&&(r=r.split(hT)[0].trim());for(let[n,i]of Object.entries(QD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function HD(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 YD(t){let e=(0,gT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:jD(e.getError())}}var Io={};v(Io,{decodeNonAscii:()=>rp,encodeNonAscii:()=>zD,isDeprecatedSingleUserColumn:()=>KD,isNumeric:()=>ZD,isRequired:()=>JD});function KD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function JD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function zD(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 ZD(t){return t.type==="number"||t.type==="bigint"}var ip={};v(ip,{basicFields:()=>nC,calculationFields:()=>rC,hasCalculationFields:()=>tC,isBasicViewField:()=>XD,isCalculationField:()=>Oo,isCalculationView:()=>eC,isV2:()=>iC,isVisible:()=>ET});var np=require("lodash");function Oo(t){return"calculationType"in t}function XD(t){return!Oo(t)}function eC(t){return t.type==="calculation"}function tC(t){return Object.values(t.schema||{}).some(Oo)}function rC(t){return(0,np.pickBy)(t.schema||{},Oo)}function ET(t){return t.visible!==!1}function nC(t,e){let{visible:r=!0}=e||{};return(0,np.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||ET(n)))}function iC(t){return t.version===2}var sp={};v(sp,{checkForRoleInheritanceLoops:()=>oC});function sC(t){return`role${N}${t}`}function oC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=sC(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={};v(op,{punctuateList:()=>aC});function aC(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 Hn=require("lodash");var uC=/{{([^{].*?)}}/g,AT=Object.values(Ti),cC=[...Object.values(Ir),...Object.values(Kt),...Object.values(dn)],lC=(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"||Io.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},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===""||dC(s))&&delete t[e][i]}return t=cp(t,lp),t};function dC(t){return Array.isArray(t)&&t.length===0}var iu=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 pC(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(uC)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;o=new Date(o).toISOString()}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(bl(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(Ph(r)||Uh(r)||bl(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function su(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function _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}=su(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=TT(n.logicalOperator)),{[a]:{conditions:o.map(pC).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(Kt)){let r=t[e];if(!(r==null||!(0,Hn.isPlainObject)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return cp(t,pp),t}function fC(t,e){let r=Bu(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 Bu(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,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Va(T)?x:Vl(x,iu(w)),un=I(le,B);if(e.allOr&&un)return!0;if(!e.allOr&&!un)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,Hn.isPlainObject)(I.low)&&(0,Hn.isEmpty)(I.low)&&(I.low=void 0),(0,Hn.isPlainObject)(I.high)&&(0,Hn.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(!Bu([T],x).length)return!1;return!0}),S=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if(Bu([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 up(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}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 cC){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={};v(ot,{applications:()=>mp,automations:()=>hp,screens:()=>Ap,users:()=>Tp});var mp={};v(mp,{getDevAppID:()=>mC,getProdAppID:()=>Gu});var fp=Or("app"),xo=Or("app_dev");function mC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(xo))return t;let e=t.split(fp);e.shift();let r=e.join(fp);return`${xo}${r}`}function Gu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(xo))return t;let e=t.split(xo);e.shift();let r=e.join(xo);return`${fp}${r}`}var hp={};v(hp,{isAppAction:()=>yC,isRowAction:()=>hC,isWebhookAction:()=>gC});function hC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function gC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function yC(t){return t.definition.trigger?.stepId==="APP"}var Tp={};v(Tp,{canCreateApps:()=>EC,containsUserID:()=>OC,getGlobalUserID:()=>IC,getUserAppGroups:()=>xC,getUserGroups:()=>Ep,hasAdminPermissions:()=>yp,hasAppBuilderPermissions:()=>qu,hasAppCreatorPermissions:()=>xT,hasBuilderPermissions:()=>SC,hasCreatorPermissions:()=>Wu,isAdmin:()=>Vu,isAdminOrBuilder:()=>TC,isAdminOrGlobalBuilder:()=>AC,isBuilder:()=>gp,isCreator:()=>_C,isGlobalBuilder:()=>$u,userAppAccessList:()=>RC});var kr=Q(require("lodash/fp"));function gp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Gu(e))):!1}function $u(t){return gp(t)&&!qu(t)||Vu(t)}function EC(t){return $u(t)||Wu(t)}function Vu(t){return t?yp(t):!1}function TC(t,e){return gp(t,e)||Vu(t)}function AC(t){return $u(t)||Vu(t)}function qu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function xT(t){return t?kr.flow(kr.get("roles"),kr.values,kr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function SC(t){return t?t.builder?.global||qu(t)||Wu(t):!1}function yp(t){return t?!!t.admin?.global:!1}function Wu(t){return t?!!t.builder?.creator:!1}function _C(t){return t?$u(t)||yp(t)||Wu(t)||qu(t)||xT(t):!1}function IC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function OC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function Ep(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function xC(t,e,r){let n=Gu(t);return Ep(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function RC(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={};v(Ap,{findInSettings:()=>wC});function wC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var ZQ={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},XQ={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},ej={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 uj={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 dj={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 mj={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 yj={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 Aj={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 Ij={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 Rj={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 Dj={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 Nj={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 Lj={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!0,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 FC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},Fj={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(FC)},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 $j={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 Wj={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 Hj={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||{}),Jj={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(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||{}),Xj={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 QC={ascending:"Ascending",descending:"Descending"},rH={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(fn),pretty:Object.values(QC)},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 sH={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:"string",title:"HTML Contents"},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 uH={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 dH={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 mH={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 yH={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 AH={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 ev={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 rv={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 iv={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 ov={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 uv={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 lv={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 pv={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 Qu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Qu||{}),Fr=(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))(Fr||{}),Hi={by_email2:["by_email"]},_e={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"}},yt=Or("app"),ju=Or("app_dev"),Et=ju,Sp="internal",_p="budibase",or="_design/sqlite",Ip="ta_bb_jobs",Op="ta_bb_inventory",xp="ta_bb_expenses",Rp="ta_bb_employee";var Hu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Hu||{}),Yi=(s=>(s.Auth="budibase:auth",s.Init="budibase:init",s.ACCOUNT_RETURN_URL="budibase:account:returnurl",s.DatasourceAuth="budibase:datasourceauth",s.OIDC_CONFIG="budibase:oidc:config",s))(Yi||{}),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||{}),bT=new Date(-2147483647e3),Yu=new Date(2147483647e3),Ee="default";var Ca={};v(Ca,{CacheKey:()=>De,TTL:()=>si,app:()=>of,bustCache:()=>us,destroy:()=>sa,docWritethrough:()=>jm,generic:()=>oa,get:()=>oi,invite:()=>sm,keys:()=>Sc,passwordReset:()=>Wm,store:()=>fr,user:()=>sn,withCache:()=>Jr,withCacheWithDynamicTTL:()=>fS,writethrough:()=>qm});var oa={};v(oa,{CacheKey:()=>De,TTL:()=>si,bustCache:()=>us,destroy:()=>sa,get:()=>oi,keys:()=>Sc,store:()=>fr,withCache:()=>Jr,withCacheWithDynamicTTL:()=>fS});var Te={};v(Te,{DEFAULT_TENANT_ID:()=>Ee,baseGlobalDBName:()=>Po,doInAppContext:()=>Hv,doInAppMigrationContext:()=>Kv,doInAutomationContext:()=>jv,doInContext:()=>Yp,doInEnvironmentContext:()=>zv,doInIPContext:()=>zp,doInIdentityContext:()=>wo,doInScimContext:()=>Zv,doInTenant:()=>$e,ensureSnippetContext:()=>zT,getAppDB:()=>es,getAppId:()=>Ue,getAuditLogDBName:()=>KT,getAuditLogsDB:()=>eN,getAutomationId:()=>Kp,getCurrentContext:()=>ts,getDevAppDB:()=>rN,getEnvironmentVariables:()=>Xv,getFeatureFlags:()=>Zp,getGlobalDB:()=>ie,getGlobalDBName:()=>ur,getIP:()=>Jp,getIdentity:()=>ar,getPlatformURL:()=>Hp,getProdAppDB:()=>tN,getProdAppId:()=>Jv,getScimDBName:()=>Vv,getTableForView:()=>nN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>$r,isScim:()=>Pt,isTenancyEnabled:()=>Wv,isTenantIdSet:()=>qv,setFeatureFlags:()=>Xp,setTableForView:()=>iN});var Ro={};v(Ro,{doInAccountContext:()=>gv,doInIdentityContext:()=>vp,doInUserContext:()=>Np,getAccountUserId:()=>DT,getIdentity:()=>Cp});function Cp(){return ar()}function vp(t,e){return wo(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 gv(t,e){let r=DT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return vp(i,e)}function DT(t){let e;return Wa(t)?e=t.budibaseUserId:e=t.accountId,e}var zu=require("fs");var NT=require("lodash"),Pp=require("crypto");function Up(){return PT()}function PT(){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 yv(t){if(t)return parseInt(t)}var CT=!1;!CT&&Ju()&&!Up()&&(require("dotenv").config(),CT=!0);var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},vT=!!parseInt(process.env.SELF_HOSTED||"");function Ev(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Tv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Av(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,zu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,zu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Ju()&&!Up())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 Sv(){return vt.SERVICE_TYPE==="worker"}function _v(){return vt.SERVICE_TYPE==="apps"}function Iv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Up,isJest:PT,isDev:Ju,isWorker:Sv,isApps:_v,isQA:Iv,isProd:()=>!Ju(),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:Ev(),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:vT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Ki.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Ki.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Ki.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Ki.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Ki.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Ki.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE: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:Tv(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:vT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Av(),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:yv(process.env.BSON_BUFFER_SIZE)};function bo(t){let e=(0,NT.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=bo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var LT=["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 MT=require("async_hooks"),Pe=class t{static{this.storage=new MT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Lp="No app provided";function Br(t){if(!t)throw Lp;return t.startsWith(Et)}function Ov(t){if(!t)throw Lp;return t.startsWith(yt)&&!Br(t)}function Do(t){if(!t)throw Lp;return Br(t.appId)}function Zu(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var xv=Zu;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 Rv(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 HT=Q(require("@budibase/nano"));var kT=Q(require("node-fetch"));function Xu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function FT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await Co({url:s,cookie:i,method:e,body:r})}async function Co({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)(Xu(encodeURI(t)),i)}async function ec(t,e="GET",r){let n=await FT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=Q(require("pouchdb"));var BT,GT=!1,kp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function tc(t){BT=kp(t),GT=!0}var bv=()=>{if(!GT)throw new Error("init has not been called")};function Tt(t,e){bv();let r=new BT(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 vo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var $T=require("uuid");function Ie(){return(0,$T.v4)().replace(/-/g,"")}var xe=Q(require("dd-trace")),Ji=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 Wp={};v(Wp,{breakExternalTableId:()=>Gp,breakRowIdField:()=>Bv,buildExternalTableId:()=>Pv,convertRowId:()=>Fv,encodeTableId:()=>Uv,encodeViewId:()=>Lv,generateRowIdField:()=>Mv,getNativeSql:()=>zi,isExternalTable:()=>Bp,isExternalTableID:()=>rc,isInternalTableID:()=>Nv,isInvalidISODateString:()=>$p,isRowId:()=>kv,isValidFilter:()=>ic,isValidISODateString:()=>nc,isValidTime:()=>Vp,sqlLog:()=>No,validateManyToMany:()=>qp});var Fp=`${N}${N}`,qT=/^\[.*]$/g,Dv=encodeURIComponent(" "),Cv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,vv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function rc(t){return t.startsWith("datasource"+N)}function Nv(t){return!rc(t)}function zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function Bp(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&rc(t._id))}function Pv(t,e){return`${t}${Fp}${encodeURIComponent(e)}`}function Uv(t){return rc(t)?encodeURIComponent(t):t}function Lv(t){return encodeURIComponent(t)}function Gp(t){let e=t.split(Fp),r=e.shift(),n=e.join(Fp);if(n.includes(Dv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Mv(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 kv(t){return Array.isArray(t)||typeof t=="string"&&t.match(qT)!=null}function Fv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(qT)!=null?t.substring(1,t.length-1):t}function Bv(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function nc(t){let e=t.trim();if(!Cv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function $p(t){return!nc(t)}function ic(t){return t!=null&&t!==""}function Vp(t){return vv.test(t)}function No(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 Gv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function qp(t){if(Gv(t))return t}var WT="Database does not exist.";function QT(t){return(0,HT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Gr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function $v(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zi(t,r,e);return new Ji(n)}var Zi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=QT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=QT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Co({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Gr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===WT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Gr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Gr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(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 Gr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Ie()),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===WT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Xu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Co(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Gr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${or}`;return No("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(or)){let e=await this.get(or);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Gr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function Ye(t,e){return new Ji(new Zi(t,e))}async function ut(t,e,r){let n=Ye(t,r);return await e(n)}async function Qp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await ec(e)}async function jp(t,e){let r=await ec(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var YT=null;function ur(t){return t||(t=j()),Po(t)}function KT(t){return t||(t=j()),t===Ee?_e.AUDIT_LOGS.name:`${t}${N}${_e.AUDIT_LOGS.name}`}function Vv(t){return t||(t=j()),t===Ee?_e.SCIM_LOGS.name:`${t}${N}${_e.SCIM_LOGS.name}`}function Po(t){return!t||t===Ee?_e.GLOBAL.name:`${t}${N}${_e.GLOBAL.name}`}function Hp(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function qv(){return!!Pe.get()?.tenantId}function Wv(){return h.MULTI_TENANCY}function Xi(t){if(!t)return;if(!$r())return Ee;let e=t.split(N),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Qv(t){let e;try{e=Pe.get()}catch{e={}}return e={...e,...t},e}async function Vr(t,e){Yv();let r=Qv(t);return Pe.run(r,e)}async function jv(t){return await zT(),await Vr({tenantId:Xi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Yp(t,e){let r=Xi(t);return Vr({tenantId:r,appId:t},e)}async function $e(t,e){return h.MULTI_TENANCY||(t=t||Ee),Vr(t?{tenantId:t}:{},e)}async function Hv(t,e){return JT(t,e)}async function JT(t,e,r){if(!t)throw new Error("appId is required");let n=Xi(t),i={appId:t,...r};return n&&(i.tenantId=n),Vr(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Vr(r,e)}function Yv(){if(Pe.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function Kv(t,e){return JT(t,e,{isMigrating:!0})}function ar(){try{return Pe.get()?.identity}catch{}}function j(){if(!$r())return Ee;let e=Pe.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Kp(){return Pe.get()?.automationId}function Ue(){let e=Pe.get()?.appId;return!e&&h.isTest()&&YT?YT:e}function Jp(){return Pe.get()?.ip}var Jv=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function zv(t,e){if(!t)throw new Error("Must supply environment variables.");return Vr({environmentVariables:t},e)}function Zv(t){return Vr({isScim:!0},t)}function zp(t,e){return Vr({ip:t},e)}async function zT(t=!h.isTest()){let e=ts();if(!e||e.snippets)return;let r,n=es();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function Xv(){let t=Pe.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=Pe.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ye(Po(t?.tenantId))}function eN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ye(KT())}function es(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ye(e,t)}function tN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ye(at(e),t)}function rN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ye(Zu(e),t)}function Pt(){return!!Pe.get()?.isScim}function ts(){try{return Pe.get()}catch{return}}function Zp(t){let e=ts();if(e)return e.featureFlagCache?.[t]}function Xp(t,e){let r=ts();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function nN(t){let e=ts();if(e)return e.viewToTableCache?.[t]}function iN(t,e){let r=ts();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Kr={};v(Kr,{getAppClient:()=>pc,getCacheClient:()=>Gf,getDocWritethroughClient:()=>aP,getInviteClient:()=>ri,getLockClient:()=>Vf,getPasswordResetClient:()=>ia,getSessionClient:()=>Yr,getSocketClient:()=>oP,getUserClient:()=>na,getWritethroughClient:()=>$f,init:()=>Lt,shutdown:()=>pS});var lS=Q(require("ioredis"));var ac={};v(ac,{Databases:()=>ef,SEPARATOR:()=>rs,SelectableDatabase:()=>sc,addDbPrefix:()=>Ke,getRedisConnectionDetails:()=>oc,getRedisOptions:()=>ns,removeDbPrefix:()=>tf});var sN=2e3,ZT=1e4,rs="-",ef=(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))(ef||{}),sc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(sc||{});function oc(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function ns(){let{host:t,password:e,port:r}=oc(),n={connectTimeout:ZT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:ZT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:sN,dnsLookup:(s,o)=>o(null,s)}),i}function Ke(t,e){return e.includes(t)?e:`${t}${rs}${e}`}function tf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var Ac={};v(Ac,{correlation:()=>Uo,logAlert:()=>Xn,logAlertWithInfo:()=>eP,logWarn:()=>as,logger:()=>Tc,system:()=>Cf});var Uo={};v(Uo,{getId:()=>rf,setHeader:()=>oN});var XT=require("correlation-id"),oN=t=>{let e=XT.getId();e&&(t["x-budibase-correlation-id"]=e)};function rf(){return XT.getId()}var Ec=Q(require("pino")),uS=Q(require("pino-pretty"));var vf=Q(require("dd-trace")),cS=require("dd-trace/ext");var Cf={};v(Cf,{getLogReadStream:()=>YN,getSingleFileMaxSizeInfo:()=>aS,localFileDestination:()=>Df});var qo=Q(require("fs")),bf=Q(require("path")),nS=Q(require("rotating-file-stream"));var wf={};v(wf,{ObjectStore:()=>Ut,ObjectStoreBuckets:()=>uN,SIGNED_FILE_PREFIX:()=>If,bucketTTLConfig:()=>uc,budibaseTempDir:()=>Kn,clientLibraryCDNUrl:()=>$N,clientLibraryPath:()=>KA,clientLibraryUrl:()=>VN,createBucketIfNotExists:()=>Vo,deleteFile:()=>UN,deleteFiles:()=>LN,deleteFolder:()=>jA,downloadTarball:()=>kN,downloadTarballDirect:()=>MN,enrichPluginURLs:()=>QN,extractBucketAndPath:()=>nf,getAppFileUrl:()=>qN,getGlobalFileS3Key:()=>JA,getGlobalFileUrl:()=>WN,getObjectMetadata:()=>FN,getPluginIconKey:()=>XA,getPluginJSKey:()=>ZA,getPluginS3Dir:()=>tS,getPresignedUrl:()=>jr,getReadStream:()=>cc,listAllObjects:()=>QA,processAutomationAttachment:()=>lN,processObjectStoreAttachment:()=>iA,retrieve:()=>WA,retrieveDirectory:()=>PN,retrieveToTmp:()=>NN,sanitizeBucket:()=>Je,sanitizeKey:()=>Le,streamUpload:()=>qA,upload:()=>vN,uploadDirectory:()=>Of});var gc=require("@aws-sdk/client-s3"),Ef=require("@aws-sdk/lib-storage"),BA=require("@aws-sdk/s3-request-presigner"),$o=Q(require("stream")),Tf=Q(require("node-fetch")),Af=Q(require("tar-fs")),Sf=Q(require("zlib")),GA=require("util"),Qr=require("path"),pr=Q(require("fs"));var Lo=Q(require("path")),eA=require("os"),tA=Q(require("fs"));var rA=Q(require("stream")),uN={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},nA=(0,Lo.join)((0,eA.tmpdir)(),".budibase");try{tA.default.mkdirSync(nA)}catch(t){if(t.code!=="EEXIST")throw t}function Kn(){return nA}var uc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function cN(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Lo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:rA.default.Readable.fromWeb(e.body)}}async function iA(t){let e=nf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await cc(r,n),s=Lo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function lN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await cN(t):await iA(t)}var _f=require("uuid");var qr={};v(qr,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,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:()=>$v,DeprecatedViews:()=>Hi,DocumentType:()=>he,InternalTable:()=>xr,QueryBuilder:()=>dr,Replication:()=>UA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>_e,UNICODE_MAX:()=>Fe,ViewName:()=>Fr,baseGlobalDBName:()=>Po,checkErrorCode:()=>FA,closePouchDB:()=>vo,createApiKeyView:()=>DA,createNewUserEmailView:()=>wA,createPlatformAccountEmailView:()=>vA,createPlatformUserView:()=>NA,createUserAppView:()=>bA,createView:()=>ss,dbExists:()=>SN,directCouchAllDbs:()=>Qp,directCouchCall:()=>FT,directCouchFind:()=>jp,directCouchQuery:()=>ec,directCouchUrlCall:()=>Co,doWithDB:()=>ut,extractAppUUID:()=>Rv,fullSearch:()=>xN,generateAppID:()=>oA,generateAppUserID:()=>fc,generateDevInfoID:()=>fA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>hA,generatePluginID:()=>mA,generateRoleID:()=>uf,generateRowID:()=>af,generateTableID:()=>aA,generateTemplateID:()=>pA,generateUserMetadataID:()=>lA,generateWorkspaceID:()=>uA,getAllApps:()=>ko,getAllDbs:()=>RA,getAppsByIDs:()=>yN,getCouchInfo:()=>Nt,getDB:()=>Ye,getDevAppID:()=>xv,getDevAppIDs:()=>TN,getDevelopmentAppID:()=>Zu,getDocParams:()=>Jn,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>dA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>xA,getPluginParams:()=>OA,getPouch:()=>kp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>EN,getQueryIndex:()=>gA,getRoleParams:()=>hc,getRowParams:()=>cf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>IA,getUrlInfo:()=>Mp,getUserMetadataParams:()=>_A,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>SA,init:()=>tc,isDatasourceId:()=>TA,isDevApp:()=>Do,isDevAppID:()=>Br,isDocumentConflictError:()=>wN,isExternalTableId:()=>lf,isGlobalUserID:()=>cA,isProdAppID:()=>Ov,isQueryId:()=>AA,isSameAppID:()=>AN,isTableId:()=>yA,isViewId:()=>EA,paginatedSearch:()=>ON,pagination:()=>pf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>hf,queryPlatformView:()=>Bo,queryView:()=>mf,queryViewRaw:()=>Fo,removeKeyNumbering:()=>Go,searchIndexes:()=>yf});var of={};v(of,{AppState:()=>sf,getAppMetadata:()=>dc,invalidateAppMetadata:()=>mN});var sf=(e=>(e.INVALID="invalid",e))(sf||{}),sA=3600,dN=60;async function pN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function fN(t){return!t||t.state==="invalid"}async function dc(t){let e=await pc(),r=await e.get(t);if(!r){let n=sA;try{r=await pN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=dN;else throw i}if(fN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function mN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await pc();await r.delete(t),e&&await r.store(t,e,sA)}var df={};v(df,{generateAppID:()=>oA,generateAppUserID:()=>fc,generateDevInfoID:()=>fA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>hA,generatePluginID:()=>mA,generateRoleID:()=>uf,generateRowID:()=>af,generateTableID:()=>aA,generateTemplateID:()=>pA,generateUserMetadataID:()=>lA,generateWorkspaceID:()=>uA,getDocParams:()=>Jn,getGlobalIDFromUserMetadataID:()=>dA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>xA,getPluginParams:()=>OA,getQueryIndex:()=>gA,getRoleParams:()=>hc,getRowParams:()=>cf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>IA,getUserMetadataParams:()=>_A,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>SA,isDatasourceId:()=>TA,isExternalTableId:()=>lf,isGlobalUserID:()=>cA,isQueryId:()=>AA,isTableId:()=>yA,isViewId:()=>EA,prefixRoleID:()=>cr});var oA=t=>{let e=yt;return t&&(e+=`${t}${N}`),`${e}${Ie()}`};function aA(){return`ta${N}${Ie()}`}function af(t,e){return e=e||Ie(),`ro${N}${t}${N}${e}`}function uA(){return`workspace${N}${Ie()}`}function is(t){return`us${N}${t||Ie()}`}var hN=new RegExp(`^us${N}.+`);function cA(t){return hN.test(t)}function lA(t){return af("ta_users",t)}function dA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function pA(t){return`template${N}${t}${N}${Ie()}`}function fc(t,e){return`${t}${N}${e}`}function uf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return uf(t)}var fA=t=>`devinfo${N}${t}`,mA=t=>`plg${N}${t}`,hA=t=>`oauth2log${N}${t}`;var gN=new RegExp("^datasource_plus_(.+)__(.+)$");function Jn(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${Fe}`}}function cf(t,e,r={}){if(t==null)return Jn("ro",null,r);let n=e??`${t}${N}`;return Jn("ro",n,r)}function gA(t){return`database/${t}`}var lf=t=>{let e=t.match(gN);return!!t&&e!==null},yA=t=>!!t&&(t.startsWith(`ta${N}`)||lf(t));function EA(t){return!!t&&t.startsWith(`view${N}`)}function TA(t){return!!t&&t.startsWith(`datasource${N}`)}function AA(t){return!!t&&t.startsWith(`query${N}`)}function SA(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${Fe}`}}function zn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${Fe}`}}function _A(t,e={}){return cf("ta_users",t,e)}function mc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Fe}`}}function IA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${Fe}`}}function hc(t,e={}){return Jn("role",t,e)}function Mo(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Fe}"`}var OA=(t,e={})=>Jn("plg",t,e),xA=(t,e={})=>Jn("oauth2",t,e);async function RA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Qp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Ee?await n():(await n(Mo("app",i)),await n(Mo("app_dev",i)),r.push(ur(i))),r}async function ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Ee);let o=(await RA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(N);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Ee&&d||l===i}return!1});if(r){let u=o.filter(l=>Br(l)),c=o.filter(l=>!Br(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>dc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:Do(l)?"development":"published"})):c.filter(l=>t?Do(l):!Do(l))}}async function yN(t){return(await Promise.allSettled(t.map(r=>dc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function EN(){return(await ko({idsOnly:!0})).filter(e=>!Br(e))}async function TN(){return(await ko({idsOnly:!0})).filter(e=>Br(e))}function AN(t,e){return t==null||e==null?!1:at(t)===at(e)}async function SN(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function pf(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 ff="_design/database";function _N(){return{_id:ff,views:{}}}async function IN(t,e){if(Hi[e])try{let r=await t.get(ff);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(ff)}catch{n=_N()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ss(t,e,r);throw s}}var wA=async()=>{let t=ie(),e=`function(doc) {
6
6
  if (doc._id.startsWith("us${N}")) {
7
7
  emit(doc.email.toLowerCase(), doc._id)
8
8
  }
@@ -17,7 +17,7 @@ attempted value: ${s}
17
17
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
18
18
  emit(doc.apiKey, doc.userId)
19
19
  }
20
- }`;await ss(t,e,"by_api_key")};async function Fo(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 ON(r,t),await n(),Fo(t,e,r,n,i);if(s.status===409)return Fo(t,e,r,n,i);throw s}}var mf=async(t,e,r,n,i)=>{let a=(await Fo(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(Se.PLATFORM_INFO.name,async r=>{await ss(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var vA=async()=>{let t=`function(doc) {
20
+ }`;await ss(t,e,"by_api_key")};async function Fo(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 IN(r,t),await n(),Fo(t,e,r,n,i);if(s.status===409)return Fo(t,e,r,n,i);throw s}}var mf=async(t,e,r,n,i)=>{let a=(await Fo(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(_e.PLATFORM_INFO.name,async r=>{await ss(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var vA=async()=>{let t=`function(doc) {
21
21
  if (doc._id.startsWith("acc_metadata${N}")) {
22
22
  emit(doc.email.toLowerCase(), doc._id)
23
23
  }
@@ -29,10 +29,10 @@ attempted value: ${s}
29
29
  if (doc.ssoId) {
30
30
  emit(doc.ssoId, doc._id)
31
31
  }
32
- }`,"platform_users_lowercase_2")},Bo=async(t,e)=>{let r={account_by_email:vA,platform_users_lowercase_2:NA};return ut(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return mf(t,e,n,i,{arrayResponse:!0})})},PA={by_email2:wA,by_api_key:DA,by_app:bA},lr=async(t,e,r,n)=>{r||(r=ie());let i=PA[t];return mf(t,e,r,i,n)};async function hf(t,e,r){let n=ie(),i=PA[t];return Fo(t,e,n,i,r)}var gf=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([vo(this.source),vo(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=gf;var MA=Q(require("node-fetch"));var Go=Mr.removeKeyNumbering;function Zn(t){return t==null||t===""}var dr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Go(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)=>Zn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(Zn(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)=>Zn(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(Zn(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)){S=Go(S),S=e.preprocess(e.handleSpaces(S),{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 _!="string"&&_!=null||typeof _=="string"&&_!==o&&_!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>Zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(Zn(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)=>Zn(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=dr.maxLimit;n.limit&&s.length>n.limit-dr.maxLimit&&(o=n.limit-s.length);let a=new dr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<dr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await kA(t,e,r,c)}async function IN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,dr.maxLimit);let s=new dr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function xN(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 yf={};v(yf,{createUserIndex:()=>RN});async function RN(){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 wN(t){return FA(t,409)}var $A=Q(require("fs/promises")),bN=require("sanitize-s3-objectkey"),VA=(0,GA.promisify)($o.default.pipeline),DN={bucketCreationPromises:{}},Of="/files/signed",Wr={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"},CN=[Wr.html,Wr.css,Wr.js,Wr.json];function Le(t){return bN(Je(t)).replace(/\\/g,"/")}function Je(t){return t.replace(new RegExp(Et,"g"),yt)}function Ut(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 gc.S3(e)}async function Vo(t,e){e=Je(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=DN.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 vN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await $A.default.open(r)).createReadStream():s,c=Ut(),l=await Vo(c,t);if(o&&l.created){let g=uc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Wr[a.toLowerCase()]:Wr.txt),p={Bucket:Je(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 Ef.Upload({client:c,params:p}).done()}async function qA({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=Ut(),u=await Vo(a,t);if(s&&u.created){let E=uc(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?Wr[o.toLowerCase()]:Wr.txt);let l=Je(t),d=Le(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Ef.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function WA(t,e){let r=Ut(),n={Bucket:Je(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(CN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return $o.default.Readable.fromWeb(s)}}async function QA(t,e){let r=Ut(),n=(a={})=>r.listObjectsV2({...a,Bucket:Je(t),Prefix:Le(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function jr(t,e,r=3600){let n=Ut({presigning:!0}),i={Bucket:Je(t),Key:Le(e)},s=await(0,BA.getSignedUrl)(n,new gc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Of}${a}${u}`}else return s}async function NN(t,e){t=Je(t),e=Le(e);let r=await WA(t,e),n=(0,Qr.join)(Kn(),(0,Sf.v4)());return r instanceof $o.default.Readable?r.pipe(pr.default.createWriteStream(n)):pr.default.writeFileSync(n,r),n}async function PN(t,e){let r=(0,Qr.join)(Kn(),(0,Sf.v4)());pr.default.mkdirSync(r);let n=await QA(t,e),i=await Promise.all(n.map(a=>cc(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,Qr.join)(r,...d);l.length>1&&!pr.default.existsSync(m)&&pr.default.mkdirSync(m,{recursive:!0});let p=pr.default.createWriteStream((0,Qr.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 UN(t,e){let r=Ut();await Vo(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function LN(t,e){let r=Ut();await Vo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function jA(t,e){t=Je(t),e=Le(e);let r=Ut(),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 jA(t,e)}async function If(t,e,r){t=Je(t);let n=[],i=pr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Le((0,Qr.join)(r,s.name)),a=(0,Qr.join)(e,s.name);s.isDirectory()?n.push(If(t,a,o)):n.push(qA({bucket:t,filename:o,stream:pr.default.createReadStream(a)}))}return await Promise.all(n),i}async function MN(t,e,r={}){e=Le(e);let n=await(0,Tf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await VA(n.body,_f.default.createUnzip(),Af.default.extract(e))}async function kN(t,e,r){e=Je(e),r=Le(r);let n=await(0,Tf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Qr.join)(Kn(),r);return await VA(n.body,_f.default.createUnzip(),Af.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await If(e,i,r),i}async function cc(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof $o.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function FN(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function nf(t){let e=t.split("?")[0],r=new RegExp(`^${Of}/(?<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 HA=Q(require("aws-cloudfront-sign")),yc;function BN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return yc||(yc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),yc)}var GN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:BN(),expireTime:new Date().getTime()+1e3*60*60*24}),os=t=>{let e=xf(t);return HA.getSignedUrl(e,GN())},xf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var YA=Q(require("querystring"));function KA(t){return`${Le(t)}/budibase-client.js`}async function $N(t,e){let r=KA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),xf(r)):await jr(h.APPS_BUCKET_NAME,r)}function VN(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ee&&(n.tenantId=r),`/api/assets/client?${YA.default.encode(n)}`}async function qN(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.APPS_BUCKET_NAME,t)}var WN=async(t,e,r)=>{let n=JA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),os(n)):await jr(h.GLOBAL_BUCKET_NAME,n)},JA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function QN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await jN(e),n=await HN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function jN(t){let e=ZA(t);return zA(e)}async function HN(t){let e=XA(t);if(e)return zA(e)}async function zA(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.PLUGIN_BUCKET_NAME,t)}function ZA(t){return e_(t,"plugin.min.js")}function XA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return e_(t,e)}function e_(t,e){return`${t_(t.name)}/${e}`}function t_(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var i_="budibase.log",s_="budibase-logs-history.txt",o_=bf.default.join(Kn(),"systemlogs");function r_(t){return bf.default.join(o_,t)}function a_(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 Df(){let t=a_(h.ROLLING_LOG_MAX_SIZE);return n_.createStream(i_,{size:t?.size,path:o_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:s_,initialRotation:!1})}function YN(){let t=[],e=r_(s_);if(qo.default.existsSync(e)){let i=qo.default.readFileSync(e,"utf-8").split(`
33
- `);for(let s of i.filter(o=>o))t.push(qo.default.readFileSync(s))}return t.push(qo.default.readFileSync(r_(i_))),Buffer.concat(t)}function KN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function JN(t){return t instanceof Error}function zN(t){return typeof t=="string"}var Hr;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,u_.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Df(),level:t}),Hr=r.length?(0,Ec.default)(e,Ec.default.multistream(r)):(0,Ec.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{zN(E)&&(d=`${d} ${E}`.trimStart()),KN(E)&&l.push(E),JN(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:rf()};let f=vf.default.scope().active();f&&vf.default.inject(f.context(),c_.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 _=l[S],M=_._logKey;M?(delete _._logKey,g[M]=_):(E[y]=_,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Hr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Hr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Hr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Hr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Hr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Hr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=Kp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var Tc=Hr;var ZN=["AccountError"];function XN(t){return t&&t.suppressAlert}function Xn(t,e){e&&ZN.includes(e.name)&&XN(e)||console.error(`bb-alert: ${t}`,e)}function eP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Xn(t,n)}function as(t,e){console.warn(`bb-warn: ${t}`,e)}var Ho={};v(Ho,{cleanup:()=>tP,clear:()=>jo,set:()=>Qo});var Wo=[];function Qo(t,e){let r=setInterval(t,e);return Wo.push(r),r}function jo(t){let e=Wo.indexOf(t);e!==-1&&Wo.splice(e,1),clearInterval(t)}function tP(){for(let t of Wo)clearInterval(t);Wo=[]}var Pf;if(h.MOCK_REDIS)try{Pf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var rP=2e3,nP=5e3,d_=h.REDIS_CLUSTERED,Mf=0,Yo=!1,Uf={},ei=!1;h.MOCK_REDIS&&(ei=!0);function kf(t){return Uf[t]}function Nf(t,e){Yo||(Yo=!0,clearTimeout(t),ei=!1,Xn("Redis connection failed",e),setTimeout(()=>{Ff()},rP))}function Ff(t=Mf){let e=h.MOCK_REDIS&&Pf?Pf:l_.default,r;Yo=!1;let n=kf(t);if(n&&ei)return;h.MOCK_REDIS&&(Uf[t]=new e(ns())),r=setTimeout(()=>{ei||Nf(r,"Did not successfully connect in timeout")},nP),n&&n.disconnect();let{host:i,port:s}=oc(),o=ns();d_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Nf(r,a)}),n.on("error",a=>{Nf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),ei=!0}),Uf[t]=n}function iP(t=Mf){return new Promise(e=>{if(kf(t)==null)Ff();else if(ei){e("");return}let r=Qo(()=>{ei&&(jo(r),e(""))},500)})}function sP(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()=>{let s=Array.from(i);try{let o=[];for(let u of s)o.push(e.get(u));let a=await Promise.all(o);r(s.map(u=>({key:tf(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var Lf=class{constructor(e,r=null){this._db=e,this._select=r||Mf}getClient(){return kf(this._select)}async init(){return Yo=!1,Ff(this._select),await iP(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Yo=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${rs}${e}`;let n;return d_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),sP(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ke(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ke(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ke(r,e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}}async bulkGet(e){let r=this._db;if(e.length===0)return{};let n=e.map(s=>Ke(r,s)),i=await this.getClient().mget(n);if(Array.isArray(i)){let s={},o=0;for(let a of i){if(a){let u;try{u=JSON.parse(a)}catch{u=a}s[e[o]]=u}o++}return s}else throw new Error(`Invalid response: ${i}`)}async store(e,r,n=null){let i=this._db;typeof r=="object"&&(r=JSON.stringify(r));let s=Ke(i,e);await this.getClient().set(s,r),n&&await this.getClient().expire(s,n)}async bulkStore(e,r=null){let n=this.getClient(),i=Object.entries(e).reduce((o,[a,u])=>(o[Ke(this._db,a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=n.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()}async getTTL(e){let r=this._db,n=Ke(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ke(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ke(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ke(r,n)))}async clear(){let e=await this.scan();await Promise.all(e.map(r=>this.delete(r.key)))}async increment(e){let r=await this.getClient().incr(Ke(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
32
+ }`,"platform_users_lowercase_2")},Bo=async(t,e)=>{let r={account_by_email:vA,platform_users_lowercase_2:NA};return ut(_e.PLATFORM_INFO.name,async n=>{let i=r[t];return mf(t,e,n,i,{arrayResponse:!0})})},PA={by_email2:wA,by_api_key:DA,by_app:bA},lr=async(t,e,r,n)=>{r||(r=ie());let i=PA[t];return mf(t,e,r,i,n)};async function hf(t,e,r){let n=ie(),i=PA[t];return Fo(t,e,n,i,r)}var gf=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([vo(this.source),vo(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=gf;var MA=Q(require("node-fetch"));var Go=Mr.removeKeyNumbering;function Zn(t){return t==null||t===""}var dr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Go(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)=>Zn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(Zn(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)=>Zn(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(Zn(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)){_=Go(_),_=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)=>Zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(Zn(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)=>Zn(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=dr.maxLimit;n.limit&&s.length>n.limit-dr.maxLimit&&(o=n.limit-s.length);let a=new dr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<dr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await kA(t,e,r,c)}async function ON(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,dr.maxLimit);let s=new dr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function xN(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 yf={};v(yf,{createUserIndex:()=>RN});async function RN(){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 wN(t){return FA(t,409)}var $A=Q(require("fs/promises")),bN=require("sanitize-s3-objectkey"),VA=(0,GA.promisify)($o.default.pipeline),DN={bucketCreationPromises:{}},If="/files/signed",Wr={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"},CN=[Wr.html,Wr.css,Wr.js,Wr.json];function Le(t){return bN(Je(t)).replace(/\\/g,"/")}function Je(t){return t.replace(new RegExp(Et,"g"),yt)}function Ut(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 gc.S3(e)}async function Vo(t,e){e=Je(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=DN.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 vN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await $A.default.open(r)).createReadStream():s,c=Ut(),l=await Vo(c,t);if(o&&l.created){let g=uc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Wr[a.toLowerCase()]:Wr.txt),p={Bucket:Je(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 Ef.Upload({client:c,params:p}).done()}async function qA({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=Ut(),u=await Vo(a,t);if(s&&u.created){let E=uc(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?Wr[o.toLowerCase()]:Wr.txt);let l=Je(t),d=Le(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Ef.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function WA(t,e){let r=Ut(),n={Bucket:Je(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(CN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return $o.default.Readable.fromWeb(s)}}async function QA(t,e){let r=Ut(),n=(a={})=>r.listObjectsV2({...a,Bucket:Je(t),Prefix:Le(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function jr(t,e,r=3600){let n=Ut({presigning:!0}),i={Bucket:Je(t),Key:Le(e)},s=await(0,BA.getSignedUrl)(n,new gc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${If}${a}${u}`}else return s}async function NN(t,e){t=Je(t),e=Le(e);let r=await WA(t,e),n=(0,Qr.join)(Kn(),(0,_f.v4)());return r instanceof $o.default.Readable?r.pipe(pr.default.createWriteStream(n)):pr.default.writeFileSync(n,r),n}async function PN(t,e){let r=(0,Qr.join)(Kn(),(0,_f.v4)());pr.default.mkdirSync(r);let n=await QA(t,e),i=await Promise.all(n.map(a=>cc(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,Qr.join)(r,...d);l.length>1&&!pr.default.existsSync(m)&&pr.default.mkdirSync(m,{recursive:!0});let p=pr.default.createWriteStream((0,Qr.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 UN(t,e){let r=Ut();await Vo(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function LN(t,e){let r=Ut();await Vo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function jA(t,e){t=Je(t),e=Le(e);let r=Ut(),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 jA(t,e)}async function Of(t,e,r){t=Je(t);let n=[],i=pr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Le((0,Qr.join)(r,s.name)),a=(0,Qr.join)(e,s.name);s.isDirectory()?n.push(Of(t,a,o)):n.push(qA({bucket:t,filename:o,stream:pr.default.createReadStream(a)}))}return await Promise.all(n),i}async function MN(t,e,r={}){e=Le(e);let n=await(0,Tf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await VA(n.body,Sf.default.createUnzip(),Af.default.extract(e))}async function kN(t,e,r){e=Je(e),r=Le(r);let n=await(0,Tf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Qr.join)(Kn(),r);return await VA(n.body,Sf.default.createUnzip(),Af.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Of(e,i,r),i}async function cc(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof $o.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function FN(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function nf(t){let e=t.split("?")[0],r=new RegExp(`^${If}/(?<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 HA=Q(require("aws-cloudfront-sign")),yc;function BN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return yc||(yc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),yc)}var GN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:BN(),expireTime:new Date().getTime()+1e3*60*60*24}),os=t=>{let e=xf(t);return HA.getSignedUrl(e,GN())},xf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var YA=Q(require("querystring"));function KA(t){return`${Le(t)}/budibase-client.js`}async function $N(t,e){let r=KA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),xf(r)):await jr(h.APPS_BUCKET_NAME,r)}function VN(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ee&&(n.tenantId=r),`/api/assets/client?${YA.default.encode(n)}`}async function qN(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.APPS_BUCKET_NAME,t)}var WN=async(t,e,r)=>{let n=JA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),os(n)):await jr(h.GLOBAL_BUCKET_NAME,n)},JA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function QN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await jN(e),n=await HN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function jN(t){let e=ZA(t);return zA(e)}async function HN(t){let e=XA(t);if(e)return zA(e)}async function zA(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.PLUGIN_BUCKET_NAME,t)}function ZA(t){return eS(t,"plugin.min.js")}function XA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return eS(t,e)}function eS(t,e){return`${tS(t.name)}/${e}`}function tS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var iS="budibase.log",sS="budibase-logs-history.txt",oS=bf.default.join(Kn(),"systemlogs");function rS(t){return bf.default.join(oS,t)}function aS(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 Df(){let t=aS(h.ROLLING_LOG_MAX_SIZE);return nS.createStream(iS,{size:t?.size,path:oS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:sS,initialRotation:!1})}function YN(){let t=[],e=rS(sS);if(qo.default.existsSync(e)){let i=qo.default.readFileSync(e,"utf-8").split(`
33
+ `);for(let s of i.filter(o=>o))t.push(qo.default.readFileSync(s))}return t.push(qo.default.readFileSync(rS(iS))),Buffer.concat(t)}function KN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function JN(t){return t instanceof Error}function zN(t){return typeof t=="string"}var Hr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,uS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Df(),level:t}),Hr=r.length?(0,Ec.default)(e,Ec.default.multistream(r)):(0,Ec.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{zN(E)&&(d=`${d} ${E}`.trimStart()),KN(E)&&l.push(E),JN(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:rf()};let f=vf.default.scope().active();f&&vf.default.inject(f.context(),cS.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);Hr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Hr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Hr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Hr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Hr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Hr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=Kp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var Tc=Hr;var ZN=["AccountError"];function XN(t){return t&&t.suppressAlert}function Xn(t,e){e&&ZN.includes(e.name)&&XN(e)||console.error(`bb-alert: ${t}`,e)}function eP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Xn(t,n)}function as(t,e){console.warn(`bb-warn: ${t}`,e)}var Ho={};v(Ho,{cleanup:()=>tP,clear:()=>jo,set:()=>Qo});var Wo=[];function Qo(t,e){let r=setInterval(t,e);return Wo.push(r),r}function jo(t){let e=Wo.indexOf(t);e!==-1&&Wo.splice(e,1),clearInterval(t)}function tP(){for(let t of Wo)clearInterval(t);Wo=[]}var Pf;if(h.MOCK_REDIS)try{Pf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var rP=2e3,nP=5e3,dS=h.REDIS_CLUSTERED,Mf=0,Yo=!1,Uf={},ei=!1;h.MOCK_REDIS&&(ei=!0);function kf(t){return Uf[t]}function Nf(t,e){Yo||(Yo=!0,clearTimeout(t),ei=!1,Xn("Redis connection failed",e),setTimeout(()=>{Ff()},rP))}function Ff(t=Mf){let e=h.MOCK_REDIS&&Pf?Pf:lS.default,r;Yo=!1;let n=kf(t);if(n&&ei)return;h.MOCK_REDIS&&(Uf[t]=new e(ns())),r=setTimeout(()=>{ei||Nf(r,"Did not successfully connect in timeout")},nP),n&&n.disconnect();let{host:i,port:s}=oc(),o=ns();dS?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Nf(r,a)}),n.on("error",a=>{Nf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),ei=!0}),Uf[t]=n}function iP(t=Mf){return new Promise(e=>{if(kf(t)==null)Ff();else if(ei){e("");return}let r=Qo(()=>{ei&&(jo(r),e(""))},500)})}function sP(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()=>{let s=Array.from(i);try{let o=[];for(let u of s)o.push(e.get(u));let a=await Promise.all(o);r(s.map(u=>({key:tf(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var Lf=class{constructor(e,r=null){this._db=e,this._select=r||Mf}getClient(){return kf(this._select)}async init(){return Yo=!1,Ff(this._select),await iP(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Yo=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${rs}${e}`;let n;return dS?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),sP(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ke(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ke(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ke(r,e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}}async bulkGet(e){let r=this._db;if(e.length===0)return{};let n=e.map(s=>Ke(r,s)),i=await this.getClient().mget(n);if(Array.isArray(i)){let s={},o=0;for(let a of i){if(a){let u;try{u=JSON.parse(a)}catch{u=a}s[e[o]]=u}o++}return s}else throw new Error(`Invalid response: ${i}`)}async store(e,r,n=null){let i=this._db;typeof r=="object"&&(r=JSON.stringify(r));let s=Ke(i,e);await this.getClient().set(s,r),n&&await this.getClient().expire(s,n)}async bulkStore(e,r=null){let n=this.getClient(),i=Object.entries(e).reduce((o,[a,u])=>(o[Ke(this._db,a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=n.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()}async getTTL(e){let r=this._db,n=Ke(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ke(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ke(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ke(r,n)))}async clear(){let e=await this.scan();await Promise.all(e.map(r=>this.delete(r.key)))}async increment(e){let r=await this.getClient().incr(Ke(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
34
34
  if redis.call('GET', KEYS[1]) == ARGV[1] then
35
35
  redis.call('DEL', KEYS[1])
36
36
  end
37
- `;await n.eval(i,1,Ke(this._db,e),r)}},Ve=Lf;var Ko,Jo,zo,Zo,ti,Xo,ea,ta,ra,Bf;async function Lt(){Ko=await new Ve("users").init(),Jo=await new Ve("session").init(),zo=await new Ve("appMetadata").init(),Zo=await new Ve("data_cache").init(),Xo=await new Ve("locks").init(),ti=await new Ve("writeThrough").init(),ta=await new Ve("invitation").init(),ra=await new Ve("pwReset").init(),ea=await new Ve("socket_io",1).init(),Bf=await new Ve("docWriteThrough").init()}async function p_(){Ko&&await Ko.finish(),Jo&&await Jo.finish(),zo&&await zo.finish(),Zo&&await Zo.finish(),ti&&await ti.finish(),Xo&&await Xo.finish(),ta&&await ta.finish(),ra&&await ra.finish(),ea&&await ea.finish(),Bf&&await Bf.finish()}process.on("exit",async()=>{await p_()});async function na(){return Ko||await Lt(),Ko}async function Yr(){return Jo||await Lt(),Jo}async function pc(){return zo||await Lt(),zo}async function Gf(){return Zo||await Lt(),Zo}async function $f(){return ti||await Lt(),ti}async function Vf(){return Xo||await Lt(),Xo}async function oP(){return ea||await Lt(),ea}async function ri(){return ta||await Lt(),ta}async function ia(){return ra||await Lt(),ra}async function aP(){return ti||await Lt(),ti}function Ht(t){let e=j();return`${t}:${e}`}var ni=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Gf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ht(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ht(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[Ht(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ht(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(Ht(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ht(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ii=new ni,De={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}`},si=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(si||{}),_c=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),fr=(...t)=>ii.store(...t),sa=(...t)=>ii.delete(...t),Jr=(...t)=>ii.withCache(...t),f_=(...t)=>ii.withCacheWithDynamicTTL(...t),us=(...t)=>ii.bustCache(...t);var sn={};v(sn,{getUser:()=>Na,getUsers:()=>wM,invalidateUser:()=>Pa});var ua={};v(ua,{addTenantToUrl:()=>uP,getTenantDB:()=>qf,getTenantIDFromCtx:()=>aa,isUserInAppTenant:()=>cP});function qf(t){return Ye(ur(t))}function uP(t){let e=j();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var cP=(t,e)=>{let r;return e?r=e.tenantId||Ee:r=j(),(Xi(t)||Ee)===r},lP=Object.values(ws),aa=(t,e)=>{if(!$r())return Ee;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=lP),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(Hp()).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 la={};v(la,{getPlatformDB:()=>ct,tenants:()=>tm,users:()=>Mt});var Mt={};v(Mt,{addSsoUser:()=>h_,addUser:()=>gP,getUserDoc:()=>m_,lookupTenantId:()=>dP,removeUser:()=>yP,updateUserDoc:()=>pP});function ct(){return Ye(Se.PLATFORM_INFO.name)}async function dP(t){return h.MULTI_TENANCY?(await m_(t)).tenantId:Ee}async function m_(t){return ct().get(t)}async function pP(t){await ct().put(t)}function fP(t,e){return{_id:t,tenantId:e}}function mP(t,e,r){return{_id:e,userId:t,tenantId:r}}function hP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Wf(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 h_(t,e,r,n){return Wf(t,()=>hP(t,e,r,n))}async function gP(t,e,r,n){let i=[Wf(e,()=>fP(e,t)),Wf(r,()=>mP(e,r,t))];n&&i.push(h_(n,r,e,t)),await Promise.all(i)}async function yP(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 tm={};v(tm,{addTenant:()=>kP,exists:()=>UP,getTenantIds:()=>PP,removeTenant:()=>FP,tenacyLockOptions:()=>em});var ci={};v(ci,{AUTO_EXTEND_POLLING_MS:()=>I_,doWithLock:()=>ps,newRedlock:()=>ui});var O_=Q(require("redlock"));var ls={};v(ls,{Duration:()=>we,DurationType:()=>Zf,clearCookie:()=>zr,compare:()=>Hf,getAppIdFromCtx:()=>xP,getCookie:()=>ai,hasCircularStructure:()=>wP,hash:()=>jf,isAudited:()=>Jf,isClient:()=>RP,isPublicApiRequest:()=>IP,isServingApp:()=>_P,isServingBuilder:()=>SP,isServingBuilderPreview:()=>OP,isValidInternalAPIKey:()=>ca,newid:()=>Oe,openJwt:()=>Oc,resolveAppUrl:()=>A_,setCookie:()=>__,time:()=>DP,timeout:()=>Kf,urlHasProtocol:()=>bP,validEmail:()=>zf});var Qf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),EP=h.SALT_ROUNDS||10;async function jf(t){let e=await Qf.genSalt(EP);return Qf.hash(t,e)}async function Hf(t,e){return Qf.compare(t,e)}var Sc=Q(require("jsonwebtoken")),Yf="app"+N,y_="/app/",E_="/app/preview",TP="/builder",T_=`${TP}/app/`,AP="/api/public/v";function cs(t){return t&&t.startsWith(Yf)?t:void 0}async function A_(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=aa(t,{includeStrategies:["subdomain"]}));let s=(await $e(n,()=>ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function _P(t){return t.path.startsWith(`/${Yf}`)?!0:t.path.startsWith(y_)}function SP(t){return t.path.startsWith(T_)}function OP(t){return t.path.startsWith(E_)}function IP(t){return t.path.startsWith(AP)}async function xP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=cs(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=cs(t.request.body.appId));let n=g_(t.path);!r&&n&&(r=cs(n)),!r&&t.query?.appId&&(r=cs(t.query?.appId));let i=t.path.startsWith(E_),s=t.path.startsWith(y_)&&!i;!r&&s&&(r=cs(await A_(t)));let o=t.request.headers.referer;if(!r&&o?.includes(T_)){let a=g_(t.request.headers.referer);r=cs(a)}return r}function g_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Yf))}function Oc(t){if(t)try{return Sc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Sc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function ca(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function ai(t,e){let r=t.cookies.get(e);if(r)return Oc(r)}function __(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Sc.default.sign(e,h.JWT_SECRET));let i={expires:Yu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function zr(t,e){__(t,null,e)}function RP(t){return t.headers["x-budibase-type"]==="client"}function Kf(t){return new Promise(e=>setTimeout(e,t))}function Jf(t){return!!Nh[t]}function wP(t){if(typeof t!="object")return!1;try{JSON.stringify(t)}catch(e){if(e instanceof Error&&e?.message.includes("circular structure"))return!0}return!1}function bP(t){return!!t.match(/^.+:\/\/.+$/)}function zf(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 Zf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Zf||{}),Ic={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},we=class t{constructor(e){this.ms=e}to(e){return this.ms/Ic[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Ic[e]/Ic[r]}static from(e,r){return new t(r*Ic[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function DP(t){let e=performance.now();return[await t(),we.fromMilliseconds(performance.now()-e)]}async function CP(t,e){if(t==="custom")return ui(e);switch(t){case"try_once":return ui(ds.TRY_ONCE);case"try_twice":return ui(ds.TRY_TWICE);case"default":return ui(ds.DEFAULT);case"delay_500":return ui(ds.DELAY_500);case"auto_extend":return ui(ds.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var ds={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={...ds.DEFAULT,...t},n=(await Vf()).getClient();return new O_.default([n],e)}function vP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var I_=we.fromSeconds(10).toMs();async function ps(t,e){let r=await CP(t.type,t.customOptions),n,i;try{let s=vP(t),o=t.type==="auto_extend"?I_: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 Xf=Se.PLATFORM_INFO.docs.tenants,em={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function PP(){return(await xc()).tenantIds}async function xc(){let t=ct(),e;try{e=await t.get(Xf)}catch(r){if(r.status===404)e=await MP();else throw r}return e}async function UP(t){return(await xc()).tenantIds.indexOf(t)!==-1}function LP(){return{_id:Xf,tenantIds:[]}}async function MP(){let t=ct(),e=LP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Xf);throw r}return e}async function kP(t){let e=ct();await ps(em,async()=>{let r=await xc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function FP(t){try{await ps(em,async()=>{let e=ct(),r=await xc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var li={};v(li,{getAccount:()=>Zr,getAccountByTenantId:()=>fs,getStatus:()=>BP});var x_=Q(require("node-fetch"));var da=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";Uo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,x_.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var rm=new da(h.ACCOUNT_PORTAL_URL),nm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(nm)return;let e={email:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},fs=async t=>{if(nm)return;let e={tenantId:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},BP=async()=>{if(nm)return;let t=await rm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var _s={};v(_s,{UserDB:()=>Yt,addAppBuilder:()=>OM,bulkGetGlobalUsersById:()=>Zc,bulkUpdateGlobalUsers:()=>Da,cleanseUserObject:()=>Bm,creatorsInList:()=>pi,doesUserExist:()=>EM,getAccountHolderFromUsers:()=>Fc,getAllUserIds:()=>gM,getAllUsers:()=>yM,getById:()=>hi,getCreatorCount:()=>_M,getExistingAccounts:()=>ms,getExistingPlatformUsers:()=>D_,getExistingTenantUsers:()=>b_,getFirstPlatformUser:()=>pa,getGlobalUserByAppPage:()=>wS,getGlobalUserByEmail:()=>Ft,getPlatformUsers:()=>Rc,getUserCount:()=>AM,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>F_,hasBuilderPermissions:()=>_t,isAdmin:()=>tn,isAdminOrBuilder:()=>k_,isBuilder:()=>ys,isCreatorAsync:()=>ga,isCreatorSync:()=>Mc,isGlobalBuilder:()=>M_,paginatedUsers:()=>DS,removeAppBuilder:()=>IM,removePortalUserPermissions:()=>SM,searchExistingEmails:()=>om,searchGlobalUsersByApp:()=>Xc,searchGlobalUsersByAppAccess:()=>Fm,searchGlobalUsersByEmail:()=>bS,validateUniqueUser:()=>kc});var gm={};v(gm,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Fc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>F_,hasBuilderPermissions:()=>_t,isAdmin:()=>tn,isAdminOrBuilder:()=>k_,isBuilder:()=>ys,isCreatorAsync:()=>ga,isCreatorSync:()=>Mc,isGlobalBuilder:()=>M_,validateUniqueUser:()=>kc});var sm={};v(sm,{createCode:()=>$P,deleteCode:()=>qP,getCode:()=>VP,getExistingInvites:()=>im,getInviteCodes:()=>w_,updateCode:()=>GP});var R_=we.fromDays(7).toSeconds();async function GP(t,e){await(await ri()).store(t,e,R_)}async function $P(t,e){let r=Oe();return await(await ri()).store(r,{email:t,info:e},R_),r}async function VP(t){let r=await(await ri()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function qP(t){await(await ri()).delete(t)}async function w_(){let r=(await(await ri()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=j();return r.filter(i=>n===i.info.tenantId)}async function im(t){return(await w_()).filter(e=>t.includes(e.email))}async function om(t){let e=[],r=await b_(t);e.push(...r.map(o=>o.email));let n=await D_(t);e.push(...n.map(o=>o._id));let i=await ms(t);e.push(...i.map(o=>o.email));let s=await im(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Rc(t){return await Bo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function pa(t){return(await Rc(t))[0]??null}async function b_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await lr("by_email2",r,void 0,n)}async function D_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bo("platform_users_lowercase_2",r)}async function ms(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bo("account_by_email",r)}var Pc={};v(Pc,{BadRequestError:()=>bc,BudibaseError:()=>hs,EmailUnavailableError:()=>mr,ErrorCode:()=>vc,FeatureDisabledError:()=>Cc,HTTPError:()=>lt,InvalidAPIKeyError:()=>gs,NotFoundError:()=>wc,UsageLimitError:()=>Dc,getPublicError:()=>Nc});var hs=class extends Error{constructor(r,n){super(r);this.code=n}},vc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(vc||{}),Nc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class extends hs{constructor(r,n,i="http"){super(r,i);this.status=n}},wc=class extends lt{constructor(e){super(e,404)}},bc=class extends lt{constructor(e){super(e,400)}},Dc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Cc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},gs=class extends hs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var hm={};v(hm,{AccessController:()=>cm,BUILTIN_ROLE_IDS:()=>ha,Role:()=>Xr,RoleHierarchyTraversal:()=>Uc,RoleIDVersion:()=>lm,builtinRoleToNumber:()=>fa,checkForRoleResourceArray:()=>P_,externalRole:()=>KP,findRole:()=>ma,getAllRoleIds:()=>XP,getAllRoles:()=>mm,getBuiltinRole:()=>v_,getBuiltinRoles:()=>pm,getDBRoleID:()=>U_,getExternalRoleID:()=>en,getExternalRoleIDs:()=>L_,getRole:()=>JP,getUserRoleHierarchy:()=>fm,getUserRoleIdHierarchy:()=>N_,isBuiltin:()=>di,lowerBuiltinRoleID:()=>YP,prefixRoleIDNoBuiltin:()=>um,roleIDsAreEqual:()=>At,roleToNumber:()=>HP,saveRoles:()=>zP,validInherits:()=>jP});var am=Q(require("semver"));var Lc=Q(require("lodash/fp/cloneDeep"));var C_=require("lodash");var ha={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ha,BUILDER:"BUILDER"},lm={UUID:void 0,NAME:"name"};function QP(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var Xr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=lm.NAME}addInheritance(e){return e&&typeof e=="string"?e=um(e):e&&Array.isArray(e)&&(e=e.map(um)),this.inherits=e,this}},Uc=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=ma(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!QP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=ma(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,C_.uniqBy)(i,s=>s._id)}},dm={ADMIN:new Xr(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 Xr(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 Xr(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 Xr(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Xr(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function pm(){return(0,Lc.default)(dm)}function di(t){return Object.values(ha).includes(t)}function um(t){return di(t)?t:cr(t)}function v_(t){let e=Object.values(dm).find(r=>t.includes(r._id));if(e)return(0,Lc.default)(e)}function jP(t,e){if(!e)return!1;let r=n=>t.find(i=>At(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 fa(t){let e=pm(),r=Object.values(e).length+1;if(At(t,fe.ADMIN)||At(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 HP(t){if(di(t))return fa(t);let e=await fm(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=>At(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(di(n.inherits))return fa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function YP(t,e){return t?e&&fa(t)>fa(e)?e:t:e}function At(t,e){return cr(t)===cr(e)}function KP(t){let e;return t._id&&(e=en(t._id)),{...t,_id:e,inherits:L_(t.inherits,t.version)}}function ma(t,e,r){let n=v_(t);n||(t=cr(t));let i=e.find(s=>s._id&&At(s._id,t));return!i&&!di(t)&&r?.defaultPublic?(0,Lc.default)(dm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=en(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function JP(t,e){let r=es(),n=[];if(!di(t)){let i=await r.tryGet(U_(t));i&&n.push(i)}return ma(t,n,e)}async function zP(t){await es().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function ZP(t,e){let r=await mm();if(At(t,fe.ADMIN))return r;let n=ma(t,r,e),i=[];return n&&(i=new Uc(r,e).walk(n)),i}async function N_(t){return(await fm(t)).map(r=>r._id)}async function fm(t,e){return ZP(t,e)}function P_(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 XP(t){return(await mm(t)).map(r=>r._id)}async function mm(t){if(t)return ut(t,e);{let r;try{r=es()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(hc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=en(a._id,a.version)));let i=pm(),s=[];!r||await eU(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=>At(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=en(a._id,u.version),n.push({...a,...u,name:a.name,_id:en(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=P_(o.permissions,a);return n}}async function eU(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!am.default.valid(r)?!0:!am.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var cm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||At(e,fe.BUILDER)||At(r,e)||At(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await N_(r),this.userHierarchies[r]=n),n?.find(i=>At(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 U_(t){return t?.startsWith("role")?t:cr(t)}function en(t,e){if(t.startsWith(`role${N}`)&&(di(t)||e===lm.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function L_(t,e){return t&&(typeof t=="string"?en(t,e):t.map(r=>en(r,e)))}var ys=ot.users.isBuilder,tn=ot.users.isAdmin,M_=ot.users.isGlobalBuilder,k_=ot.users.isAdminOrBuilder,rn=ot.users.hasAdminPermissions,_t=ot.users.hasBuilderPermissions,F_=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=>Mc(i,e))}async function ga(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Mc(t,e)}function Mc(t,e){let r=ot.users.isCreator(t);return!r&&t?tU(t,e):r}function tU(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes(ha.ADMIN)):!1}async function kc(t,e){if(h.MULTI_TENANCY){let r=await pa(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function Fc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ms(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var As={};v(As,{account:()=>tS,ai:()=>oS,analytics:()=>Gc,app:()=>rS,auditLog:()=>_S,auth:()=>Kc,automation:()=>nS,backfill:()=>gS,backfillCache:()=>Hc,backup:()=>TS,datasource:()=>iS,email:()=>sS,environmentVariable:()=>AS,group:()=>yS,identification:()=>kt,initAsyncEvents:()=>tM,installation:()=>Oa,layout:()=>uS,license:()=>aS,org:()=>cS,plugin:()=>ES,processors:()=>_m,publishEvent:()=>A,query:()=>lS,role:()=>ba,rowAction:()=>SS,rows:()=>pS,screen:()=>dS,serve:()=>mS,shutdown:()=>rM,table:()=>fS,user:()=>qe,view:()=>hS});var _m={};v(_m,{analyticsProcessor:()=>J_,init:()=>AU,processors:()=>yr});var Gc={};v(Gc,{enabled:()=>Bc});var Bc=async()=>$c();var q_=require("posthog-node");var rU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",nU=t=>t==="served:app:preview"||t==="served:app";var G_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},$_=async t=>{if(!rU(t))return!1;let e=await iU(t);if(e){let r=new Date(e.timestamp);switch(G_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await B_(t,{timestamp:Date.now()}),!1):!0}}else return await B_(t,{timestamp:Date.now()}),!1},V_=t=>{let e=`${De.EVENTS_RATE_LIMIT}:${t}`;return nU(t)&&(e=e+":"+Ue()),e},iU=async t=>{let e=V_(t);return await oi(e)},B_=async(t,e)=>{let r=V_(t),n=G_[t],i;switch(n){case"calendarDay":i=86400}await fr(r,e,i)};var oU=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ya=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new q_.PostHog(e)}async processEvent(e,r,n,i){if(oU.includes(e)||await $_(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 W_=ya;var aU=["installation:version:upgraded","installation:version:downgraded"],uU=["installation","tenant"],Ea=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new W_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!aU.includes(e)&&!await Bc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!uU.includes(e.type)&&!await Bc()||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 ym=h.SELF_HOSTED&&!h.isDev(),Ta=class{async processEvent(e,r,n){ym||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){ym||console.log("[audit] identified",e)}async identifyGroup(e){ym||console.log("[audit] group identified",e)}shutdown(){}};var Am={};v(Am,{BudibaseQueue:()=>gr,InMemoryQueue:()=>Vc,JobQueue:()=>Es,shutdown:()=>yU});var Q_=Q(require("events"));function cU(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 Vc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new Q_.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a,u=0){try{await a}catch(c){if(u++,u<3)await jt.wait(100*u),await s(r(n),u);else throw c}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n);let a=this._messages.indexOf(n);if(a===-1)throw"Failed deleting a processed message";this._messages.splice(a,1)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Oe(),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=>cU(e))}async whenCurrentJobsFinished(){do await Kf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},j_=Vc;var Em=Q(require("bull"));var Es=(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))(Es||{});function H_(t,e,r){pU(t,e),r&&lU(t,r)}function lU(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function St(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var dU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function pU(t,e){let r=dU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Yp(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 hr=Q(require("dd-trace")),Aa=Q(require("object-sizeof")),fU=we.fromMinutes(5).toMs(),mU=we.fromSeconds(30).toMs(),Tm=we.fromSeconds(60).toMs(),_a=[],qc;async function Y_(){for(let t of _a)await t.clean(Tm,"completed"),await t.clean(Tm,"failed")}async function hU(t,e,r){let n=performance.now();try{let i=await e();return hr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw hr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;hr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),hr.default.dogstatsd.increment(t,1,r)}}function K_(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 gU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Aa.default)(t.data),...K_(t.opts||{})}}var gr=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:ns(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:fU,lockRenewTime:mU}};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 Em.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new j_(this.jobQueue,r):n=new Em.default(this.jobQueue,r),H_(n,this.jobQueue,this.opts.removeStalledCb),_a.push(n),!qc&&!h.isTest()&&(qc=Qo(Y_,Tm),Y_().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=async s=>{await hr.default.trace("queue.process",async o=>{if(s.data._parentSpanContext){let a=s.data._parentSpanContext,u={traceId:a.traceId,spanId:a.spanId,toTraceId:()=>a.traceId,toSpanId:()=>a.spanId,toTraceparent:()=>""};o.addLink(u)}o.addTags({"queue.name":this.jobQueue,...gU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),hr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Aa.default)(s.data),this.metricTags()),await this.withMetrics("queue.process",()=>n(s))})};return r?this.queue.process(r,i):this.queue.process(i)}async add(e,r){return await hr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Aa.default)(e),...K_(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},hr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Aa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return hU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function yU(){if(qc&&jo(qc),_a.length){for(let t of _a)await t.close();_a=[]}console.log("Queues shutdown")}var Ts=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new gr("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await $e(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&&Jf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Sa=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 J_=new Ea,EU=new Ta,TU=new Ts;function AU(t){return Ts.init(t)}var yr=new Sa([J_,EU,TU]);var Wc={};v(Wc,{checkInstallVersion:()=>OU,getInstall:()=>Ia,getInstallFromDB:()=>Om});var Sm=Q(require("semver"));var Ia=async()=>Jr(De.INSTALLATION,86400,Om,{useTenancy:!1});async function _U(t){let e={_id:Se.PLATFORM_INFO.docs.install,installId:Oe(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Om();throw r}}var Om=async()=>ut(Se.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Se.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await _U(t);else throw r}return e}),SU=async t=>{try{await ut(Se.PLATFORM_INFO.name,async e=>{let r=await Ia();r.version=t,await e.put(r),await us(De.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},OU=async()=>{let t=await Ia(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Sm.default.gt(r,e),i=Sm.default.lt(r,e);await SU(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Oa.upgraded(e,r):i&&await Oa.downgraded(e,r)}),await kt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Xn(`Invalid version "${r}" - is it semver?`):Xn("Failed to retrieve version",n)}};var IU=async()=>{let t=Cp(),e=wa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=xa();return{id:z_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await Qc(j()),s=xa();return{id:z_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await Qc(j()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=xa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},xU=async(t,e)=>{let r=t,n="installation",i=xa(),s=h.VERSION,o=wa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Im(a,e),await Ra({...a,id:`$${n}_${r}`},e)},RU=async(t,e,r)=>{let n=await Qc(t),i="tenant",s=await fi(),o=wa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Im(a,r),await Ra({...a,id:`$${i}_${n}`},r)},wU=async(t,e,r)=>{let n=t._id,i=await Qc(t.tenantId),s="user",o=_t(t),a=rn(t),u;ja(t)&&(u=t.providerType);let l=(await ms([t.email])).length>0,d=!!e&&l&&e.verified,m=await fi(),p=e?e.hosting:xa(),f=wa();await Ra({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},bU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Qa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=wa();if(Wa(t)){let d=await Ft(t.email);d?._id&&(e=d._id)}await Ra({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ra=async(t,e)=>{await yr.identify(t,e)},Im=async(t,e)=>{await yr.identifyGroup(t,e)},wa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,xa=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>DU()?"account-portal":(await Ia()).installId,Qc=async t=>h.SELF_HOSTED?Z_(t):t,Z_=async t=>$e(t,()=>Jr(De.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await jc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),DU=()=>h.SERVICE==="account-portal",z_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,kt={getCurrentIdentity:IU,identifyInstallationGroup:xU,identifyTenantGroup:RU,identifyUser:wU,identifyAccount:bU,identify:Ra,identifyGroup:Im,getInstallationId:fi,getUniqueTenantId:Z_};var Hc={};v(Hc,{end:()=>vU,isAlreadySent:()=>wm,isBackfillingEvent:()=>Rm,recordEvent:()=>xm,start:()=>CU});var CU=async t=>PU({eventWhitelist:t}),xm=async(t,e)=>{let r=bm(t,e);await fr(r,e,void 0,{useTenancy:!1})},vU=async()=>{await UU(),await LU()},NU=async()=>oi(De.BACKFILL_METADATA),PU=async t=>fr(De.BACKFILL_METADATA,t),UU=async()=>{await sa(De.BACKFILL_METADATA)},LU=async()=>{let t=bm(),e=await _c(t);for(let r of e)await sa(r,{useTenancy:!1})},Rm=async t=>{let r=(await NU())?.eventWhitelist;return!!(r&&r.includes(t))},wm=async(t,e)=>{let r=bm(t,e);return!!await oi(r,{useTenancy:!1})},MU={"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}`},bm=(t,e)=>{let r,n=j();if(t){r=`${De.EVENTS}:${n}:${t}`;let i=MU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${De.EVENTS}:${n}:*`;return r};var Er;function Yc(){Er=new gr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function X_(){Er&&await Er.close()}async function eS(t){Er||Yc();let{event:e,identity:r}=t;vh.indexOf(e)!==-1&&r.tenantId&&await Er.add(t)}var A=async(t,e,r,n)=>{let i=n||await kt.getCurrentIdentity();if(!(n?!1:await Rm(t))){await eS({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await wm(t,e)||(await yr.processEvent(t,i,e,r),await xm(t,e))};async function kU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function FU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function BU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var tS={created:kU,deleted:FU,verified:BU};var GU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function $U(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function VU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function qU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function WU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function QU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function jU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function HU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function YU(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 JU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function zU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var rS={created:GU,updated:$U,deleted:VU,published:qU,unpublished:WU,fileImported:QU,duplicated:jU,templateImported:HU,versionUpdated:YU,versionReverted:KU,reverted:JU,exported:zU};async function ZU(t,e){let n={userId:(await kt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function XU(t){let r={userId:(await kt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function eL(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function tL(t){let e={type:t};await A("auth:sso:updated",e)}async function rL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function nL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Kc={login:ZU,logout:XU,SSOCreated:eL,SSOUpdated:tL,SSOActivated:rL,SSODeactivated:nL};async function iL(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 sL(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 oL(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 aL(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 uL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function cL(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 lL(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 nS={created:iL,triggerUpdated:sL,deleted:oL,tested:aL,run:uL,stepCreated:cL,stepDeleted:lL};function Dm(t){return!Object.values($a).includes(t.source)}async function dL(t,e){let r={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:created",r,e)}async function pL(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:updated",e)}async function fL(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:deleted",e)}var iS={created:dL,updated:pL,deleted:fL};async function mL(t){let e={};await A("email:smtp:created",e,t)}async function hL(){let t={};await A("email:smtp:updated",t)}var sS={SMTPCreated:mL,SMTPUpdated:hL};async function gL(t){let e={};await A("ai:config:created",e,t)}async function yL(){let t={};await A("ai:config:updated",t)}var oS={AIConfigCreated:gL,AIConfigUpdated:yL};async function EL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function TL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function AL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function _L(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function SL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function OL(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 aS={planChanged:EL,activated:TL,checkoutOpened:AL,checkoutSuccess:_L,portalOpened:SL,paymentFailed:OL,paymentRecovered:IL};async function xL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function RL(t){let e={layoutId:t};await A("layout:deleted",e)}var uS={created:xL,deleted:RL};async function wL(t){let e={};await A("org:info:name:updated",e,t)}async function bL(t){let e={};await A("org:info:logo:updated",e,t)}async function DL(t){let e={};await A("org:platformurl:updated",e,t)}async function CL(){let t={};await A("analytics:opt:out",t)}async function vL(){let t={};await A("analytics:opt:out",t)}var cS={nameUpdated:wL,logoUpdated:bL,platformURLUpdated:DL,analyticsOptOut:CL,analyticsOptIn:vL};var NL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},PL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},UL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},LL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},ML=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},kL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},lS={created:NL,updated:PL,deleted:UL,imported:LL,run:ML,previewed:kL};async function FL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function BL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function GL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function $L(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function VL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var ba={created:FL,updated:BL,deleted:GL,assigned:$L,unassigned:VL};async function qL(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 WL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var dS={created:qL,deleted:WL};var QL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},jL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},pS={created:QL,imported:jL};async function HL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function YL(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 JL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function zL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var fS={created:HL,updated:YL,deleted:KL,exported:JL,imported:zL};async function ZL(t){let e={timezone:t};await A("served:builder",e)}async function XL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function e0(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var mS={servedBuilder:ZL,servedApp:XL,servedAppPreview:e0};async function t0(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function r0(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function n0(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function i0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function s0(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function o0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function a0(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function u0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function c0(t){let e={audited:{email:t}};await A("user:invited",e)}async function l0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function d0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function p0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function f0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function m0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function h0(t){let e={users:t};await A("user:data:collaboration",e)}var qe={created:t0,updated:r0,deleted:n0,permissionAdminAssigned:s0,permissionAdminRemoved:o0,permissionBuilderAssigned:a0,permissionBuilderRemoved:u0,onboardingComplete:i0,invited:c0,inviteAccepted:l0,passwordForceReset:d0,passwordUpdated:p0,passwordResetRequested:f0,passwordReset:m0,dataCollaboration:h0};async function g0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function y0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function E0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function T0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function A0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function _0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function S0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function O0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function I0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function x0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function R0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var hS={created:g0,updated:y0,deleted:E0,exported:T0,filterCreated:A0,filterUpdated:_0,filterDeleted:S0,calculationCreated:O0,calculationUpdated:I0,calculationDeleted:x0,viewJoinCreated:R0};async function w0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function b0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function D0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function C0(){let t={};await A("installation:firstStartup",t)}var Oa={versionChecked:w0,upgraded:b0,downgraded:D0,firstStartup:C0};var Ss=!h.SELF_HOSTED&&!h.isDev();async function v0(t){Ss||await A("app:backfill:succeeded",t)}async function N0(t){if(Ss)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function P0(t){Ss||await A("tenant:backfill:succeeded",t)}async function U0(t){if(Ss)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function L0(){if(Ss)return;let t={};await A("installation:backfill:succeeded",t)}async function M0(t){if(Ss)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var gS={appSucceeded:v0,appFailed:N0,tenantSucceeded:P0,tenantFailed:U0,installationSucceeded:L0,installationFailed:M0};async function k0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function F0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function B0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function G0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function $0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function V0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function q0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var yS={created:k0,updated:F0,deleted:B0,usersAdded:G0,usersDeleted:$0,createdOnboarding:V0,permissionsEdited:q0};async function W0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function Q0(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 j0(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 ES={init:W0,imported:Q0,deleted:j0};async function H0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function Y0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var TS={appBackupRestored:H0,appBackupTriggered:Y0};async function K0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function J0(t){let e={name:t};await A("environment_variable:deleted",e)}async function z0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var AS={created:K0,deleted:J0,upgradePanelOpened:z0};async function Z0(t){let e={filters:t};await A("audit_log:filtered",e)}async function X0(t){let e={filters:t};await A("audit_log:downloaded",e)}var _S={filtered:Z0,downloaded:X0};async function eM(t,e){await A("row_action:created",t,e)}var SS={created:eM};function tM(){}var rM=()=>{yr.shutdown(),console.log("Events shutdown")};var Cm=async t=>{await qe.deleted(t),_t(t)&&await qe.permissionBuilderRemoved(t),rn(t)&&await qe.permissionAdminRemoved(t)},nM=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await ba.assigned(t,i)},iM=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await ba.unassigned(t,i)},sM=async(t,e)=>{let r=t.roles,n=e?.roles;await nM(t,r,n),await iM(t,r,n)},vm=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await fs(r)),await kt.identifyUser(t,n),e?(await qe.updated(t),aM(t,e)&&await qe.permissionBuilderRemoved(t),cM(t,e)&&await qe.permissionAdminRemoved(t),lM(t,e)&&await qe.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await qe.passwordForceReset(t),t.password!==e.password&&await qe.passwordUpdated(t)):await qe.created(t),oM(t,e)&&await qe.permissionBuilderAssigned(t),uM(t,e)&&await qe.permissionAdminAssigned(t),await sM(t,e)},oM=(t,e)=>OS(t,e,_t),aM=(t,e)=>IS(t,e,_t),uM=(t,e)=>OS(t,e,rn),cM=(t,e)=>IS(t,e,rn),lM=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",OS=(t,e,r)=>!(!r(t)||e&&r(e)),IS=(t,e,r)=>!(r(t)||!e||!r(e));var zc={};v(zc,{createASession:()=>pM,endSession:()=>fM,getSession:()=>Pm,getSessionsForUser:()=>Jc,invalidateSessions:()=>mi,updateSessionTTL:()=>Nm});var xS=require("uuid");var RS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):we.fromDays(7).toSeconds();function Os(t,e){return`${t}/${e}`}async function Jc(t){return t?(await(await Yr()).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:Os(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Os(t,s)}))),i&&i.length>0){let s=await Yr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||as(`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 pM(t,e){await mi(t,{reason:"creation"});let r=await Yr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,xS.v4)(),s=Os(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,RS),o}async function Nm(t){let e=await Yr(),r=Os(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,RS)}async function fM(t,e){await(await Yr()).delete(Os(t,e))}async function Pm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Yr()).get(Os(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var km={};v(km,{PASSWORD_MAX_LENGTH:()=>Lm,PASSWORD_MIN_LENGTH:()=>Um,validatePassword:()=>Mm});var Um=+(h.PASSWORD_MIN_LENGTH||12),Lm=+(h.PASSWORD_MAX_LENGTH||512);function Mm(t){return!t||t.length<Um?{valid:!1,error:`Password invalid. Minimum ${Um} characters.`}:t.length>Lm?{valid:!1,error:`Password invalid. Maximum ${Lm} characters.`}:{valid:!0}}var mM=async t=>{let e=t._id;await Mt.removeUser(t),await Cm(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()||ja(e)?!0:(r||(r=await fs(j())),!!(r&&r.email===e.email&&Qa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Mm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await jf(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||is();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(zn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Xc(e,{})).length}}static async getUsersByAppAccess(e){return await Fm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Ft(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await Zc(e)}static async bulkUpdate(e){return await Da(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),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 Ft(s),c&&c._id!==o))throw new mr(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 kc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Bm(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 vm(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=j(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await om(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 ga(d)&&o.push(d)}let l=await fs(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 Da(d);for(let p of d)await Mt.addUser(n,p._id,p.email),await vm(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 Fc(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 Da(a),l=(await pi(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await pa(p._id)).ssoId;g&&(await Rc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await mM(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 Zr(o))throw n.userId===ar()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await ga(n)?1:0;await t.quotas.removeUsers(1,s),await Cm(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 us(De.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 va(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Zc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=va(n)),n}async function gM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`})).rows.map(n=>n.id)}async function yM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`,include_docs:!0})).rows.map(n=>n.doc)}async function Da(t){return await ie().bulkDocs(t)}async function hi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=va(n)),n}async function Ft(t,e){if(t==null)throw"Must supply an email address to view";let r=await lr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=va(n)),n}async function EM(t){try{let e=await Ft(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Xc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=mc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=va(s)),s}async function Fm(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 jp(ur(),i)).rows}function wS(t,e){if(e)return fc(at(t),e._id)}async function bS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await lr("by_email2",{...e,startkey:i,endkey:`${n}${Fe}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=va(o)),o}var TM=8;async function DS({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??TM,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await hi(e.equal._id)]:r?(u=await Xc(r,a),l=d=>wS(r,d)):e?.string?.email?(u=await bS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Zc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(zn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Mr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(zn(null,a))).rows.map(m=>m.doc),pf(u,s,{paginate:!0,property:c,getKey:l})}async function AM(){return(await hf("by_email2",{limit:0,include_docs:!1})).total_rows}async function _M(){let t=0;async function e(r){let n=await DS({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function SM(t){return delete t.admin,delete t.builder,t}function Bm(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 OM(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 IM(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 CS=3600;async function xM(t,e){let n=await qf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Zr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function RM(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Na({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=xM),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await na(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,CS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await $e(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 wM(t){let e=await na(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await RM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,CS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Pa(t){await(await na()).delete(t)}var qm={};v(qm,{Writethrough:()=>$m});var vS=1e4,Gm=null;async function Vm(){if(!Gm){let t=await $f();Gm=new ni(t)}return Gm}function el(t,e){return t.name+e}function NS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function bM(t,e,r=vS){let n=await Vm(),i=e._id,s;i&&(s=await n.get(el(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ps({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;as("Ignoring conflict in write-through cache")}})).executed||as("Ignoring redlock conflict in write-through cache")),s=NS(a,o?null:s?.lastWrite),a._id&&await n.store(el(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function DM(t,e){let r=await Vm(),n=el(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=NS(s),await r.store(n,i)}return i.doc}async function CM(t,e,r){let n=await Vm();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(el(t,i))}finally{await t.remove(i,r)}}var $m=class{constructor(e,r=vS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return bM(this.db,e,r)}async get(e){return DM(this.db,e)}async remove(e,r){return CM(this.db,e,r)}};var Wm={};v(Wm,{createCode:()=>NM,getCode:()=>PM,invalidateCode:()=>UM});var vM=we.fromHours(1).toSeconds();async function NM(t,e){let r=Oe();return await(await ia()).store(r,{userId:t,info:e},vM),r}async function PM(t){let r=await(await ia()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function UM(t){await(await ia()).delete(t)}var jm={};v(jm,{DocWritethrough:()=>Qm,DocWritethroughProcessor:()=>Ua,getProcessor:()=>MM,init:()=>PS});var LM=100,tl,Ua=class t{static get queue(){return t._queue||(t._queue=new gr("docWritethroughQueue",{jobOptions:{attempts:LM}})),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=Ye(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Qm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ua.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function PS(){return tl=new Ua().init(),tl}function MM(){return tl||PS()}function Km(t){return`config${N}${t}`}async function Bt(t){let e=ie();try{return await e.get(Km(t))}catch(r){if(r.status===404)return;throw r}}async function kM(t){return ie().put(t)}async function jc(){let t=await Bt("settings");return t||(t={_id:Km("settings"),type:"settings",config:{}}),t.config.platformUrl=await La({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await $c({config:t.config}),t}async function Jm(){return(await jc()).config}async function La(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Bt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var $c=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Jr(De.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Bt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function FM(){return await Bt("google")}async function rl(){return(await FM())?.config}async function zm(){if(!h.SELF_HOSTED)return Hm();let t=await rl();return(!t||!t.activated)&&(t=Hm()),t}function Hm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function BM(){return Bt("logos_oidc")}async function GM(){return Bt("oidc")}async function $M(){let t=(await GM())?.config;return t?.configs&&t.configs[0]}async function Zm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function US(){return Bt("smtp")}async function VM(t){let e=await US();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 qM(){return(await Bt("scim"))?.config}async function WM(){return Bt("ai")}var Xm={};v(Xm,{BUILDER:()=>KM,BUILTIN_PERMISSIONS:()=>nl,CREATOR:()=>JM,GLOBAL_BUILDER:()=>zM,PermissionImpl:()=>me,PermissionLevel:()=>bs,PermissionType:()=>qa,doesHaveBasePermission:()=>HM,getAllowedLevels:()=>FS,getBuiltinPermissionByID:()=>jM,getBuiltinPermissions:()=>QM,isPermissionLevelHigherThanRead:()=>YM,levelToNumber:()=>kS});var LS=Q(require("lodash/flatten")),MS=Q(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function kS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function FS(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 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 QM(){return(0,MS.default)(nl)}function jM(t){return Object.values(nl).find(r=>r._id===t)}function HM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(nl),s=(0,LS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&FS(o.level).indexOf(e)!==-1)return!0;return!1}function YM(t){return kS(t)>1}var KM="builder",JM="creator",zM="globalBuilder";var rh={};v(rh,{FlagSet:()=>sl,all:()=>tk,flags:()=>eh,init:()=>ZM,isEnabled:()=>ek,parseEnvFlags:()=>al,shutdown:()=>XM,testutils:()=>th});var ol=Q(require("crypto"));var BS=require("posthog-node"),GS=Q(require("dd-trace"));var $S=require("lodash");var il;function ZM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),il=new BS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:we.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function XM(){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}var sl=class{constructor(e){this.flagSchema=e;this.setId=ol.randomUUID()}defaults(){return(0,$S.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await GS.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=j(),o=new Set;for(let{tenantId:l,key:d,value:m}of al(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(d),!!this.isFlagName(d))){if(typeof i[d]!="boolean")throw new Error(`Feature: ${d} is not a boolean`);i[d]=m,n[`flags.${d}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let l=Jp();l&&(u=ol.createHash("sha512").update(l).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 l={tenantId:c},d=await il.getAllFlags(u,{personProperties:l});for(let[m,p]of Object.entries(d))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${p}`,f)}}}Xp(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},eh=new sl(Mh);async function ek(t){return await eh.isEnabled(t)}async function tk(){return await eh.fetch()}var th={};v(th,{setFeatureFlags:()=>VS,withFeatureFlags:()=>ik});function rk(){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 nk(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 VS(t,e){let r=rk();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=nk(r);return bo({TENANT_FEATURE_FLAGS:n})}function ik(t,e,r){let n=VS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var mh={};v(mh,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,buildAuthMiddleware:()=>Qk,buildCsrfMiddleware:()=>Hk,buildTenancyMiddleware:()=>jk,builderOnly:()=>Al,builderOrAdmin:()=>Tl,google:()=>Tr,internalApi:()=>gl,joiValidator:()=>ka,oidc:()=>Ar,passport:()=>Yk,platformLogout:()=>Xk,refreshOAuthToken:()=>zk,ssoCallbackUrl:()=>on,updateUserOAuth:()=>Zk});var fh={};v(fh,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,authenticated:()=>fl,builderOnly:()=>Al,builderOrAdmin:()=>Tl,correlation:()=>rO,csp:()=>uO,csrf:()=>yl,datasource:()=>qk,errorHandling:()=>iO,google:()=>Tr,internalApi:()=>gl,ip:()=>lO,joiValidator:()=>ka,local:()=>Is,oidc:()=>Ar,pino:()=>eO,querystringToBody:()=>sO,ssoCallbackUrl:()=>on,tenancy:()=>hl});var Is={};v(Is,{authenticate:()=>ak,options:()=>ok});function Me(t,e,r){return t(r,null,{message:e})}async function on(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Jm(),n="/api/global/auth";return $r()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var nh="Invalid credentials",sk="This account has expired. Please reset your password",ok={passReqToCallback:!0};async function ak(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Ft(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,nh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,nh)):i.password?await Hf(r,i.password)?(delete i.password,n(null,i)):Me(n,nh):(console.info(`user=${e} has no password set`,i),Me(n,sk))}var Tr={};v(Tr,{buildVerifyFn:()=>QS,getCallbackUrl:()=>lk,strategyFactory:()=>ih});var Ma=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=is(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 Ft(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:j()});let o=await uk(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 uk(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 ck=require("passport-google-oauth").OAuth2Strategy;function QS(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 ih(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=QS(r);return new ck({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function lk(t){return on("google",t)}var Ar={};v(Ar,{buildVerifyFn:()=>HS,fetchStrategyConfig:()=>mk,getCallbackUrl:()=>hk,strategyFactory:()=>fk});var jS=Q(require("node-fetch"));var dk=require("@techpass/passport-openidconnect").Strategy;function HS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:pk(n,i),oauth2:{accessToken:s,refreshToken:o}};return ul(l,!1,c,t)}}function pk(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&zf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function fk(t,e){try{let r=HS(e),n=new dk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function mk(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,jS.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 hk(){return on("oidc")}var sh={};v(sh,{postAuth:()=>Ek,preAuth:()=>yk});var gk=require("passport-google-oauth").OAuth2Strategy;async function YS(){let t=await zm();if(!t)throw new Error("No google configuration found");return t}async function yk(t,e,r){let n=await YS(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await ih(n,s,Ma);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function Ek(t,e,r){let n=await YS(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ai(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new gk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await fr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var Tk=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(Tk);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],yi=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var dh={};v(dh,{SecretOption:()=>zS,decrypt:()=>lh,decryptFile:()=>xk,encrypt:()=>Sk,encryptFile:()=>Ok,getSecret:()=>ch});var _r=Q(require("crypto")),an=Q(require("fs")),ah=Q(require("zlib"));var oh=require("path"),cl="aes-256-ctr",JS="-",Ak=1e4,_k=32,ll=16,uh=16,zS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(zS||{});function ch(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 _r.default.pbkdf2Sync(t,e,Ak,_k,"sha512")}function Sk(t,e="api"){let r=_r.default.randomBytes(ll),n=dl(ch(e),r),i=_r.default.createCipheriv(cl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${JS}${a}`}function lh(t,e="api"){let[r,n]=t.split(JS),i=Buffer.from(r,"hex"),s=dl(ch(e),i),o=_r.default.createDecipheriv(cl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function Ok({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,oh.join)(t,e);if(an.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=an.default.createReadStream(i),o=an.default.createWriteStream((0,oh.join)(t,n)),a=_r.default.randomBytes(ll),u=_r.default.randomBytes(uh),c=dl(r,a),l=_r.default.createCipheriv(cl,c,u);return o.write(a),o.write(u),s.pipe(ah.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function Ik(t){let e=an.default.createReadStream(t),r=await KS(e,ll),n=await KS(e,uh);return e.close(),{salt:r,iv:n}}async function xk(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await Ik(t),s=an.default.createReadStream(t,{start:ll+uh}),o=an.default.createWriteStream(e),a=dl(r,n),u=_r.default.createDecipheriv(cl,a,i),c=ah.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 KS(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 XS=Q(require("dd-trace")),Rk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function wk(){return new Date(Date.now()-Rk).toISOString()}function ZS(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 bk(t,e){if(ca(t))return{valid:!0,user:void 0};let n=lh(t).split(N)[0];return $e(n,async()=>{let i;try{let s=ie();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Na({userId:i,tenantId:n,populateUser:e})};throw new gs})}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?gi(t):[];return async(n,i)=>{let s=!1,o=pl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=pl(n,"x-budibase-token"),c=ai(n,"budibase:auth")||Oc(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,_;try{_=await Pm(S,y),e&&e.populateUser?p=await Na({userId:S,tenantId:_.tenantId,email:_.email,populateUser:e.populateUser(n)}):p=await Na({userId:S,tenantId:_.tenantId,email:_.email}),p.csrfToken=_.csrfToken,g="cookie",_?.lastAccessedAt<wk()&&await Nm(_),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),zr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:_}=await bk(l,y);S&&(m=!0,g="api_key",p=_,f=!_)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&XS.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),ZS(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"?zr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return ZS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Dk=async(t,e)=>e(),ml=Dk;function hl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=aa(s,u);return s.set("x-budibase-tenant-id",l),$e(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"),ca(r)||t.throw(403,"Unauthorized"),e()};var Ck=["GET","HEAD","OPTIONS"],vk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function yl(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||Ck.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!vk.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=Ue(),n=h.isWorker()||!r?_t:h.isApps()?ys: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=Ue(),n=h.isWorker()||!r?_t:h.isApps()?ys: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 Nk=require("koa-pino-logger"),Pk=require("correlation-id");function Uk(){return{logger:Tc,genReqId:Pk.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 Lk(){return h.HTTP_LOGGING?Nk(Uk()):(t,e)=>e()}var Mk=Lk(),eO=Mk;var tO=require("uuid"),kk=require("correlation-id"),Fk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,tO.v4)()),kk.withId(r,()=>e())},rO=Fk;function nO(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of LT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Bk(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Nc(r)};if(nO(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 iO=Bk;function sO(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 aO=Q(require("crypto")),oO={"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:"]};async function Gk(t,e){try{let r=aO.default.randomBytes(16).toString("base64"),n={...oO};n["script-src"]=[...oO["script-src"],`'nonce-${r}'`],t.state.nonce=r;let i=Object.entries(n).map(([s,o])=>`${s} ${o.join(" ")}`).join("; ");t.set("Content-Security-Policy",i),await e()}catch(r){console.error(`Error occurred in Content-Security-Policy middleware: ${r}`)}}var uO=Gk;var ka={};v(ka,{body:()=>$k,params:()=>Vk});var ph=Q(require("joi"));function cO(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:ph.default.any().optional(),updatedAt:ph.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 $k(t,e){return cO(t,"body",e)}function Vk(t,e){return cO(t,"params",e)}var lO=async(t,e)=>t.ip?await zp(t.ip,()=>e()):e();var qk={google:sh};var dO=require("koa-passport"),Wk=require("passport-local").Strategy,_l=require("passport-oauth2-refresh"),Qk=fl,jk=hl,Hk=yl,Yk=dO;dO.use(new Wk(Is.options,Is.authenticate));async function Kk(t,e){let r=await Ar.getCallbackUrl(),n,i;try{if(n=await Ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Ar.strategyFactory(n,Ma)}catch{throw new Error("Could not refresh OAuth Token")}return _l.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{_l.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Jk(t,e){let r=await Tr.getCallbackUrl(t),n;try{n=await Tr.strategyFactory(t,r,Ma)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return _l.use(n),new Promise(i=>{_l.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function zk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Zm(r);return n?Kk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await rl();return n?Jk(n,t):{err:{data:"Google configuration not found"}}}}}async function Zk(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 Pa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Xk(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=ai(e,"budibase:auth"),s=await Jc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):zr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await Kc.logout(e.user?.email),await Pa(r)}var gh={};v(gh,{validate:()=>iF});var D=Q(require("joi")),eF=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function hh(t,e){let{error:r}=t.validate(e);if(r)throw r}function tF(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});hh(e,t)}function rF(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Rl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(xl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(wl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...eF),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});hh(n,t)}function nF(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(oe)).required(),customType:D.default.string().allow(...Object.values(ge)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...kh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});hh(n,t)}function iF(t){switch(t?.type){case"component":tF(t);break;case"datasource":rF(t);break;case"automation":nF(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var yh={};v(yh,{Client:()=>Ve,clients:()=>Kr,locks:()=>ci,utils:()=>ac});var Eh={};v(Eh,{isBlacklisted:()=>oF,refreshBlacklist:()=>hO});var pO=Q(require("dns")),Ol=Q(require("net"));var fO=require("util"),Sl,sF=(0,fO.promisify)(pO.default.lookup);async function mO(t){return Ol.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await sF(t,{all:!0})).map(r=>r.address)}async function hO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Ol.default.isIP(i))r.push(i);else{let s=await mO(i);r=r.concat(s)}}Sl=r}async function oF(t){if(Sl||await hO(),Sl?.length===0)return!1;let e;return Ol.default.isIP(t)?e=[t]:e=await mO(t),!!Sl?.find(r=>e.includes(r))}var Ah={};v(Ah,{init:()=>uF});var aF={"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 gO(t,e){let r=aF[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Fa=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=gO(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await $e(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return X_()}};var yO,Th;function uF(t){Er||Yc(),Th||(Th=new Fa(t)),yO||(yO=Er.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Th.processEvent(r,n,i)}))}var Dh={};v(Dh,{COUNT_FIELD_NAME:()=>wh,Sql:()=>RO,SqlTable:()=>Il,designDoc:()=>bh,utils:()=>Wp});var _O=require("knex");var cF=require("knex");function _h(t){return["link","formula","ai"].indexOf(t)!==-1}function EO(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":jt.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],_=y.schema[S].externalType;_?t.specificType(p.foreignKey,_):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&&!_h(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!_h(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||_h(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function dF(t,e,r){return t.createTable(e.name,n=>{EO(n,e,r)})}function pF(t,e,r,n,i){return t.alterTable(e.name,s=>{EO(s,e,r,n,i)})}function fF(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,cF.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=dF(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=pF(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=zi(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=fF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return zi(n)}},Il=Sh;var SO=require("lodash"),wh="__bb_total";function TO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Oh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function mF(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 OO(t){return Array.isArray(t)?t.map(e=>OO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function AO(t){return t.sourceType==="internal"||t.sourceId===Nl}function hF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function IO(t,e='"'){return`${e}${hF(t,e)}${e}`}function Ih(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=IO(t[r],e));return`[${t.join(",")}]`}function xO(t){return Fh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var gF={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},xh=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 Mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&xO(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(!Vp(e))return null}else{if($p(e))return null;if(nc(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,SO.cloneDeep)(e);for(let r of Object.values(Or)){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(Kt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(dn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=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=qp(d),_;if(f?_=n:_=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),S){let M=a?.[S.through]||d.through,T=this.tableNameWithSchema(S.through,{alias:M,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${S.toPrimary}`,"=",`${M}.${S.to}`)}).where(`${M}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(O=>{O.whereExists(i(_,y)),r&&O.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${M}.${S.from}`)}))})}else{let M=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(M,"=",this.rawQuotedIdentifier(T)),e=e.where(O=>{O.whereExists(i(_,y.clone())),r&&O.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[O,...x]=M.split("."),w=x.join("."),B=c(O);return _.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let _ in f){let M=f[_],T=Go(_),O=T.includes("."),x=n?.relationship&&O,w;if(_==="_complexIdOperator"&&(w=f[_])&&y){let B=c(u);e=y(e,w.id.map(le=>B?`${B}.${le}`:le),w.values)}else if(O)x&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,gF[g],T,(B,le)=>S(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(S),this.knex.raw(Ih(_,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ih(_))]))):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(S),this.knex.raw(IO(Ih(_)))])):l(f,"contains",(y,S,_)=>(_.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let O of _){f===r?.containsAny?T=T.or:T=T.and;let x=typeof O=="string"?`"${O.toLowerCase()}"`:O;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${x}%`)}}),f===r?.notContains&&(M=M.or.whereNull(this.rawQuotedIdentifier(S))),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),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 _ of S)_!=null?f=f.or.whereLike(g,`${_.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=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=ic(E.low),_=ic(E.high),M=this.getFieldSchema(g),T=g,O=E.high,x=E.low;return this.client==="sqlite3"&&M?.type==="datetime"&&M.dateOnly&&(O!=null&&(O=`${O.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)]),O=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,O]):S?f.where(T,">=",x):_?f.where(T,"<=",O):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(_=>_.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(_=>_.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`,`${Ir(r.documentType)}%`),e}isSqs(){return AO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;AO(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 ${wh}`)}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)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),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 _=a?.[m]||m,M=a?.[r]||r,T=p&&a?.[p]||p,O=this.tableNameWithSchema(m,{alias:_,schema:u}),x=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),w=mF(l.filter(V=>V.split(".")[0]===_),x);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map(V=>this.buildJsonField(S,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(","),un=`${_}.${y||f}`,$=s.from(O).orderBy(un),F=p&&y&&E,C=F?`${T}.${g}`:`${_}.${f}`,q=F?`${M}.${E}`:`${M}.${g}`;if(F){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${_}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(C),"=",this.rawQuotedIdentifier(q));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Oh()),s.select(V).from({[_]:$})),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 ${Oh()})`));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(Oh())});K=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);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())}},Rh=class extends Il{constructor(r,n=TO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=zi(r);return i==="sqlite3"&&(s=OO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,_O.knex)(s),a,u=new xh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:TO()}});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(!xO(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){No(this.getSqlClient(),r,n)}},RO=Rh;var bh={};v(bh,{base:()=>yF});function yF(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var EF={...ua,...Te},TF=(t={})=>{tc(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,ErrorCode,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});
37
+ `;await n.eval(i,1,Ke(this._db,e),r)}},Ve=Lf;var Ko,Jo,zo,Zo,ti,Xo,ea,ta,ra,Bf;async function Lt(){Ko=await new Ve("users").init(),Jo=await new Ve("session").init(),zo=await new Ve("appMetadata").init(),Zo=await new Ve("data_cache").init(),Xo=await new Ve("locks").init(),ti=await new Ve("writeThrough").init(),ta=await new Ve("invitation").init(),ra=await new Ve("pwReset").init(),ea=await new Ve("socket_io",1).init(),Bf=await new Ve("docWriteThrough").init()}async function pS(){Ko&&await Ko.finish(),Jo&&await Jo.finish(),zo&&await zo.finish(),Zo&&await Zo.finish(),ti&&await ti.finish(),Xo&&await Xo.finish(),ta&&await ta.finish(),ra&&await ra.finish(),ea&&await ea.finish(),Bf&&await Bf.finish()}process.on("exit",async()=>{await pS()});async function na(){return Ko||await Lt(),Ko}async function Yr(){return Jo||await Lt(),Jo}async function pc(){return zo||await Lt(),zo}async function Gf(){return Zo||await Lt(),Zo}async function $f(){return ti||await Lt(),ti}async function Vf(){return Xo||await Lt(),Xo}async function oP(){return ea||await Lt(),ea}async function ri(){return ta||await Lt(),ta}async function ia(){return ra||await Lt(),ra}async function aP(){return ti||await Lt(),ti}function Ht(t){let e=j();return`${t}:${e}`}var ni=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Gf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ht(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ht(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[Ht(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ht(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(Ht(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ht(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ii=new ni,De={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}`},si=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(si||{}),Sc=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),fr=(...t)=>ii.store(...t),sa=(...t)=>ii.delete(...t),Jr=(...t)=>ii.withCache(...t),fS=(...t)=>ii.withCacheWithDynamicTTL(...t),us=(...t)=>ii.bustCache(...t);var sn={};v(sn,{getUser:()=>Na,getUsers:()=>wM,invalidateUser:()=>Pa});var ua={};v(ua,{addTenantToUrl:()=>uP,getTenantDB:()=>qf,getTenantIDFromCtx:()=>aa,isUserInAppTenant:()=>cP});function qf(t){return Ye(ur(t))}function uP(t){let e=j();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var cP=(t,e)=>{let r;return e?r=e.tenantId||Ee:r=j(),(Xi(t)||Ee)===r},lP=Object.values(ws),aa=(t,e)=>{if(!$r())return Ee;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=lP),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(Hp()).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 la={};v(la,{getPlatformDB:()=>ct,tenants:()=>tm,users:()=>Mt});var Mt={};v(Mt,{addSsoUser:()=>hS,addUser:()=>gP,getUserDoc:()=>mS,lookupTenantId:()=>dP,removeUser:()=>yP,updateUserDoc:()=>pP});function ct(){return Ye(_e.PLATFORM_INFO.name)}async function dP(t){return h.MULTI_TENANCY?(await mS(t)).tenantId:Ee}async function mS(t){return ct().get(t)}async function pP(t){await ct().put(t)}function fP(t,e){return{_id:t,tenantId:e}}function mP(t,e,r){return{_id:e,userId:t,tenantId:r}}function hP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Wf(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 hS(t,e,r,n){return Wf(t,()=>hP(t,e,r,n))}async function gP(t,e,r,n){let i=[Wf(e,()=>fP(e,t)),Wf(r,()=>mP(e,r,t))];n&&i.push(hS(n,r,e,t)),await Promise.all(i)}async function yP(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 tm={};v(tm,{addTenant:()=>kP,exists:()=>UP,getTenantIds:()=>PP,removeTenant:()=>FP,tenacyLockOptions:()=>em});var ci={};v(ci,{AUTO_EXTEND_POLLING_MS:()=>OS,doWithLock:()=>ps,newRedlock:()=>ui});var IS=Q(require("redlock"));var ls={};v(ls,{Duration:()=>we,DurationType:()=>Zf,clearCookie:()=>zr,compare:()=>Hf,getAppIdFromCtx:()=>xP,getCookie:()=>ai,hasCircularStructure:()=>wP,hash:()=>jf,isAudited:()=>Jf,isClient:()=>RP,isPublicApiRequest:()=>OP,isServingApp:()=>SP,isServingBuilder:()=>_P,isServingBuilderPreview:()=>IP,isValidInternalAPIKey:()=>ca,newid:()=>Ie,openJwt:()=>Ic,resolveAppUrl:()=>AS,setCookie:()=>SS,time:()=>DP,timeout:()=>Kf,urlHasProtocol:()=>bP,validEmail:()=>zf});var Qf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),EP=h.SALT_ROUNDS||10;async function jf(t){let e=await Qf.genSalt(EP);return Qf.hash(t,e)}async function Hf(t,e){return Qf.compare(t,e)}var _c=Q(require("jsonwebtoken")),Yf="app"+N,yS="/app/",ES="/app/preview",TP="/builder",TS=`${TP}/app/`,AP="/api/public/v";function cs(t){return t&&t.startsWith(Yf)?t:void 0}async function AS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=aa(t,{includeStrategies:["subdomain"]}));let s=(await $e(n,()=>ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function SP(t){return t.path.startsWith(`/${Yf}`)?!0:t.path.startsWith(yS)}function _P(t){return t.path.startsWith(TS)}function IP(t){return t.path.startsWith(ES)}function OP(t){return t.path.startsWith(AP)}async function xP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=cs(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=cs(t.request.body.appId));let n=gS(t.path);!r&&n&&(r=cs(n)),!r&&t.query?.appId&&(r=cs(t.query?.appId));let i=t.path.startsWith(ES),s=t.path.startsWith(yS)&&!i;!r&&s&&(r=cs(await AS(t)));let o=t.request.headers.referer;if(!r&&o?.includes(TS)){let a=gS(t.request.headers.referer);r=cs(a)}return r}function gS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Yf))}function Ic(t){if(t)try{return _c.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return _c.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function ca(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function ai(t,e){let r=t.cookies.get(e);if(r)return Ic(r)}function SS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=_c.default.sign(e,h.JWT_SECRET));let i={expires:Yu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function zr(t,e){SS(t,null,e)}function RP(t){return t.headers["x-budibase-type"]==="client"}function Kf(t){return new Promise(e=>setTimeout(e,t))}function Jf(t){return!!Nh[t]}function wP(t){if(typeof t!="object")return!1;try{JSON.stringify(t)}catch(e){if(e instanceof Error&&e?.message.includes("circular structure"))return!0}return!1}function bP(t){return!!t.match(/^.+:\/\/.+$/)}function zf(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 Zf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Zf||{}),Oc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},we=class t{constructor(e){this.ms=e}to(e){return this.ms/Oc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Oc[e]/Oc[r]}static from(e,r){return new t(r*Oc[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function DP(t){let e=performance.now();return[await t(),we.fromMilliseconds(performance.now()-e)]}async function CP(t,e){if(t==="custom")return ui(e);switch(t){case"try_once":return ui(ds.TRY_ONCE);case"try_twice":return ui(ds.TRY_TWICE);case"default":return ui(ds.DEFAULT);case"delay_500":return ui(ds.DELAY_500);case"auto_extend":return ui(ds.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var ds={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={...ds.DEFAULT,...t},n=(await Vf()).getClient();return new IS.default([n],e)}function vP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var OS=we.fromSeconds(10).toMs();async function ps(t,e){let r=await CP(t.type,t.customOptions),n,i;try{let s=vP(t),o=t.type==="auto_extend"?OS: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 Xf=_e.PLATFORM_INFO.docs.tenants,em={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function PP(){return(await xc()).tenantIds}async function xc(){let t=ct(),e;try{e=await t.get(Xf)}catch(r){if(r.status===404)e=await MP();else throw r}return e}async function UP(t){return(await xc()).tenantIds.indexOf(t)!==-1}function LP(){return{_id:Xf,tenantIds:[]}}async function MP(){let t=ct(),e=LP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Xf);throw r}return e}async function kP(t){let e=ct();await ps(em,async()=>{let r=await xc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function FP(t){try{await ps(em,async()=>{let e=ct(),r=await xc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var li={};v(li,{getAccount:()=>Zr,getAccountByTenantId:()=>fs,getStatus:()=>BP});var xS=Q(require("node-fetch"));var da=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";Uo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,xS.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var rm=new da(h.ACCOUNT_PORTAL_URL),nm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(nm)return;let e={email:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},fs=async t=>{if(nm)return;let e={tenantId:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},BP=async()=>{if(nm)return;let t=await rm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Ss={};v(Ss,{UserDB:()=>Yt,addAppBuilder:()=>IM,bulkGetGlobalUsersById:()=>Zc,bulkUpdateGlobalUsers:()=>Da,cleanseUserObject:()=>Bm,creatorsInList:()=>pi,doesUserExist:()=>EM,getAccountHolderFromUsers:()=>Fc,getAllUserIds:()=>gM,getAllUsers:()=>yM,getById:()=>hi,getCreatorCount:()=>SM,getExistingAccounts:()=>ms,getExistingPlatformUsers:()=>DS,getExistingTenantUsers:()=>bS,getFirstPlatformUser:()=>pa,getGlobalUserByAppPage:()=>w_,getGlobalUserByEmail:()=>Ft,getPlatformUsers:()=>Rc,getUserCount:()=>AM,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>FS,hasBuilderPermissions:()=>St,isAdmin:()=>tn,isAdminOrBuilder:()=>kS,isBuilder:()=>ys,isCreatorAsync:()=>ga,isCreatorSync:()=>Mc,isGlobalBuilder:()=>MS,paginatedUsers:()=>D_,removeAppBuilder:()=>OM,removePortalUserPermissions:()=>_M,searchExistingEmails:()=>om,searchGlobalUsersByApp:()=>Xc,searchGlobalUsersByAppAccess:()=>Fm,searchGlobalUsersByEmail:()=>b_,validateUniqueUser:()=>kc});var gm={};v(gm,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Fc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>FS,hasBuilderPermissions:()=>St,isAdmin:()=>tn,isAdminOrBuilder:()=>kS,isBuilder:()=>ys,isCreatorAsync:()=>ga,isCreatorSync:()=>Mc,isGlobalBuilder:()=>MS,validateUniqueUser:()=>kc});var sm={};v(sm,{createCode:()=>$P,deleteCode:()=>qP,getCode:()=>VP,getExistingInvites:()=>im,getInviteCodes:()=>wS,updateCode:()=>GP});var RS=we.fromDays(7).toSeconds();async function GP(t,e){await(await ri()).store(t,e,RS)}async function $P(t,e){let r=Ie();return await(await ri()).store(r,{email:t,info:e},RS),r}async function VP(t){let r=await(await ri()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function qP(t){await(await ri()).delete(t)}async function wS(){let r=(await(await ri()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=j();return r.filter(i=>n===i.info.tenantId)}async function im(t){return(await wS()).filter(e=>t.includes(e.email))}async function om(t){let e=[],r=await bS(t);e.push(...r.map(o=>o.email));let n=await DS(t);e.push(...n.map(o=>o._id));let i=await ms(t);e.push(...i.map(o=>o.email));let s=await im(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Rc(t){return await Bo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function pa(t){return(await Rc(t))[0]??null}async function bS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await lr("by_email2",r,void 0,n)}async function DS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bo("platform_users_lowercase_2",r)}async function ms(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bo("account_by_email",r)}var Pc={};v(Pc,{BadRequestError:()=>bc,BudibaseError:()=>hs,EmailUnavailableError:()=>mr,ErrorCode:()=>vc,FeatureDisabledError:()=>Cc,HTTPError:()=>lt,InvalidAPIKeyError:()=>gs,NotFoundError:()=>wc,UsageLimitError:()=>Dc,getPublicError:()=>Nc});var hs=class extends Error{constructor(r,n){super(r);this.code=n}},vc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(vc||{}),Nc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class extends hs{constructor(r,n,i="http"){super(r,i);this.status=n}},wc=class extends lt{constructor(e){super(e,404)}},bc=class extends lt{constructor(e){super(e,400)}},Dc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Cc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},gs=class extends hs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var hm={};v(hm,{AccessController:()=>cm,BUILTIN_ROLE_IDS:()=>ha,Role:()=>Xr,RoleHierarchyTraversal:()=>Uc,RoleIDVersion:()=>lm,builtinRoleToNumber:()=>fa,checkForRoleResourceArray:()=>PS,externalRole:()=>KP,findRole:()=>ma,getAllRoleIds:()=>XP,getAllRoles:()=>mm,getBuiltinRole:()=>vS,getBuiltinRoles:()=>pm,getDBRoleID:()=>US,getExternalRoleID:()=>en,getExternalRoleIDs:()=>LS,getRole:()=>JP,getUserRoleHierarchy:()=>fm,getUserRoleIdHierarchy:()=>NS,isBuiltin:()=>di,lowerBuiltinRoleID:()=>YP,prefixRoleIDNoBuiltin:()=>um,roleIDsAreEqual:()=>At,roleToNumber:()=>HP,saveRoles:()=>zP,validInherits:()=>jP});var am=Q(require("semver"));var Lc=Q(require("lodash/fp/cloneDeep"));var CS=require("lodash");var ha={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ha,BUILDER:"BUILDER"},lm={UUID:void 0,NAME:"name"};function QP(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var Xr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=lm.NAME}addInheritance(e){return e&&typeof e=="string"?e=um(e):e&&Array.isArray(e)&&(e=e.map(um)),this.inherits=e,this}},Uc=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=ma(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!QP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=ma(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,CS.uniqBy)(i,s=>s._id)}},dm={ADMIN:new Xr(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 Xr(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 Xr(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 Xr(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Xr(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function pm(){return(0,Lc.default)(dm)}function di(t){return Object.values(ha).includes(t)}function um(t){return di(t)?t:cr(t)}function vS(t){let e=Object.values(dm).find(r=>t.includes(r._id));if(e)return(0,Lc.default)(e)}function jP(t,e){if(!e)return!1;let r=n=>t.find(i=>At(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 fa(t){let e=pm(),r=Object.values(e).length+1;if(At(t,fe.ADMIN)||At(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 HP(t){if(di(t))return fa(t);let e=await fm(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=>At(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(di(n.inherits))return fa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function YP(t,e){return t?e&&fa(t)>fa(e)?e:t:e}function At(t,e){return cr(t)===cr(e)}function KP(t){let e;return t._id&&(e=en(t._id)),{...t,_id:e,inherits:LS(t.inherits,t.version)}}function ma(t,e,r){let n=vS(t);n||(t=cr(t));let i=e.find(s=>s._id&&At(s._id,t));return!i&&!di(t)&&r?.defaultPublic?(0,Lc.default)(dm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=en(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function JP(t,e){let r=es(),n=[];if(!di(t)){let i=await r.tryGet(US(t));i&&n.push(i)}return ma(t,n,e)}async function zP(t){await es().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function ZP(t,e){let r=await mm();if(At(t,fe.ADMIN))return r;let n=ma(t,r,e),i=[];return n&&(i=new Uc(r,e).walk(n)),i}async function NS(t){return(await fm(t)).map(r=>r._id)}async function fm(t,e){return ZP(t,e)}function PS(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 XP(t){return(await mm(t)).map(r=>r._id)}async function mm(t){if(t)return ut(t,e);{let r;try{r=es()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(hc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=en(a._id,a.version)));let i=pm(),s=[];!r||await eU(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=>At(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=en(a._id,u.version),n.push({...a,...u,name:a.name,_id:en(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=PS(o.permissions,a);return n}}async function eU(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!am.default.valid(r)?!0:!am.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var cm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||At(e,fe.BUILDER)||At(r,e)||At(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await NS(r),this.userHierarchies[r]=n),n?.find(i=>At(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 US(t){return t?.startsWith("role")?t:cr(t)}function en(t,e){if(t.startsWith(`role${N}`)&&(di(t)||e===lm.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function LS(t,e){return t&&(typeof t=="string"?en(t,e):t.map(r=>en(r,e)))}var ys=ot.users.isBuilder,tn=ot.users.isAdmin,MS=ot.users.isGlobalBuilder,kS=ot.users.isAdminOrBuilder,rn=ot.users.hasAdminPermissions,St=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 ie().getMultiple(r,{allowMissing:!0}),t.map(i=>Mc(i,e))}async function ga(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Mc(t,e)}function Mc(t,e){let r=ot.users.isCreator(t);return!r&&t?tU(t,e):r}function tU(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes(ha.ADMIN)):!1}async function kc(t,e){if(h.MULTI_TENANCY){let r=await pa(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function Fc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ms(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var As={};v(As,{account:()=>t_,ai:()=>o_,analytics:()=>Gc,app:()=>r_,auditLog:()=>S_,auth:()=>Kc,automation:()=>n_,backfill:()=>g_,backfillCache:()=>Hc,backup:()=>T_,datasource:()=>i_,email:()=>s_,environmentVariable:()=>A_,group:()=>y_,identification:()=>kt,initAsyncEvents:()=>tM,installation:()=>Ia,layout:()=>u_,license:()=>a_,org:()=>c_,plugin:()=>E_,processors:()=>Sm,publishEvent:()=>A,query:()=>l_,role:()=>ba,rowAction:()=>__,rows:()=>p_,screen:()=>d_,serve:()=>m_,shutdown:()=>rM,table:()=>f_,user:()=>qe,view:()=>h_});var Sm={};v(Sm,{analyticsProcessor:()=>JS,init:()=>AU,processors:()=>yr});var Gc={};v(Gc,{enabled:()=>Bc});var Bc=async()=>$c();var qS=require("posthog-node");var rU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",nU=t=>t==="served:app:preview"||t==="served:app";var GS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},$S=async t=>{if(!rU(t))return!1;let e=await iU(t);if(e){let r=new Date(e.timestamp);switch(GS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await BS(t,{timestamp:Date.now()}),!1):!0}}else return await BS(t,{timestamp:Date.now()}),!1},VS=t=>{let e=`${De.EVENTS_RATE_LIMIT}:${t}`;return nU(t)&&(e=e+":"+Ue()),e},iU=async t=>{let e=VS(t);return await oi(e)},BS=async(t,e)=>{let r=VS(t),n=GS[t],i;switch(n){case"calendarDay":i=86400}await fr(r,e,i)};var oU=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ya=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new qS.PostHog(e)}async processEvent(e,r,n,i){if(oU.includes(e)||await $S(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 WS=ya;var aU=["installation:version:upgraded","installation:version:downgraded"],uU=["installation","tenant"],Ea=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new WS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!aU.includes(e)&&!await Bc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!uU.includes(e.type)&&!await Bc()||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 ym=h.SELF_HOSTED&&!h.isDev(),Ta=class{async processEvent(e,r,n){ym||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){ym||console.log("[audit] identified",e)}async identifyGroup(e){ym||console.log("[audit] group identified",e)}shutdown(){}};var Am={};v(Am,{BudibaseQueue:()=>gr,InMemoryQueue:()=>Vc,JobQueue:()=>Es,shutdown:()=>yU});var QS=Q(require("events"));function cU(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 Vc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new QS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a,u=0){try{await a}catch(c){if(u++,u<3)await jt.wait(100*u),await s(r(n),u);else throw c}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n);let a=this._messages.indexOf(n);if(a===-1)throw"Failed deleting a processed message";this._messages.splice(a,1)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Ie(),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=>cU(e))}async whenCurrentJobsFinished(){do await Kf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},jS=Vc;var Em=Q(require("bull"));var Es=(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))(Es||{});function HS(t,e,r){pU(t,e),r&&lU(t,r)}function lU(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 _t(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var dU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function pU(t,e){let r=dU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Yp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(..._t(r,"stalled",{job:i}))})}).on("error",i=>{console.error(..._t(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(..._t(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(..._t(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(..._t(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(..._t(r,"paused"))}).on("resumed",()=>{console.info(..._t(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(..._t(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(..._t(r,"drained"))}).on("removed",i=>{console.info(..._t(r,"removed",{job:i}))})}var hr=Q(require("dd-trace")),Aa=Q(require("object-sizeof")),fU=we.fromMinutes(5).toMs(),mU=we.fromSeconds(30).toMs(),Tm=we.fromSeconds(60).toMs(),Sa=[],qc;async function YS(){for(let t of Sa)await t.clean(Tm,"completed"),await t.clean(Tm,"failed")}async function hU(t,e,r){let n=performance.now();try{let i=await e();return hr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw hr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;hr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),hr.default.dogstatsd.increment(t,1,r)}}function KS(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 gU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Aa.default)(t.data),...KS(t.opts||{})}}var gr=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:ns(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:fU,lockRenewTime:mU}};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 Em.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new jS(this.jobQueue,r):n=new Em.default(this.jobQueue,r),HS(n,this.jobQueue,this.opts.removeStalledCb),Sa.push(n),!qc&&!h.isTest()&&(qc=Qo(YS,Tm),YS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=async s=>{await hr.default.trace("queue.process",async o=>{if(s.data._parentSpanContext){let a=s.data._parentSpanContext,u={traceId:a.traceId,spanId:a.spanId,toTraceId:()=>a.traceId,toSpanId:()=>a.spanId,toTraceparent:()=>""};o.addLink(u)}o.addTags({"queue.name":this.jobQueue,...gU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),hr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Aa.default)(s.data),this.metricTags()),await this.withMetrics("queue.process",()=>n(s))})};return r?this.queue.process(r,i):this.queue.process(i)}async add(e,r){return await hr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Aa.default)(e),...KS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},hr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Aa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return hU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function yU(){if(qc&&jo(qc),Sa.length){for(let t of Sa)await t.close();Sa=[]}console.log("Queues shutdown")}var Ts=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new gr("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await $e(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&&Jf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var _a=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 JS=new Ea,EU=new Ta,TU=new Ts;function AU(t){return Ts.init(t)}var yr=new _a([JS,EU,TU]);var Wc={};v(Wc,{checkInstallVersion:()=>IU,getInstall:()=>Oa,getInstallFromDB:()=>Im});var _m=Q(require("semver"));var Oa=async()=>Jr(De.INSTALLATION,86400,Im,{useTenancy:!1});async function SU(t){let e={_id:_e.PLATFORM_INFO.docs.install,installId:Ie(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Im();throw r}}var Im=async()=>ut(_e.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(_e.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await SU(t);else throw r}return e}),_U=async t=>{try{await ut(_e.PLATFORM_INFO.name,async e=>{let r=await Oa();r.version=t,await e.put(r),await us(De.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},IU=async()=>{let t=await Oa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=_m.default.gt(r,e),i=_m.default.lt(r,e);await _U(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Ia.upgraded(e,r):i&&await Ia.downgraded(e,r)}),await kt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Xn(`Invalid version "${r}" - is it semver?`):Xn("Failed to retrieve version",n)}};var OU=async()=>{let t=Cp(),e=wa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=xa();return{id:zS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await Qc(j()),s=xa();return{id:zS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await Qc(j()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=xa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},xU=async(t,e)=>{let r=t,n="installation",i=xa(),s=h.VERSION,o=wa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Om(a,e),await Ra({...a,id:`$${n}_${r}`},e)},RU=async(t,e,r)=>{let n=await Qc(t),i="tenant",s=await fi(),o=wa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Om(a,r),await Ra({...a,id:`$${i}_${n}`},r)},wU=async(t,e,r)=>{let n=t._id,i=await Qc(t.tenantId),s="user",o=St(t),a=rn(t),u;ja(t)&&(u=t.providerType);let l=(await ms([t.email])).length>0,d=!!e&&l&&e.verified,m=await fi(),p=e?e.hosting:xa(),f=wa();await Ra({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},bU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Qa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=wa();if(Wa(t)){let d=await Ft(t.email);d?._id&&(e=d._id)}await Ra({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ra=async(t,e)=>{await yr.identify(t,e)},Om=async(t,e)=>{await yr.identifyGroup(t,e)},wa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,xa=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>DU()?"account-portal":(await Oa()).installId,Qc=async t=>h.SELF_HOSTED?ZS(t):t,ZS=async t=>$e(t,()=>Jr(De.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await jc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Ie()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),DU=()=>h.SERVICE==="account-portal",zS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,kt={getCurrentIdentity:OU,identifyInstallationGroup:xU,identifyTenantGroup:RU,identifyUser:wU,identifyAccount:bU,identify:Ra,identifyGroup:Om,getInstallationId:fi,getUniqueTenantId:ZS};var Hc={};v(Hc,{end:()=>vU,isAlreadySent:()=>wm,isBackfillingEvent:()=>Rm,recordEvent:()=>xm,start:()=>CU});var CU=async t=>PU({eventWhitelist:t}),xm=async(t,e)=>{let r=bm(t,e);await fr(r,e,void 0,{useTenancy:!1})},vU=async()=>{await UU(),await LU()},NU=async()=>oi(De.BACKFILL_METADATA),PU=async t=>fr(De.BACKFILL_METADATA,t),UU=async()=>{await sa(De.BACKFILL_METADATA)},LU=async()=>{let t=bm(),e=await Sc(t);for(let r of e)await sa(r,{useTenancy:!1})},Rm=async t=>{let r=(await NU())?.eventWhitelist;return!!(r&&r.includes(t))},wm=async(t,e)=>{let r=bm(t,e);return!!await oi(r,{useTenancy:!1})},MU={"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}`},bm=(t,e)=>{let r,n=j();if(t){r=`${De.EVENTS}:${n}:${t}`;let i=MU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${De.EVENTS}:${n}:*`;return r};var Er;function Yc(){Er=new gr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function XS(){Er&&await Er.close()}async function e_(t){Er||Yc();let{event:e,identity:r}=t;vh.indexOf(e)!==-1&&r.tenantId&&await Er.add(t)}var A=async(t,e,r,n)=>{let i=n||await kt.getCurrentIdentity();if(!(n?!1:await Rm(t))){await e_({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await wm(t,e)||(await yr.processEvent(t,i,e,r),await xm(t,e))};async function kU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function FU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function BU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var t_={created:kU,deleted:FU,verified:BU};var GU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function $U(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function VU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function qU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function WU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function QU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function jU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function HU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function YU(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 JU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function zU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var r_={created:GU,updated:$U,deleted:VU,published:qU,unpublished:WU,fileImported:QU,duplicated:jU,templateImported:HU,versionUpdated:YU,versionReverted:KU,reverted:JU,exported:zU};async function ZU(t,e){let n={userId:(await kt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function XU(t){let r={userId:(await kt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function eL(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function tL(t){let e={type:t};await A("auth:sso:updated",e)}async function rL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function nL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Kc={login:ZU,logout:XU,SSOCreated:eL,SSOUpdated:tL,SSOActivated:rL,SSODeactivated:nL};async function iL(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 sL(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 oL(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 aL(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 uL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function cL(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 lL(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 n_={created:iL,triggerUpdated:sL,deleted:oL,tested:aL,run:uL,stepCreated:cL,stepDeleted:lL};function Dm(t){return!Object.values($a).includes(t.source)}async function dL(t,e){let r={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:created",r,e)}async function pL(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:updated",e)}async function fL(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:deleted",e)}var i_={created:dL,updated:pL,deleted:fL};async function mL(t){let e={};await A("email:smtp:created",e,t)}async function hL(){let t={};await A("email:smtp:updated",t)}var s_={SMTPCreated:mL,SMTPUpdated:hL};async function gL(t){let e={};await A("ai:config:created",e,t)}async function yL(){let t={};await A("ai:config:updated",t)}var o_={AIConfigCreated:gL,AIConfigUpdated:yL};async function EL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function TL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function AL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function SL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function _L(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function IL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function OL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var a_={planChanged:EL,activated:TL,checkoutOpened:AL,checkoutSuccess:SL,portalOpened:_L,paymentFailed:IL,paymentRecovered:OL};async function xL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function RL(t){let e={layoutId:t};await A("layout:deleted",e)}var u_={created:xL,deleted:RL};async function wL(t){let e={};await A("org:info:name:updated",e,t)}async function bL(t){let e={};await A("org:info:logo:updated",e,t)}async function DL(t){let e={};await A("org:platformurl:updated",e,t)}async function CL(){let t={};await A("analytics:opt:out",t)}async function vL(){let t={};await A("analytics:opt:out",t)}var c_={nameUpdated:wL,logoUpdated:bL,platformURLUpdated:DL,analyticsOptOut:CL,analyticsOptIn:vL};var NL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},PL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},UL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},LL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},ML=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},kL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},l_={created:NL,updated:PL,deleted:UL,imported:LL,run:ML,previewed:kL};async function FL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function BL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function GL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function $L(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function VL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var ba={created:FL,updated:BL,deleted:GL,assigned:$L,unassigned:VL};async function qL(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 WL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var d_={created:qL,deleted:WL};var QL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},jL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},p_={created:QL,imported:jL};async function HL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function YL(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 JL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function zL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var f_={created:HL,updated:YL,deleted:KL,exported:JL,imported:zL};async function ZL(t){let e={timezone:t};await A("served:builder",e)}async function XL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function e0(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var m_={servedBuilder:ZL,servedApp:XL,servedAppPreview:e0};async function t0(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function r0(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function n0(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function i0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function s0(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function o0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function a0(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function u0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function c0(t){let e={audited:{email:t}};await A("user:invited",e)}async function l0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function d0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function p0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function f0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function m0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function h0(t){let e={users:t};await A("user:data:collaboration",e)}var qe={created:t0,updated:r0,deleted:n0,permissionAdminAssigned:s0,permissionAdminRemoved:o0,permissionBuilderAssigned:a0,permissionBuilderRemoved:u0,onboardingComplete:i0,invited:c0,inviteAccepted:l0,passwordForceReset:d0,passwordUpdated:p0,passwordResetRequested:f0,passwordReset:m0,dataCollaboration:h0};async function g0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function y0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function E0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function T0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function A0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function S0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function _0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function I0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function O0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function x0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function R0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var h_={created:g0,updated:y0,deleted:E0,exported:T0,filterCreated:A0,filterUpdated:S0,filterDeleted:_0,calculationCreated:I0,calculationUpdated:O0,calculationDeleted:x0,viewJoinCreated:R0};async function w0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function b0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function D0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function C0(){let t={};await A("installation:firstStartup",t)}var Ia={versionChecked:w0,upgraded:b0,downgraded:D0,firstStartup:C0};var _s=!h.SELF_HOSTED&&!h.isDev();async function v0(t){_s||await A("app:backfill:succeeded",t)}async function N0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function P0(t){_s||await A("tenant:backfill:succeeded",t)}async function U0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function L0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function M0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var g_={appSucceeded:v0,appFailed:N0,tenantSucceeded:P0,tenantFailed:U0,installationSucceeded:L0,installationFailed:M0};async function k0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function F0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function B0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function G0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function $0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function V0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function q0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var y_={created:k0,updated:F0,deleted:B0,usersAdded:G0,usersDeleted:$0,createdOnboarding:V0,permissionsEdited:q0};async function W0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function Q0(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 j0(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 E_={init:W0,imported:Q0,deleted:j0};async function H0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function Y0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var T_={appBackupRestored:H0,appBackupTriggered:Y0};async function K0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function J0(t){let e={name:t};await A("environment_variable:deleted",e)}async function z0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var A_={created:K0,deleted:J0,upgradePanelOpened:z0};async function Z0(t){let e={filters:t};await A("audit_log:filtered",e)}async function X0(t){let e={filters:t};await A("audit_log:downloaded",e)}var S_={filtered:Z0,downloaded:X0};async function eM(t,e){await A("row_action:created",t,e)}var __={created:eM};function tM(){}var rM=()=>{yr.shutdown(),console.log("Events shutdown")};var Cm=async t=>{await qe.deleted(t),St(t)&&await qe.permissionBuilderRemoved(t),rn(t)&&await qe.permissionAdminRemoved(t)},nM=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await ba.assigned(t,i)},iM=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await ba.unassigned(t,i)},sM=async(t,e)=>{let r=t.roles,n=e?.roles;await nM(t,r,n),await iM(t,r,n)},vm=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await fs(r)),await kt.identifyUser(t,n),e?(await qe.updated(t),aM(t,e)&&await qe.permissionBuilderRemoved(t),cM(t,e)&&await qe.permissionAdminRemoved(t),lM(t,e)&&await qe.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await qe.passwordForceReset(t),t.password!==e.password&&await qe.passwordUpdated(t)):await qe.created(t),oM(t,e)&&await qe.permissionBuilderAssigned(t),uM(t,e)&&await qe.permissionAdminAssigned(t),await sM(t,e)},oM=(t,e)=>I_(t,e,St),aM=(t,e)=>O_(t,e,St),uM=(t,e)=>I_(t,e,rn),cM=(t,e)=>O_(t,e,rn),lM=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",I_=(t,e,r)=>!(!r(t)||e&&r(e)),O_=(t,e,r)=>!(r(t)||!e||!r(e));var zc={};v(zc,{createASession:()=>pM,endSession:()=>fM,getSession:()=>Pm,getSessionsForUser:()=>Jc,invalidateSessions:()=>mi,updateSessionTTL:()=>Nm});var x_=require("uuid");var R_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):we.fromDays(7).toSeconds();function Is(t,e){return`${t}/${e}`}async function Jc(t){return t?(await(await Yr()).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:Is(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Is(t,s)}))),i&&i.length>0){let s=await Yr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||as(`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 pM(t,e){await mi(t,{reason:"creation"});let r=await Yr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,x_.v4)(),s=Is(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,R_),o}async function Nm(t){let e=await Yr(),r=Is(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,R_)}async function fM(t,e){await(await Yr()).delete(Is(t,e))}async function Pm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Yr()).get(Is(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var km={};v(km,{PASSWORD_MAX_LENGTH:()=>Lm,PASSWORD_MIN_LENGTH:()=>Um,validatePassword:()=>Mm});var Um=+(h.PASSWORD_MIN_LENGTH||12),Lm=+(h.PASSWORD_MAX_LENGTH||512);function Mm(t){return!t||t.length<Um?{valid:!1,error:`Password invalid. Minimum ${Um} characters.`}:t.length>Lm?{valid:!1,error:`Password invalid. Maximum ${Lm} characters.`}:{valid:!0}}var mM=async t=>{let e=t._id;await Mt.removeUser(t),await Cm(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()||ja(e)?!0:(r||(r=await fs(j())),!!(r&&r.email===e.email&&Qa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Mm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await jf(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||is();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(zn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Xc(e,{})).length}}static async getUsersByAppAccess(e){return await Fm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Ft(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await Zc(e)}static async bulkUpdate(e){return await Da(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),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 Ft(s),c&&c._id!==o))throw new mr(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 kc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Bm(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 vm(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=j(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await om(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 ga(d)&&o.push(d)}let l=await fs(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 Da(d);for(let p of d)await Mt.addUser(n,p._id,p.email),await vm(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 Fc(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 Da(a),l=(await pi(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await pa(p._id)).ssoId;g&&(await Rc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await mM(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 Zr(o))throw n.userId===ar()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await ga(n)?1:0;await t.quotas.removeUsers(1,s),await Cm(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 us(De.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 va(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Zc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=va(n)),n}async function gM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`})).rows.map(n=>n.id)}async function yM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`,include_docs:!0})).rows.map(n=>n.doc)}async function Da(t){return await ie().bulkDocs(t)}async function hi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=va(n)),n}async function Ft(t,e){if(t==null)throw"Must supply an email address to view";let r=await lr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=va(n)),n}async function EM(t){try{let e=await Ft(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Xc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=mc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=va(s)),s}async function Fm(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 jp(ur(),i)).rows}function w_(t,e){if(e)return fc(at(t),e._id)}async function b_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await lr("by_email2",{...e,startkey:i,endkey:`${n}${Fe}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=va(o)),o}var TM=8;async function D_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??TM,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await hi(e.equal._id)]:r?(u=await Xc(r,a),l=d=>w_(r,d)):e?.string?.email?(u=await b_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Zc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(zn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Mr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(zn(null,a))).rows.map(m=>m.doc),pf(u,s,{paginate:!0,property:c,getKey:l})}async function AM(){return(await hf("by_email2",{limit:0,include_docs:!1})).total_rows}async function SM(){let t=0;async function e(r){let n=await D_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function _M(t){return delete t.admin,delete t.builder,t}function Bm(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 IM(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 OM(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 C_=3600;async function xM(t,e){let n=await qf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Zr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function RM(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Na({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=xM),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await na(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,C_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await $e(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 wM(t){let e=await na(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await RM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,C_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Pa(t){await(await na()).delete(t)}var qm={};v(qm,{Writethrough:()=>$m});var v_=1e4,Gm=null;async function Vm(){if(!Gm){let t=await $f();Gm=new ni(t)}return Gm}function el(t,e){return t.name+e}function N_(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function bM(t,e,r=v_){let n=await Vm(),i=e._id,s;i&&(s=await n.get(el(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ps({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;as("Ignoring conflict in write-through cache")}})).executed||as("Ignoring redlock conflict in write-through cache")),s=N_(a,o?null:s?.lastWrite),a._id&&await n.store(el(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function DM(t,e){let r=await Vm(),n=el(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=N_(s),await r.store(n,i)}return i.doc}async function CM(t,e,r){let n=await Vm();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(el(t,i))}finally{await t.remove(i,r)}}var $m=class{constructor(e,r=v_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return bM(this.db,e,r)}async get(e){return DM(this.db,e)}async remove(e,r){return CM(this.db,e,r)}};var Wm={};v(Wm,{createCode:()=>NM,getCode:()=>PM,invalidateCode:()=>UM});var vM=we.fromHours(1).toSeconds();async function NM(t,e){let r=Ie();return await(await ia()).store(r,{userId:t,info:e},vM),r}async function PM(t){let r=await(await ia()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function UM(t){await(await ia()).delete(t)}var jm={};v(jm,{DocWritethrough:()=>Qm,DocWritethroughProcessor:()=>Ua,getProcessor:()=>MM,init:()=>P_});var LM=100,tl,Ua=class t{static get queue(){return t._queue||(t._queue=new gr("docWritethroughQueue",{jobOptions:{attempts:LM}})),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=Ye(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Qm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ua.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function P_(){return tl=new Ua().init(),tl}function MM(){return tl||P_()}function Km(t){return`config${N}${t}`}async function Bt(t){let e=ie();try{return await e.get(Km(t))}catch(r){if(r.status===404)return;throw r}}async function kM(t){return ie().put(t)}async function jc(){let t=await Bt("settings");return t||(t={_id:Km("settings"),type:"settings",config:{}}),t.config.platformUrl=await La({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await $c({config:t.config}),t}async function Jm(){return(await jc()).config}async function La(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Bt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var $c=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Jr(De.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Bt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function FM(){return await Bt("google")}async function rl(){return(await FM())?.config}async function zm(){if(!h.SELF_HOSTED)return Hm();let t=await rl();return(!t||!t.activated)&&(t=Hm()),t}function Hm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function BM(){return Bt("logos_oidc")}async function GM(){return Bt("oidc")}async function $M(){let t=(await GM())?.config;return t?.configs&&t.configs[0]}async function Zm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function U_(){return Bt("smtp")}async function VM(t){let e=await U_();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 qM(){return(await Bt("scim"))?.config}async function WM(){return Bt("ai")}var Xm={};v(Xm,{BUILDER:()=>KM,BUILTIN_PERMISSIONS:()=>nl,CREATOR:()=>JM,GLOBAL_BUILDER:()=>zM,PermissionImpl:()=>me,PermissionLevel:()=>bs,PermissionType:()=>qa,doesHaveBasePermission:()=>HM,getAllowedLevels:()=>F_,getBuiltinPermissionByID:()=>jM,getBuiltinPermissions:()=>QM,isPermissionLevelHigherThanRead:()=>YM,levelToNumber:()=>k_});var L_=Q(require("lodash/flatten")),M_=Q(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 nl={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 QM(){return(0,M_.default)(nl)}function jM(t){return Object.values(nl).find(r=>r._id===t)}function HM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(nl),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 YM(t){return k_(t)>1}var KM="builder",JM="creator",zM="globalBuilder";var rh={};v(rh,{FlagSet:()=>sl,all:()=>tk,flags:()=>eh,init:()=>ZM,isEnabled:()=>ek,parseEnvFlags:()=>al,shutdown:()=>XM,testutils:()=>th});var ol=Q(require("crypto"));var B_=require("posthog-node"),G_=Q(require("dd-trace"));var $_=require("lodash");var il;function ZM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),il=new B_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:we.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function XM(){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}var sl=class{constructor(e){this.flagSchema=e;this.setId=ol.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=j(),o=new Set;for(let{tenantId:l,key:d,value:m}of al(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(d),!!this.isFlagName(d))){if(typeof i[d]!="boolean")throw new Error(`Feature: ${d} is not a boolean`);i[d]=m,n[`flags.${d}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let l=Jp();l&&(u=ol.createHash("sha512").update(l).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 l={tenantId:c},d=await il.getAllFlags(u,{personProperties:l});for(let[m,p]of Object.entries(d))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${p}`,f)}}}Xp(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},eh=new sl(Mh);async function ek(t){return await eh.isEnabled(t)}async function tk(){return await eh.fetch()}var th={};v(th,{setFeatureFlags:()=>V_,withFeatureFlags:()=>ik});function rk(){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 nk(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 V_(t,e){let r=rk();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=nk(r);return bo({TENANT_FEATURE_FLAGS:n})}function ik(t,e,r){let n=V_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var mh={};v(mh,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,buildAuthMiddleware:()=>Qk,buildCsrfMiddleware:()=>Hk,buildTenancyMiddleware:()=>jk,builderOnly:()=>Al,builderOrAdmin:()=>Tl,google:()=>Tr,internalApi:()=>gl,joiValidator:()=>ka,oidc:()=>Ar,passport:()=>Yk,platformLogout:()=>Xk,refreshOAuthToken:()=>zk,ssoCallbackUrl:()=>on,updateUserOAuth:()=>Zk});var fh={};v(fh,{adminOnly:()=>El,auditLog:()=>ml,authError:()=>Me,authenticated:()=>fl,builderOnly:()=>Al,builderOrAdmin:()=>Tl,correlation:()=>rI,csp:()=>uI,csrf:()=>yl,datasource:()=>qk,errorHandling:()=>iI,google:()=>Tr,internalApi:()=>gl,ip:()=>lI,joiValidator:()=>ka,local:()=>Os,oidc:()=>Ar,pino:()=>eI,querystringToBody:()=>sI,ssoCallbackUrl:()=>on,tenancy:()=>hl});var Os={};v(Os,{authenticate:()=>ak,options:()=>ok});function Me(t,e,r){return t(r,null,{message:e})}async function on(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Jm(),n="/api/global/auth";return $r()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var nh="Invalid credentials",sk="This account has expired. Please reset your password",ok={passReqToCallback:!0};async function ak(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Ft(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,nh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,nh)):i.password?await Hf(r,i.password)?(delete i.password,n(null,i)):Me(n,nh):(console.info(`user=${e} has no password set`,i),Me(n,sk))}var Tr={};v(Tr,{buildVerifyFn:()=>Q_,getCallbackUrl:()=>lk,strategyFactory:()=>ih});var Ma=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=is(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 Ft(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:j()});let o=await uk(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 uk(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 ck=require("passport-google-oauth").OAuth2Strategy;function Q_(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 ih(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=Q_(r);return new ck({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function lk(t){return on("google",t)}var Ar={};v(Ar,{buildVerifyFn:()=>H_,fetchStrategyConfig:()=>mk,getCallbackUrl:()=>hk,strategyFactory:()=>fk});var j_=Q(require("node-fetch"));var dk=require("@techpass/passport-openidconnect").Strategy;function H_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:pk(n,i),oauth2:{accessToken:s,refreshToken:o}};return ul(l,!1,c,t)}}function pk(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&zf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function fk(t,e){try{let r=H_(e),n=new dk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function mk(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,j_.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 hk(){return on("oidc")}var sh={};v(sh,{postAuth:()=>Ek,preAuth:()=>yk});var gk=require("passport-google-oauth").OAuth2Strategy;async function Y_(){let t=await zm();if(!t)throw new Error("No google configuration found");return t}async function yk(t,e,r){let n=await Y_(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await ih(n,s,Ma);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function Ek(t,e,r){let n=await Y_(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ai(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new gk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Ie();await fr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var Tk=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(Tk);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],yi=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var dh={};v(dh,{SecretOption:()=>z_,decrypt:()=>lh,decryptFile:()=>xk,encrypt:()=>_k,encryptFile:()=>Ik,getSecret:()=>ch});var Sr=Q(require("crypto")),an=Q(require("fs")),ah=Q(require("zlib"));var oh=require("path"),cl="aes-256-ctr",J_="-",Ak=1e4,Sk=32,ll=16,uh=16,z_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(z_||{});function ch(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 Sr.default.pbkdf2Sync(t,e,Ak,Sk,"sha512")}function _k(t,e="api"){let r=Sr.default.randomBytes(ll),n=dl(ch(e),r),i=Sr.default.createCipheriv(cl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${J_}${a}`}function lh(t,e="api"){let[r,n]=t.split(J_),i=Buffer.from(r,"hex"),s=dl(ch(e),i),o=Sr.default.createDecipheriv(cl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function Ik({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,oh.join)(t,e);if(an.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=an.default.createReadStream(i),o=an.default.createWriteStream((0,oh.join)(t,n)),a=Sr.default.randomBytes(ll),u=Sr.default.randomBytes(uh),c=dl(r,a),l=Sr.default.createCipheriv(cl,c,u);return o.write(a),o.write(u),s.pipe(ah.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function Ok(t){let e=an.default.createReadStream(t),r=await K_(e,ll),n=await K_(e,uh);return e.close(),{salt:r,iv:n}}async function xk(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await Ok(t),s=an.default.createReadStream(t,{start:ll+uh}),o=an.default.createWriteStream(e),a=dl(r,n),u=Sr.default.createDecipheriv(cl,a,i),c=ah.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 K_(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 X_=Q(require("dd-trace")),Rk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function wk(){return new Date(Date.now()-Rk).toISOString()}function Z_(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 bk(t,e){if(ca(t))return{valid:!0,user:void 0};let n=lh(t).split(N)[0];return $e(n,async()=>{let i;try{let s=ie();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Na({userId:i,tenantId:n,populateUser:e})};throw new gs})}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?gi(t):[];return async(n,i)=>{let s=!1,o=pl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=pl(n,"x-budibase-token"),c=ai(n,"budibase:auth")||Ic(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,_=c.userId,S;try{S=await Pm(_,y),e&&e.populateUser?p=await Na({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Na({userId:_,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<wk()&&await Nm(S),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),zr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await bk(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)&&X_.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),Z_(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"?zr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return Z_(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Dk=async(t,e)=>e(),ml=Dk;function hl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=aa(s,u);return s.set("x-budibase-tenant-id",l),$e(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"),ca(r)||t.throw(403,"Unauthorized"),e()};var Ck=["GET","HEAD","OPTIONS"],vk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function yl(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||Ck.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!vk.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=Ue(),n=h.isWorker()||!r?St:h.isApps()?ys: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=Ue(),n=h.isWorker()||!r?St:h.isApps()?ys: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 Nk=require("koa-pino-logger"),Pk=require("correlation-id");function Uk(){return{logger:Tc,genReqId:Pk.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 Lk(){return h.HTTP_LOGGING?Nk(Uk()):(t,e)=>e()}var Mk=Lk(),eI=Mk;var tI=require("uuid"),kk=require("correlation-id"),Fk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,tI.v4)()),kk.withId(r,()=>e())},rI=Fk;function nI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of LT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Bk(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Nc(r)};if(nI(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 iI=Bk;function sI(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 aI=Q(require("crypto")),oI={"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:"]};async function Gk(t,e){try{let r=aI.default.randomBytes(16).toString("base64"),n={...oI};n["script-src"]=[...oI["script-src"],`'nonce-${r}'`],t.state.nonce=r;let i=Object.entries(n).map(([s,o])=>`${s} ${o.join(" ")}`).join("; ");t.set("Content-Security-Policy",i),await e()}catch(r){console.error(`Error occurred in Content-Security-Policy middleware: ${r}`)}}var uI=Gk;var ka={};v(ka,{body:()=>$k,params:()=>Vk});var ph=Q(require("joi"));function cI(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:ph.default.any().optional(),updatedAt:ph.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 $k(t,e){return cI(t,"body",e)}function Vk(t,e){return cI(t,"params",e)}var lI=async(t,e)=>t.ip?await zp(t.ip,()=>e()):e();var qk={google:sh};var dI=require("koa-passport"),Wk=require("passport-local").Strategy,Sl=require("passport-oauth2-refresh"),Qk=fl,jk=hl,Hk=yl,Yk=dI;dI.use(new Wk(Os.options,Os.authenticate));async function Kk(t,e){let r=await Ar.getCallbackUrl(),n,i;try{if(n=await Ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Ar.strategyFactory(n,Ma)}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 Jk(t,e){let r=await Tr.getCallbackUrl(t),n;try{n=await Tr.strategyFactory(t,r,Ma)}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 zk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Zm(r);return n?Kk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await rl();return n?Jk(n,t):{err:{data:"Google configuration not found"}}}}}async function Zk(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 Pa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Xk(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=ai(e,"budibase:auth"),s=await Jc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):zr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await Kc.logout(e.user?.email),await Pa(r)}var gh={};v(gh,{validate:()=>iF});var D=Q(require("joi")),eF=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function hh(t,e){let{error:r}=t.validate(e);if(r)throw r}function tF(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});hh(e,t)}function rF(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Rl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(xl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(wl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...eF),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});hh(n,t)}function nF(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(oe)).required(),customType:D.default.string().allow(...Object.values(ge)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...kh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});hh(n,t)}function iF(t){switch(t?.type){case"component":tF(t);break;case"datasource":rF(t);break;case"automation":nF(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var yh={};v(yh,{Client:()=>Ve,clients:()=>Kr,locks:()=>ci,utils:()=>ac});var Eh={};v(Eh,{isBlacklisted:()=>oF,refreshBlacklist:()=>hI});var pI=Q(require("dns")),Il=Q(require("net"));var fI=require("util"),_l,sF=(0,fI.promisify)(pI.default.lookup);async function mI(t){return Il.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await sF(t,{all:!0})).map(r=>r.address)}async function hI(){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 mI(i);r=r.concat(s)}}_l=r}async function oF(t){if(_l||await hI(),_l?.length===0)return!1;let e;return Il.default.isIP(t)?e=[t]:e=await mI(t),!!_l?.find(r=>e.includes(r))}var Ah={};v(Ah,{init:()=>uF});var aF={"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 gI(t,e){let r=aF[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Fa=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=gI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await $e(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return XS()}};var yI,Th;function uF(t){Er||Yc(),Th||(Th=new Fa(t)),yI||(yI=Er.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Th.processEvent(r,n,i)}))}var Dh={};v(Dh,{COUNT_FIELD_NAME:()=>wh,Sql:()=>RI,SqlTable:()=>Ol,designDoc:()=>bh,utils:()=>Wp});var SI=require("knex");var cF=require("knex");function Sh(t){return["link","formula","ai"].indexOf(t)!==-1}function EI(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":jt.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 _=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&&!Sh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!Sh(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||Sh(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function dF(t,e,r){return t.createTable(e.name,n=>{EI(n,e,r)})}function pF(t,e,r,n,i){return t.alterTable(e.name,s=>{EI(s,e,r,n,i)})}function fF(t,e){return t.dropTable(e.name)}var _h=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,cF.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=dF(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=pF(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=zi(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=fF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return zi(n)}},Ol=_h;var _I=require("lodash"),wh="__bb_total";function TI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Ih(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function mF(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 II(t){return Array.isArray(t)?t.map(e=>II(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function AI(t){return t.sourceType==="internal"||t.sourceId===Nl}function hF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function OI(t,e='"'){return`${e}${hF(t,e)}${e}`}function Oh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=OI(t[r],e));return`[${t.join(",")}]`}function xI(t){return Fh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var gF={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},xh=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 Mr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&xI(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(!Vp(e))return null}else{if($p(e))return null;if(nc(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,_I.cloneDeep)(e);for(let r of Object.values(Ir)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Kt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(dn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=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(),_=qp(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=Go(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,gF[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(Oh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(Oh(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(OI(Oh(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 _=ic(E.low),S=ic(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&&!Bp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Or(r.documentType)}%`),e}isSqs(){return AI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;AI(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 ${wh}`)}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)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),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=mF(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(","),un=`${S}.${y||f}`,$=s.from(I).orderBy(un),F=p&&y&&E,C=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(C),"=",this.rawQuotedIdentifier(q));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Ih()),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 ${Ih()})`));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(Ih())});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())}},Rh=class extends Ol{constructor(r,n=TI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=zi(r);return i==="sqlite3"&&(s=II(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,SI.knex)(s),a,u=new xh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:TI()}});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(!xI(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){No(this.getSqlClient(),r,n)}},RI=Rh;var bh={};v(bh,{base:()=>yF});function yF(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var EF={...ua,...Te},TF=(t={})=>{tc(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,ErrorCode,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});
38
38
  //# sourceMappingURL=index.js.map